Arduino and Raspberry: An Overview Over Single-Board Computers
Software and Hardware
While developing software has become increasingly easier over the last few decades, implementing your own projects that require both custom hardware and software has traditionally been quite challenging. Programming microchips is anything but trivial and more often than not requires special equipment. All that changed in 2012 when single-board computers started to gain a foothold in the market and made these hardware projects much easier and much more affordable.
In this article we want to peek into the world of single-board computers, give you an overview over the current offerings, and give you some tips on how to decide which one to pick. To clarify, we should probably address our definition of “single-board computer” first: For the sake of this article, single-board computers are those systems with analog and digital I/O for sensors and actors that are so immensely popular in the maker scene.
Developer boards are those single-board computers whose usefulness as controllers for other systems outweighs their ability to function as a standalone system. For example, an Arduino will never be used as a video decoder for home theaters while on the other hand using a Raspberry Pi for motion-dependent control of an LED light strip would be overkill.
When talking about developer boards, the Arduino is your system of choice. The important thing to remember is that Arduino is not only a series of developer boards but an open hardware platform. Accordingly, a huge variety of hardware is available for Arduino-based single-board computers, and so are ready-made software projects, applications, and cheap Arduino replicas.
At the heart of each Arduino board is an Atmel-AVR based microcontroller that is about as powerful as a decent calculator. Depending on the make and model, you have a number of ports available to connect external sensors and actors to, or even output devices such as speakers or special-made displays.
Depending on size, the sensors and actors are connected either via a pin header, which makes connecting matching ribbon cables particularly easy, or alternatively via pin holes in the PCB in smaller models. In both cases using a pinboard is highly advisable, as is discipline when connecting your cables.
Most beginners will not care too much about the number of pins and connectors available. Instead, compatibility is much more important, and we would strongly advise you to use an Arduino-compatible device such as the Arduino UNO or the ELEGOO Uno R3. Another option is the much smaller Arduino Nano or compatible third-party alternatives thereto, such as the particularly small Digispark Mini.
Another important factor is the communication modules. By default, Arduinos have to be connected via USB. However, should you intend to use one independently without being connected to a PC you can power them via a power bank or a battery, and communicate via optional Wi-Fi modules. Some developer boards come with charging circuits, Wi-Fi, and even Bluetooth compatibility.
Sensors, Actors, and Output Options
All individual inputs and outputs can be easily addressed in software once they have been defined as such. Sensors are available in all different flavors, from touch sensors to potentiometers, from moisture sensors to proximity sensors or even gyroscopes. Output options include LEDs, speakers, and displays. More complex modules are also available, and most parts can be purchased very cheaply directly from China.
Addressing those more complex sensors or output devices such as motors are accessed via so-called libraries. These include routines to communicate with said devices and sensors, which in turn not only saves developers a ton of work but also helps with streamlining their own projects.
Arduino boards can be used for projects of various levels of complexity, including home automation. They can also be included into existing smart home environments, which can in some cases save you a lot of money on highly specialized commercial sensors.
Beginners will benefit from a huge number of well-documented projects aimed at teaching the C-like language and getting used to the IDE. Even if you are completely new to this you can have great success in a single afternoon, for example by combining a proximity sensor and an LED to create a collision detection system. You could also replace the proximity sensor with a moisture sensor to create an indicator for moisture levels in soil – the first step to a fully automated plant pot.
PC-like single-board computers
Unlike developer boards, PC-like single-board computers are akin to real computers in that they are capable of running typical operating systems with graphical user interfaces and could in theory have the potential to replace a full-fledged computer. Performance of these devices is usually many times that of developer boards.
The most popular and important contender in this realm is without a doubt the Raspberry Pi. The fourth generation features a quad-core Cortex A72 CPU with up to 4 GB of RAM and a GPU capable of decoding 4K video streams. Thanks to support for USB, Ethernet, and Wi-Fi the Raspberry Pi will behave like a regular Linux PC once a microSD card and a Linux operating system have been installed.
Without any modifications at all, single-board computers such as the Raspberry Pi can serve as network storage devices or media servers. Another very popular domain is the use as an emulator for old games. Just like with Arduino devices, you can also connect various sensors and actors.
In this day and age, the number of available single-board computers, some of which are aimed at very specific applications, can get pretty confusing. Take for example the Orange Pi, Banana Pi, or the ASUS Tinker Board. Users should take particular note of software support and the size of the community behind a board. More often than not a large community will be more helpful in solving driver issues. Yet another category, a rather small one that is, is that of x86-compatible boards such as the Atomic Pi.