This is a modified PS3 sixaxis clone controller in which, 8 external buttons added to cammand Arduino Pro Mini 3.3V to trigger 8 different series of buttons. one after another. This code series are hard coded to an array in Arduino program.
Declaimer: Learning is the purpose of this Instructable, I am not responsible for how it will be use in open source community.
PS3 controller works with one cell battery so it can power Arduino pro mini and surrounding components.
Arduino 8 inputs coming from 2 x 4 buttons under-ness of controller. keypad.h has been used so 2 + 4 pins will be used not 8.
Arduino 8 outpouts going to 4 x LTV-862 Optocouplers with appropriate resistors so they are isolated not worry about voltage level. there are 2 pins for future use buttonPin (IN) and buzzerPin (OUT) can be use to add more inputs.
The red dip switch will connect VCC and GND to the board, easily make 8 small 0.5mm holes to pass its 8 pins from outside of enclosure to inside for soldering.
Step 1: Getting Started
Gather all parts and components you need, remember you do not have to match my list, change as you require.
I have found out the Original PS3 controllers are different than clone ones, the picture with green PCB is original controller.
1 x six axis PS3 controller (open the enclosure and make 6 mm hole in the centre to pass the wires from board to inside the controller.
1 x 4 pole dip switch (make 8 x 0.5 mm holes on enclosure to push dip switch in bend the pins from inside get them ready for soldering.
1 x PCB board (prepare the PCB based on the .pdf file ) pay attention to the traces, mirror it if your etching process requires it.
8 x Square push buttons and 1 round small switch solder to the board wit its 10K pull-up resistor
4 x LTV-826 and their sockets solder to the PCB
8 x 10K resistors SMD between Arduino outpins and inputs of LTV-826 solder to PCB
2 x 1K resistors through-hole for column left and column right
solder all wires according to the plan.
Step 2: Construction , PCB and Wiring
I have used photo-etching process and then drills the holes cut and sand the board. For maintenance I have used double-side Velcro for PCB and enclosure. Note use Meat packing foam for between Velcro and PCB since the surface is not even. leave some extra wire to be able to work easily.
Spend sometime and scan the pink drawing it has most information you need.
Step 3: Code and Functions
We are almost at the end of the project.
The Arduino code will be uploaded to Arduino through common USB to TTL board.
The program is not perfect there are many ways to improve it, I will leave it to you.
The structure of the program is simple there is an array that has 8 x 60 characters, each one of 8 buttons will trigger one of the 8 strings which it hold a series of characters up to 60 for now. This chars starts with abbreviation of the command for example U for Up button HIGH, Also u for Up button LOW and second char after is the time in milisec for example 9 for 9 x 10 = 90 milisec, the routine will start to read this characters and activate that particular Pin for duration. Feel free to add, modify the Hardware and Software.
Thanks very much for your time.