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
- Committer:
- inesmas3
- Date:
- 2017-02-08
- Revision:
- 1:4a9196bcf97a
- Parent:
- 0:3ec7fc598e48
- Child:
- 2:ddf9879f0e25
File content as of revision 1:4a9196bcf97a:
#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);
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 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);
void cycle()
{
flag = 1;
}
void Init_car()
{
motor_init();
init_bary();
Get_pot_value();
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 droite 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() {
/*while(1)
{ Gestion_bosse();
wait(0.1);}*/
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();
//***************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();
}
}
}
