This program is a user interface to send gesture commands to the Magician Robot.

Dependencies:   4DGL-uLCD-SE APDS_9960 PinDetect SDFileSystem mbed wave_player

Committer:
kbhagat6
Date:
Mon Apr 27 02:07:10 2015 +0000
Revision:
0:cf5720bcf459
first commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kbhagat6 0:cf5720bcf459 1 #include "mbed.h"
kbhagat6 0:cf5720bcf459 2 #include "uLCD_4DGL.h"
kbhagat6 0:cf5720bcf459 3 #include "glibr.h"
kbhagat6 0:cf5720bcf459 4 #include "PinDetect.h"
kbhagat6 0:cf5720bcf459 5 #include "string"
kbhagat6 0:cf5720bcf459 6 #include "SDFileSystem.h"
kbhagat6 0:cf5720bcf459 7 #include "wave_player.h"
kbhagat6 0:cf5720bcf459 8
kbhagat6 0:cf5720bcf459 9 glibr GSensor(p9,p10);
kbhagat6 0:cf5720bcf459 10
kbhagat6 0:cf5720bcf459 11 PinDetect pb2(p15);
kbhagat6 0:cf5720bcf459 12 SDFileSystem sd(p5, p6, p7, p8, "sd"); //SD card
kbhagat6 0:cf5720bcf459 13 AnalogOut DACout(p18);
kbhagat6 0:cf5720bcf459 14 wave_player waver(&DACout);
kbhagat6 0:cf5720bcf459 15 DigitalOut myled(LED1);
kbhagat6 0:cf5720bcf459 16 DigitalOut myled2(LED2);
kbhagat6 0:cf5720bcf459 17 Serial xbee2(p13, p14);
kbhagat6 0:cf5720bcf459 18 uLCD_4DGL lcd(p28, p27, p30);
kbhagat6 0:cf5720bcf459 19
kbhagat6 0:cf5720bcf459 20 #define DEBUGLCD 0
kbhagat6 0:cf5720bcf459 21 #ifdef DEBUGLCD
kbhagat6 0:cf5720bcf459 22 Serial pc2(USBTX,USBRX);
kbhagat6 0:cf5720bcf459 23 #endif
kbhagat6 0:cf5720bcf459 24 //DigitalOut INT(p11);
kbhagat6 0:cf5720bcf459 25 //uint16_t ambient_light = 0;
kbhagat6 0:cf5720bcf459 26 //uint16_t red_light = 0;
kbhagat6 0:cf5720bcf459 27 //uint16_t green_light = 0;
kbhagat6 0:cf5720bcf459 28 //uint16_t blue_light = 0;
kbhagat6 0:cf5720bcf459 29 //int volatile stop=0;
kbhagat6 0:cf5720bcf459 30 //int volatile go=0;
kbhagat6 0:cf5720bcf459 31 string str;
kbhagat6 0:cf5720bcf459 32
kbhagat6 0:cf5720bcf459 33
kbhagat6 0:cf5720bcf459 34 void setup()
kbhagat6 0:cf5720bcf459 35 {
kbhagat6 0:cf5720bcf459 36
kbhagat6 0:cf5720bcf459 37 lcd.baudrate(3000000);
kbhagat6 0:cf5720bcf459 38 lcd.background_color(0);
kbhagat6 0:cf5720bcf459 39 lcd.cls();
kbhagat6 0:cf5720bcf459 40
kbhagat6 0:cf5720bcf459 41 lcd.printf("Initializing...");
kbhagat6 0:cf5720bcf459 42 wait(0.2);
kbhagat6 0:cf5720bcf459 43 lcd.cls();
kbhagat6 0:cf5720bcf459 44 lcd.color(RED);
kbhagat6 0:cf5720bcf459 45 }
kbhagat6 0:cf5720bcf459 46
kbhagat6 0:cf5720bcf459 47 void printRIG(int column, int roww){
kbhagat6 0:cf5720bcf459 48 lcd.cls();
kbhagat6 0:cf5720bcf459 49 lcd.text_width(1);
kbhagat6 0:cf5720bcf459 50 lcd.text_height(1);
kbhagat6 0:cf5720bcf459 51 int col, row, r, c;
kbhagat6 0:cf5720bcf459 52
kbhagat6 0:cf5720bcf459 53 /* Draw staff of arrow */
kbhagat6 0:cf5720bcf459 54 for(col=3; col<13; col++)
kbhagat6 0:cf5720bcf459 55 for(row=5; row<10; row++)
kbhagat6 0:cf5720bcf459 56 lcd.text_char('=', col, row, GREEN);
kbhagat6 0:cf5720bcf459 57
kbhagat6 0:cf5720bcf459 58 /* Draw arrowhead */
kbhagat6 0:cf5720bcf459 59 lcd.text_char('*', col-2, 4, GREEN); lcd.text_char('*', col-2, 3, GREEN);
kbhagat6 0:cf5720bcf459 60 lcd.text_char('*', col-1, 4, GREEN);
kbhagat6 0:cf5720bcf459 61 int a = 5, b=5;
kbhagat6 0:cf5720bcf459 62 for(c = col; c<(col+3); c++){
kbhagat6 0:cf5720bcf459 63 for(r = a; r<(a+b); r++)
kbhagat6 0:cf5720bcf459 64 lcd.text_char('*', c, r, GREEN);
kbhagat6 0:cf5720bcf459 65 a++; b-=2;
kbhagat6 0:cf5720bcf459 66 }
kbhagat6 0:cf5720bcf459 67 lcd.text_char('*', 11, row, GREEN); lcd.text_char('*', 11, row+1, GREEN);
kbhagat6 0:cf5720bcf459 68 lcd.text_char('*', 12, row, GREEN);
kbhagat6 0:cf5720bcf459 69
kbhagat6 0:cf5720bcf459 70 /* Print Command String */
kbhagat6 0:cf5720bcf459 71 lcd.text_width(2);
kbhagat6 0:cf5720bcf459 72 lcd.text_height(2);
kbhagat6 0:cf5720bcf459 73 lcd.text_string("RIG", column, roww, FONT_7X8, WHITE);
kbhagat6 0:cf5720bcf459 74 }
kbhagat6 0:cf5720bcf459 75
kbhagat6 0:cf5720bcf459 76 void printLEF(int column, int roww){
kbhagat6 0:cf5720bcf459 77 lcd.cls();
kbhagat6 0:cf5720bcf459 78 lcd.text_width(1);
kbhagat6 0:cf5720bcf459 79 lcd.text_height(1);
kbhagat6 0:cf5720bcf459 80 int col, row, r, c;
kbhagat6 0:cf5720bcf459 81
kbhagat6 0:cf5720bcf459 82 /* Draw staff of arrow */
kbhagat6 0:cf5720bcf459 83 for(col=15; col>=6; col--)
kbhagat6 0:cf5720bcf459 84 for(row=5; row<10; row++)
kbhagat6 0:cf5720bcf459 85 lcd.text_char('=', col, row, GREEN);
kbhagat6 0:cf5720bcf459 86 /* Draw arrowhead */
kbhagat6 0:cf5720bcf459 87 lcd.text_char('*', col+2, 4, GREEN); lcd.text_char('*', col+2, 3, GREEN); lcd.text_char('*', col+1, 4, GREEN);
kbhagat6 0:cf5720bcf459 88 lcd.text_char('*', col+2, row, GREEN); lcd.text_char('*', col+1, row, GREEN); lcd.text_char('*', col+2, row+1, GREEN);
kbhagat6 0:cf5720bcf459 89 int a = 5, b=5;
kbhagat6 0:cf5720bcf459 90 for(c = col; c>(col-3); c--){
kbhagat6 0:cf5720bcf459 91 for(r = a; r<(a+b); r++)
kbhagat6 0:cf5720bcf459 92 lcd.text_char('*', c, r, GREEN);
kbhagat6 0:cf5720bcf459 93 a++; b-=2;
kbhagat6 0:cf5720bcf459 94 }
kbhagat6 0:cf5720bcf459 95
kbhagat6 0:cf5720bcf459 96 /* Print Command String */
kbhagat6 0:cf5720bcf459 97 lcd.text_width(2);
kbhagat6 0:cf5720bcf459 98 lcd.text_height(2);
kbhagat6 0:cf5720bcf459 99 lcd.text_string("LEF", column, roww, FONT_7X8, WHITE);
kbhagat6 0:cf5720bcf459 100 }
kbhagat6 0:cf5720bcf459 101
kbhagat6 0:cf5720bcf459 102 void printBWD(int column, int roww){
kbhagat6 0:cf5720bcf459 103 lcd.cls();
kbhagat6 0:cf5720bcf459 104 lcd.text_width(1);
kbhagat6 0:cf5720bcf459 105 lcd.text_height(1);
kbhagat6 0:cf5720bcf459 106 int col, row, r, c;
kbhagat6 0:cf5720bcf459 107
kbhagat6 0:cf5720bcf459 108 /* Draw staff of arrow */
kbhagat6 0:cf5720bcf459 109 for(row = 2; row<7; row++)
kbhagat6 0:cf5720bcf459 110 for(col = 5; col<14; col++)
kbhagat6 0:cf5720bcf459 111 lcd.text_char('|',col, row, GREEN);
kbhagat6 0:cf5720bcf459 112
kbhagat6 0:cf5720bcf459 113 /* Draw arrowhead */
kbhagat6 0:cf5720bcf459 114 lcd.text_char('_', col, row-1, GREEN); lcd.text_char('_', col+1, row-1, GREEN);
kbhagat6 0:cf5720bcf459 115 lcd.text_char('_', 4, row-1, GREEN); lcd.text_char('_', 3, row-1, GREEN);
kbhagat6 0:cf5720bcf459 116 int a = 5, b=8;
kbhagat6 0:cf5720bcf459 117 for(r=row; r<=(row+5); r++){
kbhagat6 0:cf5720bcf459 118 for(c=a; c<=(a+b); c++)
kbhagat6 0:cf5720bcf459 119 lcd.text_char('*', c, r, GREEN);
kbhagat6 0:cf5720bcf459 120 a++; b-=2;
kbhagat6 0:cf5720bcf459 121 }
kbhagat6 0:cf5720bcf459 122
kbhagat6 0:cf5720bcf459 123 /* Print Command String */
kbhagat6 0:cf5720bcf459 124 lcd.text_width(2);
kbhagat6 0:cf5720bcf459 125 lcd.text_height(2);
kbhagat6 0:cf5720bcf459 126 lcd.text_string("BWD", column, roww, FONT_7X8, WHITE);
kbhagat6 0:cf5720bcf459 127 }
kbhagat6 0:cf5720bcf459 128
kbhagat6 0:cf5720bcf459 129 void printFWD(int column, int roww){
kbhagat6 0:cf5720bcf459 130 lcd.cls();
kbhagat6 0:cf5720bcf459 131 lcd.text_width(1);
kbhagat6 0:cf5720bcf459 132 lcd.text_height(1);
kbhagat6 0:cf5720bcf459 133 int col, row, r, c;
kbhagat6 0:cf5720bcf459 134
kbhagat6 0:cf5720bcf459 135 /* Draw staff of arrow */
kbhagat6 0:cf5720bcf459 136 for(row = 10; row>=6; row--)
kbhagat6 0:cf5720bcf459 137 for(col = 5; col<14; col++)
kbhagat6 0:cf5720bcf459 138 lcd.text_char('|',col, row, GREEN);
kbhagat6 0:cf5720bcf459 139
kbhagat6 0:cf5720bcf459 140 /* Draw arrowhead */
kbhagat6 0:cf5720bcf459 141 lcd.text_char('_', col, row, GREEN); lcd.text_char('_', col+1, row, GREEN);
kbhagat6 0:cf5720bcf459 142 lcd.text_char('_', 4, row, GREEN); lcd.text_char('_', 3, row, GREEN);
kbhagat6 0:cf5720bcf459 143 int a = 5, b=8;
kbhagat6 0:cf5720bcf459 144 for(r=row; r>=(row-5); r--){
kbhagat6 0:cf5720bcf459 145 for(c=a; c<=(a+b); c++)
kbhagat6 0:cf5720bcf459 146 lcd.text_char('*', c, r, GREEN);
kbhagat6 0:cf5720bcf459 147 a++; b-=2;
kbhagat6 0:cf5720bcf459 148 }
kbhagat6 0:cf5720bcf459 149
kbhagat6 0:cf5720bcf459 150 /* Print Command String */
kbhagat6 0:cf5720bcf459 151 lcd.text_width(2);
kbhagat6 0:cf5720bcf459 152 lcd.text_height(2);
kbhagat6 0:cf5720bcf459 153 lcd.text_string("FWD", column, roww, FONT_7X8, WHITE);
kbhagat6 0:cf5720bcf459 154 }
kbhagat6 0:cf5720bcf459 155
kbhagat6 0:cf5720bcf459 156 void printERR(int column, int roww){
kbhagat6 0:cf5720bcf459 157 lcd.cls();
kbhagat6 0:cf5720bcf459 158 // lcd.filled_circle(64 , 60 , 20, WHITE);
kbhagat6 0:cf5720bcf459 159 lcd.text_width(8);
kbhagat6 0:cf5720bcf459 160 lcd.text_height(8);
kbhagat6 0:cf5720bcf459 161 lcd.text_string("!!!", column, roww, FONT_7X8, RED);
kbhagat6 0:cf5720bcf459 162 lcd.text_string("!!!", column, roww+1, FONT_7X8, RED);
kbhagat6 0:cf5720bcf459 163 lcd.text_width(2);
kbhagat6 0:cf5720bcf459 164 lcd.text_height(2);
kbhagat6 0:cf5720bcf459 165 lcd.text_string("ERR", 3, 7, FONT_7X8, WHITE);
kbhagat6 0:cf5720bcf459 166
kbhagat6 0:cf5720bcf459 167 }
kbhagat6 0:cf5720bcf459 168
kbhagat6 0:cf5720bcf459 169 void printSTOP(int column, int roww){
kbhagat6 0:cf5720bcf459 170 lcd.cls();
kbhagat6 0:cf5720bcf459 171 lcd.filled_circle(64 , 60 , 35, RED);
kbhagat6 0:cf5720bcf459 172 lcd.text_width(2);
kbhagat6 0:cf5720bcf459 173 lcd.text_height(2);
kbhagat6 0:cf5720bcf459 174 lcd.text_string("STP", column, roww, FONT_7X8, WHITE);
kbhagat6 0:cf5720bcf459 175 }
kbhagat6 0:cf5720bcf459 176
kbhagat6 0:cf5720bcf459 177
kbhagat6 0:cf5720bcf459 178
kbhagat6 0:cf5720bcf459 179
kbhagat6 0:cf5720bcf459 180 void pb2_hit_callback (void) {
kbhagat6 0:cf5720bcf459 181 myled2 =!myled2;
kbhagat6 0:cf5720bcf459 182 str.append("S");
kbhagat6 0:cf5720bcf459 183 #ifdef DEBUGLCD
kbhagat6 0:cf5720bcf459 184 pc2.printf("%s\n", str);
kbhagat6 0:cf5720bcf459 185 #endif
kbhagat6 0:cf5720bcf459 186 xbee2.putc('S');
kbhagat6 0:cf5720bcf459 187 printSTOP(3, 7);
kbhagat6 0:cf5720bcf459 188 // FILE *Stop;
kbhagat6 0:cf5720bcf459 189 // Stop=fopen("/sd/Stop.wav","r");
kbhagat6 0:cf5720bcf459 190 // if(Stop!=NULL){
kbhagat6 0:cf5720bcf459 191 // waver.play(Stop);
kbhagat6 0:cf5720bcf459 192 // }else{
kbhagat6 0:cf5720bcf459 193 // pc2.printf("Stop not open");
kbhagat6 0:cf5720bcf459 194 // }
kbhagat6 0:cf5720bcf459 195 // fclose(Stop);
kbhagat6 0:cf5720bcf459 196 str.clear();
kbhagat6 0:cf5720bcf459 197 }
kbhagat6 0:cf5720bcf459 198
kbhagat6 0:cf5720bcf459 199 int main()
kbhagat6 0:cf5720bcf459 200 {
kbhagat6 0:cf5720bcf459 201
kbhagat6 0:cf5720bcf459 202 bool gerror=false;
kbhagat6 0:cf5720bcf459 203
kbhagat6 0:cf5720bcf459 204 if (GSensor.ginit()) {
kbhagat6 0:cf5720bcf459 205
kbhagat6 0:cf5720bcf459 206 #ifdef DEBUGLCD
kbhagat6 0:cf5720bcf459 207 pc2.printf("APDS-9960 initialization complete\n\r");
kbhagat6 0:cf5720bcf459 208 #endif
kbhagat6 0:cf5720bcf459 209 } else {
kbhagat6 0:cf5720bcf459 210 #ifdef DEBUGLCD
kbhagat6 0:cf5720bcf459 211 pc2.printf("Something went wrong during APDS-9960 init\n\r");
kbhagat6 0:cf5720bcf459 212 #endif
kbhagat6 0:cf5720bcf459 213 gerror=true;
kbhagat6 0:cf5720bcf459 214 }
kbhagat6 0:cf5720bcf459 215
kbhagat6 0:cf5720bcf459 216 // Start running the APDS-9960 gesture sensor engine
kbhagat6 0:cf5720bcf459 217 if ( GSensor.enableGestureSensor(true) ) {
kbhagat6 0:cf5720bcf459 218 #ifdef DEBUGLCD
kbhagat6 0:cf5720bcf459 219 pc2.printf("Gesture sensor is now running\n\r");
kbhagat6 0:cf5720bcf459 220 #endif
kbhagat6 0:cf5720bcf459 221 } else {
kbhagat6 0:cf5720bcf459 222 #ifdef DEBUGLCD
kbhagat6 0:cf5720bcf459 223 pc2.printf("Something went wrong during gesture sensor init!\n\r");
kbhagat6 0:cf5720bcf459 224 #endif
kbhagat6 0:cf5720bcf459 225 gerror=true;
kbhagat6 0:cf5720bcf459 226
kbhagat6 0:cf5720bcf459 227 }
kbhagat6 0:cf5720bcf459 228
kbhagat6 0:cf5720bcf459 229
kbhagat6 0:cf5720bcf459 230
kbhagat6 0:cf5720bcf459 231 pb2.mode(PullUp);
kbhagat6 0:cf5720bcf459 232 // Delay for initial pullup to take effect
kbhagat6 0:cf5720bcf459 233 wait(.01);
kbhagat6 0:cf5720bcf459 234 // Setup Interrupt callback function for a pb hit
kbhagat6 0:cf5720bcf459 235 pb2.attach_deasserted(&pb2_hit_callback);
kbhagat6 0:cf5720bcf459 236 // Start sampling pb input using interrupts
kbhagat6 0:cf5720bcf459 237 pb2.setSampleFrequency();
kbhagat6 0:cf5720bcf459 238 setup();
kbhagat6 0:cf5720bcf459 239
kbhagat6 0:cf5720bcf459 240 while(!(GSensor.isGestureAvailable())){
kbhagat6 0:cf5720bcf459 241 lcd.text_width(2);
kbhagat6 0:cf5720bcf459 242 lcd.text_height(2);
kbhagat6 0:cf5720bcf459 243 lcd.text_string("READY", 2, 2, FONT_12X16, WHITE);
kbhagat6 0:cf5720bcf459 244 lcd.text_string("FOR", 3, 3, FONT_12X16, WHITE);
kbhagat6 0:cf5720bcf459 245 lcd.text_string("INPUT", 2, 4, FONT_12X16, WHITE);
kbhagat6 0:cf5720bcf459 246 wait(0.5);
kbhagat6 0:cf5720bcf459 247 lcd.cls();
kbhagat6 0:cf5720bcf459 248 wait(0.5);
kbhagat6 0:cf5720bcf459 249 }
kbhagat6 0:cf5720bcf459 250
kbhagat6 0:cf5720bcf459 251 int temp;
kbhagat6 0:cf5720bcf459 252 FILE *Forward;
kbhagat6 0:cf5720bcf459 253 FILE *Backward;
kbhagat6 0:cf5720bcf459 254 FILE *Left;
kbhagat6 0:cf5720bcf459 255 FILE *Right;
kbhagat6 0:cf5720bcf459 256 FILE *Error;
kbhagat6 0:cf5720bcf459 257 FILE *Stop;
kbhagat6 0:cf5720bcf459 258
kbhagat6 0:cf5720bcf459 259 while(gerror==false) {
kbhagat6 0:cf5720bcf459 260
kbhagat6 0:cf5720bcf459 261 /*ret = GSensor.isGestureAvailable();
kbhagat6 0:cf5720bcf459 262 pc2.printf("Is Gesture Available?: %d\n", ret);
kbhagat6 0:cf5720bcf459 263 myled = ret;
kbhagat6 0:cf5720bcf459 264 val = GSensor.readGesture();
kbhagat6 0:cf5720bcf459 265 */
kbhagat6 0:cf5720bcf459 266
kbhagat6 0:cf5720bcf459 267
kbhagat6 0:cf5720bcf459 268 if ( GSensor.isGestureAvailable() || xbee2.readable()) {
kbhagat6 0:cf5720bcf459 269
kbhagat6 0:cf5720bcf459 270 if(xbee2.readable()&& xbee2.getc()=='C'){
kbhagat6 0:cf5720bcf459 271 temp= 67;
kbhagat6 0:cf5720bcf459 272 }else if(GSensor.isGestureAvailable()){
kbhagat6 0:cf5720bcf459 273 temp=GSensor.readGesture();
kbhagat6 0:cf5720bcf459 274 }
kbhagat6 0:cf5720bcf459 275
kbhagat6 0:cf5720bcf459 276
kbhagat6 0:cf5720bcf459 277 switch ( temp) {
kbhagat6 0:cf5720bcf459 278 case DIR_UP:
kbhagat6 0:cf5720bcf459 279 #ifdef DEBUGLCD
kbhagat6 0:cf5720bcf459 280 pc2.printf("Forward\n");
kbhagat6 0:cf5720bcf459 281 #endif
kbhagat6 0:cf5720bcf459 282 xbee2.putc('F');
kbhagat6 0:cf5720bcf459 283 printFWD(3, 7);
kbhagat6 0:cf5720bcf459 284 Forward=fopen("/sd/Forward.wav","r");
kbhagat6 0:cf5720bcf459 285 if(Forward!=NULL){
kbhagat6 0:cf5720bcf459 286 waver.play(Forward);
kbhagat6 0:cf5720bcf459 287 }else{pc2.printf("Forward not open");}
kbhagat6 0:cf5720bcf459 288 fclose(Forward);
kbhagat6 0:cf5720bcf459 289 str.append("F");
kbhagat6 0:cf5720bcf459 290 break;
kbhagat6 0:cf5720bcf459 291 case DIR_DOWN:
kbhagat6 0:cf5720bcf459 292 #ifdef DEBUGLCD
kbhagat6 0:cf5720bcf459 293 pc2.printf("Backward\n");
kbhagat6 0:cf5720bcf459 294 #endif
kbhagat6 0:cf5720bcf459 295 xbee2.putc('B');
kbhagat6 0:cf5720bcf459 296 printBWD(3, 7);
kbhagat6 0:cf5720bcf459 297 Backward=fopen("/sd/Backward.wav","r");
kbhagat6 0:cf5720bcf459 298 if(Backward!=NULL){
kbhagat6 0:cf5720bcf459 299 waver.play(Backward);
kbhagat6 0:cf5720bcf459 300 }else{pc2.printf("Backward not open");}
kbhagat6 0:cf5720bcf459 301 fclose(Backward);
kbhagat6 0:cf5720bcf459 302 str.append("B");
kbhagat6 0:cf5720bcf459 303 break;
kbhagat6 0:cf5720bcf459 304 case DIR_LEFT:
kbhagat6 0:cf5720bcf459 305 #ifdef DEBUGLCD
kbhagat6 0:cf5720bcf459 306 pc2.printf("LEFT\n");
kbhagat6 0:cf5720bcf459 307 #endif
kbhagat6 0:cf5720bcf459 308 xbee2.putc('L');
kbhagat6 0:cf5720bcf459 309 printLEF(3, 7);
kbhagat6 0:cf5720bcf459 310 Left=fopen("/sd/Left.wav","r");
kbhagat6 0:cf5720bcf459 311 if(Left!=NULL){
kbhagat6 0:cf5720bcf459 312 waver.play(Left);
kbhagat6 0:cf5720bcf459 313 }else{pc2.printf("Left not open");}
kbhagat6 0:cf5720bcf459 314 fclose(Left);
kbhagat6 0:cf5720bcf459 315 str.append("L");
kbhagat6 0:cf5720bcf459 316 break;
kbhagat6 0:cf5720bcf459 317 case DIR_RIGHT:
kbhagat6 0:cf5720bcf459 318 #ifdef DEBUGLCD
kbhagat6 0:cf5720bcf459 319 pc2.printf("RIGHT\n");
kbhagat6 0:cf5720bcf459 320 #endif
kbhagat6 0:cf5720bcf459 321 xbee2.putc('R');
kbhagat6 0:cf5720bcf459 322 printRIG(3, 7);
kbhagat6 0:cf5720bcf459 323
kbhagat6 0:cf5720bcf459 324 Right=fopen("/sd/Right.wav","r");
kbhagat6 0:cf5720bcf459 325 if(Right!=NULL){
kbhagat6 0:cf5720bcf459 326 waver.play(Right);
kbhagat6 0:cf5720bcf459 327 }else{ pc2.printf("Right not open"); }
kbhagat6 0:cf5720bcf459 328 fclose(Right);
kbhagat6 0:cf5720bcf459 329 str.append("R");
kbhagat6 0:cf5720bcf459 330 break;
kbhagat6 0:cf5720bcf459 331 case 67:
kbhagat6 0:cf5720bcf459 332 #ifdef DEBUGLCD
kbhagat6 0:cf5720bcf459 333 pc2.printf("Collision\n");
kbhagat6 0:cf5720bcf459 334 #endif
kbhagat6 0:cf5720bcf459 335 printSTOP(3, 7);
kbhagat6 0:cf5720bcf459 336 Stop=fopen("/sd/Stop.wav","r");
kbhagat6 0:cf5720bcf459 337 if(Stop!=NULL){
kbhagat6 0:cf5720bcf459 338 waver.play(Stop);
kbhagat6 0:cf5720bcf459 339 }else{ pc2.printf("Stop not open");}
kbhagat6 0:cf5720bcf459 340 fclose(Stop);
kbhagat6 0:cf5720bcf459 341 str.append("C");
kbhagat6 0:cf5720bcf459 342 break;
kbhagat6 0:cf5720bcf459 343
kbhagat6 0:cf5720bcf459 344 case DIR_NEAR:
kbhagat6 0:cf5720bcf459 345 #ifdef DEBUGLCD
kbhagat6 0:cf5720bcf459 346 pc2.printf("NEAR\n");
kbhagat6 0:cf5720bcf459 347 #endif
kbhagat6 0:cf5720bcf459 348 break;
kbhagat6 0:cf5720bcf459 349 case DIR_FAR:
kbhagat6 0:cf5720bcf459 350 #ifdef DEBUGLCD
kbhagat6 0:cf5720bcf459 351 pc2.printf("FAR\n");
kbhagat6 0:cf5720bcf459 352 #endif
kbhagat6 0:cf5720bcf459 353 break;
kbhagat6 0:cf5720bcf459 354 default:
kbhagat6 0:cf5720bcf459 355 #ifdef DEBUGLCD
kbhagat6 0:cf5720bcf459 356 pc2.printf("NONE\n");
kbhagat6 0:cf5720bcf459 357 #endif
kbhagat6 0:cf5720bcf459 358 printERR(0, 0);
kbhagat6 0:cf5720bcf459 359 Error=fopen("/sd/R2D2a.wav","r");
kbhagat6 0:cf5720bcf459 360 if(Error!=NULL){
kbhagat6 0:cf5720bcf459 361 waver.play(Error);
kbhagat6 0:cf5720bcf459 362 }else{ pc2.printf("Error not open");}
kbhagat6 0:cf5720bcf459 363 fclose(Error);
kbhagat6 0:cf5720bcf459 364 break;
kbhagat6 0:cf5720bcf459 365
kbhagat6 0:cf5720bcf459 366 }
kbhagat6 0:cf5720bcf459 367 }
kbhagat6 0:cf5720bcf459 368
kbhagat6 0:cf5720bcf459 369
kbhagat6 0:cf5720bcf459 370
kbhagat6 0:cf5720bcf459 371 // wait(1);
kbhagat6 0:cf5720bcf459 372
kbhagat6 0:cf5720bcf459 373 }
kbhagat6 0:cf5720bcf459 374
kbhagat6 0:cf5720bcf459 375
kbhagat6 0:cf5720bcf459 376
kbhagat6 0:cf5720bcf459 377
kbhagat6 0:cf5720bcf459 378 }
kbhagat6 0:cf5720bcf459 379