Monday, April 18, 2016

Interactive Survey Game


A survey questionnaire come to life! Use (nearly) any object to gather helpful data through an interactive, engaging, and fun multiple-choice survey.

This project uses the ​Makey Makey microcontroller in combination with a Raspberry Pi computer to read in participants' survey choices and save the results in a text file.




Planning & Design!

This general design is easily customized to fit a different theme. The only crucial design requirement is to use materials that conduct electricity for the survey pieces, or wrap non-conductive materials in aluminum foil.

Suggestions:
Prototype, prototype, prototype! Build different versions and test them on family, friends, co-workers, or (ideally) your target audience. Observe how folks interact with your survey, then use that to make it better! And always remember to keep it simple :)

Materials



- Makey Makey Kit
- Computer: Raspberry Pi

- One (1) ground piece, five (5) survey response pieces, one (1) submit piece, and two (2) yes/no pieces*

- 22 Gauge (stranded) Wire -- five (5) 10 - 16" strips and three (3) 6" pieces (ends stripped)

- Container:
-- Wood Box (12.5" x 12.5")
-- Plexliglass.("12 x 12")
-- Three (3) 2" x 2" wood panels

* Specific materials used in this design are detailed with the corresponding procedure, although customization is encouraged!

 

Tools

-- Safety goggles, woo!
-- Multimeter
-- Optional: Soldering iron, solder& desoldering wick
-- Ruler (or calipers)
-- Drill w/ both drill and driver bits
-- Flat wood file (to prevent splinters!)
-- Hot glue gun
-- Epoxy (permanent)
- Pliers

Reprogram the Makey Makey


To reprogram the Makey Makey, you'll need to have the Arduino IDE with Makey Makey drivers installed. Here's a thorough tutorial on how to do this.


1. Plug Makey Makey into computer and open the Arduino IDE.

2. Open (or copy) Makey Makey source code:
Here's the GitHub page for the Makey Makey.
Here's a direct link to download the full program. This is a .zip file, so be sure to extract all the files.

3. Reprogram the "click" key into an "enter" key.
For a thorough overview of how to do this, check out this tutorial.

4. Change the following keys:
These two keys are mapped in the survey program, but can be left as-is or you can choose to switch other keys (e.g. the arrow keys). Just be sure to change the mapping in the program.
A. Change the "g" into an "n".
B. Change "space" key into "y".



Build the Survey Response Pieces!


Specific materials used in this design:

- Two (2) wood blocks, two (2) golf balls, and one (1) jar lid.
- Aluminum foil
- Unistrut 1/2" Channel Nut with Spring
- Ten (10) 1/2" washers
- Plexiglass [or wood] (12" x 12")


Procedure:







1. Wrap each of the survey response pieces at least 2 - 3 times with foil, hot gluing each layer.



2. For unistrut spring pieces, hot glue (or epoxy) the top of the spring to the bottom of each survey response piece -- be sure that the metal of the spring is touching the foil of the survey piece.


 


3. Attach the survey pieces to plexiglass.

Determine location of survey response pieces and mark with tape. Drill a hole at each point.

Place a washer on either side of the hold and screw bolt into unistrut spring about 3 turns.






4. Connect a wire to each of the unistrut spring pieces.

Wrap wire around base of bolt (between washer and plexiglass). Hand tighten the bolt to secure wire without squishing it






 

 

Build the Ground Piece!



Specific materials used in this design:
- Styrofoam ball
- Metal pipe
- Flange stand for pipe
- Aluminum foil
- Twelve (12) washers
- 4 wood screws
- Wood panel (2" x 2")





Procedure

1. Build a stand for the styrofoam ball -- use conductive materials or wrap pieces in foil.



2. Wrap styrofoam ball in aluminum foil, leaving a "tail" of foil. Place ball on stand and push the foil tail against the inside of  Hot glue pieces together.





3. Cover the exposed end of the ground wire (24") to the inside, or bottom, of base and adhere with tape or epoxy.



5. Add a layer of two (2) washers under base to avoid squishing the wire, then connect base to wood pane via screws or epoxy.












Build the Enter Key!


Specific materials used in this design:

- Clothespin
- Wood panel (2" x 2")
- One (1) wood screw + one (1) washer
The screw should be about 1/4" longer than the wood thickness.
- Aluminum foil




Procedure:


1. Wrap one of the handles of the clothespin in foil.

2. Remove clothespin spring clamp, align other side of the clothespin on wood panel, and drill in a screw and washer.

Foil on the other side of the clothespin should make contact with the washer + screw when closed.

3. Reconnect spring clamp and other side (may need pliers). Epoxy bottom of clothespin to wood panel.





4. Use alligator clip or wrap wire around screw and secure with hot glue.










Make the Yes and No Keys! 

Specific materials used in this design:
- Two (2) plastic container lids
- Two (2) wood panels (2" x 2")
- Two (2) wood screws and washers
Each screw should be about 1/4" longer than the wood thickness.
- Aluminum foil


Procedure

1. Cut circle out of container lids. Wrap in foil.

2. Align lids on wood panels and drill in a wood screw with washer on top -- be sure the screw slightly pokes through the back of the wood panel.




3. Use alligator clip or wrap wire around screw and secure with hot glue. 










Connect Pieces to Makey Makey

 





1. Connect ground piece lead to Makey Makey ground pads.

2. Connect survey game pieces to the first five (5) Makey Makey back header pins on the left: "w", "a", "s", "f", and "d".

3. Connect the no button to the last (6th) back header pin, "g"

4. Connect the yes button to the "space" pads.

5. Connect the submit piece to the "click" pads.




Load the Survey Program!

Using a Raspberry Pi computer means that all of the electronics can fit into the game box! Write up a program in Python to cycle through a series of survey questions and five possible choices that map to the survey response pieces.

Here's my code:
GitHub page!
Python program only.



Final Touches & Case!

This case is designed to withstand high traffic, experimentation, and children -- and to be easily (and cheaply) fixable and adjustable. Use this design or customize your own!

Materials:
12.5" x 12.5" wood box
1" x 10 " wood panel


Procedure:
1. Epoxy wood panel onto front of box.

2. Drill the submit, yes, and no keys into the wood panel.


Recommended to put the "submit" button on the far right (switched this after further testing and feedback).





 

3. Drill hole large enough to fit an HDMI port in the back panel of the box.

I used two 3/8" bits and filed down the hole until the HDMI port fit.








 4. Label the survey game pieces and the submit, yes, and no keys.

 

 

 

 

 

 

 

Test, & Install!

Connect the Raspberry Pi to a monitor, keyboard, and the Makey Makey. Test the program and double check all the keys. Once everything is up and running, remove the keyboard (and mouse if connected). 

Load the python program, stand back, and let passersby have a blast participating in a survey!

Friday, March 25, 2016

Make an Enter Button!

The Almighty Enter Key! This oh-so-satisfying submit key deserves a special button for all it's usefulness! So let's build a button to control our enter key so we can agree to terms and conditions in style.

Learn how to reprogram a MaKey MaKey to build your very own awesome and customized enter button! Bonus: It even lights up!! Check out the video below for a demonstration of how awesome an enter button is.







Tools & Materials!

 

 

Materials

-- Makey Makey Kit
-- SPST Button: Like this illuminated arcade pushbutton!
-- Wood panel sized for your button.
-- Hook-up Wire (22 gauge)

 

 

 

 

 

Tools

-- Safety goggles, woo!
-- Soldering iron, solder& desoldering wick
-- Ruler (or calipers)
-- Drill with 3/4" bit (or otherwise sized for your button)
-- Flat wood file (to prevent splinters!)
-- hot glue gun OR epoxy (permanent)










Reprogram the MaKey MaKey! Pt. 1

 

1. Open Arduino IDE. To use the MaKey MaKey add-on, be sure you're using Arduino 1.6.4 or later.

The Makey Makey is programmed just like an Arduino board in the Arduino Internal Development Environment ("IDE"). Check out this awesome tutorial on how to download the Arduino IDE.
 
Here's a direct link to the most recent Arduino IDE software download.

2. Install the Makey Makey board add-on.


Go to the "File" menu option and open the preferences tab. In the "Additional Board Manager URLs"* text box (highlighted in the photo above), paste the following link:
https://raw.githubusercontent.com/sparkfun/Arduino_Boards/master/IDE_Board_Manager/pack 
Click "OK". Go to the Board Manager by going to the "Tools" menu option, hovering over "Board", and clicking the "Board Manager Menu" at the top of the list. Click on the Makey Makey add-on** and select "install" to complete the installation process.

*If you don't see this option, you likely need to update your version of Arduino.
 **If the Makey Makey add-on is not visible, close and re-open the Board Manager menu.


3. Under the Tools menu, go to the "Board" option and select the "Makey Makey" board.
The add-on in Step 2 should have added this option, as shown in the photo. If not, check out this tutorial for a more thorough overview of how to download the add-on.


4. Also under the Tools menu, select "Port" and choose the corresponding port for the MaKey MaKey.
If there are multiple COM ports to choose from, unplug the Makey Makey and see which port disappears. Plug the Makey Makey back in and select that Port.











Reprogram the Makey Makey! Pt. 2

 

1. Download the MaKey MaKey system code.
Here's the GitHub page for the Makey Makey.
Here's a direct link to download the full program. This is a .zip file, so be sure to extract all the files.



2. Open the MaKey Makey code in the Arduino IDE. Click on the settings.h tab in the Makey Makey sketch.


3. Change one of the keys into an enter key using the key code: "KEY_RETURN".
I decided to change the mouse left click button into the enter key, so I replaced "MOUSE_LEFT" (highlighted in the photo right) into "KEY_RETURN" (highlighted in the photo below).











4. Change any other keys as you see fit! Additional key codes are listed at the bottom of the Settings.h file.




















Build the Button Base!




1. Measure the size of the button body. 


2. Mark the wood panel where you want the center of the button to be and sketch a circle corresponding to the size of the button body.



3. Drill a hole in the wood panel for the button body.  











4. File (or sand) edges of hole. Check that button fits snugly through hole.

5. Screw on the button bolt on the backside of the wood panel and attach LED section.
















Connect the Button!

 

1. Solder wires onto the button leads.

If you are using the same illuminated arcade pushbutton as in this tutorial, the two side pins correspond to the LED power and the two back pins correspond to the switch. Recommended to use appropriate wire colors (i.e. red for positive, black for negative) or to label each of the button leads.




2. Connect the negative button switch lead to the Makey Makey ground.

3. Connect the positive button switch lead to the Makey Makey input that corresponds to your enter key (mine was the left mouse click).






4. Connect the button LED positive lead to the Makey Makey 5V output pin on the back side of the board (top header pins).

5. Connect the button LED negative lead to the Makey Makey output pin GND on the back.





Test & Apply Button!


Check that the button successfully acts as the "enter" key (and doesn't do any funny business), then incorporate it into your program/game/everyday typing/other awesome project(s)!



A super cool extension is to light up the button LED when you make a connection between the Makey Makey pads. Check out the video below for a demonstration of this! [[If there is enough interest, I'll post the code/schematic to add this feature :)
Creative Commons License
This work by Jennifer Fox is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License