I had recently acquired an Arduino Leonardo and decided to create an arcade style “fightstick” controller to play fighting games with.
To start I had to design the controller on paper and decided to be more realistic/cost effective and make a controller that was smaller than a full arcade fightstick. Luckily I was able to buy miniature versions of the buttons and a small joystick as my inputs for the controller. In total I used 8 buttons to add more options as different games required different inputs. Once the parts I needed arrived I had to firstly attach the buttons and joystick to the correct inputs and then test them all before soldering the connections in.
After all connections were made I had to test out the program I had written for the controller. The program simply maps each button to a Unicode character as not to interfere with the actual keyboard I use. Most of the time spent in programming the buttons was used to find out how much time should be delayed between presses and to create a smoother experience when repeatedly pressing them. The last part of programming was the hardest part which was the joystick which had to emulate mouse movements as the move the cursor around the screen. This was done using axis and acceleration which took a lot of tinkering, but eventually was completed. Most of the timing and delays created for smoother controlling was trial and error.
Lastly I had to encase the Arduino, controls and joystick and I did this by using a box I had for a while and cutting holes in it to place buttons and wires. After the case was cut and smoothed out the controller was complete and ready.