C'est le printemps ! Fleur.gif

ENIB 2025 : Jack Box : Différence entre versions

De Les Fabriques du Ponant
Aller à : navigation, rechercher
(étape 3)
(étape 3)
Ligne 249 : Ligne 249 :
 
<center>
 
<center>
 
<div style="border: 1px solid #ccc; padding: 10px; display: inline-block; margin: 10px;">
 
<div style="border: 1px solid #ccc; padding: 10px; display: inline-block; margin: 10px;">
[[Fichier:1737642843017.jpg|200px|thumb|center|'''Câblage''']]
+
[[Fichier:1737638465880.jpg|400px|thumb|center|'''Support Final''']]
 
</div>
 
</div>
 
<div style="border: 1px solid #ccc; padding: 10px; display: inline-block; margin: 10px;">
 
<div style="border: 1px solid #ccc; padding: 10px; display: inline-block; margin: 10px;">
[[Fichier:1737624802568.jpg|200px|thumb|center|'''Thomas BOURDAIS''']]
+
[[Fichier:1737642843017.jpg|400px|thumb|center|'''Câblage''']]
</div>
 
<div style="border: 1px solid #ccc; padding: 10px; display: inline-block; margin: 10px;">
 
[[Fichier:1737624802585.jpg|200px|thumb|center|'''Ethan GUILLET''']]
 
 
</div>
 
</div>
 
</center>
 
</center>

Version du 23 janvier 2025 à 16:58

Titre de la fiche expérience :

Description

Notre équipe

Louis MELOU
Thomas BOURDAIS
Ethan GUILLET

Dans le cadre de l'hackathon organisé par les Petits Débrouillards, nous vous présentons notre magnifique Jack Box !

Outil et Matériel

Liste des outils et du matériel nécessaires
**Quantité** **Matériel/Outil**
1 Support
  • Carton pour le prototype
  • Bois pour le produit final
1 Carte Arduino LOLIN(WEMOS) D1 R2 &mini
1 Lecteur DFPlayer mini MP3
1 Batterie externe pour l'alimentation
1 Câble USB-A vers USB-B mini
1 Carte SD
1 Hautparleur
4 Boutons Poussoirs
4 LED RGB
1 Breadboard
/ Fils

Code Arduino

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

Premier code arduino permettant de créer des sons:

  1  
  2 /**
  3                                 _________________
  4                                /     D1 mini     \
  5                               |[ ]RST        TX[ ]|
  6                               |[ ]A0  -GPIO  RX[ ]|
  7                               |[ ]D0-16    5-D1[ ]| SCL
  8                               |[ ]D5-14    4-D2[ ]| SDA
  9                               |[ ]D6-12    0-D3[ ]|
 10                               |[ ]D7-13    2-D4[ ]| LED_BUILTIN
 11                               |[ ]D8-15     GND[ ]|
 12                               |[ ]3V3 .      5V[ ]|
 13                               |       +---+       |
 14                               |_______|USB|_______|
 15 
 16 */
 17 #include <SoftwareSerial.h>
 18 #include <DFRobotDFPlayerMini.h> 
 19 
 20 SoftwareSerial mySoftwareSerial(D5, D6);  // TX, RX
 21 DFRobotDFPlayerMini myDFPlayer ; 
 22 
 23 const int start = 16; //start D0
 24 const int bpJ = 5; //bouton 1 D1
 25 const int bpB = 4; //bouton 2 D2
 26 const int bpR = 0; //bouton 3 D3
 27 const int bpG = 2; //bouton 4 D4
 28 
 29 
 30 
 31 const int led = 15; //led D8
 32 
 33 const int busy = 13; //etat son busy D7
 34 
 35 int player = 0;
 36 int player1 = 0;
 37 int player2 = 0;
 38 int player3 = 0;
 39 int player4 = 0;
 40 
 41 unsigned long previousTime = 0;
 42 unsigned long timer = 0;
 43 const unsigned long frequency=100;
 44 
 45 int randNumber = 0;
 46 int musicState = 0;
 47 int isUp = 0;
 48 
 49 //char game[]="";
 50 
 51 void setup() {
 52   // put your setup code here, to run once:
 53   Serial.begin(115200);
 54   /*pinMode(start, INPUT);
 55   pinMode(bpJ, INPUT);
 56   pinMode(bpB, INPUT);  
 57   pinMode(bpR, INPUT);
 58   pinMode(bpG, INPUT);
 59   pinMode(ledJ, OUTPUT);
 60   pinMode(ledB, OUTPUT);
 61   pinMode(ledR, OUTPUT);
 62   pinMode(ledG, OUTPUT);*/
 63   pinMode(busy, INPUT);
 64   mySoftwareSerial.begin(9600) ;
 65   myDFPlayer.begin(mySoftwareSerial) ;
 66 }
 67 
 68 void loop() {
 69   // put your main code here, to run repeatedly:
 70   // Joue la premiere chanson de la carte SD pendant 10 secondes
 71   myDFPlayer.setTimeOut(500) ;
 72 
 73   myDFPlayer.volume(10) ; // fixe le son à 10 (maximum)
 74 
 75   test();
 76 }
 77 
 78 
 79 void test(){
 80   timer = millis();
 81 
 82   //presentation jeu
 83     myDFPlayer.play(1); //intro jeu
 84 
 85 
 86   Serial.println(digitalRead(busy));
 87 
 88 }
 89 /*
 90 void GMF() {
 91   timer = millis();
 92 
 93   //presentation jeu
 94   myDFPlayer.play(1); //intro jeu
 95 
 96   //nb joueurs
 97   if(bpJ==HIGH){
 98     player = 1;
 99     myDFPlayer.pause();
100   }
101   else if(bpB==HIGH){
102     player = 2;
103     myDFPlayer.pause();
104   }
105   else if(bpR==HIGH){
106     player = 3;
107     myDFPlayer.pause();
108   }
109   else if(bpG==HIGH){
110     player = 4;
111     myDFPlayer.pause();
112   }
113 
114   //lance le jeu, 1ere manche
115   randNumber = random(50);
116   myDFPlayer.play(randNumber);
117   digitalWrite(ledJ, HIGH);
118 
119   //fin du jeu à 5 points
120     if (timer - previousTime >= frequency ){
121     previousTime = timer;
122     if(isUp==0){
123       isUp=1;
124     }
125     else{
126       isUp==0;
127     }   
128   }
129 
130   if(player1==5){
131     if(isUp==0){
132       digitalWrite(ledJ, HIGH);
133     }
134     else{
135       digitalWrite(ledJ, LOW);
136     }
137   }
138 
139   else if(player2==5){
140     if(isUp==0){
141       digitalWrite(ledB, HIGH);
142     }
143     else{
144       digitalWrite(ledB, LOW);
145     }
146   }
147 
148   else if(player3==5){
149     if(isUp==0){
150       digitalWrite(ledR, HIGH);
151     }
152     else{
153       digitalWrite(ledR, LOW);
154     }
155   }
156 
157   else if(player4==5){
158     if(isUp==0){
159       digitalWrite(ledG, HIGH);
160     }
161     else{
162       digitalWrite(ledG, LOW);
163     }
164   }
165   //Stop du jeu par le bouton start et retour au départ
166 
167   if(start==HIGH){
168     state = "Home";
169   }
170 }*/

étapes de fabrication

indiquer autant d'étape que nécessaire, chacune illustrée par des images (photo, dessins, ...)

étape 1

En premier lieu nous avons imaginé un hack sur la base du kit 'Boxson' donné par les Petits débrouillards.
Nous avons, au départ, choisi de construire la Jack Box une boîte à jeu contenant 4 mini-jeux qui sont les suivants :
Un Simon; Un Mastermind; Un Quiz et Un Guess My Fart.

IMG20250122110407.jpg

étape 2

Nous sommes ensuite passés au premier prototype ce qui nous a permis de nous rendre compte des dimensions nécessaires au bon fonctionnement de la Jack Box  :

1737621729479.jpg

étape 3

Une fois une idée claire du design de la Jack Box en tête, nous avons commencé à construire la version finale de notre projet tout en câblant les différents composants électroniques à la carte arduino :

Support Final
Câblage

Troubleshouting

Dans ce projet, c'est le code qui nous a apporté le plus de difficultés.
En effet, la gestion des sons grâce au lecteur MP3 nous a donné du fil à retordre !
Nous avons mis du temps avant de pouvoir entendre un son sortir du hautparleur et encore plus de temps pour le maîtriser.

Sources et documentation complémentaire

Elément de présentation

je met ici le document de présentation de mon projet

ne pas modifier sous cette ligne