Sudharshan Venkatesh
/
rc_car_bluetooth
This contains all the code required to move the RC car using the adafruit bluetooth companion app
Embed:
(wiki syntax)
Show/hide line numbers
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 }
Generated on Tue Oct 11 2022 04:04:53 by 1.7.2