Land Rover
A remote controlled car
Overview / Goal
The goal of this project is to build a working car that can be driven using computer inputs through wireless connection or by itself. To do this, we will be using the USART serial interface to send commands via bluetooth, I2C serial interface to communicate with the motors and accelerometer. We will also be using a sonar sensor to assist with the self driving mode.
Block Diagram
Video / Demo
Software Structure
On startup, run initialization commands for peripherals
In While(True) loop
If car not on
Listen for termite command to configure and turn on car
If car is on
Read Nunchuk data
If Nunchuk Z-button pressed
Turn car off
If car is on and in manual mode
Process Nunchuk Joystick data and move car accordingly
If car is on and in automatic mode
If distance > 15 cm
Go forward
Else if distance < 15 cm
Clear obstacle by going back for a certain amount of time and turning for a certain amount of time
The time intervals are determined by SysTick
External Pin Connects
Wii Nunchuk Pins: PB6 and PB7 used as SCL and SDA lines respectively to communicate to the Wii Nunchuk
Termite Pins: PA2 and PA3 are configured as alternative function mode and used as USART2_TX and USART2_RX to communicate with termite through the Bluetooth module
Sonar Pins:
PA0 is configured as alternative function mode and used as TIM2_CH1 for input capture
PE11 is configured as alternative function mode and used as TIM1_CH2 for output trigger mode
Motor Pins:
PE13 and PE14 are configured as alternative function mode and used as TIM1_CH3 and TIM1_CH4 for speed control on the right side and left side wheels
PB2 and PB3 are configured as output mode and used to program direction logic for all 4 wheels
3V Pin is used to power the Wii Nunchuk
5V Pin is used to power the rest of the peripherals
Questions?
Contact thao_phan@ucsb.edu or nicolasmwong@ucsb.edu to get more information on the project