Electrical Engineering Student
"I was born not knowing and have had only a little time to change that here and there."
Alex's Blog :Return to Blog
The Impact of Easy-To-Use Microcontrollers
Consumer products have evolved over the last few decades to use microcontrollers (small, low-powered computers) in applications from toasters to alarm clocks. These devices allow for some intelligence to be programmed into electronics, appliances, and other products, allowing for better power management or additional features. There are many uses and great potential for these microcontrollers. However, it has been up to highly knowledgeable engineers to write and compile code specific to these microcontrollers, meaning that those who have had good ideas but lacked certain skills could not bring their creations to life. Proprietary compilers are often used with separate toolchains for each iteration of the device, effectively adding several layers of abstraction before worrying about actually writing the software for the processor to execute. Over the last decade, this confusion has given way to several important and impressive products that have changed the scale of the electronics community today, and are challenging traditional notions of engineering education. Platforms like Arduino and Raspberry Pi are open source and cheaply available to anyone. These products have not only impacted the electronics and creative communities across the world, but also have altered the way some high schools and universities educate.
History of Arduino
Frustrated by the difficulty inherent to most prototyping solutions at the time, Massimo Banzi and David Cuartielles set out to make something better that students could use to rapidly change designs. They came up with the Arduino, heralded as kicking off the “maker” movement that has spread rapidly today. Arduino is an open source hardware and software platform that provides a board and unified bootloader for a variety of Atmega microprocessors. Instead of requiring years of education, Arduino’s simplified language and programming interface allow nearly anyone to bring their creations into reality. Additionally, the open source nature of the project means that a wealth of knowledge exists for free on the internet pertaining to thousands of different projects. Today, Arduino is one of the most accessible microcontrollers available to budding engineers and makers looking to extend, automate, or control a project.
Banzi and Cuartielles started Arduino without any idea of what a phenomenon it would become. Dissatisfied with the high cost and limitations of alternatives like the BASIC Stamp, Banzi sought to create a prototyping board that would more easily introduce students to the field of physical computing. Whereas the Stamp was about $100, Banzi wanted to make his vision cost less than a dinner for two— around $30. And as someone passionate about the open source movement, Banzi released all hardware and software for the device under the Creative Commons license, typically used for works of literature or music. After several revisions and collaborations, a design was released that offered a complete solution like what Banzi was looking for. The Arduino itself is little more than a breakout for an Atmega chip with a crystal, voltage regulator, and some capacitors. Later version also included a USB chip and port, making the device much easier to program than it would be with ICSP or FTDI. A picture of a 2005 $30 Arduino board is shown below as Figure 1.
Applications of Arduino
The goal for Arduino was to allow anyone to use it, replicate it, or alter it on their own without having to give Banzi and others one cent. Dozens of different Arduino boards from many different manufacturers are now available, all serving largely the same function. Arduino’s software is written in the Programming language. It is compiled by the Arduino IDE, which includes many simple examples and different libraries, and uploaded to the board via the built-in programmer. The IDE, and a snippet of code that causes an LED on port 13 to turn on or off every second, is shown below as Figure 2.
The simplicity of the Arduino setup has been hailed as a large part of the product’s success. But the biggest thing going for Arduino these days is the community that has grown around it. Developers who wanted to do something originally, like interface with a serial LCD to display a Twitter feed in real-time, had to create libraries to communicate with and control the peripheral they wanted to utilize. These developers have often open sourced these libraries, many of which are kept on the Arduino website and are easily accessible. For instance, in the ND PCR project I wrote about earlier and contribute to, we were able to use a library to control the serial LCD for outputting pertinent data, a library to map a 12-digit keypad for inputs, a PID controller library to control the amount of current flowing through the heating elements, and a serial library to easily control communication back over the serial port. Arduino has been used for Twitter displays and as the centerpiece for a smart RFID-controlled kegerator, as in the Kegbot project. Hackers have used Arduinos to break into hotel rooms secured by Onity programmable locks, as well. Robotics enthusiasts continue to improve upon their machines, many of which are based upon the platform as well. With satellites now being powered by several year-old Android phones, Arduino seems to have no limit to its potential.
The Raspberry Pi
Raspberry Pi is a slightly different device with a similar goal. Launched in February 2012, the designers of the Raspberry Pi sought to bring a cheap, Linux-based computer with a number of hardware interfaces in order to get students interested in learning about computer science from a young age. They have proven popular since, selling out at both the $25 and $35 price points many times over the last year. The game Minecraft has been compiled for the device, as has popular media center application XBMC, along with many distributions of Linux. Each board contains an ARM processor, 256 MB to 512 MB of RAM, an SD card slot, USB ports, HDMI, 3.5 mm audio, and in the case of the model B, an ethernet port for internet connectivity. The model A Raspberry Pi is shown below as Figure 3.
These cheap card-sized devices have been similarly revolutionary. Raspberry Pi has served as a base for a media center for many, but has been used as an educational tool in other instances. The University of Cambridge bases # their operating systems course“Your text to link here…(Baking Pi – Operating Systems Development)”:http://www.cl.cam.ac.uk/freshers/raspberrypi/tutorials/os/ on the Raspberry Pi as a universal platform that is easier to understand than many modern computers. Schools and other organizations have seen the potential of these cheap computers as workstations as well.
Shaping Future Education
Many engineers have complained about the simplicity that Arduino offers to programmers. Compared to other microcontrollers programmed with C or Assembly, Arduino obscures much more of the technical details in favor of a streamlined process that favors rapid prototyping over complete understanding. The problem with that argument is that the complexity of older microcontrollers is enough to turn most people off from learning more about the many possibilities that microprocessors offer. People can be pulled in by Arduino and learn more details later as they seek a more powerful chip, or simply as they want to learn more about how it all works. Without Arduino, those with desire to create that lack technical knowledge may never get to experiment and prototype. Personally, I hope that these low-cost microcontrollers can revolutionize the education for electrical engineers and computer scientists. Having low-cost devices available to schools worldwide means that people everywhere can get access to technology at an early age. Teaching people about operating systems with Raspberry Pi will enable the next generation of developers to improve upon the Linux kernel and OS, while giving younger kids access to Arduino will allow them to see that programming is not nearly as hard as people make it out to be. With how important computers are to everyday life, it is surprising that these innovations haven’t spread further than they have.