In the last post we went through the various forms of computers we have in our space. Now we’re going to cover the microcontrollers.
Microcontrollers are, generally, simpler pieces of computing equipment than computers. You don’t program them directly – you use another computer to upload code to them. They’re optimised for interfacing with the real world via buttons, sensors, lights, motors and things like that. They generally get programmed to do a single job at a time.
Microcontrollers are a great way for beginner programmers to get into coding for the physical world.
We were inspired to buy some CodeBugs when we were looking for kit that would be suitable for young makers. Our fleet of Codebugs have been used numerous times for sessions and for a window display we had in our previous building. They’re small and attractive and have an LED array built-in along with buttons. Programmed using a block-based language, they’re great for beginners. They can also be connected, by croc clips, to buttons, LEDs and other components. One of our best set of sessions was with a two classes of year 4 pupils who got really got the coding bug (if you excuse the pun).
Codebugs are generally programmed via a website so you need internet connectivity.
BBC micro:bits are also small devices. They were designed as part of an initiative by the BBC to get more young people participating in digital creation as well as consumption. Similar to the CodeBug but a little more feature-rich, they have built in Bluetooth and radio communications as well as an accelerometer to measure movement.
The main programming method is via a web application but you have a choice of languages. There are some third-party editors which are available to download and use locally.
Igloo sewable microcontroller boards are very low-cost boards and are based on a well-established microcontroller chipset (PIC chipset). the coding platform is a discrete piece of software and coding can be done with block-based commands.
Although the boards are very inexpensive, they need a special programming cable which is quite pricey. It’s not a problem if you’re programming a fleet of boards but it’s a downside for turning into something into a class-pack.
Our main microcontroller is actually a family of boards: Arduino. They come in several formats each with slightly different features – from the original “Uno” board, via third party variations for sewable projects (Flora, Lilypad, Gemma) to boards with special features such as the Flora MP3 player device. They also come in a variety of sizes including a tiny “Trinket” board which would be useful for small projects. To program them you install the Arduino IDE (integrated development environment) with its built in examples and support for a huge variety of compatible boards. Arduino language is similar to the “C” language.
It’s quite a big leap from block-based microcontroller programming to a full text-based language but traditional programmers often find this less frustrating.
The Particle platform isn’t just about the microcontrollers but an online support platform for Internet of Things (IoT) projects wher you can connect devices in the real world to the internet and use them to monitor and/or control things remotely. We’ve used the Photon microcontrollers but these have been superceded by better specified hardware. Microcontrollers are programmable using the same language as Arduino controllers (although generally you program them via a web-based platform) and it’s really simple to get IoT projects up and running.
Use of the Particle platform is free for basic features but commissioning the devices can be a bit fiddly when you’re using multiple platform accounts
Of course – it’s not just about the controller boards…you have to have things to control.
- We have LEDs of various shape, size, colour and brightness and we even have programmable strips of LEDs.
- Piezo electric sounders/buzzers for when your project needs a bit of noise output
- Solderless circuit boards – usually known as breadboards – are great for prototyping circuits and come in a variety of shapes and sizes.
- Switches and buttons – some which stay switched, others that don’t. Worth having a variety of them for different projects
- Sensors: there are a huge variety of sensor types out there. We’ve used temperature, sound, humity, colour, infrared, touch and vibration sensors (to name but a few). Sensors that are mounted on boards with interfaces in place are usually the best to use because that generally makes them easier to use with microcontrollers.
- Interfaces to online platforms like Twitter, Instagram, Dropbox are really useful as you build your applications. Look for platforms that have an application programming interface (API) which allow you to incorporate calls to the external platform from within your microcontroller code.
- IFTTT (If this then that) is a special platform that allows you to interface various other platforms to do things like send emails, post to social media, etc. It can be a really simple (but not very fast) way to integrate different bits of a project.
Finally – as well as smart stuff and software we have a wide range of standard electronic components such as resistors, jumper wires, relays and transistors and we have good quality tools like temperature-c0ntrolled soldering irons (and colophony-free solder), wire cutters and pliers.
We try and keep the lab tidy (we don’t always manage it, though) and a whole bunch of component drawers, labelled and logged helps us do that (mostly).
Next time: Other machines…