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:
The Arduino sketch we will use is available here:
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.
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.