What is the difference between Arduino and microcontrollers that existed before Arduino? - Educational Engineering

Educational Engineering is seeking to develop the content on the internet through the dissemination of educational videos in various technical, technological and engineering fields. Follow us get new Tutorials and Lessons


Tuesday, July 31, 2018

What is the difference between Arduino and microcontrollers that existed before Arduino?

What is the difference between Arduino and microcontrollers that existed before Arduino?

“Arduino” is not a microcontroller - it’s a family of ‘development boards’ based on several members of the Atmel AVR microcontroller family (and in more recent years, other brands & models of microcontrollers too), which existed long before anyone knew how to pronounce Arduino.
Arduino is also a growing list of libraries, for controlling a wide range of chip peripherals, and performing a wide range of functions, that allow the user to focus most of their effort on their primary application/goal, rather than ‘boring’ stuff.
And Arduino is also a rather awful but nonetheless good-enough IDE for writing Arduino ‘sketches’ in, which contains and hides most of the dirty underbelly of the toolchain of compiler and linker and uploader that hitherto Arduino, was and remains a pain to set up.
Arduino is not a language - Arduino sketches are C-language, and under the hood/bonnet Arduino is implemented with C++ and one can actually program one’s sketches in C++ too, should the need arise. All microcontrollers can be programmed in Assembler, for the very rare occasions that’s necessary, but nowadays most can also be programmed in C/C++ and a few in other higher level languages too.
Arduino also has a huge community of mostly neophyte users, similarly to Raspberry Pi. Other brands & families of microcontroller families tend to have much smaller communities of helpful co-support and tend to consist of more experienced practitioners from the traditional engineering disciplines, rather than newcomers.
Arduino was and to some degree remains a project to help bring the world of microcontrollers to a broader audience, originally intended to be artists wishing to make ‘technical art’, by dramatically reducing the ‘barriers to entry’ normally expected of the world of microcontrollers. It succeeded in that goal, wildly, and changed the landscape of electronics engineering as applied to microcontrollers, demystifying that which used to be arcane, expensive, and slow to develop useful applications.

Arduino is not a microcontroller. It is based on an AVR controller, but it is more than that for the following points:
  • It is a full system. It has an MCU, an onboard programmer which means you don’t need an external programmer, and a bootloader software that can talk with your machine.
  • It comes with an IDE. Actually, you can program an Arduino board without its IDE, but that will need you a lot of configurations (chip family, rom size, and ram mapping). So the IDE provides a facility for easy programming. Good for beginners.
  • It has a full ecosystem. You can easily get an Arduino-compatible board from the market. You can download drivers and libraries for a huge amount of devices you could possibly use in your own project.
  • One issue of Arduino, however, it has the poor ability to debug, which is essential for debugging complex programs. The only way you can debug is using the serial terminal and that is very inefficient.
The Arduino was successful in ways that previous microcontrollers were not for a variety of reasons:
  • Arduino was an actual complete development board, including programmer. When you wrote code for the Arduino, you didn’t need a separate gadget to program it. You could hook it to your Windows/Mac/Linux box, and download code directly to it, and then test it. It didn’t require any mechanical/electronic assembly.
  • Arduino was reasonably inexpensive. At introduction, Arduino boards were around $30, which placed them in the range of hobbyists. Now, you can get knock-off clones for about $3–$5 from China.
  • Arduino was programmed in C/C++ (sort of) using the free GCC C compiler. Most other microcontrollers of the day were programmed with proprietary (and often expensive) compilers. The Arduino programming environment was designed to be a single download and is reasonably portable.
  • The Arduino provided a fairly rich set of libraries to soften the cognitive load for the beginner. Libraries make it simple to do serial I/O, access I2C peripherals, an interface to a fairly wide variety of other devices.
  • The Arduino built up a community who shares code and experience with one another. It is this community that is perhaps the biggest asset of the Arduino ecosystem.
Arduino has proved so popular that the libraries and environment have been ported to other microcontroller boards and architectures such as ARM-based boards or boards based upon the ESP8266 chipset. It’s possible to move from the classic boards to these newer, more powerful and less expensive boards with relatively little effort.

Microcontroller development board in that time was not intended to be beginner friendly. It was aimed to be used by electronic students or engineers who want to build real-world industrial grade device. Thus, it tends to be complex yet difficult to tinker (but offer higher flexibility, and performance).
Massimo Banzi was a teacher, and he wanted his students to learn electronics, not by doing a tedious task like soldering or something like that. But instead, he wanted them to focus on constructing algorithms. So he built Arduino.
In short, Arduino was launched with one purpose: to simplify (digital) electronics development cycle. Arduino is equipped with its own environment (IDE, language, forums) so it can be used even by a toddler (remember Sylvia the Arduino little girl?).
Even Atmel built a very complicated development board for their chips.

No comments:

Post a Comment