ENIB 2025 : Jack Box : Différence entre versions
(→Notre équipe) |
(→Code Arduino) |
||
Ligne 59 : | Ligne 59 : | ||
code, ficher d'impression 3D, de découpe laser ou vinyle, ... | code, ficher d'impression 3D, de découpe laser ou vinyle, ... | ||
===Code Arduino=== | ===Code Arduino=== | ||
+ | |||
+ | Premier code arduino permettant de créer des sons: | ||
<syntaxhighlight lang="Arduino" line> | <syntaxhighlight lang="Arduino" line> | ||
/** | /** |
Version du 23 janvier 2025 à 16:07
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 !
Introduction
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 |
fichiers à joindre
code, ficher d'impression 3D, de découpe laser ou vinyle, ...
Code Arduino
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
étape 2
étape ...
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