Mbed HOVER

Dependencies:   Motor Servo mbed

main.cpp

Committer:
hankpkai
Date:
2017-04-24
Revision:
0:146e770d8ab8

File content as of revision 0:146e770d8ab8:

#include "mbed.h"
#include "Servo.h"
#include "Motor.h"


Serial blue(p28,p27);


DigitalOut led1(LED1);
DigitalOut led2(LED2);
DigitalOut led3(LED3);
DigitalOut led4(LED4);

Motor propel(p22, p13, p14);

Servo turn(p23);
Servo lift(p25);

int main()
{
    char bnum=0;
    char bhit=0;
    
        //calibrating
        lift = 0;
        wait(0.5);        
        lift = 1;
        wait(10);
        lift = 0;
        wait(10);
        
        
        turn =0.5;
        lift = 0;
        
    
    
    
    while(1) {
        led1 = 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 '1': //number button 1
                            if (bhit=='1') {
                                //add hit code here
                            } else {
                                //add release code here
                            }
                            break;
                        case '2': //number button 2
                            if (bhit=='1') {
                                propel.speed(1);//add hit code here
                            } else {
                                propel.speed(0);//add release code here
                            }
                            break;
                        case '3': //number button 3
                            if (bhit=='1') {
                                //add hit code here
                            } else {
                                //add release code here
                            }
                            break;
                        case '4': //number button 4
                            if (bhit=='1') {
                                propel.speed(-1);//add hit code here
                            } else {
                                propel.speed(0);//add release code here
                            }
                            break;
                        case '5': //button 5 up arrow
                            if (bhit=='1') {
                                lift = 0.2;
                                wait(2);
                                lift = 0.4;
                                wait(2);
                                lift = 0.45;
                                wait(2);
                                lift = 0.6;
                                wait(2);
                                lift = 0.7;
                                wait(2);
                                lift = 0.8;
                                wait(2);
                                lift = 0.9;
                                wait(2);
                                lift= 1;
                                
                                
                                
                                
                                
                            } else {
                               //lift = 0.5;//add release code here
                            }
                            break;
                        case '6': //button 6 down arrow
                            if (bhit=='1') {
                                lift = 0;//add hit code here
                            } else {
                                lift = 0;//add release code here
                            }
                            break;
                        case '7': //button 7 left arrow
                            if (bhit=='1') {
                                
                                turn = 1;//add hit code here
                            } else {
                                turn = 0.5;//add release code here
                            }
                            break;
                        case '8': //button 8 right arrow
                            if (bhit=='1') {
                                
                                turn = 0;//add hit code here
                            } else {
                                turn = 0.5;//add release code here
                            }
                            break;
                        default:
                            break;
                    }
                }
            }
        }
    }
}