An introductory Arduino class design

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)

(links to my introductory arduino posts and here)

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.

Classroom design
unbox
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.

Arduino box

A post shared by Dave Cormier (@cormierdave) on

identification
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.

Wiring
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!”

The moment
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?”

The code
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.

The point
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

Aftermath
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 🙂

Notes:

Project parts
Arduino Nano
Jumper wires
9 v. battery
9 v. battery connector
Proximity sensor
Mini breadboard
Buzzer
Small box

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.

Wands

A post shared by Dave Cormier (@cormierdave) on

Author: dave

I run this site... among other things.

8 thoughts on “An introductory Arduino class design”

  1. Thanks for sharing Dave. I love the moment you disrupted the learning in the room. The moment when kids realized that someone’s buzzer sounded different than most. Like you mentioned, that’s when the real learning kicked off. It’s a reminder for me, as a classroom teacher, to disrupt comfort in the classroom whenever possible, and think carefully about learning design.

    This was likely a birthday party to remember for many of them.

    Love your take on learning and your work on rhizomatic learning.

  2. This is bleeping brilliant, Dave, as a whole approach to teaching, and you as teacher immersing into the process. I especially like as Christopher notes, what I might not call the disruption per se, but like a good film, the turning point in the plot. Most education does not use the arc of an experience, they always give away the end of the story at the beginning.

    I’m going to use this all over the place.

    Oscar is one fortunate boy on many fronts.

  3. Loved this! We’ve recently ordered mbot ranger to help get the kids thinking about programming. These are great tips and it’s awesome you’re going to have a regular group for those interested. Thanks so much for sharing your ideas.

  4. Matthew will be part of the club, no doubt. He loved the project and tinkered with his since taking it home. The buzzer is alerting(terrifying) moms everywhere this week !:)

  5. Hi Dave, I’m a student of the Royal Roads Masters of Learning and Technology program and was fortunate enough to participate in the ‘Intentional messiness of online communities’ talk you gave as part of our symposium back in April. I had asked you about the possibilities of using rhizomatic learning when teaching a craft, and I believe this post is an excellent example of how one might do so.
    I too have started experimenting with Arduino and exploring the possibilities of including it in my web development classroom. I have a suggestion for including it in a classroom of 25 or 30. What if you put the students into teams and gave one component to each team member, only telling each member individually what function their individual component serves, and describe what the two sides of their component needs to connect to? For example, the student with the switch is told their component is used to control the flow of power; and that one side needs to connect to the power source and the other side needs to connect to the LED. The student with the LED is told that the anode (long side) needs to connect to the positive flow of power, and the cathode (short side) needs to connect to the negative flow. No, I have not tried this (nor had to pay for someone else to try this!), but I would like to hear your thoughts and feedback.

    1. Hi Sean, that’s an interesting proposal. You could think of it as deep knowledge for each student on one thing that they then brought to the group. You could set them up (after a few trials) to just give them the part and tell them nothing. Have them research it as their ‘homework’ and then come in and work together to make something given the affordances they have combined. Interesting…

      1. Hello Dave, Sean shared your blog with me since both are studying the same Master’s program at Royal Roads University, and we are dealing with an assignment on learning theories. Your approach to the Arduino class resonates a lot with what I have done with little Pre-K and K students in science and math classes, and in every chance I get of helping them to learn something that is useful or catches their attention during the school day. For instance, I might gladly deviate slightly from schedule during a math session if someone discovers a jumping spider on the wall. The students already know that kind of spider is harmless, and they want to know more, so I show them some nice pictures of jumping spiders from the Internet, and we count the number of legs to compare it with our number of legs. Then count the number of eyes… after all, we are still dealing with numbers, right? And learning cross-curricularly.
        The teaching moments are priceless, and I believe the students will remember them fondly.
        Thanks for your post, and your talk during our symposium.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.