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
main.cpp
- Committer:
- FionaLebel
- Date:
- 2019-06-04
- Revision:
- 0:e77d6ddce807
File content as of revision 0:e77d6ddce807:
#include "mbed.h" #include "LCD_DISCO_F746NG.h" #include "TS_DISCO_F746NG.h" #include <string> LCD_DISCO_F746NG lcd; TS_DISCO_F746NG ts; DigitalOut led1(LED1); AnalogIn in(A0); Serial pc(USBTX, USBRX, 9600); int main() { TS_StateTypeDef TS_State; ts.Init(200,200); int niveau =1; float volume = 0.00; int compteurJauge=0; char volumeChar[12]={0}; int etat = 1; lcd.Clear(LCD_COLOR_WHITE); lcd.SetBackColor(LCD_COLOR_WHITE); lcd.SetTextColor(LCD_COLOR_LIGHTMAGENTA); lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"CAPTEUR SONORE", CENTER_MODE); lcd.SetTextColor(LCD_COLOR_WHITE); lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA); lcd.DisplayStringAt(0, LINE(7), (uint8_t *)"Play", CENTER_MODE); while(1) { ts.GetState(&TS_State); if ((TS_State.touchDetected) && (TS_State.touchX[0] > 190 && TS_State.touchX[0] < 290 && TS_State.touchY[0]<210 && TS_State.touchY[0]>160 )) { led1 = 1; lcd.Clear(LCD_COLOR_WHITE); while(1){ switch(etat){ case 1: volume = in.read(); pc.printf("Volume ana = %f \r\n", volume); wait(0.3); sprintf(volumeChar, "%0.4f", volume); lcd.Clear(LCD_COLOR_WHITE); lcd.SetBackColor(LCD_COLOR_WHITE); lcd.SetTextColor(LCD_COLOR_LIGHTMAGENTA); lcd.DisplayStringAt(0, LINE(10), (uint8_t *)volumeChar, RIGHT_MODE); lcd.SetBackColor(LCD_COLOR_WHITE); lcd.SetTextColor(LCD_COLOR_LIGHTMAGENTA); lcd.DisplayStringAt(0, LINE(1), (uint8_t *)"Tuer Arthur", CENTER_MODE); lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA); lcd.SetTextColor(LCD_COLOR_WHITE); lcd.DisplayStringAt(0, LINE(3), (uint8_t *)"Arthur", CENTER_MODE); if (volume>0.00 && volume<0.05) { for (int i=0; i<1;i++){ lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA); lcd.SetTextColor(LCD_COLOR_LIGHTMAGENTA); lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE); } } else if (volume>0.05 && volume<0.08){ for (int i=0; i<2;i++){ lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA); lcd.SetTextColor(LCD_COLOR_LIGHTMAGENTA); lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE); } } else if (volume>0.08 && volume<0.1){ for (int i=0; i<3;i++){ lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA); lcd.SetTextColor(LCD_COLOR_LIGHTMAGENTA); lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE); } } else if (volume>0.2 && volume<0.4){ for (int i=0; i<4;i++){ lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA); lcd.SetTextColor(LCD_COLOR_LIGHTMAGENTA); lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE); } } else if (volume>0.4 && volume<0.6){ for (int i=0; i<5;i++){ lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA); lcd.SetTextColor(LCD_COLOR_LIGHTMAGENTA); lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE); } } else if (volume>0.6 && volume<0.8){ for (int i=0; i<6;i++){ lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA); lcd.SetTextColor(LCD_COLOR_LIGHTMAGENTA); lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE); } } else if (volume>0.8 && volume<0.9){ for (int i=0; i<7;i++){ lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA); lcd.SetTextColor(LCD_COLOR_LIGHTMAGENTA); lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE); } } else if (volume>0.9 && volume<1){ for (int i=0; i<9;i++){ lcd.SetBackColor(LCD_COLOR_LIGHTMAGENTA); lcd.SetTextColor(LCD_COLOR_LIGHTMAGENTA); lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE); } } else if(volume==1.0){ lcd.Clear(LCD_COLOR_WHITE); lcd.SetBackColor(LCD_COLOR_WHITE); lcd.SetTextColor(LCD_COLOR_LIGHTMAGENTA); lcd.DisplayStringAt(0, LINE(5),(uint8_t *) "VOUS AVEZ TUE ARTHUR BRAVO", CENTER_MODE); wait(5); etat =2; } break; case 2: volume = in.read(); pc.printf("Volume ana = %f \r\n", volume); wait(0.3); sprintf(volumeChar, "%0.4f", volume); lcd.Clear(LCD_COLOR_WHITE); lcd.SetBackColor(LCD_COLOR_WHITE); lcd.SetTextColor(LCD_COLOR_RED); lcd.DisplayStringAt(0, LINE(10), (uint8_t *)volumeChar, RIGHT_MODE); lcd.SetBackColor(LCD_COLOR_WHITE); lcd.SetTextColor(LCD_COLOR_RED); lcd.DisplayStringAt(0, LINE(1), (uint8_t *)"Tuer Bastien", CENTER_MODE); lcd.SetBackColor(LCD_COLOR_RED); lcd.SetTextColor(LCD_COLOR_WHITE); lcd.DisplayStringAt(0, LINE(3), (uint8_t *)"Bastien", CENTER_MODE); if (volume>0.00 && volume<0.05) { for (int i=0; i<1;i++){ lcd.SetBackColor(LCD_COLOR_RED); lcd.SetTextColor(LCD_COLOR_RED); lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE); } } else if (volume>0.05 && volume<0.08){ for (int i=0; i<2;i++){ lcd.SetBackColor(LCD_COLOR_RED); lcd.SetTextColor(LCD_COLOR_RED); lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE); } } else if (volume>0.08 && volume<0.1){ for (int i=0; i<3;i++){ lcd.SetBackColor(LCD_COLOR_RED); lcd.SetTextColor(LCD_COLOR_RED); lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE); } } else if (volume>0.2 && volume<0.4){ for (int i=0; i<4;i++){ lcd.SetBackColor(LCD_COLOR_RED); lcd.SetTextColor(LCD_COLOR_RED); lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE); } } else if (volume>0.4 && volume<0.6){ for (int i=0; i<5;i++){ lcd.SetBackColor(LCD_COLOR_RED); lcd.SetTextColor(LCD_COLOR_RED); lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE); } } else if (volume>0.6 && volume<0.8){ for (int i=0; i<6;i++){ lcd.SetBackColor(LCD_COLOR_RED); lcd.SetTextColor(LCD_COLOR_RED); lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE); } } else if (volume>0.8 && volume<0.9){ for (int i=0; i<7;i++){ lcd.SetBackColor(LCD_COLOR_RED); lcd.SetTextColor(LCD_COLOR_RED); lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE); } } else if (volume>0.9 && volume<1){ for (int i=0; i<9;i++){ lcd.SetBackColor(LCD_COLOR_RED); lcd.SetTextColor(LCD_COLOR_RED); lcd.DisplayStringAt(0, LINE(10-i), (uint8_t *)" ", CENTER_MODE); } } else if(volume==1.0){ lcd.Clear(LCD_COLOR_WHITE); lcd.SetBackColor(LCD_COLOR_WHITE); lcd.SetTextColor(LCD_COLOR_RED); lcd.DisplayStringAt(0, LINE(5),(uint8_t *) "VOUS AVEZ TUE BASTIEN BRAVO", CENTER_MODE); wait(5); } break; } } } } }