TDP3 Go-Yeti / Mbed 2 deprecated DontKillMbed

Dependencies:   mbed

main.cpp

Committer:
ibrahim1995
Date:
2016-02-25
Revision:
1:94577052d858
Parent:
0:e679a1bb6eca
Child:
2:8435af9e917a

File content as of revision 1:94577052d858:

#include "mbed.h"

//Pull everything up
DigitalOut pull1(PTA1);
DigitalOut pull2(PTA2);
//DigitalOut pull4(PTA12);
//DigitalOut pull5(PTA4);
DigitalOut pull6(PTA5);
DigitalOut pull7(PTC8);

DigitalOut pull9(PTA13);
DigitalOut pull10(PTD5);
DigitalOut pull11(PTD0);
DigitalOut pull12(PTD2);
DigitalOut pull13(PTD3);
DigitalOut pull14(PTD1);
DigitalOut pull15(PTE0);
DigitalOut pull16(PTE1);

//DigitalOut pull17(PTC7);
//DigitalOut pull18(PTC0);
DigitalOut pull19(PTC3);
DigitalOut pull20(PTC4);

DigitalOut pull21(PTC12);
DigitalOut pull22(PTC13);
DigitalOut pull23(PTC16);
DigitalOut pull24(PTC17);
DigitalOut pull25(PTA16);
DigitalOut pull26(PTA17);
DigitalOut pull27(PTE31);
DigitalOut pull28(PTD6);
DigitalOut pull29(PTD7);

DigitalOut pull30(PTE30);

//DigitalOut pull38(PTE3);
DigitalOut pull39(PTE2);
//DigitalOut pull50(PTB11);
//DigitalOut pull51(PTB10);
//DigitalOut pull52(PTB9);
//DigitalOut pull53(PTB8);

//DigitalOut pull34(PTE21);
//DigitalOut pull35(PTE20);
//DigitalOut pull47(PTB1);
//DigitalOut pull48(PTB0);


//motor driver outputs
DigitalOut IN4(PTC5);
DigitalOut IN3(PTC6);
DigitalOut IN2(PTC10);
DigitalOut IN1(PTC11);
PwmOut ENA(PTC9);
PwmOut ENB(PTD4);

DigitalOut indicator(LED_BLUE);

//constant 3.3 volts for sensors
DigitalOut constant1(PTE5);
DigitalOut constant2(PTE4);
DigitalOut constant3(PTE3);
DigitalOut constant4(PTC0);
DigitalOut constant5(PTC7);

//line following inputs
AnalogIn leftmost(PTB0); 
AnalogIn left(PTC2);
AnalogIn middle(PTB3); 
AnalogIn right(PTB2);
AnalogIn rightmost(PTB1);

DigitalIn back(PTB11);
DigitalIn front(PTB10);

//debugging led outputs
DigitalOut ledleftmost(PTE20);
DigitalOut ledright(PTE23);
DigitalOut ledmiddle(PTE22);
DigitalOut ledleft(PTE29);
DigitalOut ledrightmost(PTE21);

DigitalOut ledback(PTB8);
DigitalOut ledfront(PTB9);

//ball firing
PwmOut motors(PTA12);
DigitalOut solenoid(PTA4);

int main() {
    
    
    
    pull1=0;
    pull2=0;
    //pull3.mode(PullUp);
    //pull4=0;
    //pull5=0;
    pull6=0;
    pull7=0;
    //pull8.mode(PullUp);
    pull9=0;
    pull10=0;
    pull11=0;
    pull12=0;
    pull13=0;
    pull14=0;
    pull15=0;
    pull16=0;
    //pull17=0;
    //pull18=0;
    pull19=0;
    pull20=0;
    pull21=0;
    pull22=0;
    pull23=0;
    pull24=0;
    pull25=0;
    pull26=0;
    pull27=0;
    pull28=0;
    pull29=0;
    pull30=0;
    //pull34=0;
    //pull35=0;
    //pull38=0;
    pull39=0;
    //pull47=0;
    //pull48=0;
    //pull49=0;
    //pull50=0;
    //pull51=0;
    //pull52=0;
    //pull53=0;
    

   
    
    motors.period(3.0);
    motors.write(0);
    solenoid=0;
    
    constant1=1;
    constant2=1;
    constant3=1;
    constant4=1;
    constant5=1;
    
    indicator=1;
    wait(0.3);
    indicator=0;
    wait(0.3);
    indicator=1;
    wait(0.3);
    indicator=0;
    wait(0.3);
    indicator=1;
    
    ENA.period(0.001);
    ENB.period(0.001);
    
    IN1=0;
    IN2=1;
    IN3=0;
    IN4=1;   
    //set inital pwm values for motor driver outputs        
    ENA=0;
    ENB=0;
    
    int counter=0;
    
    while(1) {
       
        counter=counter+1;
       
        if(middle<0.4 & left<0.4 & right<0.4 & leftmost<0.4 & rightmost<0.24){   
            //skip the loop 
            ledmiddle=0;  
            ledleft=0;
            ledright=0;
            ledleftmost=0;  
            ledrightmost=0; 
        }else{
         
            if(front==1){
                ledfront=1;
            }else{
                ledfront=0;    
            }
         
            if(back==1){
                ledback=1;
            }else{
                ledback=0;    
            }
            
            if(back==1 and counter>70){
                counter=0;
                ENB=0; 
                ENA=0;
                if(front==0){
                    //shoot balls
                    motors=0.08;
                    wait_ms(550);
                    solenoid=1;
                    wait_ms(45);
                    solenoid=0;                    
                }
                wait(3);   
                motors=0;             
            }
            
            
         
            if(middle>0.4){
                ledmiddle=1; 
                ENA=0.5;
                ENB=0.5;   
            }else{
                ledmiddle=0; 
                ENA=0.4;
                ENB=0.4;   
            } 
            
            if(left>0.4){  
                ledleft=1;
                indicator=1;
                ENA=0.28; 
            }else{
                ledleft=0;  
            }
        
            if(right>0.4){  
                ledright=1; 
                ENB=0.28;
            }else{
                ledright=0;  
            }
            
            if(leftmost>0.4){   
                ledleftmost=1;
                ENA=0;
            }else{
                ledleftmost=0;   
            }
        
            if(rightmost>0.24){   
                ledrightmost=1;
                ENB=0;
            }else{
                ledrightmost=0;   
            }   
            
            
            if((left>0.4 or leftmost>0.4)and(right>0.4 or rightmost>0.24)){
                ENB=0.4; 
                ENA=0;
                wait(0.5);      
            }
            
        }
           
        wait(0.1);
       
       
    }
}