Commandes (moteur x2)

Dependencies:   BSP_DISCO_F429ZI LCD_DISCO_F429ZI mbed

Committer:
RpzEnsea4ever
Date:
Thu May 17 10:03:27 2018 +0000
Revision:
3:aaaf32b91cce
Parent:
2:62575002e4bb
commandes moteur

Who changed what in which revision?

UserRevisionLine numberNew contents of line
RpzEnsea4ever 0:646bbf43e4e8 1 #include "mbed.h"
RpzEnsea4ever 0:646bbf43e4e8 2 #include "LCD_DISCO_F429ZI.h"
RpzEnsea4ever 2:62575002e4bb 3 #include "commandes.h"
RpzEnsea4ever 3:aaaf32b91cce 4 #include "TS_DISCO_F429ZI.h"
RpzEnsea4ever 3:aaaf32b91cce 5 #include <stdlib.h>
RpzEnsea4ever 3:aaaf32b91cce 6 #include "screen.h"
RpzEnsea4ever 3:aaaf32b91cce 7
RpzEnsea4ever 3:aaaf32b91cce 8 typedef int tab[3];
RpzEnsea4ever 3:aaaf32b91cce 9 int capteur1,capteur2,capteur3; //gauche, centre, droit
RpzEnsea4ever 3:aaaf32b91cce 10 tab ligne;
RpzEnsea4ever 3:aaaf32b91cce 11 float delai=1.0;
RpzEnsea4ever 0:646bbf43e4e8 12
RpzEnsea4ever 0:646bbf43e4e8 13
RpzEnsea4ever 0:646bbf43e4e8 14 LCD_DISCO_F429ZI lcd;
RpzEnsea4ever 3:aaaf32b91cce 15 TS_DISCO_F429ZI ts;
RpzEnsea4ever 3:aaaf32b91cce 16 TS_StateTypeDef tsState;
RpzEnsea4ever 3:aaaf32b91cce 17 uint16_t xa, ya;
RpzEnsea4ever 0:646bbf43e4e8 18
RpzEnsea4ever 0:646bbf43e4e8 19
RpzEnsea4ever 1:452e0e8e414a 20
RpzEnsea4ever 3:aaaf32b91cce 21 void detectiona(){
RpzEnsea4ever 3:aaaf32b91cce 22 xa = tsState.X;
RpzEnsea4ever 3:aaaf32b91cce 23 ya = tsState.Y;
RpzEnsea4ever 3:aaaf32b91cce 24 int8_t text[7];
RpzEnsea4ever 3:aaaf32b91cce 25 sprintf((char*)text, "%d; %d", xa, ya);
RpzEnsea4ever 3:aaaf32b91cce 26 lcd.DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);
RpzEnsea4ever 3:aaaf32b91cce 27 }
RpzEnsea4ever 3:aaaf32b91cce 28
RpzEnsea4ever 3:aaaf32b91cce 29
RpzEnsea4ever 3:aaaf32b91cce 30 void traitement(){
RpzEnsea4ever 3:aaaf32b91cce 31 if(capteur1==0 && capteur2==1 && capteur3==0){
RpzEnsea4ever 3:aaaf32b91cce 32 avancer();
RpzEnsea4ever 3:aaaf32b91cce 33 wait(delai);
RpzEnsea4ever 3:aaaf32b91cce 34 }
RpzEnsea4ever 3:aaaf32b91cce 35 else if(capteur1==1 && capteur2==0 && capteur3==0){
RpzEnsea4ever 3:aaaf32b91cce 36 tournerDroitVite();
RpzEnsea4ever 3:aaaf32b91cce 37 wait(delai);
RpzEnsea4ever 3:aaaf32b91cce 38 }
RpzEnsea4ever 3:aaaf32b91cce 39 else if(capteur1==1 && capteur2==1 && capteur3==0){
RpzEnsea4ever 3:aaaf32b91cce 40 tourner_droite();
RpzEnsea4ever 3:aaaf32b91cce 41 wait(delai);
RpzEnsea4ever 3:aaaf32b91cce 42 }
RpzEnsea4ever 3:aaaf32b91cce 43 else if(capteur1==0 && capteur2==0 && capteur3==1){
RpzEnsea4ever 3:aaaf32b91cce 44 tournerGaucheVite();
RpzEnsea4ever 3:aaaf32b91cce 45 wait(delai);
RpzEnsea4ever 3:aaaf32b91cce 46 }
RpzEnsea4ever 3:aaaf32b91cce 47 else if(capteur1==0 && capteur2==1 && capteur3==1){
RpzEnsea4ever 3:aaaf32b91cce 48 tourner_gauche();
RpzEnsea4ever 3:aaaf32b91cce 49 wait(delai);
RpzEnsea4ever 3:aaaf32b91cce 50 }
RpzEnsea4ever 3:aaaf32b91cce 51 else if(capteur1==1 && capteur2==1 && capteur3==1){
RpzEnsea4ever 3:aaaf32b91cce 52 arreter();
RpzEnsea4ever 3:aaaf32b91cce 53 wait(delai);
RpzEnsea4ever 3:aaaf32b91cce 54 }
RpzEnsea4ever 3:aaaf32b91cce 55 }
RpzEnsea4ever 3:aaaf32b91cce 56
RpzEnsea4ever 0:646bbf43e4e8 57 int main(){
RpzEnsea4ever 3:aaaf32b91cce 58
RpzEnsea4ever 3:aaaf32b91cce 59 uint8_t status = ts.Init(lcd.GetXSize(), lcd.GetYSize());
RpzEnsea4ever 3:aaaf32b91cce 60 ts.GetState(&tsState);
RpzEnsea4ever 3:aaaf32b91cce 61 detectiona();
RpzEnsea4ever 3:aaaf32b91cce 62 calibrage();
RpzEnsea4ever 3:aaaf32b91cce 63
RpzEnsea4ever 3:aaaf32b91cce 64
RpzEnsea4ever 3:aaaf32b91cce 65 while((xa>225 || xa<12) || (ya<78-20 || ya>288-20)){
RpzEnsea4ever 3:aaaf32b91cce 66 ts.GetState(&tsState);
RpzEnsea4ever 3:aaaf32b91cce 67 detectiona();
RpzEnsea4ever 3:aaaf32b91cce 68 tab ligne=detectionLigne();
RpzEnsea4ever 3:aaaf32b91cce 69 capteur1=ligne[0];
RpzEnsea4ever 3:aaaf32b91cce 70 capteur2=ligne[1];
RpzEnsea4ever 3:aaaf32b91cce 71 capteur3=ligne[2];
RpzEnsea4ever 3:aaaf32b91cce 72 traitement();
RpzEnsea4ever 3:aaaf32b91cce 73 wait(delai);
RpzEnsea4ever 3:aaaf32b91cce 74 }
RpzEnsea4ever 0:646bbf43e4e8 75 }
RpzEnsea4ever 0:646bbf43e4e8 76
RpzEnsea4ever 0:646bbf43e4e8 77
RpzEnsea4ever 0:646bbf43e4e8 78
RpzEnsea4ever 0:646bbf43e4e8 79
RpzEnsea4ever 0:646bbf43e4e8 80
RpzEnsea4ever 0:646bbf43e4e8 81
RpzEnsea4ever 0:646bbf43e4e8 82