Mbed HOVER

Dependencies:   Motor Servo mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "Servo.h"
00003 #include "Motor.h"
00004 
00005 
00006 Serial blue(p28,p27);
00007 
00008 
00009 DigitalOut led1(LED1);
00010 DigitalOut led2(LED2);
00011 DigitalOut led3(LED3);
00012 DigitalOut led4(LED4);
00013 
00014 Motor propel(p22, p13, p14);
00015 
00016 Servo turn(p23);
00017 Servo lift(p25);
00018 
00019 int main()
00020 {
00021     char bnum=0;
00022     char bhit=0;
00023     
00024         //calibrating
00025         lift = 0;
00026         wait(0.5);        
00027         lift = 1;
00028         wait(10);
00029         lift = 0;
00030         wait(10);
00031         
00032         
00033         turn =0.5;
00034         lift = 0;
00035         
00036     
00037     
00038     
00039     while(1) {
00040         led1 = 1;
00041         if (blue.getc()=='!') {
00042             if (blue.getc()=='B') { //button data packet
00043                 bnum = blue.getc(); //button number
00044                 bhit = blue.getc(); //1=hit, 0=release
00045                 if (blue.getc()==char(~('!' + 'B' + bnum + bhit))) { //checksum OK?
00046                     
00047                     switch (bnum) {
00048                         case '1': //number button 1
00049                             if (bhit=='1') {
00050                                 //add hit code here
00051                             } else {
00052                                 //add release code here
00053                             }
00054                             break;
00055                         case '2': //number button 2
00056                             if (bhit=='1') {
00057                                 propel.speed(1);//add hit code here
00058                             } else {
00059                                 propel.speed(0);//add release code here
00060                             }
00061                             break;
00062                         case '3': //number button 3
00063                             if (bhit=='1') {
00064                                 //add hit code here
00065                             } else {
00066                                 //add release code here
00067                             }
00068                             break;
00069                         case '4': //number button 4
00070                             if (bhit=='1') {
00071                                 propel.speed(-1);//add hit code here
00072                             } else {
00073                                 propel.speed(0);//add release code here
00074                             }
00075                             break;
00076                         case '5': //button 5 up arrow
00077                             if (bhit=='1') {
00078                                 lift = 0.2;
00079                                 wait(2);
00080                                 lift = 0.4;
00081                                 wait(2);
00082                                 lift = 0.45;
00083                                 wait(2);
00084                                 lift = 0.6;
00085                                 wait(2);
00086                                 lift = 0.7;
00087                                 wait(2);
00088                                 lift = 0.8;
00089                                 wait(2);
00090                                 lift = 0.9;
00091                                 wait(2);
00092                                 lift= 1;
00093                                 
00094                                 
00095                                 
00096                                 
00097                                 
00098                             } else {
00099                                //lift = 0.5;//add release code here
00100                             }
00101                             break;
00102                         case '6': //button 6 down arrow
00103                             if (bhit=='1') {
00104                                 lift = 0;//add hit code here
00105                             } else {
00106                                 lift = 0;//add release code here
00107                             }
00108                             break;
00109                         case '7': //button 7 left arrow
00110                             if (bhit=='1') {
00111                                 
00112                                 turn = 1;//add hit code here
00113                             } else {
00114                                 turn = 0.5;//add release code here
00115                             }
00116                             break;
00117                         case '8': //button 8 right arrow
00118                             if (bhit=='1') {
00119                                 
00120                                 turn = 0;//add hit code here
00121                             } else {
00122                                 turn = 0.5;//add release code here
00123                             }
00124                             break;
00125                         default:
00126                             break;
00127                     }
00128                 }
00129             }
00130         }
00131     }
00132 }