Bonjour à tous.
Je suis un novice en Arduino et je n'y connais rien en programmation. Je viens donc soliciter votre aide SVP.
Pour résumer mon projet, en vrai geek fan de Ghostbusters je suis en train de réaliser une réplique de Proton Pack pour aller en convention. J'ai déjà un circuit lumières complet et fonctionnel contrôlé par un Arduino MEGA 2560 et un montage avec un Arduino UNO et une module carte Micro-SD type SMTMICROSD adapté aux cartes Arduino pour les effets sonores. Chaque Arduino à son propre programme. J'ai récupérés les schémas de branchement ainsi que les programmes sur un forum de fans de GB.
Mon problème est le suivant, avec ce système son, les effets sonores sont de piètre qualité (fichiers WAV Mono 16Khz 8 bits) et du coup je souhaiterais remplacer mon module Micro-SD par un module MP3 type DFRobot (fichiers sont de bonne qualité). Pour le branchement, pas de soucis, c'est simple, en revanche pour le programme, je suis totalement largué! L'idée serait de modifier le programme actuel de la UNO pour l'adapter à ce module MP3. Je sais que je pourrais aussi me passer la carte UNO et tout mettre sur le MEGA 2560 mais bon, si je trouve déjà quelqu'un pour modifier le code de la UNO ce serait super!
Donc voici le code à modifer :
//Proton Pack Sound Module V1.1 By ProtonGamer
#include <SD.h>
#include <SPI.h>
#define SD_ChipSelectPin 4
#include <TMRpcm.h>
TMRpcm audio;
TMRpcm tmrpcm;
char mega=11;
char other=9;
//Paramètres
char arduino_type = other; //Si vous avez un arduino Mega(2560) tapez "mega" sinon tapez "other"
int timeboot = 2200; //Ceci permet de régler le temp d'attente au démarrage(fichier "boot.wav") en millisecondes exemple, si le son dure 2200 ms je met 2200 ms = 2.2 s.
int timesloblo = 850; //C'est la même chose sauf que là c'est pour "sloblo.wav"
int timepackvent = 3700; //C'est encore la même chose sauf que là c'est pour "packvent.wav"
int timeblast = 700; //C'est encore la même chose sauf que là c'est pour "start.wav"
int timeblastoff = 1300; //C'est encore la même chose sauf que là c'est pour "blastoff.wav"
//Fin des paramètres
//Ne pas modifier, sauf si vous êtes connaisseur :)
int SW1;
int SW2;
int SW3;
int SW4;
int SW5;
int time = 0;
int time2 = 0;
char time3 = 0;
boolean act1a=0;
boolean act2=0;
boolean slbl=0;
char music = 0;
boolean activer =0;
unsigned char y=0;
char state=3;
char powersw = A5;
boolean x=0;
boolean x2=1;
boolean x3=0;
boolean x4=0;
boolean D0=0;
boolean act1=0;
boolean loop1 =0;
char cheat=1;
boolean act3 = 0;
boolean act4 = 0;
void setup(){
pinMode(A0,INPUT);
pinMode(A1,INPUT);
pinMode(A2,INPUT);
pinMode(6,INPUT);
pinMode(7,INPUT);
pinMode(powersw,0);
pinMode(state,1);
tmrpcm.speakerPin = arduino_type;
if (!SD.begin(SD_ChipSelectPin)) {
return;
}
tmrpcm.volume(1);
tmrpcm.setVolume(5);
tmrpcm.quality(1);
x=1;
digitalWrite(state, 1);
}
void loop(){
SW1=digitalRead(A0);
SW2=digitalRead(A1);
SW3=digitalRead(A2);
SW4=digitalRead(7);
SW5=digitalRead(6);
if(SW3 == 1 && SW2 == 0){
delay(1000);
music++;
if(music == 1){
tmrpcm.play("track001.wav");}
if(music == 2){
tmrpcm.play("track002.wav");}
if(music == 3){
tmrpcm.play("track003.wav");}
if(music == 4){
tmrpcm.play("track004.wav");}
if(music == 5){
tmrpcm.play("track005.wav");}
if(music > 5){
if(music == 6){
tmrpcm.play("track006.wav");}
if(music > 6){
music = 0;}
}
if(SW1 == 1 && SW2 ==0){
tmrpcm.stopPlayback();}
if(act1a==1){
act1=0;}
if(SW2 == 0 && act1 ==1 && act1a==0){
delay(10);
act1a=1;
loop1=0;
audio.loop(0);
tmrpcm.play("shutdown.wav");}
if(SW2 == 1 && act1 == 0){
act1=1;
act1a=0;
x =0;
x2 =0;
x3 =0;
x4 =0;
time = 0;
time2 = 0;
activer =0;
y=0;
state=3;
cheat=1;
tmrpcm.play("boot.wav");
delay(timeboot);
loop1 = 1;}
if(loop1 == 1){
packvent();
sloblo();
y++;
if (SW1 == 1 && cheat==2 && x==1) {
blast();
}
if(SW1 == 1 && cheat==3){
blastloop();
}
if (SW1 == 0 && cheat==1) {
vent();
}
if(SW1== 0 && cheat == 4 && x3==1){
blastoff();
}
if(SW1 == 0 && x==0 && activer == 0){
activer=1;
time2=0;
blastoff();}
if(SW1 == 1 && x==1 && x2==1 && x3==0 && x4==0 && cheat == 4 && time<1300){
activer = 0;
cheat = 2;
time2=0;
time = 0;
x = 1;}
if(time>=timeblastoff){
cheat=1;
activer=0;
x=0;}
if(time2>=timeblast && activer==0){
cheat=3;}
if(time>=timeblastoff && activer==1){
x=0;
x2=0;
activer=0;}
if(SW1 == 1){
time2++;}
if(SW1 == 0 && activer == 1){
time++;}
if(SW5 == 1){
tmrpcm.play("overheat.wav");
audio.loop(0);
while(tmrpcm.isPlaying());
}
delay(1);
}}
void blast(){
x=0;
activer = 0;
tmrpcm.play("start.wav");
audio.loop(0);
}
void blastloop(){
cheat=4;
activer=1;
x3=1;
x2=1;
x=1;
audio.loop(1);
tmrpcm.play("stream1.wav");
}
void blastoff(){
x4=0;
x3=0;
x2=1;
tmrpcm.play("blastoff.wav");
audio.loop(0);
}
void vent(){
time=0;
x4=1;
cheat=2;
x=1;
time2=0;
activer=0;
tmrpcm.play("vent.wav");
audio.loop(1);
}
void sloblo(){
if(SW4 == 1 && slbl==0){
slbl=1;
tmrpcm.play("sloblo.wav");
tmrpcm.loop(0);
delay(timesloblo);
act2=1;
}
if(SW4 == 0 && slbl==1){
slbl=0;
tmrpcm.play("sloblo.wav");
tmrpcm.loop(0);
delay(timesloblo);
act2=1;
}
if(act2==1){
act2=0;
tmrpcm.play("vent.wav");
audio.loop(1);}
}
void packvent(){
if(SW3 == 1 && act3 ==0){
act3=1;
tmrpcm.play("packvent.wav");
delay(timepackvent);
act4=1;}
if(act4==1){
act4=0;
act3=0;
tmrpcm.play("vent.wav");
tmrpcm.loop(1);}
}
Quelqu'un pourrait-il me venir en aide SVP? J'ai essayé par moi même mais je n'y comprends vraiment rien au langage de programmation. Merci beaucoup pour votre aide.