0
\$\begingroup\$

I've been working with arduinos for quite some time now and finished some cool projects. The problem I have with arduino boards is that programming them is extremely simple and I have virtually no idea what is happening on the inside (you don't learn much about microelectronics while using them). I am pretty fluent in C and C++, however the arduino's version of these languages is very basic. I was wondering what microcontrollers/microprocessors are being used in the industry and how to implement them in my projects? I've heard about AVR, ARM, ATMEGA (on it's own), etc. Are those the ones that are being integrated in professional (commercial) projects? I've seen the MIT's video about autonomous robotic plane - https://www.youtube.com/watch?v=kYs215TgI7c, where they have used an "Intel Atom Processor". How can you use an Intel Processor to control electronics? Obviously an Intel processor is overkill for my electronics projects, however I am still curious how it can be used.

\$\endgroup\$

closed as primarily opinion-based by Elliot Alderson, Leon Heller, Marcus Müller, Rev1.0, Chris Stratton Apr 28 at 19:26

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

  • \$\begingroup\$ Used in industry? They sure are. Don't forget PIC. The Intel Atom is probably on a board that has pins accessible to control custom hardware, just like all the others. The main difference is it is running an operating system. I assume a real-time version of Linux. The more powerful ARMs can do this too. To use anything get a premade PCB or make your own. Check out the Nucleo boards and dev boards in general. You will need a datasheet/manual and debugger/programmer. \$\endgroup\$ – DKNguyen Apr 28 at 18:48
  • 1
    \$\begingroup\$ Errm. No language used on a microcontroller will be extremely advanced. You are greatly limited by storage and RAM, so that the runtime libraries must be kept to a minimum. You will find more support for low level stuff (bit manipulation and such) and less for memory intensive things (no dictionaries with objects and keys of arbitrary types.) \$\endgroup\$ – JRE Apr 28 at 18:54
  • 1
    \$\begingroup\$ Atmega chips are widely used outside of Arduinos. \$\endgroup\$ – JRE Apr 28 at 19:00
1
\$\begingroup\$

If you're looking for something easy to graduate to from the arduinos, consider using an arduino without their IDE. It's then pretty much the same as any other ATmega dev board. If you go to the Atmel website (now part of the microchip one) you can download Atmel Studio for free. This is a fully featured IDE based on Visual Studio. You can get a plugin for it which let it work with arduino files... but if you want to move towards more professional use, avoid it, and write complete C (or C++) files. For the ATmegas, with their very limited RAM, I'd stick with functional rather than object oriented programming. I'd also avoid the using the heap/malloc/free unless it's really necessary.

From there, you can look at development boards, aka dev boards. That's the technical name for a microcontroller with the necessary supporting hardware on a PCB so you can try it out. They are available for many microcontrollers, though often only one per family of similar parts. They are more expensive than arduinos, partly because they are not made in such large numbers. Unlike Ardiuinos, they are also usually laid out by the manufacturer exactly how they intend with the chip, so they can be a good place to look for hints when laying out your own first PCB.

\$\endgroup\$
  • \$\begingroup\$ Thank you for your answer. Do the people in robotics industries design their own dev boards and program them in Atmel Studio? Also, can Intel Processors be hooked up to these dev boards for carrying out demanding computations? \$\endgroup\$ – Something Apr 28 at 19:33
  • \$\begingroup\$ You usually start with a dev board with an MCU on it, plus maybe dev boards for special amplifiers, motor drivers, whatever you need, all joined together with a horrific rats nest of wires and smaller components. Once you've learnt how each part works and got the whole thing to kinda work, you design a PCB with all the components on and get it made. \$\endgroup\$ – Jack B Apr 28 at 19:44
  • \$\begingroup\$ Some Intel processors havedev boards (dev boards come with specific chips on them, you don't really" hook them up"). But they are almost a PC, and a lot of the time you'd be better of just using a PC and designing your own peripherals. Somewhere in-between the ATmega world and a full-on PC are the ARM processors. They range from just a bit smarter than a ATmega all the way up to PCs from a few years back, and often have much better features for interesting hardware than a Intel board. They come from many different manufacturers and there's lots of dev boards available. \$\endgroup\$ – Jack B Apr 28 at 19:49
  • \$\begingroup\$ And it is programmed in Atmel studio right? \$\endgroup\$ – Something Apr 28 at 19:49
  • \$\begingroup\$ If it's made by Atmel, it's programmed in Atmel Studio. If you get it from a different manufacturer, it'll need a different toolchain. Some chips will also need some extra hardware to program them (e.g. Atmel ICE), others can be programmed directly over USB, as long as they are on a PCB with the right pins hooked to a USB port. \$\endgroup\$ – Jack B Apr 28 at 19:52
0
\$\begingroup\$

Yes, the Arduinos somewhat hide the complexity "under the hood". But working with professional microcontrollers and tools is not very different comparing to working with Arduinos. The Arduino ecosystem has just built kind of a standard across slightly different MCU types.

If you want to know which MCU's are used in the industry, why don't you look directly at the different Arduino boards? E.g. the Arduino Uno R3 has an Atmega328P MCU, a very simple 8bit type from Atmel (now Microchip).

The PRO tools give you some really nice features that are not provided in the Arduino ecosystem, like e.g. single step code debugging, code and power profiling, virtual ports and a lot more.

\$\endgroup\$
  • \$\begingroup\$ How do you access these PRO tools? Do you just purchase the Atmega328P MCU and program it with Atmel Studio? If I was working on a professional robotics project I wouldn't use an Arduino, right? So my question is, What types of microcontrollers and microprocessors are being used in these kinds of projects and how do I get started? \$\endgroup\$ – Something Apr 28 at 19:17
  • 2
    \$\begingroup\$ @Something - such a broad, part-selection question is outside the scope of this website, which is only for fully specific questions that can have specific answers. Spend some time learning about the range of what is out there, both in terms of brands/architectures and in terms of key divisions between internal-flash Microcontrollers vs. System-on-a-chip type platforms with external RAM and an operating system, and what each is good (and horrible) at. \$\endgroup\$ – Chris Stratton Apr 28 at 20:31

Not the answer you're looking for? Browse other questions tagged or ask your own question.