Code for RFID Robot

Dependencies:   DebounceIn HTTPClient ID12RFID SDFileSystem TextLCD WiflyInterface iniparser mbed

Committer:
4180skrw
Date:
Tue Dec 10 02:17:48 2013 +0000
Revision:
0:9fd64882c5aa
initial commit

Who changed what in which revision?

UserRevisionLine numberNew 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 }