ENIB 2022 - groupe A : Shooter Xtrem

De Les Fabriques du Ponant
Révision datée du 13 janvier 2022 à 16:17 par Zozo (discussion | contributions) (photo avancement projet)
Aller à : navigation, rechercher

photo avancement projet

270071326 447600900357691 1530611859194850467 n.jpg 270024821 391452386068089 3789371443119279615 n.jpg Sss269612951 629632591698040 3242314274375280698 n.jpg 271783785 268596031880956 6703405487252758256 n.jpg

Que fait ce projet ?

Shooter Xtrem : C'est une borne de basket tel que l'on peut voir dans les fêtes foraine ou bowling, Qui fonctionne à l'aide d'une photo résistance et d'un afficheur.

Le premier but notre jeu est de marquer un maximum de panier en un temps donné, Ensuite si deux machines similaires sont côte à côte il sera possible de s'affronter pour faire le meilleur score.

Liste des composants

  • Carte Arduino Nano
  • Résistance 10k
  • Capteur photo résistance
  • Afficheur LCD
  • 7 câbles électronique
  • Bouton poussoir

Code

ici je pose mon code documenté !

#include <Wire.h>
#include "rgb_lcd.h"

#define MINUTES 60
#define SECONDES 1

rgb_lcd lcd;
const int colorR = 0;
const int colorG = 255;
const int colorB = 0;
int photocellPin = 0; // the cell and 10K pulldown are connected to a0
int photocellReading; // the analog reading from the analog resistor divider
int tps = 0;
int tps_restant = 0;
int val = 0; 
int i =0;  
unsigned long chrono;
unsigned long temps = 1000;
unsigned long tempsled = 500; // Durée d'allumage des leds des joueurs
int tempsmax; // Temps max par manche


void setup(void) 
{
  // We'll send debugging information via the Serial monitor
  // set up the LCD's number of columns and rows:
    lcd.begin(16, 2);
    lcd.setRGB(colorR, colorG, colorB);
    delay(1000);
}

int loop_lumiere()
{
// Mesure la tension sur la broche A0
  int lumiere = analogRead(A0);
  // Envoi la mesure au PC pour affichage et attends 250ms
  lcd.setCursor(13,1); 
  //Serial.println(lumiere);
  lcd.print(lumiere);
  if (lumiere < 965)
    {
     val += 1;
    }
  delay(50);
  return lumiere;
}

void affichetemps(int temps) {
  byte minutes = temps / 60;
  byte secondes = temps % 60;
  int tempsaff = minutes * 100 + secondes;
  timer.showNumberDecEx(tempsaff, 0b01000000, true, 4);
}

void loop() 
{

  if (millis() - chrono >= temps) { // une seconde est passée
    tempsmax --;
    affichetemps(tempsmax);
    if (tempsmax <= 0) {
     lcd.print ("Score final : "); 
    lcd.print(val);
    }
    chrono = millis();

  for (tps==0; tps<=30; tps+=1){ 
      tps_restant = 30-tps;
      lcd.print("Tps restant : ");
      lcd.print(tps_restant);
      lcd.setCursor(0,1); 
      lcd.print("Score : ");
      lcd.print(val);
      loop_lumiere();
      delay(1000);
      lcd.clear();
    }
    lcd.print ("Score final : "); 
    lcd.print(val);
    delay (10000);
}

Catégories