Brief Implementation Walkthrough

Below is an abridged description of my design and implementation. For the more detailed version, refer to my thesis report paper.

Detailed Pin out:

Software Flow:

Software flow breakdown:

The TFT touch screen is controlled by an Arduino Uno R3, which is in serial communication with the main microcontroller, Arduino Mega. A graphical user interface is deployed on the touchscreen for users to enter their preferred settings.

After gathering the necessary information, the Arduino Uno will communicate with the Arduino Mega (through pin 0 and 1 on each microcontroller) through Serial Communication, and sends users’ decisions as one long string, with each decision separated by a “|” to act as a delimiter. |0 will be included
at the end as a termination.

After receiving the information, the Arduino Mega will perform input configurations (and reconfiguration). Designated inputs for this project are ability switches, whose signals are transferred through a 3.5mm jack, connected to the Arduino Mega through audio sockets.

The inputs are used to send PWM signals to the motor controllers to drive the motors (well duh!). (sample code for moving forward and values for motors are included below.)

 

Safe mode is handled by two arrays of ultrasonic sensor and IR sensors.

Remote controller and remote kill switch are implemented by a TSOP 3828 IR receiver diode and, well, an IR remote controller.

Three NeoPixel rings are used to display statistical information to users.

Battery level: high (green), medium (yellow) and low (red).

Speed level: 5 mph (blue), 2 mph(green), 1 mph (purple).

Tail light:

Incrementing as the device move forward and back. Decrementing as the device slows down to a stop.

Blinking red if the device is stopped by either the remote kill switch or the safe mode.