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.
main.cpp@21:39815fb7e4f5, 2020-05-03 (annotated)
- Committer:
- burgerking
- Date:
- Sun May 03 11:37:39 2020 +0000
- Revision:
- 21:39815fb7e4f5
- Parent:
- 20:fa411d58e3ee
- Child:
- 22:64fa6f501426
fdff
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| burgerking | 19:c3d287239c9c | 1 | #include "mbed.h" |
| burgerking | 19:c3d287239c9c | 2 | #include "C12832.h" |
| burgerking | 19:c3d287239c9c | 3 | #include "moteur.h" |
| burgerking | 19:c3d287239c9c | 4 | #include "emissionIR.h" |
| burgerking | 17:db154d50ab1f | 5 | |
| burgerking | 17:db154d50ab1f | 6 | /* Déclaration des objets glogaux ***************************/ |
| burgerking | 17:db154d50ab1f | 7 | |
| burgerking | 17:db154d50ab1f | 8 | C12832 lcd(D11, D13, D12, D7, D10); |
| burgerking | 17:db154d50ab1f | 9 | |
| burgerking | 17:db154d50ab1f | 10 | AnalogIn pot1(A0); |
| burgerking | 17:db154d50ab1f | 11 | AnalogIn pot2(A1); |
| burgerking | 17:db154d50ab1f | 12 | |
| burgerking | 17:db154d50ab1f | 13 | DigitalOut LED_rouge(D5,1); |
| burgerking | 17:db154d50ab1f | 14 | DigitalOut LED_verte(D9,1); |
| burgerking | 17:db154d50ab1f | 15 | //DigitalOut LED_bleue(D8,1); // NE PAS UTILISER LA LED BLEUE |
| burgerking | 17:db154d50ab1f | 16 | |
| burgerking | 17:db154d50ab1f | 17 | DigitalIn up(A2); |
| burgerking | 17:db154d50ab1f | 18 | DigitalIn down(A3); |
| burgerking | 17:db154d50ab1f | 19 | DigitalIn left(A4); |
| burgerking | 17:db154d50ab1f | 20 | DigitalIn right(A5); |
| burgerking | 17:db154d50ab1f | 21 | DigitalIn fire(D4); |
| burgerking | 17:db154d50ab1f | 22 | |
| burgerking | 17:db154d50ab1f | 23 | |
| burgerking | 17:db154d50ab1f | 24 | // Détecteurs d'obstacles |
| burgerking | 17:db154d50ab1f | 25 | AnalogIn IR_G(PB_1);AnalogIn IR_D(PC_2); |
| burgerking | 17:db154d50ab1f | 26 | |
| burgerking | 17:db154d50ab1f | 27 | DigitalIn jack(PD_2); |
| burgerking | 17:db154d50ab1f | 28 | DigitalIn bumpers(PB_7); |
| burgerking | 17:db154d50ab1f | 29 | DigitalOut LED(PA_13); |
| burgerking | 17:db154d50ab1f | 30 | |
| burgerking | 17:db154d50ab1f | 31 | // Détecteur de zone blanche |
| burgerking | 17:db154d50ab1f | 32 | BusIn Arrivee(PC_9,PC_10,PC_11,PC_12,PA_12,PA_14); |
| burgerking | 17:db154d50ab1f | 33 | |
| burgerking | 17:db154d50ab1f | 34 | Serial uartWifi(SERIAL_TX, SERIAL_RX); |
| burgerking | 17:db154d50ab1f | 35 | //Serial uartWifi(PA_9, PA_10); |
| burgerking | 17:db154d50ab1f | 36 | |
| burgerking | 17:db154d50ab1f | 37 | /* Déclaration des variables globales ****************************************/ |
| burgerking | 17:db154d50ab1f | 38 | |
| burgerking | 17:db154d50ab1f | 39 | |
| burgerking | 17:db154d50ab1f | 40 | /* Définition des fonctions gérant la machine à états ************************/ |
| burgerking | 17:db154d50ab1f | 41 | |
| burgerking | 17:db154d50ab1f | 42 | // définition des fonctions |
| burgerking | 17:db154d50ab1f | 43 | void gestionEtat(){ |
| burgerking | 17:db154d50ab1f | 44 | } |
| burgerking | 17:db154d50ab1f | 45 | |
| burgerking | 17:db154d50ab1f | 46 | void gestionAction(){ |
| burgerking | 17:db154d50ab1f | 47 | } |
| burgerking | 17:db154d50ab1f | 48 | |
| burgerking | 17:db154d50ab1f | 49 | /******************************************************************************/ |
| burgerking | 18:da2e22a3b09a | 50 | enum Machine_A_Etat |
| burgerking | 18:da2e22a3b09a | 51 | { |
| burgerking | 21:39815fb7e4f5 | 52 | Depart,Navigation,Arrive,Evitement,Rotation |
| burgerking | 18:da2e22a3b09a | 53 | }; |
| burgerking | 18:da2e22a3b09a | 54 | |
| burgerking | 19:c3d287239c9c | 55 | int main() { |
| burgerking | 20:fa411d58e3ee | 56 | int iState=Depart; |
| burgerking | 21:39815fb7e4f5 | 57 | int distObsGauche=pot1.read(); |
| burgerking | 21:39815fb7e4f5 | 58 | int distObsDroite=pot2.read(); |
| burgerking | 21:39815fb7e4f5 | 59 | int bumpers=bumpers.read(); |
| burgerking | 21:39815fb7e4f5 | 60 | int up=up.read(); |
| burgerking | 21:39815fb7e4f5 | 61 | int jack=jack.read(); |
| burgerking | 21:39815fb7e4f5 | 62 | int fire=fire.read(); |
| burgerking | 17:db154d50ab1f | 63 | lcd.cls(); |
| burgerking | 17:db154d50ab1f | 64 | lcd.locate(32,16); |
| burgerking | 17:db154d50ab1f | 65 | lcd.printf("Module ER2 : template"); |
| burgerking | 17:db154d50ab1f | 66 | while(true){ |
| burgerking | 17:db154d50ab1f | 67 | wait(.5); |
| burgerking | 19:c3d287239c9c | 68 | switch(iState){ |
| burgerking | 19:c3d287239c9c | 69 | case Depart : |
| burgerking | 19:c3d287239c9c | 70 | LED_verte.write(1); |
| burgerking | 20:fa411d58e3ee | 71 | //printf.lcd("Depart"); |
| burgerking | 19:c3d287239c9c | 72 | break; |
| burgerking | 19:c3d287239c9c | 73 | case Navigation : |
| burgerking | 20:fa411d58e3ee | 74 | //No Yellow LED |
| burgerking | 20:fa411d58e3ee | 75 | commandeMoteurs(50,50); |
| burgerking | 20:fa411d58e3ee | 76 | //printf.lcd("Navigation"); |
| burgerking | 20:fa411d58e3ee | 77 | break; |
| burgerking | 21:39815fb7e4f5 | 78 | case Arrive : |
| burgerking | 20:fa411d58e3ee | 79 | LED_verte.write(!LED_verte.read()); |
| burgerking | 20:fa411d58e3ee | 80 | commandeMoteurs(0,0); |
| burgerking | 20:fa411d58e3ee | 81 | //printf.lcd("Arrive"); |
| burgerking | 20:fa411d58e3ee | 82 | break; |
| burgerking | 19:c3d287239c9c | 83 | case Evitement : |
| burgerking | 20:fa411d58e3ee | 84 | LED_rouge.write(1); |
| burgerking | 20:fa411d58e3ee | 85 | if(distObsDroite>distObsGsuche) |
| burgerking | 20:fa411d58e3ee | 86 | comandeMoteur(100,0); |
| burgerking | 20:fa411d58e3ee | 87 | //printf.lcd("Evitement1"); |
| burgerking | 20:fa411d58e3ee | 88 | else |
| burgerking | 20:fa411d58e3ee | 89 | commandeMoteur(0,100); |
| burgerking | 20:fa411d58e3ee | 90 | //printf.lcd("Evitement2"); |
| burgerking | 20:fa411d58e3ee | 91 | break; |
| burgerking | 19:c3d287239c9c | 92 | case Rotation : |
| burgerking | 20:fa411d58e3ee | 93 | LED_rouge.write(!LED_rouge.read()); |
| burgerking | 20:fa411d58e3ee | 94 | if(distObsDroite>distObsGsuche) |
| burgerking | 20:fa411d58e3ee | 95 | comandeMoteur(100,0); |
| burgerking | 20:fa411d58e3ee | 96 | //printf.lcd("Rotation1"); |
| burgerking | 20:fa411d58e3ee | 97 | else |
| burgerking | 20:fa411d58e3ee | 98 | commandeMoteur(0,100); |
| burgerking | 20:fa411d58e3ee | 99 | //printf.lcd("Rotation2"); |
| burgerking | 20:fa411d58e3ee | 100 | break; |
| burgerking | 17:db154d50ab1f | 101 | }//switch |
| burgerking | 20:fa411d58e3ee | 102 | |
| burgerking | 20:fa411d58e3ee | 103 | while(iState=Depart) |
| burgerking | 20:fa411d58e3ee | 104 | { |
| burgerking | 20:fa411d58e3ee | 105 | if(jack==0||fire==1) |
| burgerking | 20:fa411d58e3ee | 106 | iState=Navigation; |
| burgerking | 20:fa411d58e3ee | 107 | if(up==1) |
| burgerking | 21:39815fb7e4f5 | 108 | iState=Arrive; |
| burgerking | 20:fa411d58e3ee | 109 | } |
| burgerking | 20:fa411d58e3ee | 110 | |
| burgerking | 20:fa411d58e3ee | 111 | while(iState=Navigation) |
| burgerking | 20:fa411d58e3ee | 112 | { |
| burgerking | 20:fa411d58e3ee | 113 | if(//distObsGauche>20cm||distObsDroite>20cm) |
| burgerking | 20:fa411d58e3ee | 114 | iState=Rotation; |
| burgerking | 20:fa411d58e3ee | 115 | if(//20cm<distObsGauche<40cm&&20cm<distObsDroite<0cm) |
| burgerking | 20:fa411d58e3ee | 116 | iState=Evitation; |
| burgerking | 20:fa411d58e3ee | 117 | if(/*white tested*/||bumpers==1) |
| burgerking | 21:39815fb7e4f5 | 118 | iState=Arrive; |
| burgerking | 20:fa411d58e3ee | 119 | } |
| burgerking | 20:fa411d58e3ee | 120 | |
| burgerking | 20:fa411d58e3ee | 121 | while(iState=Arrivee) |
| burgerking | 20:fa411d58e3ee | 122 | { |
| burgerking | 20:fa411d58e3ee | 123 | if(up==1) |
| burgerking | 20:fa411d58e3ee | 124 | iState=Depart; |
| burgerking | 20:fa411d58e3ee | 125 | } |
| burgerking | 20:fa411d58e3ee | 126 | |
| burgerking | 20:fa411d58e3ee | 127 | while(iState=Evitement) |
| burgerking | 20:fa411d58e3ee | 128 | { |
| burgerking | 20:fa411d58e3ee | 129 | if(//distObsGauche<20cm||distObsDroite<20cm) |
| burgerking | 20:fa411d58e3ee | 130 | iState=Rotation; |
| burgerking | 20:fa411d58e3ee | 131 | if(//distObsGauche>40cm&&distObsDroite>40cm) |
| burgerking | 20:fa411d58e3ee | 132 | iState=Navigation; |
| burgerking | 20:fa411d58e3ee | 133 | if(/*white tested*/||bumpers==1) |
| burgerking | 21:39815fb7e4f5 | 134 | iState=Arrive; |
| burgerking | 20:fa411d58e3ee | 135 | } |
| burgerking | 20:fa411d58e3ee | 136 | |
| burgerking | 20:fa411d58e3ee | 137 | while(iState=Rotation) |
| burgerking | 20:fa411d58e3ee | 138 | { |
| burgerking | 20:fa411d58e3ee | 139 | if(//distObsGauche>40cm&&distObsDroite>40cm) |
| burgerking | 20:fa411d58e3ee | 140 | iState=Navigation; |
| burgerking | 20:fa411d58e3ee | 141 | if(/*white tested*/||bumpers==1) |
| burgerking | 20:fa411d58e3ee | 142 | iState=Evitement; |
| burgerking | 20:fa411d58e3ee | 143 | } |
| burgerking | 20:fa411d58e3ee | 144 | |
| burgerking | 20:fa411d58e3ee | 145 | |
| burgerking | 20:fa411d58e3ee | 146 | |
| burgerking | 20:fa411d58e3ee | 147 | |
| burgerking | 17:db154d50ab1f | 148 | }//while |
| burgerking | 17:db154d50ab1f | 149 | } |