der Roboter
/
BlueToothStuff
WORK IN PROGRESS
Fork of ThursWork by
main.cpp@3:bf9a0cd9750c, 2014-05-27 (annotated)
- Committer:
- satyson
- Date:
- Tue May 27 13:20:56 2014 +0000
- Revision:
- 3:bf9a0cd9750c
- Parent:
- 2:cc7b01c5a9b0
Finished I believe
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mmpeter | 0:386c250325ce | 1 | #include "mbed.h" |
mmpeter | 0:386c250325ce | 2 | #include "m3pi_ng.h" |
mmpeter | 0:386c250325ce | 3 | #include "cmath" |
mmpeter | 0:386c250325ce | 4 | #include "iostream" |
satyson | 1:6402638c6f6d | 5 | #include "btbee.h" |
mmpeter | 0:386c250325ce | 6 | |
satyson | 3:bf9a0cd9750c | 7 | |
mmpeter | 0:386c250325ce | 8 | using namespace std; |
mmpeter | 0:386c250325ce | 9 | |
mmpeter | 0:386c250325ce | 10 | m3pi thinggy; |
satyson | 1:6402638c6f6d | 11 | btbee btbee; |
satyson | 1:6402638c6f6d | 12 | |
satyson | 1:6402638c6f6d | 13 | DigitalOut mbed_led[] = {(LED1), (LED2),(LED3), (LED4)}; |
satyson | 1:6402638c6f6d | 14 | DigitalOut m3pi_led[] = {(p13), (p14), (p15), (p16), (p17), (p18), (p19), (p20)}; |
satyson | 1:6402638c6f6d | 15 | DigitalIn m3pi_pb(p21); |
mmpeter | 0:386c250325ce | 16 | |
mmpeter | 0:386c250325ce | 17 | int main() { |
mmpeter | 0:386c250325ce | 18 | |
satyson | 1:6402638c6f6d | 19 | //..................................................................................................\\ |
satyson | 1:6402638c6f6d | 20 | //......BlueTooth Communication.....................................................................\\ |
satyson | 1:6402638c6f6d | 21 | //..................................................................................................\\ |
satyson | 3:bf9a0cd9750c | 22 | |
satyson | 3:bf9a0cd9750c | 23 | // initialization stuff //////////////////////////////////////////////////////////////////////////////////////////////////// |
satyson | 1:6402638c6f6d | 24 | thinggy.locate(0,1); |
satyson | 1:6402638c6f6d | 25 | btbee.reset(); |
satyson | 1:6402638c6f6d | 26 | for (int i = 0; i <4; i++) { |
satyson | 1:6402638c6f6d | 27 | mbed_led[i] = 0; |
satyson | 1:6402638c6f6d | 28 | } |
satyson | 1:6402638c6f6d | 29 | for (int i = 0; i <8; i++) { |
satyson | 1:6402638c6f6d | 30 | m3pi_led[i]=0; |
satyson | 1:6402638c6f6d | 31 | } |
satyson | 1:6402638c6f6d | 32 | m3pi_pb.mode(PullUp); // expected would be 1 when pb is pressed, 0 when not, opposite is the case |
satyson | 1:6402638c6f6d | 33 | |
satyson | 1:6402638c6f6d | 34 | // end initialization stuff //////////////////////////////////////////////////////////////////////////////////////////////// |
satyson | 1:6402638c6f6d | 35 | |
satyson | 3:bf9a0cd9750c | 36 | |
satyson | 1:6402638c6f6d | 37 | thinggy.locate(0,0); |
satyson | 3:bf9a0cd9750c | 38 | thinggy.printf("%s","ThySeeMe"); |
satyson | 1:6402638c6f6d | 39 | thinggy.locate(0,1); |
satyson | 3:bf9a0cd9750c | 40 | thinggy.printf("%s","Rolling"); |
satyson | 1:6402638c6f6d | 41 | |
satyson | 1:6402638c6f6d | 42 | // wait for the user to push P21, should be pressed when the bt link is established (green led "link") |
satyson | 1:6402638c6f6d | 43 | while(m3pi_pb) { |
satyson | 1:6402638c6f6d | 44 | m3pi_led[0]=!m3pi_led[0]; |
satyson | 1:6402638c6f6d | 45 | wait(0.1); |
satyson | 1:6402638c6f6d | 46 | } |
satyson | 1:6402638c6f6d | 47 | |
satyson | 1:6402638c6f6d | 48 | int iline=1; |
satyson | 1:6402638c6f6d | 49 | char arr_read[30]; // this should be long enough to store any reply coming in over bt. |
satyson | 1:6402638c6f6d | 50 | int chars_read; // number of chars read in a bt reply |
satyson | 3:bf9a0cd9750c | 51 | |
satyson | 3:bf9a0cd9750c | 52 | while (true) { |
satyson | 1:6402638c6f6d | 53 | // this writes "Line 001\n" to "Line 005\n" and then "end\n" to the btbee |
satyson | 1:6402638c6f6d | 54 | if ( btbee.writeable() ) { |
satyson | 1:6402638c6f6d | 55 | if (iline==6) { |
satyson | 1:6402638c6f6d | 56 | btbee.printf("Your Turn!\n"); |
satyson | 1:6402638c6f6d | 57 | iline++; |
satyson | 1:6402638c6f6d | 58 | }//if |
satyson | 1:6402638c6f6d | 59 | else { |
satyson | 1:6402638c6f6d | 60 | if (iline <6){ |
satyson | 1:6402638c6f6d | 61 | btbee.printf("Line %0.3d \n",iline); |
satyson | 3:bf9a0cd9750c | 62 | m3pi_led[0]=0; |
satyson | 1:6402638c6f6d | 63 | thinggy.locate(0,0); |
satyson | 1:6402638c6f6d | 64 | thinggy.printf("Sent %0.3d",iline); |
satyson | 1:6402638c6f6d | 65 | iline++; |
satyson | 1:6402638c6f6d | 66 | } |
satyson | 1:6402638c6f6d | 67 | }//else |
satyson | 1:6402638c6f6d | 68 | }//if_write |
satyson | 3:bf9a0cd9750c | 69 | |
satyson | 1:6402638c6f6d | 70 | // check for answers after each write /not write |
satyson | 1:6402638c6f6d | 71 | while ( btbee.readable() ) { |
satyson | 1:6402638c6f6d | 72 | btbee.read_all(arr_read, 30, &chars_read ); |
satyson | 2:cc7b01c5a9b0 | 73 | thinggy.locate(0,0); |
satyson | 2:cc7b01c5a9b0 | 74 | thinggy.cls(); |
satyson | 2:cc7b01c5a9b0 | 75 | thinggy.printf("IGotMsg!"); |
satyson | 2:cc7b01c5a9b0 | 76 | if (arr_read[0] == 'l'){ |
satyson | 2:cc7b01c5a9b0 | 77 | thinggy.locate(0,1); |
satyson | 2:cc7b01c5a9b0 | 78 | thinggy.cls(); |
satyson | 2:cc7b01c5a9b0 | 79 | thinggy.printf("TurningL"); |
satyson | 3:bf9a0cd9750c | 80 | thinggy.left_motor(0.2); |
satyson | 3:bf9a0cd9750c | 81 | thinggy.right_motor(-0.2); |
satyson | 2:cc7b01c5a9b0 | 82 | } |
satyson | 2:cc7b01c5a9b0 | 83 | else if (arr_read[0] == 'r'){ |
satyson | 2:cc7b01c5a9b0 | 84 | thinggy.locate(0,1); |
satyson | 2:cc7b01c5a9b0 | 85 | thinggy.cls(); |
satyson | 2:cc7b01c5a9b0 | 86 | thinggy.printf("TurningR"); |
satyson | 3:bf9a0cd9750c | 87 | thinggy.left_motor(-0.2); |
satyson | 3:bf9a0cd9750c | 88 | thinggy.right_motor(0.2); |
satyson | 2:cc7b01c5a9b0 | 89 | // add code to turn right |
satyson | 2:cc7b01c5a9b0 | 90 | } |
satyson | 2:cc7b01c5a9b0 | 91 | else if (arr_read[0] == 'f'){ |
satyson | 2:cc7b01c5a9b0 | 92 | thinggy.locate(0,1); |
satyson | 2:cc7b01c5a9b0 | 93 | thinggy.cls(); |
satyson | 2:cc7b01c5a9b0 | 94 | thinggy.printf("GoingFwd"); |
satyson | 3:bf9a0cd9750c | 95 | thinggy.forward(0.1); |
satyson | 2:cc7b01c5a9b0 | 96 | } |
satyson | 3:bf9a0cd9750c | 97 | else if (arr_read[0] == 's'){ |
satyson | 3:bf9a0cd9750c | 98 | thinggy.locate(0,1); |
satyson | 3:bf9a0cd9750c | 99 | thinggy.cls(); |
satyson | 3:bf9a0cd9750c | 100 | thinggy.printf("Stopping"); |
satyson | 3:bf9a0cd9750c | 101 | thinggy.stop(); |
satyson | 3:bf9a0cd9750c | 102 | } |
satyson | 1:6402638c6f6d | 103 | }//while_readable |
satyson | 1:6402638c6f6d | 104 | wait(0.1); |
satyson | 1:6402638c6f6d | 105 | }//while_true |
satyson | 3:bf9a0cd9750c | 106 | |
satyson | 3:bf9a0cd9750c | 107 | }//main |