This contains all the code required to move the RC car using the adafruit bluetooth companion app

Dependencies:   mbed Motor

Committer:
svenkatesh
Date:
Tue May 04 00:51:48 2021 +0000
Revision:
0:f71a5a97e19e
initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
svenkatesh 0:f71a5a97e19e 1 #include "mbed.h"
svenkatesh 0:f71a5a97e19e 2 #include "Motor.h"
svenkatesh 0:f71a5a97e19e 3
svenkatesh 0:f71a5a97e19e 4 Motor mr(p23, p19, p20); // pwm, fwd, rev
svenkatesh 0:f71a5a97e19e 5 Motor ml(p24, p21, p22); // pwm, fwd, rev
svenkatesh 0:f71a5a97e19e 6
svenkatesh 0:f71a5a97e19e 7 float r;
svenkatesh 0:f71a5a97e19e 8 float l;
svenkatesh 0:f71a5a97e19e 9
svenkatesh 0:f71a5a97e19e 10
svenkatesh 0:f71a5a97e19e 11 using namespace mbed;
svenkatesh 0:f71a5a97e19e 12
svenkatesh 0:f71a5a97e19e 13 Serial blue(p9, p10);
svenkatesh 0:f71a5a97e19e 14
svenkatesh 0:f71a5a97e19e 15
svenkatesh 0:f71a5a97e19e 16 int main() {
svenkatesh 0:f71a5a97e19e 17 r = 0;
svenkatesh 0:f71a5a97e19e 18 l = 0;
svenkatesh 0:f71a5a97e19e 19
svenkatesh 0:f71a5a97e19e 20 char bnum=0;
svenkatesh 0:f71a5a97e19e 21 char bhit=0;
svenkatesh 0:f71a5a97e19e 22 while(1) {
svenkatesh 0:f71a5a97e19e 23 if (blue.getc()=='!') {
svenkatesh 0:f71a5a97e19e 24 if (blue.getc()=='B') { //button data packet
svenkatesh 0:f71a5a97e19e 25 bnum = blue.getc(); //button number
svenkatesh 0:f71a5a97e19e 26 bhit = blue.getc(); //1=hit, 0=release
svenkatesh 0:f71a5a97e19e 27 if (blue.getc()==char(~('!' + 'B' + bnum + bhit))) { //checksum OK?
svenkatesh 0:f71a5a97e19e 28 switch (bnum) {
svenkatesh 0:f71a5a97e19e 29 case '5': //button 5 up arrow
svenkatesh 0:f71a5a97e19e 30 if (bhit=='1') {
svenkatesh 0:f71a5a97e19e 31 //add hit code here
svenkatesh 0:f71a5a97e19e 32 printf("fwd");
svenkatesh 0:f71a5a97e19e 33 l = 1.0;
svenkatesh 0:f71a5a97e19e 34 r = 1.0;
svenkatesh 0:f71a5a97e19e 35 } else {
svenkatesh 0:f71a5a97e19e 36 //add release code here
svenkatesh 0:f71a5a97e19e 37 l = 0.0;
svenkatesh 0:f71a5a97e19e 38 r = 0.0;
svenkatesh 0:f71a5a97e19e 39 }
svenkatesh 0:f71a5a97e19e 40 break;
svenkatesh 0:f71a5a97e19e 41 case '6': //button 6 down arrow
svenkatesh 0:f71a5a97e19e 42 if (bhit=='1') {
svenkatesh 0:f71a5a97e19e 43 //add hit code here
svenkatesh 0:f71a5a97e19e 44 printf("bwd");
svenkatesh 0:f71a5a97e19e 45 l = -1.0;
svenkatesh 0:f71a5a97e19e 46 r = -1.0;
svenkatesh 0:f71a5a97e19e 47 } else {
svenkatesh 0:f71a5a97e19e 48 //add release code here
svenkatesh 0:f71a5a97e19e 49 l = 0.0;
svenkatesh 0:f71a5a97e19e 50 r = 0.0;
svenkatesh 0:f71a5a97e19e 51 }
svenkatesh 0:f71a5a97e19e 52 break;
svenkatesh 0:f71a5a97e19e 53 case '7': //button 7 left arrow
svenkatesh 0:f71a5a97e19e 54 if (bhit=='1') {
svenkatesh 0:f71a5a97e19e 55 //add hit code here
svenkatesh 0:f71a5a97e19e 56 printf("left");
svenkatesh 0:f71a5a97e19e 57 l = 1.0;
svenkatesh 0:f71a5a97e19e 58 r = -1.0;
svenkatesh 0:f71a5a97e19e 59 } else {
svenkatesh 0:f71a5a97e19e 60 //add release code here
svenkatesh 0:f71a5a97e19e 61 l = 0.0;
svenkatesh 0:f71a5a97e19e 62 r = 0.0;
svenkatesh 0:f71a5a97e19e 63 }
svenkatesh 0:f71a5a97e19e 64 break;
svenkatesh 0:f71a5a97e19e 65 case '8': //button 8 right arrow
svenkatesh 0:f71a5a97e19e 66 if (bhit=='1') {
svenkatesh 0:f71a5a97e19e 67 //add hit code here
svenkatesh 0:f71a5a97e19e 68 printf("right");
svenkatesh 0:f71a5a97e19e 69 l = -1.0;
svenkatesh 0:f71a5a97e19e 70 r = 1.0;
svenkatesh 0:f71a5a97e19e 71 } else {
svenkatesh 0:f71a5a97e19e 72 //add release code here
svenkatesh 0:f71a5a97e19e 73 l = 0.0;
svenkatesh 0:f71a5a97e19e 74 r = 0.0;
svenkatesh 0:f71a5a97e19e 75 }
svenkatesh 0:f71a5a97e19e 76 break;
svenkatesh 0:f71a5a97e19e 77 default:
svenkatesh 0:f71a5a97e19e 78 break;
svenkatesh 0:f71a5a97e19e 79 }
svenkatesh 0:f71a5a97e19e 80 }
svenkatesh 0:f71a5a97e19e 81 }
svenkatesh 0:f71a5a97e19e 82 }
svenkatesh 0:f71a5a97e19e 83 mr.speed(l);
svenkatesh 0:f71a5a97e19e 84 ml.speed(r);
svenkatesh 0:f71a5a97e19e 85 printf("Left:%f Right:%f\n", l, r);
svenkatesh 0:f71a5a97e19e 86 }
svenkatesh 0:f71a5a97e19e 87 }