programme ines avce xbee
Dependencies: MMA8451Q mbed xbee_lib
Fork of Programme_course by
main.cpp
- Committer:
- inesmas3
- Date:
- 2017-03-17
- Revision:
- 2:ddf9879f0e25
- Parent:
- 1:4a9196bcf97a
File content as of revision 2:ddf9879f0e25:
#include "Mlib.h" MMA8451Q acc(PTE25, PTE24, MMA8451_I2C_ADRESS); DigitalOut activate_motor (PTE21); DigitalOut led1(PTB8); DigitalOut led2(PTB9); DigitalOut led3(PTB10); DigitalOut led4(PTB11); DigitalOut led5(PTB18); DigitalOut led6(PTB19); DigitalOut led7(PTD1); DigitalOut rst1(D3); AnalogIn pot1 (PTB3); AnalogIn pot2 (PTB2); DigitalIn S1(PTE2); DigitalIn S2(PTE3); DigitalIn S3(PTE4); DigitalIn S4(PTE5); Timer t_ligne; Timer timer; int ralentire = 0; int tempsInte = MAX_INTE; unsigned char cam_data[128]; int baricentre = 0; int begin = 0; char flag = 0; char clk_active = 0; char bosse = 0; int bary_tab[3]; int bary_tab_bis[3]; char last_five[5]; float last_three[3]; Timer t_debut; int somme_derivee = 0; int VIT = 0; int KP = 80; int KD=0; int KI=0; int seuil_der = 0; int ajust_vitesse = 0; int ajust_vit_bosse = 0; int new_bari = 0; int vitesse_virage = 0; int ligne_droite = 0; int integral; DigitalOut BP1(PTC13);//boutton A DigitalOut BP2(PTC17);//boutton B DigitalOut SI(PTD7); DigitalIn CLK_IN(PTE31); DigitalOut CLK(PTE1); AnalogIn AIN(PTD5); Ticker t_cyc; Ticker t_clk; Ticker t_finInte; Serial pc(USBTX, USBRX); xbee xbee1(D1,D0,D3); //Initalise xbee_lib varName(rx,tx,reset) Serial dataXB(D1,D0); void cycle() { flag = 1; } void Init_car() { motor_init(); init_bary(); //Get_pot_value(); Get_values_Xbee(); pc.printf("VIT=%d KD=%d KP=%d KI=%d \n", VIT,KP,KD,KI); t_cyc.attach_us(&cycle, FRQ_CYC);//interruption cycle clk_active = 0;//L'horloge est désactivée t_clk.attach(&F_CLK, 1/(2.0*FRQ_CLK));//interruption horloge timer.start(); angle_servo_moteur(0);//on met les roues droites pour commencer } void arret() { PWM_motor(MOTEUR_A, 0); PWM_motor(MOTEUR_B, 0); while(BP1); while(!BP1){menu();}; while(BP1); Init_car(); t_debut.reset(); } int main() { Xbee_init(); Init_car(); while(!BP1)//tant que l'on appuie pas sur BP1 { menu(); } while(BP1);//on attends le relachement de BP1 //***************Début de la course*************** t_debut.start();//Timer du début de la course t_ligne.start(); //************************************************ //*********On demarre les moteurs**************** PWM_motor(MOTEUR_A, VIT); PWM_motor(MOTEUR_B, VIT); while(1) {//boucle principale if(BP1) { arret(); } if(flag == 1)//début du cycle { flag = 0; //**************Récupération données***************** F_GetData(); Xbee_receive(); //***************Traitement Image******************* T_image(); //***************Gestion des Moteurs***************** angle_servo_moteur(new_bari); //*****************Gestion_bosse********************* Gestion_bosse(); moteurs_arriere(); //***************Balance des blancs****************** F_BalanceBlancs(); //***************Detection_arrivee******************* fin_course(); } } }