Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed 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; } }