Introduction: Arduino Leonardo Game Controller for Quadriplegics
Our task was to create a game controller that required minimal movement of the neck for quadriplegic people. Before we started building our controllers, we learned and experimented with breadboards and perf boards to understand how to wire the electronics we would need for the final project. We then built our controllers using the materials available to us, many of which you might already have! Here's a video of me explaining a bit about my controller and giving a demonstration of how it works.
Supplies
Building materials
- Neck pillow
- Cardboard/foam board
- Tinfoil
- Duct tape
- Hot glue gun
- Wood beam
- Paper clips
- Measuring tape
- Exacto knife
- Twine
Circuit materials
Electronic materials
OR
- MakeyMakey (more expensive/simpler alternative to using the Arduino Leonardo)
Game file
- Space Invaders (HTML, CSS, JS files)
Step 1: Wiring the Arduino/Perf Board
Materials: perf board, soldering iron, solder, seven Arduino wires, Arduino, three resistors, six alligator clips
- Put an Arduino wire into the perf board in the column/row 18T and put in resistors in 18P, 18L, 18H.
- Solder the the resistor in 18P to the Arduino wire in 18T, the resistor in 18L to 18P, and the resistor in 18H to 18L.
- Add an Arduino wire in 12P, 12L, and 12H and solder the other end of the the resistors to these Arduino wires. (Do not cut the extra length of the resistor leg off. In the next step you are going to attach modified alligator clips to the rest of the resistor.)
- Take three of your alligator clips and cut off the clip on one side of each and strip off some of the wire cover. Put the newly stripped wire ends through 9P, 9L, and 9H and solder them each to their respective resistor leg.
- Take three Arduino wires (one Arduino wire needs to be longer than the others) and put them in 10T, 8T, and 6T. With your last three alligator clips, cut the alligator clip off of one side and strip a bit of the wire cover off. Attach these in 10U, 8U, and 6U and solder each Arduino wire to the alligator wire that is in the same column as it.
- You can now plug in your wires to your Arduino! The Arduino wires in 12P goes to the A0 pin socket, 12L to A1, 12H to A2, 18T to 5V, and 10T, 8T, and 6T all go to GND (grounds - since there are only two grounds on each side, use the longer Arduino wire you added to connect to a ground in the pin sockets on the other side of the Arduino)
Step 2: Building Support for the Neck Pillow
Materials: Neck pillow, cardboard/foam board, duct tape, pencil, scissors (or exacto knife), hot glue
- Hold the neck pillow in a U shape and trace the shape onto a piece of cardboard (my dimensions were 18" by 16" with the U having a depth of 7.5" and width of 6.75" in the front)
- Cut out the middle U
- Use the cardboard you just cut as a trace and repeat on two more sections of cardboard
- Hot glue all three on top of one another
- Duct tape your neck pillow to your newly created frame
Step 3: Buttons
Materials: three paper clips, cardboard, tinfoil, duct tap, scissors (or exacto knife) and hot glue.
- Get something round, such as a glass or water bottle that has a diameter of around three inches to trace six circles.
- Cut out your six circles.
- Cover at least half of each circle with tinfoil and use duct tape of glue to secure it.
- Grab the paper clips and separate the two parts of them (if the paperclip was over a piece of paper, pull apart the paper clip piece that is on each side).
- Use the hot glue to attach each paper clip to a cardboard circle on the part that doesn't have tinfoil (make sure to wait for the glue to completely dry before hot gluing the other circle on).
- Once the glue is dry, repeat the same process on the other side of the paper clips with the three remaining cardboard circles.
After building the buttons... time to attach them!
- Attach all buttons facing up (side with the paperclip should be directed down) with bubbles of tape to the neck pillow.
- One will be in the back, behind where the head will be. The other two will be on the sides of the neck pillow.
- You can play around with the location of your buttons before adding more tape or using hot glue to secure them more.
- This next step is optional, only if you feel like your buttons need more support, but you can add wedges behind the buttons to stabilize them further. I used small triangle pieces of would but you can use cardboard (or any other material you think would work) to create them.
Step 4: Attaching Wiring to Controller
Materials: Previously soldered perf board, Arduino, neck pillow apparatus and duct tape
- Attach the Arduino and perf board to the cardboard at the back of the neck pillow using duct tape bubbles
- The alligator clips in 10U, 8U, and 6U (the grounds) should each be clipped to one side of each button
- Attach alligator clip to the other side of each button. Put alligator clip in 9P to the left button, 9L to the back button and 9H to the right button (Since 9P is connected through wires to A0, this makes it left. Same with 9L connected to A1 and 9H connected to A2)
Step 5: Build the "Backbone"
Materials: Cardboard/foam board, hot glue, scissors (or exacto knife), duct tape, twine, wood beam, ruler/measuring tape and potentially a saw
- Measure if the wood beam needs to be shorter for the person who will use the controller by placing the neck pillow on top of the wood and looking at it next to the person who will be using the controller to see if the height needs to be changed.
- If it needs to be shorter, mark where the cut will need to be and us a saw (or a band saw if you have access to one) to make the cut.
- When the wood is at the correct height, use foam board and cut 16 pieces 3" by the distance between where the neck pillow will be and the height of the back of the chair is.
- Hot glue 8 pieces together and repeat with the other 8 pieces.
- Use each 8 piece block of foam board as pillars and attach them to the back corners of the cardboard the neck pillow is taped to.
- Cut 4 16" by 3" pieces of cardboard, glue them together and cut a hole in the middle that your wood beam can fit through snugly.
- Optional: you can add smaller pieces of foam board under the cardboard 'beam' that line up with the hole you cut to add more stability.
- Glue the cardboard beam to the foam board pillars you attached earlier.
- Use hot glue to secure it to the top piece of cardboard that the neck pillow is on (it should end up being glued close to underneath the perf board and Arduino).
- Cut a piece of foam board 12" by 15" and attach the 12" side right in front of where the wood beam comes through the whole you cut. Curve it down by bending the foam board to help it stay attached to the chair.
- Cut a long piece of foam board that is long enough to wrap around the person's waist and the chair, about 2" thick, and tape it to the wood beam at the height you want this belt to be at.
- Make a small hole in each side of the foam board and thread a piece of twine through each side to connect the belt in the front.
Step 6: Downloading Game & Arduino Code
Materials: Arduino software, Arduino Leonardo code, Space invaders game
- Download the Arduino software for the type of computer you have.
- Open the Arduino Leonardo code and download the whole file by clicking on the little down arrow next to the folder name and then click download.
- From you downloads open the code.
- Open the Space invaders game and download the whole file by clicking on the little down arrow next to the folder name and then click download.
- From you downloads open the code and double click on the html file to open the game in your browser.
- On the computer the buttons are D is left, F is shoot and G is right
- The goal of the game is to shoot all the blocks that are moving around (the space invaders) before they move to the bottom of the box and hit the shooter