ENIB 2024 : Apuie viiiiite : Différence entre versions

De Les Fabriques du Ponant
Aller à : navigation, rechercher
m (Mettre du code Arduino)
(ne pas modifier sous cette ligne)
 
(20 révisions intermédiaires par un autre utilisateur non affichées)
Ligne 1 : Ligne 1 :
 
Titre de la fiche expérience :
 
Titre de la fiche expérience :
==description (résumé)==
+
==description==
éventuelle photo de l'équipe
+
La Led Race est une course de led dans laquelle une led rouge et une led verte se battent pour la première place, pour ce faire, chaque joueur dispose d'un bouton poussoir sur lequel il faut appuyer le plus vite possible.
  
  
  
[[Fichier:Pain.jpg|400px]]
+
[[Fichier:Ledrace.png|400px]]
  
 
==Introduction==
 
==Introduction==
  
éventuelle vidéo
+
Etudiant ingénieur, dans le cadre d'un hackathon organisé par les petits débrouillards, nous devions réaliser un jeu avec des leds pour les enfants, nous avons tiré au sort et sommes tombés sur la led race que nous avons câbles avec une carte ESP-VROOM-32.
==outil et matériel==
 
  
==fichiers à joindre==
+
==Ca peut servir==
code, ficher d'impression 3D, de découpe laser ou vinyle, ...
 
===Code Arduino===
 
<syntaxhighlight lang="Arduino" line>
 
#include <Adafruit_NeoPixel.h>
 
  
#define LED_STRIP_PIN 2
+
[[Fichier:Schema ledrace.png|400px]]
#define NUM_LEDS 60
 
#define BUZZER_PIN 3
 
  
// Array to store the frequency of notes
+
* la documentation : [[ESP32]]
int notes[] = {262, 294, 330, 349, 392, 440, 494, 523};
 
  
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, LED_STRIP_PIN, NEO_GRB + NEO_KHZ800);
+
* PIN que nous avons utilisé
  
int lastButtonState[2] = {LOW};          // Array to store the previous state of each button
+
[[Fichier:Code ledrace.png|300px]]
unsigned long lastDebounceTime[2] = {0}; // Array to store the last debounce time of each button
 
unsigned long buttonPressTime[2] = {0};  // Array to store the press time of each button
 
unsigned long delayStart = 0;            // Declaration of the global variable
 
const int BTN[] = {6, 7};
 
int x = 0;
 
int y = 0;
 
  
/*******************************************************************
+
==Sources et documentation complémentaire==
* @name      :setup
+
* https://openledrace.net
* @date      :2024-01-30
+
* https://www.wikidebrouillard.org/wiki/LED_RACER
* @function  :setup
+
* https://projecthub.arduino.cc/gbarbarov/open-led-race-bb534b
* @parameters :None
 
* @retvalue  :None
 
********************************************************************/  
 
void setup()
 
{
 
  pinMode(BTN[0], INPUT);
 
  pinMode(BTN[1], INPUT);
 
  strip.begin();
 
  strip.show();  // Initialize all pixels to 'off'
 
  pinMode(BUZZER_PIN, OUTPUT);
 
}
 
 
 
/*******************************************************************
 
* @name      :loop
 
* @date      :2024-01-30
 
* @function  :loop
 
* @parameters :None
 
* @retvalue  :None
 
********************************************************************/
 
void loop()
 
{
 
  // If there is a click
 
  if (click(0)) x++;
 
  if (click(1)) y++;
 
 
 
  // Set other pixels to 0
 
  for (int i = 0; i < NUM_LEDS; i++) strip.setPixelColor(i, 0);
 
  
  // Send pixels ON
+
==Point à améliorer==
  if (x == y)
 
    strip.setPixelColor(y, strip.Color(10, 0, 10));
 
  else
 
  {
 
    strip.setPixelColor(x, strip.Color(10, 0, 0));
 
    strip.setPixelColor(y, strip.Color(0, 0, 10));
 
  }
 
  strip.show();
 
  
  if (x == NUM_LEDS) {
+
Les principaux points à améliorer sont les suivants :
    for (int i = NUM_LEDS; i >= 0; --i)
 
    {
 
      for (int j = 0; j < NUM_LEDS; j++) strip.setPixelColor(j, 0);
 
      strip.setPixelColor(i, strip.Color(10, 0, 0));
 
      strip.show();
 
      delay(10);
 
    }
 
    x = 0;
 
    y = 0;
 
    playMelody();
 
  }
 
  
  if (y == NUM_LEDS)
+
* Faire des supports pour les boutons
  {
+
* Mettre des fils plus longs sur les boutons
    for (int i = NUM_LEDS; i >= 0; --i)
 
    {
 
      for (int j = 0; j < NUM_LEDS; j++) strip.setPixelColor(j, 0);
 
      strip.setPixelColor(i, strip.Color(0, 0, 10));
 
      strip.show();
 
      delay(10);
 
    }
 
    y = 0;
 
    x = 0;
 
    playMelody();
 
    delay(250);
 
  }
 
}
 
  
/*******************************************************************
+
==Problèmes==
* @name      :click
 
* @date      :2024-01-30
 
* @function  :click
 
* @parameters :None
 
* @retvalue  :0 or 1
 
********************************************************************/
 
bool click(int num)
 
{
 
  int buttonState = digitalRead(BTN[num]);
 
  
  if (buttonState != lastButtonState[num])
+
* Il faut faire attention à la carte qui a pas mal de PIN qui ne marchent pas et donc en essayer plusieurs
  {
+
* Ne pas utiliser de Linux car problème de pilotes
    lastDebounceTime[num] = millis();
 
  
    if (buttonState == HIGH)
 
    {
 
      lastButtonState[num] = buttonState;
 
      return true;
 
    }
 
  }
 
  
  lastButtonState[num] = buttonState;
 
  return false;
 
}
 
 
 
/*******************************************************************
 
* @name      :playMelody
 
* @date      :2024-01-30
 
* @function  :Do a victory melody
 
* @parameters :None
 
* @retvalue  :None
 
********************************************************************/
 
void playMelody() {
 
  // Iterate through all notes in the melody
 
  for (int i = 0; i < 8; i++)
 
  {
 
    // Play the note
 
    tone(BUZZER_PIN, notes[i], 200);
 
 
    // Wait for the duration of the note plus a short delay
 
    delay(200);
 
 
    // Stop the sound
 
    noTone(BUZZER_PIN);
 
 
    // Pause between notes
 
    delay(2);
 
  }
 
}
 
 
</syntaxhighlight>
 
 
==étapes de fabrication==
 
indiquer autant d'étape que nécessaire, chacune illustrée par des images (phot, dessins, ...)
 
 
===étape 1===
 
===étape 2===
 
===étape ...===
 
===troubleshouting===
 
quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?
 
 
==Sources et documentation complémentaire==
 
* https://openledrace.net
 
* https://www.wikidebrouillard.org/wiki/LED_RACER
 
* https://projecthub.arduino.cc/gbarbarov/open-led-race-bb534b
 
  
 
==ne pas modifier sous cette ligne==
 
==ne pas modifier sous cette ligne==
 
[[Catégorie:Enib2024]]
 
[[Catégorie:Enib2024]]
 +
[[Catégorie:N]]

Version actuelle datée du 2 février 2024 à 15:55

Titre de la fiche expérience :

description

La Led Race est une course de led dans laquelle une led rouge et une led verte se battent pour la première place, pour ce faire, chaque joueur dispose d'un bouton poussoir sur lequel il faut appuyer le plus vite possible.


Ledrace.png

Introduction

Etudiant ingénieur, dans le cadre d'un hackathon organisé par les petits débrouillards, nous devions réaliser un jeu avec des leds pour les enfants, nous avons tiré au sort et sommes tombés sur la led race que nous avons câbles avec une carte ESP-VROOM-32.

Ca peut servir

Schema ledrace.png

  • la documentation : ESP32
  • PIN que nous avons utilisé

Code ledrace.png

Sources et documentation complémentaire

Point à améliorer

Les principaux points à améliorer sont les suivants :

  • Faire des supports pour les boutons
  • Mettre des fils plus longs sur les boutons

Problèmes

  • Il faut faire attention à la carte qui a pas mal de PIN qui ne marchent pas et donc en essayer plusieurs
  • Ne pas utiliser de Linux car problème de pilotes


ne pas modifier sous cette ligne