The following is a list of the electrical hardware used on the bicycle:
- Steer Motor Controller: Accelnet Panel ADP-090-36
- Rear hub motor Controller: Accelnet Micro Panel ACJ-055-18
- Steer motor: Teknic M-3441
- Rear hub motor: Amped Bikes Rear Direct Drive
- Wheel Encoders: US Digital H5-50-N-D
- Inertial Measurement Unit:
- Microcontroller:
- Quadruple Differential Line Receivers: TI AM26C32IN
- JTAG Cable: Olimex ARM-USB-TINY-H
- Wireless Radio: XBee-PRO 802.15.4 extended-range module w/ RPSMA connector
- USB to RS232 Cable: FTDI US232R-10
- USB to Xbee board XBee Explorer Dongle
All connections between various components of the robot bicycle are documented in a Google Drive spreadsheet.
- Debugging and flashing software OpenOCD
- Real time operating system ChibiOS/RT
To compile the code that runs on the microcontroller, I've been using two GCC Arm toolchains to build the firmware. One is the GNU Tools for ARM Embedded Processors, which is maintained by ARM. The other is the Linaro toolchain, which is updated more frequently but not necessarily customized for embedded chips. I maintain a simple script to download and build the tools in the Linaro toolchain and it seems to work well.
To compile the firmware which runs on the bicycle, type:
$ cd firmware
$ mkdir build
$ cd build
$ cmake .. -DCMAKE_TOOLCHAIN_FILE=../toolchain-arm-none-eabi.cmake
$ make
You will need to modify the CMake toolchain file to point to your toolchain
path. You can view and change build options using ccmake
instead of cmake
.
To build the dataprocessing code, ensure you have CMake installed, then type:
$ mkdir build
$ cd build
$ cmake ..
$ make
This project has been supported in part by NSF Award #0928339. I am grateful for the help of Derek Pell, Kenny Koller, Oliver Lee, Kenny Lyons, and the rest of my lab mates: Bo Fu, Colin Smith, Andrew Kickertz, Jason Moore, Ziqi Yin, and Gilbert Gede.