September 30, 2013

Arduino and Learning: H.S. Teacher Ariel Simons

Categories: Digital Learning, Educational Practice
female student working on circuit board at computer desk

A powerful recipe for engaged learning: Show students how to command actions in the physical world – make lights blink, sounds sound, motors move, robots roam, sensors sense. Combine this concrete act of control over physical objects activity with the abstract power of programming – show students how to make those lights blink in response to the sounds, make the sensors guide the motors. Apply this combination of software and hardware hacking to measuring the radiation levels near Fukushima and aggregating radiation data, a task that the Japanese government apparently failed to do for months. Now you are talking about engaged students.

Ariel Simons uses the inexpensive Arduino open source hardware platform to bring high school students together with coding, circuitry, citizen science. Arduino – a programmable electronic gizmo, smaller than a smartphone, that costs around $25 – and the maker movement around it are expanding rapidly outside traditional educational institutions, spreading around the world on the power of affordable fun that inspires and requires learning. Those within and outside formal schools who seek to heighten young people’s interest in science, technology, engineering, and mathematics would do well to look at what Simons is doing at Wildwood School in Los Angeles – and what Simons and others are doing in after-school gathering places like LA Makerspace.

My own curiosity introduced me to Arduino recently. I had never before had a personal reason for tinkering with electronics, but you’re never too old to learn. For me, just as for many students, my most fruitful learning journeys start with my own questions. First, I asked myself why all painters have to work on square or rectangular canvases. I started to want the shape of my paintings to have meaning, too. So I learned to use a jigsaw, sander, and gesso and started shaping my painting surfaces. Then I wanted my shaped paintings to illuminate themselves, so I learned about LEDs. I bought bright colored lights that flashed in random patterns and learned to solder them in parallel to a battery pack. Then I asked myself what I would have to do to control the way the colors change and the tempo of the blinking. That’s the kind of question that can lead down the rabbit-hole into the wonderful world-wide community of microcontroller hacking. Arduino, an “open source electronics prototyping platform,” was created specifically in order to lead people from that kind of question into a world-wide learning community of makers and co-learners who share their creations and how they make them – the software code, the hardware circuitry and parts lists, the YouTube videos and Instructables about how to duplicate their creations. You can buy inexpensive parts, partake in free online lessons, communicate with other enthusiasts, attend Arduino conventions.

I wanted to sculpt and paint guardian spirits to decorate the Pataphysical Slot Machine, a collaborative art project I’ve been working on with friends every Saturday for the past three years (next, we have a design for a time machine in mind). I wanted the eyeballs of my guardian spirit sculptures to blink, but I wanted them to blink in a color sequence and intensity that I could control, and I wanted to make them blink in unison faster and faster then slower and slower. So I bought an Arduino, some little patch-cords, a few resistors, a breadboard for playing with temporary circuits, and some LEDs. I downloaded the free Arduino software to my laptop and I started with the hardware hacker’s equivalent of the “Hello World” first program in most programming languages:

# The next line assigns pin 13 on the Arduino to the LED that I’ve connected to that # pin and a power source. I’m declaring that this variable is in the form of an integer.
int ledPin = 13
# The next line sets up a variable that will make it easy for me to control the # rate at which the light blinks. I set it up to have the initial value of one
# second – 1000 milliseconds.
int delayPeriod = 1000
# I later learned what the empty parentheses mean. The next line runs when  
#  I press reset on the Arduino and download the code from my laptop. It tells
# the hardware that the hardware controlled by the ledPin variable will be
# used as an output.
void setup(): {
pinMode(led,OUTPUT);
# Then the hardware takes the following instructions and runs them over
# and over, using the software command to turn the LED on and off – HIGH is
# the voltage level and digitalWrite is a command built into the language that
# talks to the hardware.
void loop() {
# The next line tells the hardware to send an electrical impulse to pin 13,
# activating the light.
digitalWrite(ledPin, HIGH);
# The next line tells the hardware to leave the light on for the interval
# I specify as delayPeriod – change the number to 500 and the light stays on
# half as long.
delay(delayPeriod);
# The next line tells the hardware to turn off the flow of electricity to ledPin, # turning off the light.
digitalWrite(ledPin, LOW);
# The next line keeps the light off for the specified delayPeriod, then goes to # the first instruction and keeps looping.
delay(delayPeriod);}

I just followed the Adafruit tutorials (smart of Adafruit to give away excellent how-to tutorials, then sell you the parts to do it) until I understood how to change the color of a RGB LED by altering the intensity of the Red, Green, and Blue components. Then I had to find someone more knowledgeable – increasingly easy to do online and at places where hardware hackers gather – to guide me through learning how to make two RGB lights alter color and tempo at my command by downloading my code to the Arduino from my laptop through a USB cable. Then I learned to solder, turned my simple breadboard circuit – LED, resistor to keep the voltage from burning out the light, and the two leads to a small battery pack – into a hardwired circuit small enough to fit in my creation. Voila: Garuda lives. Now my wife occasionally gets alarmed at the frequency with which packages arrive from Adafruit, Sparkfun, Makershed, and Jameco. And I’m drawn deeper into circuitry in order to make my Garuda’s colored eyeballs flash in response to spoken command. Or maybe I can use infrared to sense the presence of an observer and turn on the eyeballs only when someone craws near.

You can see why my antenna started to tingle when I learned about Ariel Levi Simons. He not only guides high school students in their Arduino projects, but introduces them to citizen science – contributing real data to real scientific investigations into important phenomena like radiation or pollution levels or ocean temperatures. Citizen science takes project-based learning out of the realm of toy problems into a realm where good learning can also contribute to the creation of useful knowledge. Learning the code and wiring to make hardware behave at your command empowers the learning with a sense of autonomy. Multiply that sense of autonomy by a sense that what you are doing matters outside the classroom, and now you have your students’ full attention. I spoke with Ariel Levi Simons about his work and that of his students in this 15 minute video.

Banner image credit: Wikilogia http://www.flickr.com/photos/wikilogia/9283731311/