ENIB 2022 : Patate de forain : Différence entre versions

De Les Fabriques du Ponant
Aller à : navigation, rechercher
(Que fait ce projet ?)
(Description du projet)
Ligne 5 : Ligne 5 :
  
  
Le projet patate de forain consiste en un "punchingball" a frapper le plus fort possible pour obtenir un score.
+
Le projet patate de forain consiste en un "punchingball" à frapper le plus fort possible pour obtenir un score.
  
4 petits capteurs piezoélectriques sont coincés entre deux planches de bois. Un paquet de cotons plié en deux et stoché afin de le maintenir sous forme de petit coussin sert de punchingball collé a la planche. Il suffit donc de mettre un coup dans le coussin et cela écrase les capteurs entre les planches. le résultat de chaque capteur est ensuite récupéré par la carte arduino qui en calcule la moyenne et renvoie le score sur l'écran LCD.  
+
4 petits capteurs piezoélectriques sont coincés entre deux planches de bois. Un paquet de cotons plié en deux et schotché afin de le maintenir sous forme de petit coussin sert de punchingball collé à la planche. Il suffit donc de mettre un coup dans le coussin et cela écrase les capteurs entre les planches. Le résultat de chaque capteur est ensuite récupéré par la carte arduino qui en calcule la moyenne et renvoie le score sur l'écran LCD.  
Un pouton poussoir sert de reset pour le score actuel afin de pouvoir mettre un nouveau coup.
+
Un bouton poussoir sert de reset pour le score actuel afin de pouvoir mettre un nouveau coup.
  
 
==Liste des composants==
 
==Liste des composants==

Version du 17 janvier 2022 à 14:44

photo de l'équipe

Noé Paillet, Baptiste Rault, Tanguy Orhon, Alexis Jan, Romain Jaffré

Description du projet

Le projet patate de forain consiste en un "punchingball" à frapper le plus fort possible pour obtenir un score.

4 petits capteurs piezoélectriques sont coincés entre deux planches de bois. Un paquet de cotons plié en deux et schotché afin de le maintenir sous forme de petit coussin sert de punchingball collé à la planche. Il suffit donc de mettre un coup dans le coussin et cela écrase les capteurs entre les planches. Le résultat de chaque capteur est ensuite récupéré par la carte arduino qui en calcule la moyenne et renvoie le score sur l'écran LCD. Un bouton poussoir sert de reset pour le score actuel afin de pouvoir mettre un nouveau coup.

Liste des composants

  • paquet de cotons
  • deux petites planches de bois
  • Carte Arduino nano
  • Ecran Grove-LCD RGB Backlight
  • 4 Capteurs piezo électrique
  • 1 bouton poussoir
  • plaque labdec
  • fils électriques
  • Mon gros coup de poing

sources

Code

int maxi = 0;                       // variable du high score
int prev = 0;                       // variable du score actuel
bool acq = true;
bool dcyState = false;
#include <Wire.h>
#include "rgb_lcd.h"

rgb_lcd lcd;
const int colorR = 50;        //definition de la couleur de fond de l'écran lcd (ici du gris)
const int colorG = 50;
const int colorB = 50;


void setup() {
  
pinMode(A0, INPUT); //piezo 1
pinMode(A1, INPUT); //piezo 2
pinMode(A2, INPUT); //piezo 3
pinMode(A3, INPUT); //piezo 4

pinMode(2, INPUT); //bouton poussoir
Serial.begin(9600);

lcd.begin(16, 2);
lcd.setRGB(colorR, colorG, colorB);
}

void loop() 
{
  dcyState = digitalRead(2);    // état du bouton poussoir (1 si appuyé, 0 si non appuyé)
  //Serial.println(dcyState);
  
  if (dcyState == 0)            // si le bouton n'est pas en cours d'appuie
  {
    int in0  = analogRead(A0);
    int in1  = analogRead(A1);
    int in2  = analogRead(A2);
    int in3  = analogRead(A3);

    int in=(in0+in1+in2+in3)/4; // on calcule le score moyen obtenu par les 4 capteurs

    in = map(in,0,1023,0,999);  // on convertit un score allant de 0 à 1023 en un code allant de 0 à 999.
    if (in > prev)
    {
      if (in > maxi)
      {
        maxi = in;              // Si le meilleur score est battu, on le remplace par le score actuel
      }
    prev = in;
    Serial.println(prev);
    
    }
  }
  else
  {
    prev=0;                     // si le bouton est appuyé, le précedent score est remis à 0
    Serial.println(prev);
  }

  if (prev<10)                  // condition pour éviter d'avoir du bruit dans le résultat. Si il est inférieur à 10, l'écran affiche 0
    {
      lcd.setCursor(0,0);
    
      lcd.print("your score:");
      lcd.setCursor(11,0);     // placement à la douzième colomne de la preière ligne (après your score)

      lcd.print("0  ");
    }
  else                          // affichage à l'écran des scores
    {
    lcd.setCursor(0,0);         // placement à la première colomne de la preière ligne
    lcd.print("your score:");
    lcd.print(prev);
    
    lcd.setCursor(0,1);         // placement à la première colomne de la deuxième ligne
    lcd.print("high score:");
    lcd.print(maxi);
}
}

Cablage

Catégories