After wanting to play around with an accelerometer for a long time, I finally thought of an idea that would warrant me purchasing one, modifying an Xbox 360 controller to make one of the analog sticks controlled by the tilting motion of the Xbox controller.
The accelerometer works by outputting varying voltages for varying accelerations. I will use a 3-axis accelerometer so it will output 3 varying voltages. I will use an analog-to-digital converter to get the signals into a micro controller. The micro controller will do the processing that determines how the controller is tilted. It will then be output as an analog voltage to the controller in place of the on board potentiometers that are controlled by the analog stick.
It would be nice to have it user selectable so either the left or the right stick could be used but to make things simple I will start out doing just the left stick as that is the one I think would benefit from it the most. Keep in mind I’m not a huge gamer and currently mainly play Marble Blast Ultra and Full Auto.
The first step of this is of course taking apart the 360 controller and learning everything I can about it. I am going to use the wired controller first (cheaper) and if I am successful eventually make a wireless version.
Taking apart the wired 360 controller is pretty easy, it even uses standard Phillips head screws. The only thing slightly tricky is that one screw is hidden in the middle of the controller behind a white sticker. Pretty standard stuff for taking apart things that aren’t meant to be taken apart.
Analog sticks work by adjusting two potentiometers (pots). After I took the controller all apart and experimented I found the potentiometers had an upper voltage of 1.61 volts and a lower voltage of 0 volts. On the up/down pot all the way up is 1.61 volts and all the way down is 0 volts. On the left/right pot all the way right is 0 volts and all the way left is 1.61 volts.
Luckily the output voltage from each pot is easily accessible as they have included a test point. I need to simply solder into the test point and I can send my own voltages to the brains of the controller. The test point for the up/down pot is TP23. The test point for the left/right pot I will know as soon as I figure out how to take off the triggers without breaking them…
My next step will be to solder wires to the board at the points I need them and learn how to use an accelerometer as a tilt sensor. I also need to do some research to determine what to use for my digital to analog conversion. I usually use a PIC16F88 for my projects, but it does not have a DAC.