The Technology
Arduino
The Arduino project was first developed in 2003 with the goal of providing users an efficient and low-cost way of constructing pieces that are able to interact with the outside environment through sensors and actuators. It is an open-source project, maintained by an active online community of developers.
​
​
Arduino runs on micro-controller boards. There are multiple micro-controller boards that are compatible with the Arduino. In the current version of AIR, the Dagu Red Back Spider Board is used.
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
The basic workflow for Arduino is as following.
-
The programmer writes Arduino program on the computer
-
The Arduino program is uploaded to the micro-controller
-
The micro-controller translates the program into commands it sends to electronic devices
​
​
​
​
​
​
​
​
​
​
The Arduino provides an IDE (Interactive Development Environment) that greatly improves the programming experience.
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
To facilitate writing programs for users with few coding background, a visual programming aid called BlocklyDuino was developed using the Blockly library from Google. The user can drag input and output blocks onto a canvas to model the flow of the program and the tool will automatically translates that into Arduino code.
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
Since the Arduino was specifically designed for robotics purposes and it has been around for many years, a lot of libraries have been developed, which allow the users to write shorter and less repetitive programs to control different electronic devices.
​
Overall, Arduino still remains one of the most popular technology that builders around the world use to construct interactive works.
​
......
Arduino IDE
Arduino IDE
Text Editor
MicroPython
MicroPython is a full Python compiler created by Damien George in 2013. It is essentially a more efficient implementation of Python, and the reimplementation allows it to run on micro-controller boards that are more limited in terms of computing power. MicroPython is also an open-source project, and it is still in Beta stage.
​
​
When MicroPython was first created, it came with a hardware called a PyBoard. The PyBoard is a small circuit board that runs MicroPython on the bare metal. It has a small internal storage system that has 1024kB of ROM. This is where the MicroPython implementation is stored. User-defined programs such as user-implemented libraries and the main program to control the electronic devices are also stored in this system. The PyBoard allows a Micro-SD card to be inserted, in which case the user-defined programs will be stored on the Micro-SD card instead.
Other boards that are frequently used with MicroPython include the ESP32 and ESP8266 etc.
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
The basic workflow for the MicroPython is very similar to the workflow for Arduino.
​
MicroPython provides an interactive prompt that is very similar to a normal Python interpreter. User can write their MicroPython codes in a text editor, save them on the PyBoard and run them from the interactive prompt. Or they can directly type in MicroPython code in the prompt and get return values.
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
MicroPython have some built-in libraries to control Servos and LEDs but overall the libraries to support controlling electronic devices are limited.
​
There is no specific Blockly program for writing code in MicroPython (although we can easily implement one). There are general-purpose Blockly programs such as BlockPy for learning to code in Python and since MicroPython uses Python syntax, that's a good place to start.​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
Overall, MicroPython allows us to write code in Python that can be used to build interactive works, which improves the programming experience. However, since the micro-controller boards used for MicroPython in general can control fewer electronic devices at the same time, the technology limits the complexity of the program.
Raspberry PI
The Raspberry Pi is a very different option than the other two considered here. This is mainly because, unlike the PyBoard and Red Back Spider board, the Raspberry Pi is a full computer. This means that is has its own operating system (Raspbian) which is stored on a micro SD card, and comes with a lot of built in functionality.
​
It has 10 built in programming languages, notably Python, Java, C, and more. It also has an ethernet port, bluetooth capabilities, and the ability to connect to the internet via wifi. The diagram below shows its pin layout, and the other hardware on the board.
We used the 3 B+ model of the Raspberry Pi.
The main drawback of the Raspberry Pi is that it comes with no analog pins. ​This means that in order to use any analog input or output devices, students would need to use an analog to digital converter or digital to analog converter. These converters take up 6 pins on the Raspberry Pi, and therefore take up a large amount of the real estate for connecting electronic devices.
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
The workflow for the Raspberry Pi differs from the other technologies because it is a full computer. Instead of connecting it to a computer via a USB cord, the Raspberry Pi can be connected to a monitor, mouse and keyboard, and used as a desktop computer. Users code directly on the Raspberry Pi, and there is no sending code between computers. A visualization of this workflow can be seen below. The Pi can also be accessed remotely using VNC or ssh.
The Raspberry Pi has a very large online community, meaning there are many tutorials and electronic add ons available online. One type of add on is called a HAT. This is a device that goes on top of the Pi using all of its pins, and changes the functionality of the device to be more specialized. One that we used was the Servo Hat. This has 16 sets of 3 pins, organized similarly to the Red Back, where each set has a voltage, ground and source pin. This HAT allows the user to easily control up to 16 servos, though external power additions are necessary for this.
Overall, the Raspberry Pi is a computer that offers a lot of possibility for an advanced course, as it does have a lot of capabilities that neither the Red Back or PyBoard have. However, there is a limited power supply from the board itself, fewer GPIO pins, and no Analog pins. This makes the Raspberry Pi an unideal option for the course, as it would limit what students could create, and restrict the number and types of robotics components that they could use.