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

Dependencies:   mbed Motor

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "Motor.h"
00003 
00004 Motor mr(p23, p19, p20); // pwm, fwd, rev
00005 Motor ml(p24, p21, p22); // pwm, fwd, rev 
00006 
00007 float r;
00008 float l;
00009 
00010 
00011 using namespace mbed;
00012 
00013 Serial blue(p9, p10);
00014 
00015 
00016 int main() {
00017     r = 0;
00018     l = 0;
00019     
00020     char bnum=0;
00021     char bhit=0;
00022     while(1) {
00023         if (blue.getc()=='!') {
00024             if (blue.getc()=='B') { //button data packet
00025                 bnum = blue.getc(); //button number
00026                 bhit = blue.getc(); //1=hit, 0=release
00027                 if (blue.getc()==char(~('!' + 'B' + bnum + bhit))) { //checksum OK?
00028                     switch (bnum) {
00029                         case '5': //button 5 up arrow
00030                             if (bhit=='1') {
00031                                 //add hit code here
00032                                 printf("fwd");
00033                                 l = 1.0;
00034                                 r = 1.0;
00035                             } else {
00036                                 //add release code here
00037                                 l = 0.0;
00038                                 r = 0.0;
00039                             }
00040                             break;
00041                         case '6': //button 6 down arrow
00042                             if (bhit=='1') {
00043                                 //add hit code here
00044                                 printf("bwd");
00045                                 l = -1.0;
00046                                 r = -1.0;
00047                             } else {
00048                                 //add release code here
00049                                 l = 0.0;
00050                                 r = 0.0;
00051                             }
00052                             break;
00053                         case '7': //button 7 left arrow
00054                             if (bhit=='1') {
00055                                 //add hit code here
00056                                 printf("left");
00057                                 l = 1.0;
00058                                 r = -1.0;
00059                             } else {
00060                                 //add release code here
00061                                 l = 0.0;
00062                                 r = 0.0;
00063                             }
00064                             break;
00065                         case '8': //button 8 right arrow
00066                             if (bhit=='1') {
00067                                 //add hit code here
00068                                 printf("right");
00069                                 l = -1.0;
00070                                 r = 1.0;
00071                             } else {
00072                                 //add release code here
00073                                 l = 0.0;
00074                                 r = 0.0;
00075                             }
00076                             break;
00077                         default:
00078                             break;
00079                     }
00080                 }
00081             }
00082         }
00083         mr.speed(l);
00084         ml.speed(r);
00085         printf("Left:%f Right:%f\n", l, r);
00086     }
00087 }