ENIB 2025 : Jack Box : Différence entre versions
(→é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: | + | [[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: | + | [[Fichier:1737642843017.jpg|400px|thumb|center|'''Câblage''']] |
− | |||
− | |||
− | |||
</div> | </div> | ||
</center> | </center> |
Version du 23 janvier 2025 à 16:58
Titre de la fiche expérience :
Sommaire
[masquer]Description
Notre équipe
Dans le cadre de l'hackathon organisé par les Petits Débrouillards, nous vous présentons notre magnifique Jack Box !
Outil et Matériel
**Quantité** | **Matériel/Outil** |
---|---|
1 | Support
|
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.
é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 :
é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 :
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