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