Intro: A Videogame Controlled by Your Dog
Arduino Dog is a project that I carried out for the Embodied Interaction course as part of the MSc in Interaction Design at Malmö University (Sweden). Since the assignment was to make a game with Arduino and Processing using physical buttons, I decided to make a simple videogame that could be controlled by a dog. To do this, I made physical buttons with MDF wood, aluminium foil, and sponge, and I used the Arduino Uno (+ the IDE), a breadboard with some wires, and I coded the game in Processing.
The design artefact consist of four physical buttons that control the virtual dog character in the videogame that can go up, down, left, and right. The goal of the videogame is to collect as many dog-bones as possible within one minute. The human has to encourage the dog to voluntarily step on the correct buttons at the right times and use positive reinforcement to complete the game.
Step 1: Parts
For this project you need:
- MDF wood (or any other type of flat/light wood will work) I used 3mm sheets
- sponges (the cheaper the better)
- aluminium foil
- a hot glue gun to stick stuff together
- Arduino Uno
- Breadboard (you can solder stuff together if you prefer)
- Jumper wire
- 4x 1M Ohm resistors
- Arduino code (I shared mine)
- Processing code (I shared mine)
You will also need a dog.
Step 2: Making the Buttons
If you're just starting out with Arduino, this is one of the easy ways in which you can create buttons. By creating two conductive surfaces with aluminium foil, divided by sponge, and whenever they are pressed together (in this case the dog will step on them) the signal gets sent to the Arduino.
To create the buttons I decided to make triangular arrows. However, after testing it with my dog I noticed that the corners of the arrows might be a bit sharp on the edges and this could hurt the dog if she gets too enthusiastic, so you could decide to either sandpaper the corners or to make round shapes and paint the arrow direction on top.
Cut out each shape two times (so you'll end up with 8 similar shapes). Paint them if you want.
Cover each shape with a layer of aluminium foil and fix it with glue.
Strip the wires for a few CM and glue this to the aluminium foil.
Next, cut the sponges. I used a bit of sponge in each corner of the shape.
This is the part where you have to figure out the thickness of the sponges vs. the aluminium foil. The main point is that the two sides of foil/wire need to touch each other when you put the two shapes on top of each other and press them together, so that a circuit is created, and release when you stop pressing. I ended up making the aluminium foil layer a bit thicker on both sides. So it might be a good idea to wait with glueing the sponges and shapes together and test it out with your dog so that you're sure it will work (depending on the weight of your dog).
Step 3: Fixing the Electronics
Now that you created each button, you will have two wires coming from each shape going towards the breadboard. Try and find a way to neatly bundle all the wires and put the Arduino somewhere safe, so that your dog won't trip over them while playing later.
The breadboard/arduino set-up is really easy. I don't have a super clear picture of my breadboard set-up, so I added a schematic picture that shows my wiring for each button.
In terms of resistors, I used a 1M Ohm resistor.
For the connections:
- connect the UP button to digital pin 3
- connect the DOWN button to digital pin 4
- connect the LEFT button to digital pin 5
- connect the RIGHT button to digital pin 6
Step 4: Code
In the attachment you can find both the Arduino code and the Processing code.
Step 5: Play
Get some dog treats, convince your dog to join, and start playing!