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: MMA8451Q mbed xbee_lib
Fork of Programme_course by
main.cpp
00001 #include "Mlib.h" 00002 00003 00004 00005 MMA8451Q acc(PTE25, PTE24, MMA8451_I2C_ADRESS); 00006 DigitalOut activate_motor (PTE21); 00007 DigitalOut led1(PTB8); 00008 DigitalOut led2(PTB9); 00009 DigitalOut led3(PTB10); 00010 DigitalOut led4(PTB11); 00011 00012 DigitalOut led5(PTB18); 00013 DigitalOut led6(PTB19); 00014 DigitalOut led7(PTD1); 00015 00016 DigitalOut rst1(D3); 00017 00018 AnalogIn pot1 (PTB3); 00019 AnalogIn pot2 (PTB2); 00020 00021 DigitalIn S1(PTE2); 00022 DigitalIn S2(PTE3); 00023 DigitalIn S3(PTE4); 00024 DigitalIn S4(PTE5); 00025 Timer t_ligne; 00026 Timer timer; 00027 int ralentire = 0; 00028 00029 int tempsInte = MAX_INTE; 00030 unsigned char cam_data[128]; 00031 int baricentre = 0; 00032 int begin = 0; 00033 char flag = 0; 00034 char clk_active = 0; 00035 char bosse = 0; 00036 int bary_tab[3]; 00037 int bary_tab_bis[3]; 00038 char last_five[5]; 00039 float last_three[3]; 00040 Timer t_debut; 00041 int somme_derivee = 0; 00042 int VIT = 0; 00043 int KP = 80; 00044 int KD=0; 00045 int KI=0; 00046 int seuil_der = 0; 00047 int ajust_vitesse = 0; 00048 int ajust_vit_bosse = 0; 00049 int new_bari = 0; 00050 int vitesse_virage = 0; 00051 int ligne_droite = 0; 00052 int integral; 00053 00054 00055 DigitalOut BP1(PTC13);//boutton A 00056 DigitalOut BP2(PTC17);//boutton B 00057 DigitalOut SI(PTD7); 00058 DigitalIn CLK_IN(PTE31); 00059 DigitalOut CLK(PTE1); 00060 AnalogIn AIN(PTD5); 00061 00062 Ticker t_cyc; 00063 Ticker t_clk; 00064 Ticker t_finInte; 00065 00066 Serial pc(USBTX, USBRX); 00067 xbee xbee1(D1,D0,D3); //Initalise xbee_lib varName(rx,tx,reset) 00068 Serial dataXB(D1,D0); 00069 00070 00071 void cycle() 00072 { 00073 flag = 1; 00074 } 00075 00076 00077 00078 void Init_car() 00079 { 00080 motor_init(); 00081 00082 init_bary(); 00083 00084 //Get_pot_value(); 00085 Get_values_Xbee(); 00086 pc.printf("VIT=%d KD=%d KP=%d KI=%d \n", VIT,KP,KD,KI); 00087 t_cyc.attach_us(&cycle, FRQ_CYC);//interruption cycle 00088 00089 clk_active = 0;//L'horloge est désactivée 00090 t_clk.attach(&F_CLK, 1/(2.0*FRQ_CLK));//interruption horloge 00091 00092 timer.start(); 00093 00094 angle_servo_moteur(0);//on met les roues droites pour commencer 00095 } 00096 00097 void arret() 00098 { 00099 PWM_motor(MOTEUR_A, 0); 00100 PWM_motor(MOTEUR_B, 0); 00101 while(BP1); 00102 while(!BP1){menu();}; 00103 while(BP1); 00104 Init_car(); 00105 t_debut.reset(); 00106 } 00107 00108 00109 int main() { 00110 00111 Xbee_init(); 00112 00113 00114 Init_car(); 00115 00116 00117 00118 while(!BP1)//tant que l'on appuie pas sur BP1 00119 { 00120 menu(); 00121 00122 } 00123 while(BP1);//on attends le relachement de BP1 00124 00125 //***************Début de la course*************** 00126 00127 t_debut.start();//Timer du début de la course 00128 t_ligne.start(); 00129 00130 00131 //************************************************ 00132 00133 //*********On demarre les moteurs**************** 00134 PWM_motor(MOTEUR_A, VIT); 00135 PWM_motor(MOTEUR_B, VIT); 00136 00137 while(1) {//boucle principale 00138 00139 00140 if(BP1) 00141 { 00142 arret(); 00143 00144 } 00145 if(flag == 1)//début du cycle 00146 { 00147 flag = 0; 00148 00149 //**************Récupération données***************** 00150 00151 F_GetData(); 00152 00153 Xbee_receive(); 00154 00155 //***************Traitement Image******************* 00156 00157 T_image(); 00158 00159 //***************Gestion des Moteurs***************** 00160 00161 angle_servo_moteur(new_bari); 00162 00163 //*****************Gestion_bosse********************* 00164 00165 Gestion_bosse(); 00166 00167 moteurs_arriere(); 00168 00169 //***************Balance des blancs****************** 00170 00171 F_BalanceBlancs(); 00172 00173 00174 //***************Detection_arrivee******************* 00175 00176 fin_course(); 00177 00178 } 00179 00180 } 00181 00182 00183 00184 00185 00186 }
Generated on Tue Jul 12 2022 21:30:22 by
1.7.2
