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@23:f87e7472befe, 2020-05-03 (annotated)
- Committer:
- burgerking
- Date:
- Sun May 03 11:51:56 2020 +0000
- Revision:
- 23:f87e7472befe
- Parent:
- 22:64fa6f501426
- Child:
- 24:731f8fbc4adb
sdsdfsd
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 | 22:64fa6f501426 | 59 | int SwitchBumpers=bumpers.read(); | 
| burgerking | 22:64fa6f501426 | 60 | int SwitchUp=up.read(); | 
| burgerking | 22:64fa6f501426 | 61 | int SwitchJack=jack.read(); | 
| burgerking | 22:64fa6f501426 | 62 | int SwitchFire=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 | 22:64fa6f501426 | 85 | if(distObsDroite>distObsGauche) | 
| burgerking | 22:64fa6f501426 | 86 | commandeMoteurs(100,0); | 
| burgerking | 20:fa411d58e3ee | 87 | //printf.lcd("Evitement1"); | 
| burgerking | 20:fa411d58e3ee | 88 | else | 
| burgerking | 22:64fa6f501426 | 89 | commandeMoteurs(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 | 22:64fa6f501426 | 94 | if(distObsDroite>distObsGauche) | 
| burgerking | 22:64fa6f501426 | 95 | commandeMoteurs(100,0); | 
| burgerking | 20:fa411d58e3ee | 96 | //printf.lcd("Rotation1"); | 
| burgerking | 20:fa411d58e3ee | 97 | else | 
| burgerking | 22:64fa6f501426 | 98 | commandeMoteurs(0,100); | 
| burgerking | 20:fa411d58e3ee | 99 | //printf.lcd("Rotation2"); | 
| burgerking | 20:fa411d58e3ee | 100 | break; | 
| burgerking | 17:db154d50ab1f | 101 | }//switch | 
| burgerking | 20:fa411d58e3ee | 102 | |
| burgerking | 23:f87e7472befe | 103 | while(iState==Depart) | 
| burgerking | 20:fa411d58e3ee | 104 | { | 
| burgerking | 22:64fa6f501426 | 105 | if(SwitchJack==0||SwitchFire==1) | 
| burgerking | 20:fa411d58e3ee | 106 | iState=Navigation; | 
| burgerking | 22:64fa6f501426 | 107 | if(SwitchUp==1) | 
| burgerking | 21:39815fb7e4f5 | 108 | iState=Arrive; | 
| burgerking | 20:fa411d58e3ee | 109 | } | 
| burgerking | 20:fa411d58e3ee | 110 | |
| burgerking | 23:f87e7472befe | 111 | while(iState==Navigation) | 
| burgerking | 20:fa411d58e3ee | 112 | { | 
| burgerking | 22:64fa6f501426 | 113 | if(distObsGauche>20||distObsDroite>20) | 
| burgerking | 20:fa411d58e3ee | 114 | iState=Rotation; | 
| burgerking | 22:64fa6f501426 | 115 | if(20<distObsGauche<40&&20<distObsDroite<40) | 
| burgerking | 22:64fa6f501426 | 116 | iState=Evitement; | 
| burgerking | 22:64fa6f501426 | 117 | if(/*white tested||*/SwitchBumpers==1) | 
| burgerking | 21:39815fb7e4f5 | 118 | iState=Arrive; | 
| burgerking | 20:fa411d58e3ee | 119 | } | 
| burgerking | 20:fa411d58e3ee | 120 | |
| burgerking | 23:f87e7472befe | 121 | while(iState==Arrive) | 
| burgerking | 20:fa411d58e3ee | 122 | { | 
| burgerking | 22:64fa6f501426 | 123 | if(SwitchUp==1) | 
| burgerking | 20:fa411d58e3ee | 124 | iState=Depart; | 
| burgerking | 20:fa411d58e3ee | 125 | } | 
| burgerking | 20:fa411d58e3ee | 126 | |
| burgerking | 23:f87e7472befe | 127 | while(iState==Evitement) | 
| burgerking | 20:fa411d58e3ee | 128 | { | 
| burgerking | 22:64fa6f501426 | 129 | if(distObsGauche<20||distObsDroite<20) | 
| burgerking | 20:fa411d58e3ee | 130 | iState=Rotation; | 
| burgerking | 22:64fa6f501426 | 131 | if(distObsGauche>40&&distObsDroite>40) | 
| burgerking | 20:fa411d58e3ee | 132 | iState=Navigation; | 
| burgerking | 22:64fa6f501426 | 133 | if(/*white tested||*/SwitchBumpers==1) | 
| burgerking | 21:39815fb7e4f5 | 134 | iState=Arrive; | 
| burgerking | 20:fa411d58e3ee | 135 | } | 
| burgerking | 20:fa411d58e3ee | 136 | |
| burgerking | 23:f87e7472befe | 137 | while(iState==Rotation) | 
| burgerking | 20:fa411d58e3ee | 138 | { | 
| burgerking | 22:64fa6f501426 | 139 | if(distObsGauche>40&&distObsDroite>40) | 
| burgerking | 20:fa411d58e3ee | 140 | iState=Navigation; | 
| burgerking | 22:64fa6f501426 | 141 | if(/*white tested||*/SwitchBumpers==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 | } |