ENIB 2022 - groupe C : flipper

De Les Fabriques du Ponant
Aller à : navigation, rechercher

photo de l'équipe

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)

haut des gachettes du flipper

Fichiers à avoir

Comment faire

Flipper2022ENIBcabalage.png

Sources

Code

#include "EEPROM.h"
#include <Wire.h>
#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