From 5809024e7d830ad4d89b20b9589372d29aa29068 Mon Sep 17 00:00:00 2001 From: anperederi Date: Mon, 15 May 2023 19:19:40 +0200 Subject: [PATCH] adfdfd --- Projet/Projet.ino | 107 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 79 insertions(+), 28 deletions(-) diff --git a/Projet/Projet.ino b/Projet/Projet.ino index 976ce7e..1ba8391 100644 --- a/Projet/Projet.ino +++ b/Projet/Projet.ino @@ -4,23 +4,23 @@ TFT_eSPI tft; LIS3DHTR lis; +unsigned int tabPiecesNov[5][2]={{170, 170}, {160, 105}, {100, 205}, {145, 120}, {130, 220}}, // tableau des pieces du mode novice + tabPiecesCon[5][2]={{4, 100}, {2, 46}, {100, 80}, {45, 120}, {250, 120}}, // tableau des pieces du mode confirmé + tabPiecesExp[5][2]={{4, 138}, {2, 54}, {100, 69}, {45, 120}, {250, 120}}; // tableau des pieces du mode expert -unsigned int tabPiecesNov[5][2]={{150, 150}, {2, 15}, {100, 5}, {45, 120}, {30, 20}}, // tableau des pieces du mode novice - tabPiecesCon[5][2]={{4, 35}, {2, 15}, {100, 5}, {45, 120}, {450, 120}}, // tableau des pieces du mode confirmé - tabPiecesExp[5][2]={{4, 35}, {2, 15}, {100, 5}, {45, 120}, {450, 120}}; // tableau des pieces du mode expert -unsigned int xBoule=100; // position x de départ de la boule -unsigned int yBoule=100; // position y de départ de la boule +unsigned int xBoule=100, yBoule=100; // position x et y de départ de la boule const unsigned int rayonBoule = 7, rayonPiece = 5; // rayon de la boule et des pieces const unsigned int vitesseBoule = 8; // vitesse de déplacement de la boule -enum mode {novice, confirme, expert}; -const unsigned int xMax = 307; -const unsigned int yMax = 226; +unsigned int mode = 0; + +const unsigned int yMax = 226, xMax = 307; +int chrono = 30000; +bool time, start = false; -bool start = false; void setup() { @@ -33,25 +33,19 @@ void setup() { tft.fillCircle(xBoule, yBoule, rayonBoule, TFT_RED); // Dessin de la boule en rouge tft.fillRect(0,0,320,40,TFT_BLUE); // Rectangle du bandeau de scores en bleu tft.setTextColor(TFT_BLACK); // couleur du text en noir - tft.drawString("Mode novice", 10, 10); // affiche le texte en position (10, 10) // Paramétrage du giroscope : lis.begin(Wire1); lis.setOutputDataRate(LIS3DHTR_DATARATE_25HZ); // Setting output data rage to 25Hz, can be set up tp 5kHz lis.setFullScaleRange(LIS3DHTR_RANGE_2G); // Setting scale range to 2g, select from 2,4,8,16g + // Déclaration des capteurs : pinMode(WIO_KEY_C, INPUT_PULLUP); // Déclaration du bouton C en INPUT + pinMode(WIO_KEY_B, INPUT_PULLUP); pinMode(WIO_BUZZER, OUTPUT); // Déclaration du buzzer en OUTPUT } -// fonction d'affichage d'une piece -void afficherPiece(int posTab) { - tft.fillCircle(tabPiecesNov[posTab][0], tabPiecesNov[posTab][1],rayonPiece,TFT_YELLOW); // Dessin du cercle plein en jaune de la piece - tft.drawCircle(tabPiecesNov[posTab][0], tabPiecesNov[posTab][1],rayonPiece,TFT_BLACK); // Contour noir sur la piece - tft.drawString("$", (tabPiecesNov[posTab][0] - 2), (tabPiecesNov[posTab][1] - 3)); // Icon dollar sur le centre de la piece -} - // void depart() { // tft.drawString("3", 100, 100); //prints strings from (10, 10) // delay(1000); @@ -66,31 +60,88 @@ void afficherPiece(int posTab) { // go = millis(); // } -void Giroscope() { + +// fonction d'affichage d'une piece +void afficherPiece(unsigned int tab[5][2]) { + for(int i=0; i<4; i++) { + tft.fillCircle(tab[i][0], tab[i][1],rayonPiece,TFT_YELLOW); // Dessin du cercle plein en jaune de la piece + tft.drawCircle(tab[i][0], tab[i][1],rayonPiece,TFT_BLACK); // Contour noir sur la piece + tft.drawString("$", (tab[i][0] - 2), (tab[i][1] - 3)); // Icon dollar sur le centre de la piece + } +} + +void Gyroscope() { float x_values, y_values ; x_values = lis.getAccelerationX(); y_values = lis.getAccelerationY(); - if(yBoule>yMax || yBoule<(rayonBoule+40) || xBoule>xMax || xBouleyMax || yBoule<(rayonBoule+40) || xBoule>xMax || xBoule