Code for RFID Robot
Dependencies: DebounceIn HTTPClient ID12RFID SDFileSystem TextLCD WiflyInterface iniparser mbed
robot.cpp@0:9fd64882c5aa, 2013-12-10 (annotated)
- Committer:
- 4180skrw
- Date:
- Tue Dec 10 02:17:48 2013 +0000
- Revision:
- 0:9fd64882c5aa
initial commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
4180skrw | 0:9fd64882c5aa | 1 | #include "robot.h" |
4180skrw | 0:9fd64882c5aa | 2 | |
4180skrw | 0:9fd64882c5aa | 3 | void initializeRobot() { |
4180skrw | 0:9fd64882c5aa | 4 | printLCD("Initializing", NULL); |
4180skrw | 0:9fd64882c5aa | 5 | // wait for Roomba to power up to accept serial commands |
4180skrw | 0:9fd64882c5aa | 6 | wait(2); |
4180skrw | 0:9fd64882c5aa | 7 | // set baud rate for Roomba factory default |
4180skrw | 0:9fd64882c5aa | 8 | device.baud(57600); |
4180skrw | 0:9fd64882c5aa | 9 | // Start command mode and select sensor data to send back |
4180skrw | 0:9fd64882c5aa | 10 | start(); |
4180skrw | 0:9fd64882c5aa | 11 | |
4180skrw | 0:9fd64882c5aa | 12 | //define songs |
4180skrw | 0:9fd64882c5aa | 13 | //one beep |
4180skrw | 0:9fd64882c5aa | 14 | device.printf("%c%c%c%c%c", Song, char(1), char(1), char(69), char(16)); |
4180skrw | 0:9fd64882c5aa | 15 | wait(1); |
4180skrw | 0:9fd64882c5aa | 16 | //georgia tech fight song, split into 3 songs because max song length is 16 |
4180skrw | 0:9fd64882c5aa | 17 | device.printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c", Song, char(2), char(16), char(67), char(18), char(0), char(2), char(65), char(9), char(0), char(2), char(63), char(18), char(0), char(2), char(63), char(9), char(0), char(2), char(63), char(18), char(0), char(2), char(65), char(9), char(0), char(2), char(67), char(18), char(0), char(2), char(67), char(9), char(0), char(2)); |
4180skrw | 0:9fd64882c5aa | 18 | device.printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c", Song, char(14), char(16), char(67), char(9), char(0), char(2), char(65), char(9), char(0), char(2), char(63), char(9), char(0), char(2), char(65), char(9), char(0), char(2), char(65), char(9), char(0), char(2), char(65), char(9), char(0), char(2), char(63), char(18), char(0), char(2), char(62), char(9), char(63), char(54)); |
4180skrw | 0:9fd64882c5aa | 19 | //a major arpeggio |
4180skrw | 0:9fd64882c5aa | 20 | device.printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c", Song, char(3), char(7), char(69), char(32), char(73), char(32), char(76), char(32), char(81), char(32), char(76), char(32), char(73), char(32), char(69), char(32)); |
4180skrw | 0:9fd64882c5aa | 21 | clearLCD(); |
4180skrw | 0:9fd64882c5aa | 22 | } |
4180skrw | 0:9fd64882c5aa | 23 | |
4180skrw | 0:9fd64882c5aa | 24 | // Start - send start and safe mode, start streaming sensor data |
4180skrw | 0:9fd64882c5aa | 25 | void start() { |
4180skrw | 0:9fd64882c5aa | 26 | // device.printf("%c%c", Start, SafeMode); |
4180skrw | 0:9fd64882c5aa | 27 | device.putc(Start); |
4180skrw | 0:9fd64882c5aa | 28 | wait(.1); |
4180skrw | 0:9fd64882c5aa | 29 | device.putc(Control); |
4180skrw | 0:9fd64882c5aa | 30 | wait(.5); |
4180skrw | 0:9fd64882c5aa | 31 | // device.printf("%c%c", SensorStream, char(1)); |
4180skrw | 0:9fd64882c5aa | 32 | device.putc(Sensors); |
4180skrw | 0:9fd64882c5aa | 33 | device.putc(BumpsandDrops); |
4180skrw | 0:9fd64882c5aa | 34 | wait(.5); |
4180skrw | 0:9fd64882c5aa | 35 | } |
4180skrw | 0:9fd64882c5aa | 36 | // Stop - turn off drive motors |
4180skrw | 0:9fd64882c5aa | 37 | void stop() { |
4180skrw | 0:9fd64882c5aa | 38 | device.printf("%c%c%c%c%c", Drive, char(0), char(0), char(0), char(0)); |
4180skrw | 0:9fd64882c5aa | 39 | } |
4180skrw | 0:9fd64882c5aa | 40 | // Forward - turn on drive motors |
4180skrw | 0:9fd64882c5aa | 41 | void forward() { |
4180skrw | 0:9fd64882c5aa | 42 | device.printf("%c%c%c%c%c", Drive, char((speed>>8)&0xFF), char(speed&0xFF), |
4180skrw | 0:9fd64882c5aa | 43 | char((radius>>8)&0xFF), char(radius&0xFF)); |
4180skrw | 0:9fd64882c5aa | 44 | |
4180skrw | 0:9fd64882c5aa | 45 | } |
4180skrw | 0:9fd64882c5aa | 46 | // Reverse - reverse drive motors |
4180skrw | 0:9fd64882c5aa | 47 | void reverse() { |
4180skrw | 0:9fd64882c5aa | 48 | device.printf("%c%c%c%c%c", Drive, char(((-speed)>>8)&0xFF), char((-speed)&0xFF), |
4180skrw | 0:9fd64882c5aa | 49 | char(((radius)>>8)&0xFF), char((radius)&0xFF)); |
4180skrw | 0:9fd64882c5aa | 50 | |
4180skrw | 0:9fd64882c5aa | 51 | } |
4180skrw | 0:9fd64882c5aa | 52 | // Left - drive motors set to rotate to left |
4180skrw | 0:9fd64882c5aa | 53 | void left() { |
4180skrw | 0:9fd64882c5aa | 54 | device.printf("%c%c%c%c%c", Drive, char((speed>>8)&0xFF), char(speed&0xFF), |
4180skrw | 0:9fd64882c5aa | 55 | char(((1)>>8)&0xFF), char((1)&0xFF)); |
4180skrw | 0:9fd64882c5aa | 56 | } |
4180skrw | 0:9fd64882c5aa | 57 | // Right - drive motors set to rotate to right |
4180skrw | 0:9fd64882c5aa | 58 | void right() { |
4180skrw | 0:9fd64882c5aa | 59 | device.printf("%c%c%c%c%c", Drive, char(((speed)>>8)&0xFF), char((speed)&0xFF), |
4180skrw | 0:9fd64882c5aa | 60 | char((-1>>8)&0xFF), char(-1&0xFF)); |
4180skrw | 0:9fd64882c5aa | 61 | |
4180skrw | 0:9fd64882c5aa | 62 | } |
4180skrw | 0:9fd64882c5aa | 63 | // Charger - search and return to charger using IR beacons (if found) |
4180skrw | 0:9fd64882c5aa | 64 | void charger() { |
4180skrw | 0:9fd64882c5aa | 65 | device.printf("%c", Clean ); |
4180skrw | 0:9fd64882c5aa | 66 | wait(.2); |
4180skrw | 0:9fd64882c5aa | 67 | device.printf("%c", CoverandDock ); |
4180skrw | 0:9fd64882c5aa | 68 | } |
4180skrw | 0:9fd64882c5aa | 69 | // Play Song - play a song |
4180skrw | 0:9fd64882c5aa | 70 | void playsong(int mag) { //Play song |
4180skrw | 0:9fd64882c5aa | 71 | if(mag == 2) { //play rest of georgia tech fight song |
4180skrw | 0:9fd64882c5aa | 72 | device.printf("%c%c%c%c%c%c%c%c", NewScript, char(6), PlaySong, char(2), WaitTime, char(20), PlaySong, char(14)); |
4180skrw | 0:9fd64882c5aa | 73 | device.printf("%c", DoScript); |
4180skrw | 0:9fd64882c5aa | 74 | } |
4180skrw | 0:9fd64882c5aa | 75 | else { |
4180skrw | 0:9fd64882c5aa | 76 | device.printf("%c%c", PlaySong, char(mag)); |
4180skrw | 0:9fd64882c5aa | 77 | } |
4180skrw | 0:9fd64882c5aa | 78 | } |