How to use a Wii Balance Board to control an Etch-A-Sketch
1. Intro and parts list
3. Building the Frame
5. Connecting WiiMote and Balance Board
7. Arduino + Motor Control
9. Run It!
We are going to be using 'GlovePIE' to read data from the balance board and control the cursor. We then use 'Processing' to read that movement and tell the 'Arduino' how to move the motors.
Here is our demo video of it all working:
Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.
Step 1: Parts List
For this project you will need:
1 x WiiMote
1 x Wii Balance Board
1 x Etch-A-Sketch
1 x Arduino Uno (other boards can be used)
A Bluetooth dongle (if your PC doesn't have built in bluetooth)
2 x 5V Stepper Motors
- We used these: http://www.ebay.co.uk/itm/181086781943?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649
1 x A5 sheet of 5mm acyrlic
Some MDF or other wood to make a frame
2 x 5V Power Supply
Lots of jumper wires or just a lot of wire
Soldering Iron and solder
Step 2: Gears
Remove the original plastic dials of the Etch-A-Sketch. They are only on as an interference fit, i.e. with a bit of brute force will slide off. Using a screwdriver to lever them off saves getting sore fingers! You may save them if you like, though they are no longer necessary.
If you are using the same Stepper Motors as we did, or at least motors with the same pin dimensions (3mm x 5mm), then download the Illustrator/EPS template.
With a different Stepper Motor, you may get away with just changing the hole dimensions/shape for the pin on the smaller gear on the template.
On the template, the larger gear is for the Etch-A-Sketch and the smaller for the Stepper Motor.
To draw the gears from scratch, should you not wish to use the template, is easy if done in "Google SketchUp" with a plugin. You'll need the pro version to export the right file though! I found this site brilliant for aiding creating the gears and details of the plugin needed on there too.
The ratio we used for the gears is simply 2:1. The Etch-A-Sketch gear is double the diameter of the stepper gear with double the number of teeth. To make the gears interlock, the Pressure Angle needs to be the same, we used 20.0.
Now this may be the trickiest part to arrange - laser cutting. Being students, we had access to technicians and equipment to get them cut for us. However don't let this phase you! There are many companies that you can upload the designs online who will laser cut and send the resulting gears in the post back to you. You may not need to buy the acrylic yourself, so look into this before purchasing.
TIP: If you do make any amendments to the file before laser cutting, the holes for the Etch-A-Sketch pins or the Stepper motor pins need to be drawn slightly smaller than measured. The Etch-A-Sketch pins measure 4mm diameter, but we cut the holes at 3.7mm. The Stepper Motor pins measure 3mm x 5mm, but the hole was cut marginally smaller. If the holes were cut to match the size of the pin, the width of the laser would make them too large. We made this mistake with our first cut. It's better to cut them too small, then use a 4mm round file to make them fit snugly.
Step 3: Building the Frame
Cut all the components from 9mm MDF. If you use a different thickness, amendments would need to be made to the measurements. Also, measure the size of your Etch-A-Sketch before you start to be sure it'll fit.
249 x 206 (1) - etch-a-sketch back panel
249 x 50 (3) - horizontal pieces
249 x 90 (1) - motor board panel
323 x 50 (2) - vertical pieces
Although it'll be tempting to drill the holes in the 249 x 90 piece before assembly, hang fire a little.
Use these plans as a guide, but do feel free to deviate and make your own amendments. There's more than one way to build a box, as they say.
Step 4: Assembly
Assemble together the four sides of the frame. The two longer pieces (323 x 50) run vertically with edges on the outside of the other sides - see photos. Glue the four edges together and wait for the glue to dry before doing any more.
Line up the middle horizontal piece (249 x 50) and the motor panel but don't glue just yet, then Seat the Etch-A-Sketch into the frame, with the gears attached.
Line up the motors (with gears attached) on the motor panel and align with the gears on the Etch-A-Sketch. We found even after many headaches of trying to figure out where to drill the hole that just aligning by eye was better and marking it out in pencil. We've provided the dimensions of the hole but the location may vary, especially with different motors!
Once a hole has been marked out for the motors, drill and file to size/shape.
Glue in the remaining pieces of MDF.
Once the glue has set, the clamps can be taken off. For a bit of extra strength, you can use pins (but drill pilot holes first to avoid splitting the wood) or just run a line of silicone along the hidden inside edges like we did!
Just a reminder that this frame is just a guide and can be edited to suit your needs. We're just showing how we went about making a frame, though I'm sure there are other ways of going about it!
TIP: Get someone to give you a hand when marking out where the Stepper Motor holes need drilling, it needs to be precise and unless you already have 4 hands, is quite fiddly.
TIP #2: Painting is purely personal preference. If you do choose to paint, make sure to give all the sides and edges a sand down. Spay paint gives a good even coverage, but will make any rough areas howl!
Step 5: Connect WiiMote and Balance Board
Plug in your Bluetooth dongle and install any drivers if necessary.
Right click on the Bluetooth icon on the taskbar and click 'Add a Bluetooth device'.
Press the red sync button on the inside of the WiiMote and it should connect and install drivers automatically.
Do the same again to install the Balance Board. The red sync button can be found inside the battery compartment.
TIP: Once installed you can run a script in GlovePIE and press 1 and 2 on the WiiMote simultaneously and it will connect. You should then only need to resync if you restart your PC. The same goes for the Balance Board. Knowing this save a lot of time trying to get the WiiMote to stay paired with your PC. Remember, just because the light isn't on doesn't mean that it isn't connected.
TIP #2: If you want to check if the WiiMote is actually connected, run a GlovePIE script that just has the line 'WiiMote1.LED4 = true'. If you run the script and the fourth LED turns on then you know it is connected. You might have to press 1 and 2 together after running the script. I wish I had know this when trying to get it to connect, would have saved me a lot of time.
Step 6: GlovePIE
Download GlovePIE: http://glovepie.org/lpghjkwer.php
Once downloaded and extracted, run PIEFree.exe to open GlovePIE.
Open the script (Etch_A_Sketch_FINAL_PIE).
When the time comes, you just have to click RUN to start the script.
TIP: Remember, after running the script you may have to press 1 and 2 on the WiiMote and the sync button on the Balance Board.
Step 7: Arduino + Motor Control
Download Arduino: http://arduino.cc/en/Main/Software
Download the attached Arduino sketch (Etch_A_Sketch_FINAL_ARDUINO)
If you have the same motors as we used, then you can follow the provided diagram to wire them up. If you are using different motors, consult the Arduino code. The code is fully annotated so you should easily be able to work out how to wire yours up.
Open the sketch (Etch_A_Sketch_FINAL_ARDUINO).
The code is annotated so you can see what is happening.
Step 8: Processing
Download Processing (Make sure to get version 1.5.1 because of a problem that occurs with the serial port in the latest version)
Download here: http://www.processing.org/download/
Download the attached Processing file (Etch_A_Sketch_FINAL_PROCESSING).
Open Processing and then open Etch_A_Sketch_FINAL_PROCESSING.
The Processing sketch is currently sized to my resolution. I will find a way of editing it so that it will automatically size itself to any resolution and upload when I do.
TIP: Click Sketch > Present OR press Ctrl + Shift + R to go into present mode/full screen.
TIP #2: If you get the error 'Array Index out of bounds exception 0', the best way that I found to fix it was to close Processing, re-upload the Arduino code (maybe even unplug the usb cable and then plug in again first). Then open Processing again and run the sketch. You should be good. The error occurs because Processing can't find the Serial port that the Arduino is using, so re-uploading/unplugging etc helps Processing find it.
Step 9: Run It!
Upload the Arduino sketch to the board. (This has to happen first)
Run the GlovePIE script.
Run the Processing sketch (ctrl + shift + r).
While not standing on the Balance Board, press 1 on the WiiMote to calibrate.
Stand on the Balance Board and press 2 to do the second calibration.
Press A on the WiiMote when ready.
Lean in a direction to draw.