Sudharshan Venkatesh
/
rc_car_bluetooth
This contains all the code required to move the RC car using the adafruit bluetooth companion app
Diff: main.cpp
- Revision:
- 0:f71a5a97e19e
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue May 04 00:51:48 2021 +0000 @@ -0,0 +1,87 @@ +#include "mbed.h" +#include "Motor.h" + +Motor mr(p23, p19, p20); // pwm, fwd, rev +Motor ml(p24, p21, p22); // pwm, fwd, rev + +float r; +float l; + + +using namespace mbed; + +Serial blue(p9, p10); + + +int main() { + r = 0; + l = 0; + + char bnum=0; + char bhit=0; + while(1) { + if (blue.getc()=='!') { + if (blue.getc()=='B') { //button data packet + bnum = blue.getc(); //button number + bhit = blue.getc(); //1=hit, 0=release + if (blue.getc()==char(~('!' + 'B' + bnum + bhit))) { //checksum OK? + switch (bnum) { + case '5': //button 5 up arrow + if (bhit=='1') { + //add hit code here + printf("fwd"); + l = 1.0; + r = 1.0; + } else { + //add release code here + l = 0.0; + r = 0.0; + } + break; + case '6': //button 6 down arrow + if (bhit=='1') { + //add hit code here + printf("bwd"); + l = -1.0; + r = -1.0; + } else { + //add release code here + l = 0.0; + r = 0.0; + } + break; + case '7': //button 7 left arrow + if (bhit=='1') { + //add hit code here + printf("left"); + l = 1.0; + r = -1.0; + } else { + //add release code here + l = 0.0; + r = 0.0; + } + break; + case '8': //button 8 right arrow + if (bhit=='1') { + //add hit code here + printf("right"); + l = -1.0; + r = 1.0; + } else { + //add release code here + l = 0.0; + r = 0.0; + } + break; + default: + break; + } + } + } + } + mr.speed(l); + ml.speed(r); + printf("Left:%f Right:%f\n", l, r); + } +}