It started with this cool little idea that I found on thingiverse. And it ended up like this...
The base of the steering wheel is an Arduino Pro Micro. It is based on the Atmega 32u4 MCU, which allows us to build an USB slave device. The The construction consists of some 3D-printed parts, enhanced by stuff from the local hardware store.
The steering wheel is built upon XInputPadMicro which itself is based on the USB stack LUFA. The steering wheel position is tracked using a rotary encoder and the encoder-library from Paul Stoffregen.
In order to build the steering wheel firmware, you need the following environment:
- Arduino-IDE. I have seen some error messages during make process coming from pathes including spaces so it is best to install it at a location without spaces (i.e. not in c:\Program Files...). I have used version 1.8.7.
- avr-gcc. The toolchain includes GNU
makebut doesn't come withgrepwhich has to be installed separately. - grep. The LUFA makefiles use grep. I have put it in the bin directory of
avr-gcc. - git for windows brings
git for windows bash, which understands commands likerm, needed formake clean.
The makefiles redirect some output to /dev/null so I had to create a c:\dev directory to get rid of some error messages.
Open a bash window in the Software subdirectory of the project. Enter make to build the .hex file.
You can flash the resulting .hex file on the board using a make avrdude command. Please make sure, that the Arduino Pro Micro is starting up from reset immediately before issueing the command.
- Include accelerator and brake pedals based on the kt-040 rotary encoder.
- Implement a 'drive recorder' that remembers all the timestamps and steering commands and can replay them for the next race.