This article gives a short overview of the similarities and differences between the micro:bit, Arduino and Raspberry Pi. Based on this overview you can hopefully make a more educated guess what device you should pick for your project.
All three are relatively small devices that you can use to build interactivity with. Input that these devices can register are for instance touch, movement, sound, light, temperature, air pressure, weight, humidity and much, much more. Output can consist of light, motors driving anything you can imagine, triggers to start audio or video, signals controlling in-game characters, you name it!
All three are examples of the small ‘things’ around you that you interact with on a daily basis: digital assistants, watches, phones, light sensors, security cameras, interactive displays in museums or on the street. They are just made more accessible than a 1×1 cm computer chip that is often built into those systems.
All three have strong roots in education. That is why the ease of use is built into it, to make it easier for us ‘ordinary’ people to experiment with it and build our prototypes. All three also have a large community of learners and teachers, making it easy to find examples.
The micro:bit is very easy to work with, a “one stop solution” device. It can be programmed with visual programming (drag and drop) in the standard environment at https://makecode.microbit.org/ but also with code if you want. For your convenience, it has a number of on board sensors (buttons, microphone, temperature, gyroscope, Bluetooth) and some means of output (5×5 LED matrix and a speaker). Next to these built in elements, you can hook up any(?) sensor or output device to it. Motors, other LED’s, even tiny screens.
Its ease of access also makes it a bit more limited in what you can do with it. Read a more in-depth look at the micro:bit.
Arduino’s are more powerful than micro:bit’s in the sense that you can hook up more things to it and in more different ways. It however has no built in sensors or means of output. (Well, one LED…) Everything will have to be connected using wires or so-called ‘shields‘ (shields are add-ons that provide additional features to the devices).
There are many different versions of the Arduino, but the most popular ones are the Nano. The Leonardo is an interesting alternative to the classic Uno as it can act like a keyboard or mouse. This for instance makes it possible to have a distance measured by a sensor on the Arduino start a video on your computer.
The programming is a bit more complex than that of the micro:bit. However, there is a huge online community with a very large number of example projects. If you want to know how to hook a specific sensor to the device you are bound to find good examples using your favorite search engine.
Read the Arduino post with more info.
The Raspberry Pi is maybe the most powerful device of them all. It is actually a complete computer at the size of a deck of cards (an so called SBC). It has USB, HDMI, WiFi, Bluetooth etc. etc. It runs Linux, complete with the standard desktop like you have on Windows or MacOS.
But as a computer it is somewhat special because it has ‘connectors’ (so-called headers or header pins) to which you can connect sensors and means of output, just as with the micro:bit and Arduino.
The combination of this makes it an interesting option, you can work on it like a normal computer, but do things that are otherwise only possible using ‘less accessible’ devices as the Arduino. Example projects are: Controlling smart homes, AI object recognition, wild life camera’s, weather stations, and much more.
A more detailed post on the Raspberry Pi can be found ‘here’ (when it is actually written)
If you ‘just’ want your computer to handle some form of input to start a video, control a PowerPoint or steer a game character in, for instance, Unity, there are other possibilities too. Enter: Makey Makey and similar devices.
Your computer recognizes the Makey Makey as a keyboard and mouse in one. But, instead of the boring pieces of plastic on a keyboard, you can make a banana be the space bar. Say what? This video explains. And…, you can make carrots scream while cutting them up in pieces. And more of course (insert link to your own magnificent project here 😉 ).
The Makey Makey is not the only one that offers such features (your computer recognizing it as a keyboard). There are more boards available that do a similar thing (like the Joy-IT USB Joystick), also at the CT Makerspace. If your project requires your computer to respond to all kinds of input, maybe the Bare Conductive hardware is for you. People build interesting stuff with Bare Conductive.
A nice table of features for comparison
|Ease of use||++||+/-||+|
|Possible complexity of project||–||++||++|
|Accepted programming languages||+||+/-||++|
When to choose which?
It is a bit hard to give a definitive answer because every project is unique, but let’s try.
If any of the standard, or built in, features of the devices is all you need, obviously, pick that one. For instance, if you only need to read sound level and based on that, make a few LED’s light up, the micro:bit has got you covered.
However, if you want a camera to register if you are wearing a face mask, then maybe the Raspberry Pi is the tool for you (it can use (USB) webcams and can run TensorFlow)
And, if you want very accurate timing and/or multiple sensors, the Arduino is maybe best.
Beyond the clear cut solutions, you need to balance out the pro’s and cons for every device combined with the project at hand. Try to figure out what it would take to make something work and put the results next to the form factor you require or the time you have available. Make an overview of all things that influence you project and based on that information make a decision. Yes, that is maybe hard, but you can get help at the CT Makerspace or from searching the Internet.
And: Don’t be disappointed when the first attempt at a project fails because you have learned from it! That knowledge makes you better at making choices next time ’round! You just need to make sure that you try early on. There is the saying “fail fast”, but maybe “iterate fast” is better. Whichever, you do learn from failing (errr… iterating), you just want that learning to happen early on in the project, not a day or two before the deadline.