C'est le printemps ! Fleur.gif

ENIB 2025 : Jack Box : Différence entre versions

De Les Fabriques du Ponant
Aller à : navigation, rechercher
(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 :

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 !

ArduinoLogo ®.svg.png

Introduction

IMG20250122110407.jpg 1737621729479.jpg

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

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