der Roboter
/
BlueToothStuff
WORK IN PROGRESS
Fork of ThursWork by
main.cpp
- Committer:
- satyson
- Date:
- 2014-05-22
- Revision:
- 1:6402638c6f6d
- Parent:
- 0:386c250325ce
- Child:
- 2:cc7b01c5a9b0
File content as of revision 1:6402638c6f6d:
#include "mbed.h" #include "m3pi_ng.h" #include "cmath" #include "iostream" #include "btbee.h" using namespace std; m3pi thinggy; btbee btbee; DigitalOut mbed_led[] = {(LED1), (LED2),(LED3), (LED4)}; DigitalOut m3pi_led[] = {(p13), (p14), (p15), (p16), (p17), (p18), (p19), (p20)}; DigitalIn m3pi_pb(p21); int main() { //..................................................................................................\\ //......BlueTooth Communication.....................................................................\\ //..................................................................................................\\ // initialization stuff //////////////////////////////////////////////////////////////////////////////////////////////////// thinggy.locate(0,1); btbee.reset(); for (int i = 0; i <4; i++) { mbed_led[i] = 0; } for (int i = 0; i <8; i++) { m3pi_led[i]=0; } m3pi_pb.mode(PullUp); // expected would be 1 when pb is pressed, 0 when not, opposite is the case // end initialization stuff //////////////////////////////////////////////////////////////////////////////////////////////// thinggy.locate(0,0); wait(0.3); thinggy.locate(0,0); thinggy.printf("%s","btTest"); thinggy.locate(0,1); thinggy.printf("%s","PBonLNK"); // wait for the user to push P21, should be pressed when the bt link is established (green led "link") while(m3pi_pb) { m3pi_led[0]=!m3pi_led[0]; wait(0.1); } int iline=1; char arr_read[30]; // this should be long enough to store any reply coming in over bt. int chars_read; // number of chars read in a bt reply while (true) { // this writes "Line 001\n" to "Line 005\n" and then "end\n" to the btbee if ( btbee.writeable() ) { if (iline==6) { btbee.printf("Your Turn!\n"); iline++; }//if else { if (iline <6){ btbee.printf("Line %0.3d \n",iline); m3pi_led[0]=0; thinggy.locate(0,0); thinggy.printf("Sent %0.3d",iline); iline++; } }//else }//if_write // check for answers after each write /not write while ( btbee.readable() ) { m3pi_led[7]=1; btbee.read_all(arr_read, 30, &chars_read ); m3pi_led[6]=1; thinggy.locate(0,1); thinggy.print(arr_read,chars_read); m3pi_led[5]=1; }//while_readable wait(0.1); }//while_true //..................................................................................................\\ //......End BlueTooth Communication.................................................................\\ //..................................................................................................\\ /* float speed = 0.25; float correction; float k = -0.3; int sensor[5]; int returned; thinggy.locate(0,1); thinggy.printf("Villan"); thinggy.locate(0,0); thinggy.printf("Pimpin"); wait(1.0); thinggy.sensor_auto_calibrate(); thinggy.calibrated_sensor(sensor); returned = (sensor[1] + sensor[2] + sensor[3])/3; while(1) { // change "if" to while while(returned < 220){ while(sensor[0] < sensor[4] && thinggy.line_position() != 0){ thinggy.left_motor(.2); thinggy.right_motor(-.2); thinggy.calibrated_sensor(sensor); } while(sensor[4] > sensor[0] && thinggy.line_position() != 0){ thinggy.left_motor(-.2); thinggy.right_motor(.2); thinggy.calibrated_sensor(sensor); } thinggy.calibrated_sensor(sensor); returned = (sensor[1] + sensor[2] + sensor[3])/3; } // Curves and straightaways while(returned > 220){ float position = thinggy.line_position(); correction = k*(position); // -1.0 is far left, 1.0 is far right, 0.0 in the middle //speed limiting for right motor if(speed + correction > 1){ thinggy.right_motor(0.6); thinggy.left_motor(speed-correction); } else if(speed - correction > 1){ thinggy.right_motor(speed+correction); thinggy.left_motor(0.6); } else{ thinggy.left_motor(speed-correction); thinggy.right_motor(speed+correction); } thinggy.calibrated_sensor(sensor); returned = (sensor[1] + sensor[2] + sensor[3])/3; } thinggy.calibrated_sensor(sensor); returned = (sensor[1] + sensor[2] + sensor[3])/3; } */ }