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-17
Revision:
22:b5a3688e144b
Parent:
21:9430357e777c
Child:
23:fa834aa184e0

File content as of revision 22:b5a3688e144b:


//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=0;   
    int indexMax=127;
    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){
        
        readline();
        passebas(10);
        derivation();
        //passebas(4); 
           
           
        if (compteur_uart ==50) // 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 (pixel1[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=7*(1-(64-max_detect)/100.);
            consigne_moteur_2=7*(1-(64-max_detect)/150.); 
        }
        // Lecture du potentiometre
        Kp_servo=2.0*pot1.read_u16()/65000.0;
        
        servo = Kp_servo*(double(max_detect)/128.-0.5)+0.5;


    }
}