Introduction: DIY Gaming Controls: Racing Steering.
It's a small prototype designed during a FabLab workshop at College of Engineering, Pune. It is very cheap to make and very customizable. It works by reading the mouse input and generating virtual keypresses according to the input. I have used Dec C++ to code the software.
The Steering console uses one of the mouse's rollers to move with a shaft that is connected to a plastic-disc that acts as our steering. Depending on the movement on the roller left or right key presses are generated (The keys can be changed).
The right and left click buttons are desoldered and wired back with a foot long wire between the buttons and the board. These buttons are our acceleration and brake pedals.
Here is the video of the steering in operation at the FabLab, COEP. It didn't have acceleration and brake pedals then.
Step 1: Dissecting the Mouse
The mouse has two rollers. We have to attach a gear to the x-roller, such that the gear will drive it's shaft i.e, the roller when the gear is moved. To accommodate the roller's gear we need to cut away a portion under the x-roller. Take a look at the pictures for the marked lines on which a cut is to be made. Cut only that portion which blocks the gear, excessive cutting of the mouse casing will weaken it.
To be able to mount the mouse casing to the underside of the table effectively we will need to chop of the lower part of the mouse case. Your case may look different and your height requirements might again differ. Measure twice, cut once.
The last picture for this step shows a finished mouse casing.
Step 2: Attaching the Gears.
After you are done with the cutting part, we will need to attach the gears to the shaft and the x-roller. The wooden structure on which the whole system rests is a tripod with a hole in it's center for the bearing and the shaft. On top of the tripod rests a disc that we rotate as a steering. This disc is attached to a shaft. On the underside this shaft is attached to a gear which drives another gear that is on the x-roller.
We fit the gears on the shaft and the x-roller. The mechanical intricacies of the gears are left for you to chose. It wont make such a difference.
Step 3: Assembling the Device
Mounting the case:
When we mount the encasing we need to be very sure that the base will be strong enough to bear the twists and turns that it will face. Here the case is screwed onto a wooden block. This block is flat and sufficiently large to help the case stand upright.
We glue the mouse case onto the underside of the tripod. The glue must be evenly spread and be applied generously at the outlines.
We need to figure out the exact location where the mouse case will be mounted. This stage is very important, and we have to make sure that the x-roller's gears are perfectly aligned with the shaft's gears. If the gear contact is too tight then it will lead to excessive pressure on the mounting. If too loose, the gears will skip some teeth.
Allow the glue to firmly settle, if you hurry this up, you may loose the most important component of the device in the middle of an intense race!!
Step 4: Pedal Wiring
Wiring the brake and acceleration pedals:
The right and left mouse click button act as our brake and acceleration pedals. To get these out of the mouse circuit board we simply desolder the buttons off.
Next we solder the contacts of these buttons to foot long wires and back to the board, like extending these buttons off the circuit board.
The pedals that are made, consist of these buttons flush fitted to a plastic disc and another plastic disc that falls above it. Pressing the plastic disc above presses the buttons. However better alternatives exist and this was a quicker, much more "accessible" method for constructing the pedals.
Step 5: Fabricating the Steering and Pedals
Working at the FabLab allows you to use the wonderful Epilog laser cutting machine. The steering, gears, pedals all have been cut by the Epilog machine. If you do not have such a machine at your workshop, do it with wood.
The steering is designed to have a semicircular groove in it, such that its movement will be restricted by a nail driven into the tripod that falls in the groove. The shaft being used is 6mm in diameter, so a very fit 6mm hole in the center of the steering wheel.
The steering wheel was then press fitted on the center shaft. Similarly the pedals were manufactured to accommodate the buttons which are 13mm x 3mm in size. Inkscape was used to design these components.
Step 6: The Code.
I have used Dev C++ for coding the software half of the project. Since this is basically a mouse, thus it also affects the position of the cursor. I did consider writing drivers for this from scratch, but that proved to be very difficult for me to do in Windows, doing it on Linux on the other hand proved to be easier.
Windows being the target platform I had to overlook the fact that the console influences the cursor. Using hooks for listening to mouse information before the operating system gets it and then generating virtual keypresses depending on the state of the mouse is what this program does.
So here is the C++ code file. Simple create a new console application project in Dev C++ and paste this source code. Compile and Run the program. The code has been commented extensively for you to understand and edit.