7Robot_Freescale / Mbed 2 deprecated freescal_cup_k22f

Dependencies:   mbed freescal_cup_k22f

Dependents:   freescal_cup_k22f

source/main.cpp

Committer:
RobinN7
Date:
2015-01-21
Revision:
25:f9d3d30cbb5d
Parent:
24:7b04db280873
Child:
26:a836e62e0c98

File content as of revision 25:f9d3d30cbb5d:


//Bibliothéque
#include "mbed.h"
#include "QEI.h"
#include "Gestion_Moteur.h"
#include "Camera.h"
#include "Servo.h"

//Differents objet/variable global

//test de commit

Serial uart(PTD3, PTD2); //xbee
//Serial uart(USBTX, USBRX); //port série usb ACM0
Servo servo(PTD0);
AnalogIn pot1(PTC1);

int main() {
 // Initialisation
 
    int indexMin=10; 
    int indexMax=118;
    int compteur_uart=0;
    int max_detect1=indexMin;
    int min_detect2=indexMin;
    int max_detect=(max_detect1+min_detect2)/2;
    float Kp_servo = 0;
    uart.baud(115200); 
    init_led();
   
    // Init UART baudrate

         
    // Lancement boucle
    while(1){
        double ordre;
        readline();
        passebas(10);
        derivation();
        //passebas(4); 
        for (int i=0;i<15;i++)
        {
            pixel1[i]=0;
            pixel2[i]=0;
            pixel1[127-i]=0;
            pixel2[127-i]=0;
        } 
        if (compteur_uart ==2) // on envoit une trame toute les 50 acquisitions de cameras
        {  
            uart.printf("S1");//debug START
            for (int indice_pixel=0; indice_pixel<128; indice_pixel++)   
            {
                uart.printf("%d,",pixel1[indice_pixel]);
            }
            uart.printf("E");//debug END
            
            uart.printf("S2");//debug START
            for (int indice_pixel=0; indice_pixel<128; indice_pixel++)   
            {
                uart.printf("%d,",pixel2[indice_pixel]);
            }
            uart.printf("E");//debug END
            compteur_uart =0;
        }
        else {
        compteur_uart =compteur_uart+1;  
        }
        
        max_detect1=indexMin;
        min_detect2=indexMin;
        
        for (int j=indexMin; j<=indexMax; j++)
        {
            if (pixel1[j]>pixel1[max_detect1])
            {
                max_detect1=j;
            }
        }  
        for (int j=indexMin; j<=indexMax; j++)
        {      
            if (pixel2[j]>pixel2[min_detect2])
            {
                min_detect2=j;
            }    
        }  
        max_detect=(max_detect1+min_detect2)/2; 
        // Réduction proportionelle de la vitesse moteur si l'angle du servo augmente
        if (max_detect>64)
        {
            consigne_moteur_1=6*(1-(max_detect-64)/150.);
            consigne_moteur_2=6*(1-(max_detect-64)/100.);
        }
        else
        {
            consigne_moteur_1=6*(1-(64-max_detect)/100.);
            consigne_moteur_2=6*(1-(64-max_detect)/150.); 
        }
        // Lecture du potentiometre
        Kp_servo=2.0*pot1.read();
        ordre=(/*consigne*/0-((127-max_detect1)-min_detect2));//ya une merde ici

     
        ordre=ordre/254+0.5;
        
        if (ordre >=0.88)
            servo=0.88;
        else if (ordre <=0.22)
            servo=0.22;
        else
            servo= ordre; 
        
        uart.printf("a=%d, b=%d \n\r",max_detect1,min_detect2);
        

      
    }
}