Puppet Master System / Mbed 2 deprecated Robot_Puppet_EndDevice_Final

Dependencies:   Motor mbed

Fork of Robot_Puppet_EndDevice by Puppet Master System

main.cpp

Committer:
bstrickland9
Date:
2018-04-29
Revision:
1:06beb0d8958a
Parent:
0:a66bf82d70ed

File content as of revision 1:06beb0d8958a:

// test code, this demonstrates working motor drivers. 
// full reverse to full stop, dynamicaly brake and switch off.
#include "mbed.h"
#include "Motor.h"
Motor B(p23, p6, p5); // pwm, fwd, rev, can brake //right?
Motor A(p24, p7, p8); // pwm, fwd, rev, can brake //left?


//End Device Setup for XBEE End Device
Serial xbee2(p9,p10);
DigitalOut rst1(p11);

//Movement Indicators
DigitalOut myled1(LED1);
DigitalOut myled2(LED2);
DigitalOut myled3(LED3);
DigitalOut myled4(LED4);

//debug
Serial pc(USBTX, USBRX);

// Default Value for command to wait
char command = 'W';

int main() {
    rst1 = 0;   //Set reset pin to 0
    myled1 = 0;
    myled2 = 0;
    myled3 = 0;
    myled4 = 0;
    wait_ms(1);
    rst1 = 1;   //Set reset pin to 1
    wait_ms(1);
    
    while (1){
        if(xbee2.readable()) {//if new command readable
            command = xbee2.getc();
            //pc.printf("Command: %c\n\r",command);
        }
        
//        pc.printf("%c",command);
//        pc.printf("\n\r");
        
        switch (command){
            case 'A': // Move back speed 1
                A.speed(-0.5);
                B.speed(-0.5);
                
                myled1 = 1;
                myled2 = 0;
                myled3 = 0;
                myled4 = 0;
                
                //wait(0.5);
                break;
            case 'B': // Move back speed 2
                A.speed(-1);
                B.speed(-1);
                
                myled1 = 1;
                myled2 = 0;
                myled3 = 0;
                myled4 = 0;
                
                //wait(0.5);
                break;
            case 'C': // Move right speed 1
                A.speed(0.5);
                B.speed(0);
                
                myled1 = 0;
                myled2 = 1;
                myled3 = 0;
                myled4 = 0;
                
                //wait(0.5);
                break;
            case 'D': // Move right speed 2
                A.speed(1);
                B.speed(0);
                
                myled1 = 0;
                myled2 = 1;
                myled3 = 0;
                myled4 = 0;
                
                //wait(0.5);
                break;
            case 'E': // Move forward speed 1
                A.speed(0.5);
                B.speed(0.5);
                
                myled1 = 0;
                myled2 = 0;
                myled3 = 1;
                myled4 = 0;
                
                //wait(0.5);
                break;
            case 'F': // Move forward speed 2
                A.speed(1);
                B.speed(1);
                
                myled1 = 0;
                myled2 = 0;
                myled3 = 1;
                myled4 = 0;
                
                //wait(0.5);
                break;
            case 'G': // Move left speed 1
                A.speed(0);
                B.speed(0.5);
                
                myled1 = 0;
                myled2 = 0;
                myled3 = 0;
                myled4 = 1;
                
                //wait(0.5);
                break;
            case 'H': // Move left speed 2
                A.speed(0);
                B.speed(1);
                
                myled1 = 0;
                myled2 = 0;
                myled3 = 0;
                myled4 = 1;
                
                //wait(0.5);
                break;
            case 'I': // Stop
                A.speed(0.0);
                B.speed(0.0);
                
                myled1 = 1;
                myled2 = 1;
                myled3 = 1;
                myled4 = 1;
                break;
                
                //wait(0.5);
                
            case 'W': // Stop if nothing else is coming in 
                A.speed(0.0);
                B.speed(0.0);
                
                myled1 = 0;
                myled2 = 0;
                myled3 = 0;
                myled4 = 0;
                //wait(0.5);

            }
        }
}