ENIB 2022 - groupe C : flipper

De Les Fabriques du Ponant
Révision datée du 17 janvier 2022 à 17:16 par Erwann (discussion | contributions) (Code)
Aller à : navigation, rechercher

photo de l'équipe

Photoenib2018.jpg

Que fait ce projet ?

L'objectif est de recréer un flipper taille miniature.

Liste des composants

  • carte arduino nano
  • 2 gachettes de flipper (voir le fichier stl puis les imprimer)
  • planches en bois à couper aux bonnes dimensions
  • x capteurs piezo avec résistance d'un MegΩ
  • 4 élastiques
  • une bille
  • 1 bouchon en liège
  • une tige en bois (dans laquelle on pourra embrocher des bouchons en lièges)

vignette|haut des gachettes du flipper

Fichiers à avoir

Sources

  1. include "EEPROM.h"
  2. include <Wire.h>
  3. include "rgb_lcd.h"

rgb_lcd lcd; //branchement ecran lcd à Arduino Nano : GND relié à la masse VCC relié au 5V SDA relié à A4 SCL relié à A5 const int colorR = 255; const int colorG = 255; const int colorB = 255;


int currentState; const int BUTTON_PIN = 6; int startgame = 0; int endgame = 0;

//branchement capteur piezo  : brancher en parallèle une résistance et le capteur piezo, les broches du capteur piezo : Une broche sur GND l'autre broche sur A0 // Variable pour désigner quelle pin est utilisée pour le capteur int capteurPiezo = A0; // pin Analog 0 // Variable pour contenir la valeur du capteur int valeurPiezo ; int score; int highscore;

void setup() { // Établit la connexion série à 9600 bauds Serial.begin(9600); pinMode(BUTTON_PIN, INPUT_PULLUP); highscore = EEPROM.read(600); //Serial.println("Highscore");Serial.println(highscore);

// set up the LCD's number of columns and rows:

lcd.begin(16, 2);

lcd.setRGB(colorR, colorG, colorB);

   // Print a message to the LCD.

lcd.clear(); lcd.setCursor(0,0);

}

void loop() {

currentState = digitalRead(BUTTON_PIN); //Serial.println("currentState");Serial.println(currentState);

if(currentState==0) {

 delay(100);
 if(startgame==0)
{startgame=1;
score=0;
endgame=0;}
else
{startgame=0;
endgame=1;}

}

if (startgame==0) { lcd.clear(); lcd.setCursor(0,0); lcd.print("Highscore : ");lcd.print(highscore); if(score!=0) { lcd.setCursor(0,1); lcd.print("Your score : ");lcd.print(score); } }

if (startgame==1) {

// Lit la pin du capteur et l'assigne à la variable valeurPiezo valeurPiezo = analogRead(capteurPiezo); // Affiche au moniteur série la valeur de valeurPiezo if (valeurPiezo >= 1 ) {

 score+=1;
 //Serial.println("score");Serial.println(score); 

}

// Laisse un court délai afin que l'utilisateur puisse lire les valeurs correctement delay(50);

if(score>highscore)

{EEPROM.write(600,score);
}

lcd.clear(); lcd.setCursor(0,0); lcd.print("Highscore : ");lcd.print(highscore); lcd.setCursor(0,1); lcd.print("Your score : ");lcd.print(score); }

}

Catégories