Commandes (moteur x2)
Dependencies: BSP_DISCO_F429ZI LCD_DISCO_F429ZI mbed
main.cpp@3:aaaf32b91cce, 2018-05-17 (annotated)
- 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?
User | Revision | Line number | New 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 |