ECE 4180 Collision Avoiding Robot demo

Dependencies:   Motor Servo mbed

main.cpp

Committer:
Soradhmuny
Date:
2015-10-21
Revision:
1:53e96a6c73db
Parent:
0:8c4965d9689e

File content as of revision 1:53e96a6c73db:

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

/*
Soradhmuny Lanh and Michael Capone
ECE 4180 Lab 4 Collision Avoiding Robot demo
*/

Servo myservo(p23);
AnalogIn   ain(p16);
DigitalOut myled1(LED1);
DigitalOut myled2(LED2);
DigitalOut myled3(LED3);
DigitalOut myled4(LED4);
float L = 1;
float negL = -0.5;
float R = 1;
float speedL = negL;
float speedR = R;
float p = -1;
int n = 0;
int main() {
    while(1){ 
        Servo myservo(p23);
        speedL = negL;
        speedR = R;
        for(p=-1; p<1.0; p += 0.1) {
            myservo = p;
            if(ain > 0.4) {
                myled1 = 1;
                myled2 = 1;
                myled3 = 1;
                myled4 = 1;
                speedL = L;
            }else if(ain<0.4 && ain > 0.3){
                myled1 = 1;
                myled2 = 1;
                myled3 = 1;
                myled4 = 0;
                speedL = L;//check random three spikes
            }else if(ain<0.3 && ain > 0.2){
                myled1 = 1;
                myled2 = 1;
                myled3 = 0;
                myled4 = 0;
            }else if(ain<0.2 && ain > 0.1){
                myled1 = 1;
                myled2 = 0;
                myled3 = 0;
                myled4 = 0;
            }else {
                myled1 = 0;
                myled2 = 0;
                myled3 = 0;
                myled4 = 0;
            }
            wait(0.2);
        } 
        for(p=1.0; p>0.3; p-=.1){
            myservo = p;
            wait(0.2);
        }
        
        Motor mR(p21, p30, p29); // pwm, fwd, rev
        Motor mL(p22, p28, p27);
        n = 0;
        while(n<40){
            if(speedL == negL){
                if(ain > 0.4) {
                    myled1 = 1;
                    myled2 = 1;
                    myled3 = 1;
                    myled4 = 1;
                    speedL = 0;
                    speedR = 0;
                }else if(ain<0.4 && ain > 0.3){
                    myled1 = 1;
                    myled2 = 1;
                    myled3 = 1;
                    myled4 = 0;
                    speedL = 0;//check random three spikes
                    speedR = 0;
                }else if(ain<0.3 && ain > 0.2){
                    myled1 = 1;
                    myled2 = 1;
                    myled3 = 0;
                    myled4 = 0;
                }else if(ain<0.2 && ain > 0.1){
                    myled1 = 1;
                    myled2 = 0;
                    myled3 = 0;
                    myled4 = 0;
                }else {
                    myled1 = 0;
                    myled2 = 0;
                    myled3 = 0;
                    myled4 = 0;
                }
                mR.speed(speedR); 
                mL.speed(speedL);
                wait(.1);
                n++;
            }else{
                mR.speed(speedR); 
                mL.speed(speedL);
                wait(.1);
                n = n+8;
            }
            
        }
        speedR = 0;
        speedL = 0;
        mR.speed(speedR);
        mL.speed(speedL);
        wait(.5);
    }
}