ENIB 2024 : Le cyclone COMUR

De Les Fabriques du Ponant
Révision datée du 25 janvier 2024 à 14:38 par Azad (discussion | contributions) (Troubleshouting)
Aller à : navigation, rechercher

Titre de la fiche expérience :

Description (résumé)

Notre jeu s'appelle "Le cyclone". Le but est simple, appuyer sur le bouton quand la led tournante atteint la led statique sur le cercle de 60 leds. Il y a 5 niveaux de difficultés différentes. La vitesse d'allumage des leds augmente à chaque niveau. Ci-dessous vous verrez une vidéo exemple de notre jeu :

Introduction

Voici une photo de notre groupe :

Photo groupe cyclone COMUR.jpeg

Notre groupe est composé de :

- Sofiya Debois

- Korao Layo Fatima Nadjad

- Maximin Bourgeais

- Côme Beaudouin

- Arthur Bernel

- Azad Arbab Chirani

Outil et matériel

Ici, on va pouvoir retrouver la liste de matériels ainsi que les outils nécessaire à la confection de notre jeu.

Il nous faut :

- une pochette avec le matériel de base

Photo matériel cyclone COMUR.jpeg

- une carte ESP WROOM 32

Arduino cyclone.jpg

- des résistances pour arriver à 219 Ohms (il nous faut 2 fois ça)

Rési 219Ohm.jpg

- des résistances pour arriver à 830 Ohms

Rési 830 Ohm.jpg

- un buzzer

Buzzer.jpg

- une batterie portative

Batterieportative.jpg

- des câbles

Câbles.jpg

Fichiers à joindre

code, ficher d'impression 3D, de découpe laser ou vinyle, ...

Mettre du code Arduino

 1  
 2 #define PIN 9
 3 #include <Arduino_GFX_Library.h>
 4 
 5 void setup() {
 6   // put your setup code here, to run once:
 7 
 8 }
 9 
10 void loop() {
11   // put your main code here, to run repeatedly:
12 
13 }

Étapes de fabrication

On va indiquer ici toutes les étapes de la création du prototype à la version finale de notre projet (avec des photos, dessins...).

étape 1 : comprendre le fonctionnement du jeu

En allant sur le wiki de la fabrique du ponant, vous pouvez retrouver des vidéos montrant le fonctionnement du jeu (voir la vidéo dessus). On retrouve aussi un prototype de code qu'on va modifier pour qu'il fonctionne avec notre matériel.

étape 2 : réunir le matériel nécessaire

Au niveau du matériel, dès le début, vous avez une pochette avec à l'intérieur, une ring avec 60 leds, une bande de 5 leds, un transistor, une plaquette pour les liaisons entre les résistances et les câbles et un bouton. Il a fallu qu'on aille chercher en plus :

- une carte ESP WROOM 32

- des câbles

- une résistance 830 Ohms (on l'a décomposé en une résistance de 680 Ohms et une résistance de 150 Ohms)

- deux résistances de 219 Ohms (on les a décomposé en trois résistance de 68 ohms et une résistance de 15 Ohms)

- un buzzer

- une batterie portative

étape 3 : dessiner le design sur papier

Avant de faire la découpe du carton, on a dessiné un design sur papier.

Dessin1.jpg Dessin2.jpg

étape 4 : découper le socle

On a décidé de faire notre jeu en carton. Voici les découpes qu'on a réalisé :

Découpe carton.jpg Découpe.jpg

On a rajouté cette découpe en noir pour la customisation de notre jeu.

étape 5 : faire le câblage sur Tinkercad

Avant de réaliser notre câblage avec des vrais composants, nous avons réalisé un câblage sur Tinkercad.

Cablagetc.png Image rési tc.png

L'image à droite représente les 2 résistances sur l'image à gauche (219 Ohms en 4 résistances).

étape 6 : réaliser le câblage et tester le code

On réalise le câblage final pour voir si tout fonctionne bien (le code, le téléversement sur la carte...).

Câblagefin.jpg

étape 7 : finir la maquette

Troubleshouting

Le premier problème qu'on a rencontré est au niveau du code. Au lieu d'avoir le jeu du cyclone, on a toute les leds qui s'allument ce qui n'est pas normal (voir photo).

Erreurcâblage.jpg

Le problème venait des entrées sur le code car nous n'avons pas la même carte que le code qu'on nous a donné.

1 #include "FastLED.h" //Bibliothèque permettant de gérer les LEDs
2 #define NUM_LEDS 60 //Le nombre de LEDs sur le ring
3 #define DATA_PIN 0 //Pin correspondant au ring
4 #define BUTTON_PIN 2 //Pin du bouton
5 #define SCORE_PIN 4 //Pin de la bande LED du score
6 #define SCORE_LEDS 5 //Le nombre de LEDs sur la bande du score
7 #define BRIGHTNESS 10 //Luminosité des LEDs du jeu
8 CRGB leds[NUM_LEDS]; //ring LED
9 CRGB sleds[NUM_LEDS]; //bande LED

Le second problème était un problème de temps. A chaque fois qu'on passait au niveau suivant, on devait attendre une trentaine de secondes, ce qui est vachement long.

Le problème venait entre autre du buzzer. Notre jeu a normalement besoin d'un buzzer passif et notre programme doit générer une fréquence pour ce buzzer. Elle était créé par la fonction arduino "tone", qui ralentissait énormément notre programme. On a donc pris un haut parleur passif qui génère des fréquences à différents moments clés du jeu (niveau passé, lorsqu'on a perdu...)

Sources et documentation complémentaire

Téléchargez le fichier de découpe

ne pas modifier sous cette ligne