Welcome to Project ROBot!
ROBot is a robot based on an mbed platform. It is remotely controlled from a PC via a WiFi connection. The vehicle is also equipped with an ultrasonic range finder to detect any obstacles in the direct path of the ROBot and stop any forward motion if a collision is deemed imminent.
The major components of the ROBot are:
- mbed application board
- RN-XV WiFly wireless board (datasheet)
- Toshiba TB6612FNG motor driver (datasheet)
- HC-SR04 ultrasonic range finder (datasheet)
- Redbot kit (just the chassis, motors, and wheels)
- 5V power source
- 6V power source
Here is a schematic of the ROBot: schematic
Software Block Diagram
A state machine processes all input and sets the output
A wireless remote connection from a PC sends commands List of commands:
- 'e' - move forward
- 'c' - move backward
- 'f' - move right
- 's' - move left
- 'd' - stop
commands are case-sensitive
The range finder ranges every 65 millisecs
When an obstacle is within 50cm, a warning is sent back to the remote host (PC)
When an obstacle is within 30cm, all forward motion ceases. The remote host operator must use other commands to move the ROBot away from the obstacle.
- ROBot and its parts
- Using a terminal emulator (Tera Term) to connect to the ROBot via a USB connection for wireless configuration. Once connected, the ROBot's IP address is shown in the terminal and on the LCD screen.
- Creating a telnet session to remotely control the ROBot. Connect to the IP address given in the previous step.
- Remote host operation of the ROBot
- Collision Warning/Avoidance
Things To Do
I'm not sure when I'll get to these but here are some things I need/would like to do eventually:
- improve the logic for collision
- incorporate the accelerometer on the mbed application board
- develop an Android/iPhone app for remote operation
- add video for true remote operation
This project would not have been possible without the following people (in no particular order)... Andrew, Bob, Morgan, Avnish. Thank you for your support! <3
|5:c15ad8a7eb8b||2013-12-07||rabad1||updated ranging interval and collision threshold|
|4:228fd78e44fd||2013-12-06||rabad1||added virtual COM port to allow wiFily to be configured by the user rather than hardcoding into the source code.|
|3:6bf3b80a8cd9||2013-12-06||rabad1||added virtual serial port to allow user to configure WiFly dynamically rather than hardcoding into source code|
|2:d093f7687c85||2013-11-24||rabad1||updated comments in ROBot.cpp|
|1:e918d1aa9c26||2013-11-24||rabad1||updated comments in ROBot.cpp|