This Saturday I’ll be running an Arduino workshop for teenagers and young adults at the Young Adult Innovate Conference put on by Advance LA. The conference organizers were looking for volunteers to give an introductory, hands-on, interactive Arduino workshop that could be done in 45 minutes, without computers for the attendees. Oh, and it can’t cost too much.
The constraints are a challenge, but feasible. I plan to bring in the various Arduino projects I’ve been working on at home as demos, and also provide a hands-on and interactive activity that the workshop participants can take home. Since there aren’t enough computers to go around, the attendees won’t be programming at the workshop. I decided to get an Arduino board for each participant and pre-program them to drive a simple electric circuit. With written instructions, the participants will build their own circuits and connect them to the Arduino.
With budget constraints in mind, I ordered the following parts for 16 setups (15 participants + 1 instructor):
- 16 Funduino Nano Boards – Cheaper than Arduino, but with the same functionality. Their small size is a plus for this project, and they each came with their own USB cable so the participants could jump right into programming at home if they wanted to.
- 16 400-point Breadboards – Again, I went for cheap, though the wiring would have been easier on a larger breadboard
- 2 Packs Assorted LEDs with Resistors – I liked the fact that these LEDs came with resistors.
- Common Cathode RGB LEDs – I had some of these lying around. (At some point I plan to build myself an RGB LED cube.)
- 2 packs Mixed length jumper wires – much easier to buy them pre-sized and pre-stripped than to do it myself. Plus having the different color wires made it easier to specify the breadboard layout in the diagrams.
- 2 packs Push buttons – I liked the assorted colors on these ones.
- 16 Battery boxes – Since I had some around, I decided to go with 4 AA battery boxes to provide an input of 6 Volts.
- 2 boxes Batteries – AA batteries are easy to find
I really wanted to hook up some servo motors, but they were just too expensive.
Once the parts came, I set about figuring out a project that we could assemble in 45 minutes. I wanted to show how an Arduino board could provide digital input and output, and use PWM (pulse width modulation) for analog output. In a longer class we might have covered analog inputs as well, but I couldn’t think of a good inexpensive sensor to use, and we were time-limited.
While designing the setups, I realized I hadn’t really taken into account the size of the breadboard. Since the Nano board took up about half the pins, there wasn’t a lot of space left for the electronic components. The limited space forced me to keep things simple. For such a brief workshop, that is a good thing. Ultimately, the setup was designed to demonstrate the following Arduino capabilities:
- Digital Output: Two output pins alternate between HIGH (5V) and LOW (0V) to alternately turn two LEDs on and off.
- Digital Input: A button is connected to an Arduino pin with a pull up resistor and also to ground. Pressing the button completes the circuit and sends the input pin voltage to LOW. The Arduino sketch uses the button feedback to increase the LED blink rate the more times the button is pushed.
- PWM Output: A common cathode RGB LED is hooked up via resistors to three Arduino PWM pins which vary their voltages from 0V to 5, continuously changing the color of the LED between red, blue and green.
To make the workshop run smoothly, I tried to organize as much as possible in advance. I downloaded the Arduino sketch onto all of the Nanos and attached each Nano to a breadboard. Since the battery boxes had twisted pair wires, I soldered header pins onto the end of each wire so that they could be easily plugged into the breadboards.
I then put the components for each setup into a separate bag. Each bag contains: A Funduino Nano on a breadboard, 2 standard LEDs, 1 RGB LED, 5 resistors (pre-cut into long and short lengths, and pre-bent), a push button, a battery box with 4 AA batteries, and a number of jumper wires in different sizes and colors.
I wrote up a handout, giving a brief overview of Arduino and instructions for the circuits. You can download the handout here:
Arduino Workshop Handout
The Arduino sketch we will use is available here:
Arduino Workshop Sketch
I’m looking forward to running the workshop. We will see just how much one can learn about Arduino in 45 minutes! And I hope that at least some of the participants will be inspired to go home and keep tinkering.
Follow Up:
Having just finished the workshop, I have to say that the material was appropriate, but just far too much to cram into 45 minutes. I definitely underestimated the amount of time it would take the participants to build the circuits. I abbreviated the introductory time for the demos, and had the kids go at their own pace while building the circuits so that the ones who worked quickly could work ahead. Even so, we never got a chance to touch on programming. I spent a lot of time going around to fix problems with the circuits (backwards LEDs and shorts were pretty common) Still, the workshop participants were enthusiastic and appeared interested. With some help, most of the kids finished the projects. All in all, I consider it a success. I learned a lot and hope the participants did as well.
I have been looking into a way to introduce kids to Arduino as well and this looks like a great project. What age group did you teach? What was the unit cost for each student? Did the kids learn a lot from the simple circuits or did they want to build more sophisticated things? Thanks for any advice.
Hi David,
I taught this project to a group of kids in the 13-17 year old age range. This particular group of kids was from an organization called “The Help Group” which works with kids with Autism Spectrum Disorder, social issues or learning disorders. They were wonderful kids, very engaged and easy to teach. My biggest issue was that there wasn’t enough time to cover all the topics I wanted to. I was able to get the majority of the kids to build all 3 circuits from the writeup, but we didn’t really get to go into any depth in talking about them. You could definitely teach this to younger kids, but you’d really need much more time – I’d estimate 2 to 3 hours to really cover the topics in some depth.
The cost per setup worked out to about $22. I got some advantage by buying in bulk (I ended up with 15 setups and some leftover parts). The simple circuits were definitely challenging enough for them. Only a couple of them had ever seen a breadboard before, so that was a whole new concept for most of them. They were not clamoring for anything more advanced.
I have spent some time working on a weekly programmable electronics class which would span about 12 sessions and cover more topics in depth. I didn’t get enough kids to sign up for it this past Fall, but the class may go forward in the Spring. We’ll see how the signups go. I’d really love to introduce kids to the concept of programming the Arduino themselves – that’s the coolest part of programmable micro controllers as far as I’m concerned. I’d start the first two classes with simple circuits like the ones in this post, then move on to digital output by programming LEDs to blink in patterns, then getting them to responding to push buttons. Other projects would include analog output by color cycling with RGB LEDs, and playing sounds with a Piezo buzzer. I’d also love to have the kids experiment with analog input using a distance sensor and possibly a light-sensitive resistor. We could use the analog input to control the piezo buzzer and create a musical instrument. I haven’t fully worked out all of the class details yet. If you’re looking for other ideas, there is a really great Arduino class outline by Todd Kurt called “Bionic Arduino” at his blog: http://todbot.com/blog/
Let me know if you do pull a class together. I’d be happy to exchange ideas. I think Arduino is a terrific way to introduce kids to electronics.
Debra
Hi Debra,
I discovered your blog just a few days ago.
Thank you so much for al the work and learning experience you share here.