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
main.cpp@0:cf5720bcf459, 2015-04-27 (annotated)
- Committer:
- kbhagat6
- Date:
- Mon Apr 27 02:07:10 2015 +0000
- Revision:
- 0:cf5720bcf459
first commit
Who changed what in which revision?
User | Revision | Line number | New 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 |