3 ms·
I double-majored in computer and electrical engineering. In those courses, I learned how to create PCBs and wrote code for FPGAs, microcontrollers, and a few de
by LeifCarrotson 6y ago
I double-majored in computer and electrical engineering. In those courses, I learned how to create PCBs and wrote code for FPGAs, microcontrollers, and a few desktop applications. As my sibling commenter mentioned, a ton of the actual implementation is vendor-specific and there's a mix of RTFM, on-the-job training, and vendor classes. Also, quite a bit of https://xkcd.com/627/ https://xkcd.com/627/.
One of the most important parts of my education learning that there is no black magic in technology. Everything we manufacture is a pyramid that builds complexity using leaky abstractions. At the lowest levels, you have atomic physics of doped silicon and charge carriers. At the highest levels of abstraction, you interact with those atoms by saying "Hey, Siri, do I need an umbrella today?" Someone, somewhere, either understands or wrote a tool that understands every layer between those two. We're a few decades out from the time when someone could think about the whole stack all at once.
If you want to really program robots, you need to understand a bit of the technology with which they're built (encoders and servomotors, control loops, motion planning, real-time operating systems) and then just pick up a teach pendant, and apply what you know. Do be aware of the value in abstractions, and don't try to reinvent the wheel, but if you don't know the fundamentals you'll be tripped up every time the abstraction leaks a little.
I didn't touch a PLC or robot until after college when the job required it. It's true that working effectively is all about familiarity the toolsets provided by various manufacturers, but I don't think that would be an effective thing to teach in a university setting. If you posted a listing for a recent graduate controls job requiring experience in your particular flavor of robots or PLCs, you're going to have a bad time - anyone with a CS/CE/EE/ME background could do it. Learn how to work, learn how to learn, learn how to plan, and by that time picking up a teach pendant and getting the robot to run a loop from point A to B and back to A will be the easy part.