Last weekend was Oscar’s 11th birthday party. For those of you in the know, that is the age that kids receive their letters of invitation from Hogwarts and, therefore, we were having a Harry Potter themed birthday party. I admit I probably went over the deep end on this. The kids and I made magic wands out of 3/4in maple dowels. Bonnie made an awesome Harry Potter cake. Bonnie and I designed three ‘tests’ for the ‘Initiates of the Maple Wands’. 1. Potions class (we made bath bombs… they only had their magic wands for stirring… super messy – super fun) 2. History of Magic (bonnie ran a lively version of mostly Harry Potter themed Jeopardy) 3. Muggle studies (We made a security system on the arduino platform)
I started working with Arduino hardware at the beginning of 2016, thinking of it as a potential platform for real world projects for kids. I have ZERO electronics background, so it really took me a year of playing with it on and off to get my mind around how you could use it with kids and still make it fun. Most of the introductory lessons I saw online involved “attach this wire to a light, make the light blink” kind of activities that are designed to provide a SET OF SKILLS in small steps along a linear pathway. I hate this approach to learning. I wanted something that got to a useable project very, very quickly and then allowed for discovery after the project was built.
A word on what Arduino is
It’s a tiny computer platform that you can attach to little sensors. You can use it to build a project that senses when a bird comes to your feeder and counts them, or takes their picture, or opens the feeder door. There are other platforms out there (rasberri pi, microbit) but this one seems to have the balance of flexibility and power that I was hoping for. If you put ‘arduino kit’ into the googles, you’ll see the price range and possibilities. Here’s a collection of cool projects that people have done.
Choice of project
I very much wanted to kids to have some level of success on their project in the first 15 minutes of the class – so i couldn’t have something that was too complicated. I expected that the kids wouldn’t have any prior experience (with the exception of my kid). I was also going to send the project home with each of the kids in the hopes that they would experiment with it, so I had to keep the price down. I decided on making an alarm system that would buzz when someone when someone got close to it. I cobbled the project together from various online examples. Project cost was a little less than $15 each at the end of the day, when you include batteries etc… It took a fair amount of prep. Just sayin.
I wanted us to get to work very quickly, so I didn’t even explain what the project was when we started. I was pretty sure that they wouldn’t really understand/be paying attention, so I jumped into talking about stuff right away. All their parts were hidden in a little cardboard box on the table when they came in. I got them to open it and lay all the parts out in front of them. I was hoping for the surprise ‘unboxing’ part of the process to give them a sense of adventure/excitement. Mostly that worked.
I got them to hold up the battery first. Everyone got that one right :). From there i got them to hold up the breadboard, the Nano, the wires, their friend… just a quick roundrobin so that each table would probably have someone that knew what each part was named. Important to note that though i did preload the code on each of the Nanos, i left the code printed out on the table and made no reference to it. One kid asked what it was and I said “meh, it’s just the code, don’t worry about it for now”. This only took a couple of minutes and we moved right along to wiring things up.
The arduino system can all be connected together without a soldering iron using jumper wires. I guided them through ‘what connects to what’ in a basic, step by step manner. Put the proximity sensor in the breadboard. (student: “what’s a promix… what’s a whatever you said” me: “someone hold up their proximity sensor” it wasn’t long until they just started asking each other). From there i got them to plug in the wires one at a time, establishing that each table confirmed that each set was setup (minus the power, I made them all hide their batteries back in their little boxes). This took about 10-15 minutes.
Attaching the battery
I made a big production out of this. Attaching the battery wrong gives you a good chance of frying the board, so we talked a fair amount about safety, about caring about their work, about being good to the machine. I told them that I had fried one of them that morning (which i had doing last minute prep). So they attached their battery… and about half of them worked. Working being the really annoying buzzer started to drone when someone ran their hand in front of their sensor. Much troubleshooting of wiring ensued. It was at this point that we started to talk about ‘what the project could be used for’. “I could scare my cat!” “it could protect my wand!” “i could use it to keep my sister out of my room!”
You’ll note that no one has really ‘learned’ anything at this point. It’s mostly been call and repeat, simple domain stuff. There was a trap in the middle of this lesson that was really ‘the beginning’ in a sense. I had changed the code on one of the projects to make the buzzer sound like a police siren. When that project started working the room went silent for a second… and then blew up. “why doesn’t mine do that? How did you do that? What’s that?” When i got them settled (and got the police siren unplugged) i explained that the code on his project was different than the code on theirs. “can i change mine? Can i do it?”
So I got them to look through the code (on the paper on their tables) and figure out where they needed to change the code to make the sound change. We changed the frequency, we changed the delay, we changed… we made a lot of noise :). Then we started uploading new code to each of their projects (I was only working with one computer). I also started to refer to the code when people were asking me “i unplugged a wire by mistake, where does it go?” Then our hour+ was up and it was time for Pizza. I struggled getting them out of the room to go eat pizza… which I’m calling a victory. For the rest of the party, kids would walk out of the movie, the pizza, whatever, and ask if i could upload updated code to their project. We got an idea of what the code was… a teaser in a sense.
This was an interesting challenge. I don’t particularly like a ‘structured activity’ but with something as complicated as an arduino project, the kids have a fair number of things they need to know just to be able to follow basic instructions. I really wanted to start the project in the middle and work my way back to most of the basic skills, so that we hit them in context. From that first class we should be able to modify the existing project, add pieces to it, or wander off into new projects as we go along. I even included a light snippet in the code which could easily lead to the damn blink project if people really want to do it. Some of them may learn to code, some may do more of the artistic work or the planning work… i don’t really care.
I want them to understand what code is (not necessarily ‘how to code’)
I want them to get a sense of how the digital part of the world they are growing up in works
I want them to dream up projects, learn to research them
I really want them to find the parts of this they like to do, and find friends who are interested in the other parts – the ultimate 21st century literacy
Also safety. That too. And confidence confronting uncertainty
I’ve heard back from what two of the kids did with the project they took home. One kid apparently terrified his cat – which i guess is a successful adaptation of the project, though maybe not the one I would have chosen :). The other kid I heard back from took the little box, cut holes in it and turned the project into a robot that protects the side dresser of his bed. Four of the five kids want to come back, and, with the other kids who’ve expressed interest, we’re going to be looking at 7 or 8 kids in our little arduino club to start. I’ll keep testing out the design and see what happens. How does this look in a class of 25 or 30? Don’t know yet. One thing at a time 🙂
9 v. battery
9 v. battery connector
Things I learned
You need to have two or three sets of spares of everything. It’s so easy for this stuff to stop working. Having a spare working project on the side so you could check parts would be super useful for troubleshooting “is this broken? Nope, it works over here! Ok then it must be something else”
The cheaper Nano version I used requires a special CH34X USB-SERIAL DRIVER. The standard one is called FTDI. It’s the way your computer talks to the Nano over USB.
Be very careful when plugging in the battery power. I fried one of the nanos getting the ground and the power lines mixed up.
The code I used.