In the Tinkering Studio we've been prototyping ways to introduce people to aspects of electronics and programming. Since these topics can be intimidating to beginners it's been a fun process for us to try to think about ways to lower the barrier to entry.
Some of our favorite ways to introduce learners to basic circuity include mounting electronic components on wooden blocks and allowing learners to experiment connecting them with alligator clips. We've also been inspired by the work of AIR Jie Qi who has developed paper circuit workshops with copper tape, coin cell batteries, and LEDs to make artistic light-up creations.
In terms of programming, we've been experimenting for several years with activities that use Scratch or other block based programming languages. The way that these interfaces allow people to drag, drop, and connect parts of the program together encourages experimentation and iteration.
All of these influences have led us to create a mash-up activity that we're calling 'ScratchPaper' to explore ideas around circuits, arduino, and visual programming.
Often we've seen programming and arduino workshops that look complicated and not so inviting to novice participants. For this workshop, we built fun and colorful example cards with single gumdrop LEDs, pre-made switches and sensors, and RGB lights to communicate this playful attitude. We've found that this addition of whimsical elements as well as a combination of high and low tech materials can give a more open invitation to join in the exploration of these topics. We use scratchx, an experimental extension to the Scratch programming language that adds blocks to allow you to control an arduino.
In this guide you can learn how to build the components for the activity, get some example sketches to work with, and read about some of ways that materials, environment, and facilitation can support the exploration.
Step 1: Gather These Materials
For the Arduino Block
Arduino UNO - https://www.adafruit.com/products/50,
USB cable - https://www.adafruit.com/products/62
Solid core wire - https://www.sparkfun.com/products/11367
#4 button head tapping screws
Piece of 1x6 wooden board
For the Paper Circuit Components
Copper Tape - https://www.adafruit.com/products/1128
Colored cardstock paper
10k resistor - https://www.adafruit.com/products/2784
Light sensor - https://www.adafruit.com/products/161
FSR sensor - https://www.adafruit.com/products/1075
10mm Common Cathode RGB LEDs - http://shop.evilmadscientist.com/productsmenu/par...
Pager motor - https://www.adafruit.com/products/1201
Alligator clips https://www.adafruit.com/products/1008
Hand Drill with small drill bit
Step 2: Build the Arduino Block
First, mount an Arduino UNO board on a wooden block with the pins of the boards connected to copper nails, in a similar fashion to our circuit board set for electricity explorations. This allows you to connect the components to the board with alligator clips which allows for iteration and testing.
The copper nails connected to a few of the pins limits the problem space but to us still feels like an authentic way to present arduino boards without relying on extra shields or unusual parts.
1. Cut the 1x6 block into a 4in piece and sand the edges
2. Place the Arduino UNO board in the middle of the block, mark off the holes for the screws with a pencils, and drill holes in those places.
3. Screw the arduino in place
4. Mark five spots on the right side (the digital pin side) and three spots on the left. Drill pilot holes and pound in the copper nails
5. Use the solid core wire to connect the arduino digital pin sockets to the copper nails. We use pin numbers 11, 9, 6, 5, and 3 because those are the PWM pins which allow us to change the brightness by turning the pin on and off at a very high rate.
6. On the left side connect the 5V pin to a nail for positive, the GND pin to a nail for negative, and the A0 analog in pin for sensors. You can use red wire for positive, black for negative if you want, but it's not necessary.
7. We used a stamp and sharpie to label the nails to the corresponding pins. If you don't have these tools, you might want to think about other ways to keep track of the pins.
Step 3: Build the Components - LEDs
Now it's time to create the paper circuit components that will be controlled by the arduino and scratchx programming.
For a Single LED
1. Cut a 2in x 2in square of colored cardstock
2. Cut two small pieces of copper tape and stick them to the square, leaving room for the LED.
3. Place the two leads of an LED on the copper tape and solder them down. If you don't have a soldering iron you can just use scotch tape to affix the leads to the tape although it won't be as secure. Mark the (+) and (-) sides with pencil on the colored paper.
For RGB LEDs
1. Cut a 3in x 3in square piece of white cardstock
2. Use the common cathode RGB LED and test out which lead corresponds to which color. You can mark it with colored sharpies to keep track.
3. Attach three small pieces of copper tape to one side of the paper and one piece in the middle to the other. Connect the three positive leads of the LED (for the different colors) to the copper tape on one side and the negative lead to the other side. Solder or tape them in place and mark the (-) side and the three different colors.
For the R, G, and B LEDs
1. Cut a 2in x 3in rectangular piece of colored paper
2. Attach one strip across the side of the paper for the negative side of the LEDs. Place three strips of copper tape on the other side.
3. Put a red, green, and blue LED on the paper with the negative leads on the shared side and the positive leads on the individual sides. Use a pencil to mark the (+) and (-) sides.
Step 4: Build the Components - Switches
The next step is to build on/off switches to trigger different programs in your project. These can take a lot of different forms using folds or pop-up so experiment with trying different designs.
1. Each of the switches need three attachment points to the arduino board. One to the positive, one to the negative, and one to a digital input pin. Place three pieces of copper tape down, one for each of these leads.
2. Place a 10k resistor between the copper tape pieces that will connect to the negative and digital pin. Solder the resistor in place.
3. Find a way to attach another piece of copper tape that can be moved to make a connection between the positive and the digital pin leads. This can be a cut out pop-up piece, a square with folded paper springs or a simple folded switch.
Step 5: Build the Components - Sensors
A sensor can detect events or changes in its environment. When connected he A0 pin of the arduino can read the sensor value and let you use it in your project. We've tested out light sensors and pressure sensors with scratch paper so far but you can try different types of sensors that measure sound, color, or conductivity.
1. Each of the sensors need three attachment points to the arduino board on the positive, negative, and an analog input pin. Place three pieces of copper tape down for each of these leads.
2. Place a 10k resistor between the negative and the digital pin copper tape lead. Solder the resistor in place.
3. Attach the light sensor or pressure sensor between the positive and the analog in copper tape leads.
Step 6: Paper Monsters
One fun way to incorporate some playfulness and whimsy into the set of materials is by making some paper monsters with googly eyes that can be programmed to shake with a vibrating motor.
1 Cut out two 2x2 squares of colored paper. Cut an interesting monster shape and attach googly eyes in appropriate spots.
2 Affix copper tape to the base square and the monster in the same plane.
3. Solder the wires to the pager motor to the two pieces of tape on the monster face and solder the leads in place. Affix the motor to the paper.
4. Cut a rectangle of the same colored card stock and fold it in half. Use the L-shaped piece as a support and use the glue stick to connectthe two pieces together.
5. Solder the two pieces of copper tape together.
Step 7: Set Up Scratchx and Arduino
We have been using scratchx, an experimental extension to the scratch programming language to control the paper circuits with arduino. There are lots of other block based programming languages that you can test out like Ardublocks, Mblock, S4A, and others. This instructable will focus on scratchx, but you can test out other formats.
This information has been borrowed from Kreg Hanning's getting started guide for scratchx, you may want to just click over to his site for more detailed instructions and screengrabs (https://khanning.github.io/scratch-arduino-extension/index.html)
Upload the StandardFirmata firmware to Arduino
- If you haven't already, download and install the Arduino software from https://www.arduino.cc/
- Connect the Arduino board to your computer's USB port
- Launch the Arduino software
- Go to File > Examples > Firmata > Standard Firmata
- Select your Arduino board from the Tools > Board menu
- Select your serial port from the Tools > Port menu.
On Mac, it's something like /dev/tty.usbmodem-1511. On Windows, it's probably the highest-numbered COM port. (Or unplug the Arduino, check the menu, and then replug your Arduino and see what new port appears.)
- Click the upload button
Install the Scratch Extensions Browser Plugin
- You will need to use the Firefox web browser for this extension to work
- Download and install the Scratch Extensions Browser Plugin for "other web browsers"
Load the Arduino extension on ScratchX
- Launch the extension by going to the following URL:
You might see another message, "Allow scratchx.org to run plugins?". Set both Adobe Flash and Scratch Device to "Allow and Remember" and click okay.
When you see the indicator light in the "More Blocks" tab turn green your ready to start using the extension!
Step 8: Some Example Sketches
You may want to start your experiments with scratchx, paper, circuits and arduino with some example sketches that we made with sample code that creates a blinking light, a switch that turns a LED on and off, and a light sensor that can control the brightness of an light.
Go the the file menu and open an example program. Once you have the green light on the screen for the arduino connected you can connect the paper circuit components to the arduino using aligator clips as shown in the background image.
When you start building your own programs, you can start with the blank board program. When working on a scratch program for arduino, you need to have the set up of the program under the 'hat block' that says "when device is connected" by assigning LEDs, buttons, and servos to different pins.
To have the lights, switches, and sensors do something, you can create a program that lives underneath the "when flag clicked" hat block. You may want to experiment with repeats, forever loops, random inputs and wait times. You can also include characters, sounds and changing backgrounds using the other types of scratch blocks.
Here's a video of scratchpaper in action at the ASTC conference in Tampa this year to get an idea of how this looks in practice:
Step 9: Creating a ScratchPaper Workshop
After personally experimenting with creating ScratchPaper projects, you can think about sharing the activity with other people. We try to make adjustments to the activity design, materials, environment, and faciliation to support learners in their own process and development of ideas. Here are a few things that we think about as we've set up the workshop in the Tinkering Studio or with other educators at various conferences. You can adjust and modify these elements to fit with your spaces and audiences.
As we set up an environment for the workshop we want to not focus primarily on the computers, but have them as just another tool alongside shared materials and inspiring examples. Our dogbone shaped table usually lends itself to more collaboration and sharing of ideas, which is even more of a challenge in screen based activities where it's not so easy to see others' work.
Examples and Inspirations
Near the entrance of the room we created a 'corner of curiousity' to show off some possible extensions to the activity. We included examples of paper circuits that use the attiny chip, some more artistic paper circuit examples and nicole's analog copper crown that uses light sensors and RGB LEDs in an interesting physical arrangement.
Working in Pairs
For the workshop with the team here we asked them to work in pairs which I think really helped propel the explorations forward. Having people contributing to a shared investigation allowed them to communicate about what they felt more comfortable with and learn from each other. The combination of objects in the physical world with the scratch programming give more space for thinking with one's hands and allows partners to share the problem space.
For a workshop we prepare at least three single LED cards and one or two of each extra component (RGB leds, paper monsters, switches, and sensors) for each group.
Sharing and Reflection
We always share results and ideas at the end of a workshop, and it was really cool to see how each of the groups worked on unique investigations involving buttons, sounds, and sensors. Although we only had the simple examples to mess around with, narratives and storytelling started to emerge. As with any tinkering activity, we are looking for varied outcomes that reflect the process of each group.
Step 10: Make It Your Own!
This is an experimental activity that we've been working on for a few months and we continue to try out different materials, prompts, and projects. We hope that you will experiment with different electronic components, interesting ways of making switches, new types of outputs, and different arrangments of LEDs. Let us know how you remix and modify this activity so we can continue to learn about what's possible for paper circuits, arduino and programming with scratchx.