C'est l'été ! Fleur.gif

ENIB 2025 : Jack Box : Différence entre versions

De Les Fabriques du Ponant
Aller à : navigation, rechercher
(Mettre du code Arduino)
(Mettre du code Arduino)
Ligne 41 : Ligne 41 :
 
==fichiers à joindre==
 
==fichiers à joindre==
 
code, ficher d'impression 3D, de découpe laser ou vinyle, ...
 
code, ficher d'impression 3D, de découpe laser ou vinyle, ...
===Mettre du code Arduino===
+
===Code Arduino===
 
<syntaxhighlight lang="Arduino" line>  
 
<syntaxhighlight lang="Arduino" line>  
 
/**
 
/**

Version du 22 janvier 2025 à 17:53

Titre de la fiche expérience :

Description

Notre équipe

  • Louis MELOU
  • Thomas BOURDAIS
  • Ethan GUILLET

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

ArduinoLogo ®.svg.png

Introduction

IMG20250122110407.jpg

Outil et Matériel

Support

  • Carton pour le prototype
  • Bois pour le produit final

Modèle:Lien web

Lecteur MP3

Carte SD

Hautparleur

Boutons Poussoirs

LED

Breadboard

Fils

fichiers à joindre

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

Code Arduino

  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

Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?

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