Ce code contient un jeu relié à un micro. Il faut alors souffler sur le micro pour augmenter une jauge et tuer le personnage situé en haut de l'écran, et ensuite passé au niveau suivant. Le micro contient 4 broches, dont 1 broche de sortie analogique (valeurs entre 0 et 1). Cette broche est relié à la pin A0 de la carte MBED.

Dependencies:   TS_DISCO_F746NG mbed LCD_DISCO_F746NG BSP_DISCO_F746NG

Committer:
FionaLebel
Date:
Tue Jun 04 14:13:48 2019 +0000
Revision:
0:e77d6ddce807
version finale

Who changed what in which revision?

UserRevisionLine numberNew contents of line
FionaLebel 0:e77d6ddce807 1 #include "mbed.h"
FionaLebel 0:e77d6ddce807 2 #include "LCD_DISCO_F746NG.h"
FionaLebel 0:e77d6ddce807 3 #include "TS_DISCO_F746NG.h"
FionaLebel 0:e77d6ddce807 4 #include <string>
FionaLebel 0:e77d6ddce807 5
FionaLebel 0:e77d6ddce807 6 LCD_DISCO_F746NG lcd;
FionaLebel 0:e77d6ddce807 7 TS_DISCO_F746NG ts;
FionaLebel 0:e77d6ddce807 8 DigitalOut led1(LED1);
FionaLebel 0:e77d6ddce807 9 AnalogIn in(A0);
FionaLebel 0:e77d6ddce807 10 Serial pc(USBTX, USBRX, 9600);
FionaLebel 0:e77d6ddce807 11
FionaLebel 0:e77d6ddce807 12 int main()
FionaLebel 0:e77d6ddce807 13 {
FionaLebel 0:e77d6ddce807 14 TS_StateTypeDef TS_State;
FionaLebel 0:e77d6ddce807 15 ts.Init(200,200);
FionaLebel 0:e77d6ddce807 16 int niveau =1;
FionaLebel 0:e77d6ddce807 17 float volume = 0.00;
FionaLebel 0:e77d6ddce807 18 int compteurJauge=0;
FionaLebel 0:e77d6ddce807 19 char volumeChar[12]={0};
FionaLebel 0:e77d6ddce807 20 int etat = 1;
FionaLebel 0:e77d6ddce807 21
FionaLebel 0:e77d6ddce807 22 lcd.Clear(LCD_COLOR_WHITE);
FionaLebel 0:e77d6ddce807 23 lcd.SetBackColor(LCD_COLOR_WHITE);
FionaLebel 0:e77d6ddce807 24 lcd.SetTextColor(LCD_COLOR_LIGHTMAGENTA);
FionaLebel 0:e77d6ddce807 25 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"CAPTEUR SONORE", CENTER_MODE);
FionaLebel 0:e77d6ddce807 26 lcd.SetTextColor(LCD_COLOR_WHITE);
FionaLebel 0:e77d6ddce807 27 lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA);
FionaLebel 0:e77d6ddce807 28 lcd.DisplayStringAt(0, LINE(7), (uint8_t *)"Play", CENTER_MODE);
FionaLebel 0:e77d6ddce807 29
FionaLebel 0:e77d6ddce807 30 while(1) {
FionaLebel 0:e77d6ddce807 31
FionaLebel 0:e77d6ddce807 32 ts.GetState(&TS_State);
FionaLebel 0:e77d6ddce807 33 if ((TS_State.touchDetected) && (TS_State.touchX[0] > 190 && TS_State.touchX[0] < 290 && TS_State.touchY[0]<210 && TS_State.touchY[0]>160 ))
FionaLebel 0:e77d6ddce807 34 {
FionaLebel 0:e77d6ddce807 35 led1 = 1;
FionaLebel 0:e77d6ddce807 36 lcd.Clear(LCD_COLOR_WHITE);
FionaLebel 0:e77d6ddce807 37
FionaLebel 0:e77d6ddce807 38 while(1){
FionaLebel 0:e77d6ddce807 39
FionaLebel 0:e77d6ddce807 40 switch(etat){
FionaLebel 0:e77d6ddce807 41 case 1:
FionaLebel 0:e77d6ddce807 42 volume = in.read();
FionaLebel 0:e77d6ddce807 43 pc.printf("Volume ana = %f \r\n", volume);
FionaLebel 0:e77d6ddce807 44 wait(0.3);
FionaLebel 0:e77d6ddce807 45 sprintf(volumeChar, "%0.4f", volume);
FionaLebel 0:e77d6ddce807 46 lcd.Clear(LCD_COLOR_WHITE);
FionaLebel 0:e77d6ddce807 47 lcd.SetBackColor(LCD_COLOR_WHITE);
FionaLebel 0:e77d6ddce807 48 lcd.SetTextColor(LCD_COLOR_LIGHTMAGENTA);
FionaLebel 0:e77d6ddce807 49 lcd.DisplayStringAt(0, LINE(10), (uint8_t *)volumeChar, RIGHT_MODE);
FionaLebel 0:e77d6ddce807 50
FionaLebel 0:e77d6ddce807 51
FionaLebel 0:e77d6ddce807 52
FionaLebel 0:e77d6ddce807 53 lcd.SetBackColor(LCD_COLOR_WHITE);
FionaLebel 0:e77d6ddce807 54 lcd.SetTextColor(LCD_COLOR_LIGHTMAGENTA);
FionaLebel 0:e77d6ddce807 55 lcd.DisplayStringAt(0, LINE(1), (uint8_t *)"Tuer Arthur", CENTER_MODE);
FionaLebel 0:e77d6ddce807 56 lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA);
FionaLebel 0:e77d6ddce807 57 lcd.SetTextColor(LCD_COLOR_WHITE);
FionaLebel 0:e77d6ddce807 58 lcd.DisplayStringAt(0, LINE(3), (uint8_t *)"Arthur", CENTER_MODE);
FionaLebel 0:e77d6ddce807 59
FionaLebel 0:e77d6ddce807 60 if (volume>0.00 && volume<0.05)
FionaLebel 0:e77d6ddce807 61 {
FionaLebel 0:e77d6ddce807 62 for (int i=0; i<1;i++){
FionaLebel 0:e77d6ddce807 63
FionaLebel 0:e77d6ddce807 64 lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA);
FionaLebel 0:e77d6ddce807 65 lcd.SetTextColor(LCD_COLOR_LIGHTMAGENTA);
FionaLebel 0:e77d6ddce807 66 lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE);
FionaLebel 0:e77d6ddce807 67 }
FionaLebel 0:e77d6ddce807 68 }
FionaLebel 0:e77d6ddce807 69 else if (volume>0.05 && volume<0.08){
FionaLebel 0:e77d6ddce807 70 for (int i=0; i<2;i++){
FionaLebel 0:e77d6ddce807 71 lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA);
FionaLebel 0:e77d6ddce807 72 lcd.SetTextColor(LCD_COLOR_LIGHTMAGENTA);
FionaLebel 0:e77d6ddce807 73 lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE);
FionaLebel 0:e77d6ddce807 74 }
FionaLebel 0:e77d6ddce807 75 }
FionaLebel 0:e77d6ddce807 76 else if (volume>0.08 && volume<0.1){
FionaLebel 0:e77d6ddce807 77 for (int i=0; i<3;i++){
FionaLebel 0:e77d6ddce807 78 lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA);
FionaLebel 0:e77d6ddce807 79 lcd.SetTextColor(LCD_COLOR_LIGHTMAGENTA);
FionaLebel 0:e77d6ddce807 80 lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE);
FionaLebel 0:e77d6ddce807 81 }
FionaLebel 0:e77d6ddce807 82 }
FionaLebel 0:e77d6ddce807 83 else if (volume>0.2 && volume<0.4){
FionaLebel 0:e77d6ddce807 84 for (int i=0; i<4;i++){
FionaLebel 0:e77d6ddce807 85 lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA);
FionaLebel 0:e77d6ddce807 86 lcd.SetTextColor(LCD_COLOR_LIGHTMAGENTA);
FionaLebel 0:e77d6ddce807 87 lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE);
FionaLebel 0:e77d6ddce807 88 }
FionaLebel 0:e77d6ddce807 89 }
FionaLebel 0:e77d6ddce807 90
FionaLebel 0:e77d6ddce807 91 else if (volume>0.4 && volume<0.6){
FionaLebel 0:e77d6ddce807 92 for (int i=0; i<5;i++){
FionaLebel 0:e77d6ddce807 93 lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA);
FionaLebel 0:e77d6ddce807 94 lcd.SetTextColor(LCD_COLOR_LIGHTMAGENTA);
FionaLebel 0:e77d6ddce807 95 lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE);
FionaLebel 0:e77d6ddce807 96 }
FionaLebel 0:e77d6ddce807 97 }
FionaLebel 0:e77d6ddce807 98
FionaLebel 0:e77d6ddce807 99 else if (volume>0.6 && volume<0.8){
FionaLebel 0:e77d6ddce807 100 for (int i=0; i<6;i++){
FionaLebel 0:e77d6ddce807 101 lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA);
FionaLebel 0:e77d6ddce807 102 lcd.SetTextColor(LCD_COLOR_LIGHTMAGENTA);
FionaLebel 0:e77d6ddce807 103 lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE);
FionaLebel 0:e77d6ddce807 104 }
FionaLebel 0:e77d6ddce807 105
FionaLebel 0:e77d6ddce807 106 }
FionaLebel 0:e77d6ddce807 107 else if (volume>0.8 && volume<0.9){
FionaLebel 0:e77d6ddce807 108 for (int i=0; i<7;i++){
FionaLebel 0:e77d6ddce807 109 lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA);
FionaLebel 0:e77d6ddce807 110 lcd.SetTextColor(LCD_COLOR_LIGHTMAGENTA);
FionaLebel 0:e77d6ddce807 111 lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE);
FionaLebel 0:e77d6ddce807 112 }
FionaLebel 0:e77d6ddce807 113
FionaLebel 0:e77d6ddce807 114 }
FionaLebel 0:e77d6ddce807 115 else if (volume>0.9 && volume<1){
FionaLebel 0:e77d6ddce807 116 for (int i=0; i<9;i++){
FionaLebel 0:e77d6ddce807 117 lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA);
FionaLebel 0:e77d6ddce807 118 lcd.SetTextColor(LCD_COLOR_LIGHTMAGENTA);
FionaLebel 0:e77d6ddce807 119 lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE);
FionaLebel 0:e77d6ddce807 120 }
FionaLebel 0:e77d6ddce807 121
FionaLebel 0:e77d6ddce807 122
FionaLebel 0:e77d6ddce807 123 }
FionaLebel 0:e77d6ddce807 124 else if(volume==1.0){
FionaLebel 0:e77d6ddce807 125 lcd.Clear(LCD_COLOR_WHITE);
FionaLebel 0:e77d6ddce807 126 lcd.SetBackColor(LCD_COLOR_WHITE);
FionaLebel 0:e77d6ddce807 127 lcd.SetTextColor(LCD_COLOR_LIGHTMAGENTA);
FionaLebel 0:e77d6ddce807 128 lcd.DisplayStringAt(0, LINE(5),(uint8_t *) "VOUS AVEZ TUE ARTHUR BRAVO", CENTER_MODE);
FionaLebel 0:e77d6ddce807 129 wait(5);
FionaLebel 0:e77d6ddce807 130 etat =2;
FionaLebel 0:e77d6ddce807 131 }
FionaLebel 0:e77d6ddce807 132
FionaLebel 0:e77d6ddce807 133 break;
FionaLebel 0:e77d6ddce807 134
FionaLebel 0:e77d6ddce807 135 case 2:
FionaLebel 0:e77d6ddce807 136 volume = in.read();
FionaLebel 0:e77d6ddce807 137 pc.printf("Volume ana = %f \r\n", volume);
FionaLebel 0:e77d6ddce807 138 wait(0.3);
FionaLebel 0:e77d6ddce807 139 sprintf(volumeChar, "%0.4f", volume);
FionaLebel 0:e77d6ddce807 140 lcd.Clear(LCD_COLOR_WHITE);
FionaLebel 0:e77d6ddce807 141 lcd.SetBackColor(LCD_COLOR_WHITE);
FionaLebel 0:e77d6ddce807 142 lcd.SetTextColor(LCD_COLOR_RED);
FionaLebel 0:e77d6ddce807 143 lcd.DisplayStringAt(0, LINE(10), (uint8_t *)volumeChar, RIGHT_MODE);
FionaLebel 0:e77d6ddce807 144
FionaLebel 0:e77d6ddce807 145
FionaLebel 0:e77d6ddce807 146
FionaLebel 0:e77d6ddce807 147 lcd.SetBackColor(LCD_COLOR_WHITE);
FionaLebel 0:e77d6ddce807 148 lcd.SetTextColor(LCD_COLOR_RED);
FionaLebel 0:e77d6ddce807 149 lcd.DisplayStringAt(0, LINE(1), (uint8_t *)"Tuer Bastien", CENTER_MODE);
FionaLebel 0:e77d6ddce807 150 lcd.SetBackColor(LCD_COLOR_RED);
FionaLebel 0:e77d6ddce807 151 lcd.SetTextColor(LCD_COLOR_WHITE);
FionaLebel 0:e77d6ddce807 152 lcd.DisplayStringAt(0, LINE(3), (uint8_t *)"Bastien", CENTER_MODE);
FionaLebel 0:e77d6ddce807 153
FionaLebel 0:e77d6ddce807 154 if (volume>0.00 && volume<0.05)
FionaLebel 0:e77d6ddce807 155 {
FionaLebel 0:e77d6ddce807 156 for (int i=0; i<1;i++){
FionaLebel 0:e77d6ddce807 157
FionaLebel 0:e77d6ddce807 158 lcd.SetBackColor(LCD_COLOR_RED);
FionaLebel 0:e77d6ddce807 159 lcd.SetTextColor(LCD_COLOR_RED);
FionaLebel 0:e77d6ddce807 160 lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE);
FionaLebel 0:e77d6ddce807 161 }
FionaLebel 0:e77d6ddce807 162 }
FionaLebel 0:e77d6ddce807 163 else if (volume>0.05 && volume<0.08){
FionaLebel 0:e77d6ddce807 164 for (int i=0; i<2;i++){
FionaLebel 0:e77d6ddce807 165 lcd.SetBackColor(LCD_COLOR_RED);
FionaLebel 0:e77d6ddce807 166 lcd.SetTextColor(LCD_COLOR_RED);
FionaLebel 0:e77d6ddce807 167 lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE);
FionaLebel 0:e77d6ddce807 168 }
FionaLebel 0:e77d6ddce807 169 }
FionaLebel 0:e77d6ddce807 170 else if (volume>0.08 && volume<0.1){
FionaLebel 0:e77d6ddce807 171 for (int i=0; i<3;i++){
FionaLebel 0:e77d6ddce807 172 lcd.SetBackColor(LCD_COLOR_RED);
FionaLebel 0:e77d6ddce807 173 lcd.SetTextColor(LCD_COLOR_RED);
FionaLebel 0:e77d6ddce807 174 lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE);
FionaLebel 0:e77d6ddce807 175 }
FionaLebel 0:e77d6ddce807 176 }
FionaLebel 0:e77d6ddce807 177 else if (volume>0.2 && volume<0.4){
FionaLebel 0:e77d6ddce807 178 for (int i=0; i<4;i++){
FionaLebel 0:e77d6ddce807 179 lcd.SetBackColor(LCD_COLOR_RED);
FionaLebel 0:e77d6ddce807 180 lcd.SetTextColor(LCD_COLOR_RED);
FionaLebel 0:e77d6ddce807 181 lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE);
FionaLebel 0:e77d6ddce807 182 }
FionaLebel 0:e77d6ddce807 183 }
FionaLebel 0:e77d6ddce807 184
FionaLebel 0:e77d6ddce807 185 else if (volume>0.4 && volume<0.6){
FionaLebel 0:e77d6ddce807 186 for (int i=0; i<5;i++){
FionaLebel 0:e77d6ddce807 187 lcd.SetBackColor(LCD_COLOR_RED);
FionaLebel 0:e77d6ddce807 188 lcd.SetTextColor(LCD_COLOR_RED);
FionaLebel 0:e77d6ddce807 189 lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE);
FionaLebel 0:e77d6ddce807 190 }
FionaLebel 0:e77d6ddce807 191 }
FionaLebel 0:e77d6ddce807 192
FionaLebel 0:e77d6ddce807 193 else if (volume>0.6 && volume<0.8){
FionaLebel 0:e77d6ddce807 194 for (int i=0; i<6;i++){
FionaLebel 0:e77d6ddce807 195 lcd.SetBackColor(LCD_COLOR_RED);
FionaLebel 0:e77d6ddce807 196 lcd.SetTextColor(LCD_COLOR_RED);
FionaLebel 0:e77d6ddce807 197 lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE);
FionaLebel 0:e77d6ddce807 198 }
FionaLebel 0:e77d6ddce807 199
FionaLebel 0:e77d6ddce807 200 }
FionaLebel 0:e77d6ddce807 201 else if (volume>0.8 && volume<0.9){
FionaLebel 0:e77d6ddce807 202 for (int i=0; i<7;i++){
FionaLebel 0:e77d6ddce807 203 lcd.SetBackColor(LCD_COLOR_RED);
FionaLebel 0:e77d6ddce807 204 lcd.SetTextColor(LCD_COLOR_RED);
FionaLebel 0:e77d6ddce807 205 lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE);
FionaLebel 0:e77d6ddce807 206 }
FionaLebel 0:e77d6ddce807 207
FionaLebel 0:e77d6ddce807 208 }
FionaLebel 0:e77d6ddce807 209 else if (volume>0.9 && volume<1){
FionaLebel 0:e77d6ddce807 210 for (int i=0; i<9;i++){
FionaLebel 0:e77d6ddce807 211 lcd.SetBackColor(LCD_COLOR_RED);
FionaLebel 0:e77d6ddce807 212 lcd.SetTextColor(LCD_COLOR_RED);
FionaLebel 0:e77d6ddce807 213 lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE);
FionaLebel 0:e77d6ddce807 214 }
FionaLebel 0:e77d6ddce807 215
FionaLebel 0:e77d6ddce807 216
FionaLebel 0:e77d6ddce807 217 }
FionaLebel 0:e77d6ddce807 218 else if(volume==1.0){
FionaLebel 0:e77d6ddce807 219 lcd.Clear(LCD_COLOR_WHITE);
FionaLebel 0:e77d6ddce807 220 lcd.SetBackColor(LCD_COLOR_WHITE);
FionaLebel 0:e77d6ddce807 221 lcd.SetTextColor(LCD_COLOR_RED);
FionaLebel 0:e77d6ddce807 222 lcd.DisplayStringAt(0, LINE(5),(uint8_t *) "VOUS AVEZ TUE BASTIEN BRAVO", CENTER_MODE);
FionaLebel 0:e77d6ddce807 223 wait(5);
FionaLebel 0:e77d6ddce807 224 }
FionaLebel 0:e77d6ddce807 225 break;
FionaLebel 0:e77d6ddce807 226
FionaLebel 0:e77d6ddce807 227
FionaLebel 0:e77d6ddce807 228 }
FionaLebel 0:e77d6ddce807 229
FionaLebel 0:e77d6ddce807 230
FionaLebel 0:e77d6ddce807 231 }
FionaLebel 0:e77d6ddce807 232
FionaLebel 0:e77d6ddce807 233 }
FionaLebel 0:e77d6ddce807 234 }
FionaLebel 0:e77d6ddce807 235
FionaLebel 0:e77d6ddce807 236 }