Ciao!
oggi proverò uno shield in grado di leggere i file MP3 salvati in una scheda micro sd,
questo shield senza ulteriori componenti è in grado di pilotare un altoparlante grazie ad un'uscita audio stereo da ben 3 Watt!
lo shield di cui sto parlando è quello che vedete nella foto qui sopra,
lo potete trovare in vendita sul sito di Futura elettronica al costo di una trentina di euro.
Ecco qui sotto un semplice progetto di prova realizzato con questo shield montato su un'Arduino Mega (l'ho testato e funziona tranquillamente anche su Arduino Uno).
Il funzionamento è davvero semplice, in questo caso ad ogni tasto premuto verrà riprodotto una traccia mp3 diversa.
Adesso dobbiamo preparare la scheda microsd dove andremo a caricare i file mp3 da riprodurre.
Per prima cosa dobbiamo inserire nella scheda microsd il file di configurazione "STA013.cfg" che trovate sempre nell'archivio che avete scaricato prima sotto "configuration file".
A questo punto sarà sufficiente prendere una scheda micro sd e caricare 3 file mp3 rinominandoli "uno.mp3", "due.mp3" e "tre.mp3",
naturalmente potete anche dargli nomi differenti, basterà cambiare il nome nello sketch!
Abbiamo finito, come al solito se avete problemi scrivetemi pure qua sotto, ciao!
Seguimi sulle mie pagine per rimanere sempre aggiornato sui nuovi post!
oggi proverò uno shield in grado di leggere i file MP3 salvati in una scheda micro sd,
questo shield senza ulteriori componenti è in grado di pilotare un altoparlante grazie ad un'uscita audio stereo da ben 3 Watt!
lo shield di cui sto parlando è quello che vedete nella foto qui sopra,
lo potete trovare in vendita sul sito di Futura elettronica al costo di una trentina di euro.
Ecco qui sotto un semplice progetto di prova realizzato con questo shield montato su un'Arduino Mega (l'ho testato e funziona tranquillamente anche su Arduino Uno).
Il funzionamento è davvero semplice, in questo caso ad ogni tasto premuto verrà riprodotto una traccia mp3 diversa.
I collegamenti da effettuare sono davvero semplici, ecco lo schema:
Ed ecco lo sketch da caricare per ricreare il l'esempio che vedete nel video,
prima di poterlo utilizzare dovete scaricare ed installare la libreria "MP3Player"contenuta in questo archivio.
- #include <MP3Player.h>
- MP3Player playerone(3, 2);
- int tastouno = 6;
- int tastodue = 5;
- int tastotre = 4;
- void setup()
- {
- playerone.Init(); //inizializza lo shield mp3
- playerone.Volume(240); //imposta il volume di uscita
- pinMode (tastouno, INPUT_PULLUP);
- pinMode (tastodue, INPUT_PULLUP);
- pinMode (tastotre, INPUT_PULLUP);
- }
- void loop()
- {
- int valuno = digitalRead (tastouno);
- int valdue = digitalRead (tastodue);
- int valtre = digitalRead (tastotre);
- if (valuno == LOW)
- {
- playerone.Play("uno.mp3"); //esegui la traccia "uno.mp3" caricata nella scheda sd
- }
- if (valdue == LOW)
- {
- playerone.Play("due.mp3"); //esegui la traccia "due.mp3" caricata nella scheda sd
- }
- if (valtre == LOW)
- {
- playerone.Play("tre.mp3"); //esegui la traccia "tre.mp3" caricata nella scheda sd
- }
- }
Adesso dobbiamo preparare la scheda microsd dove andremo a caricare i file mp3 da riprodurre.
Per prima cosa dobbiamo inserire nella scheda microsd il file di configurazione "STA013.cfg" che trovate sempre nell'archivio che avete scaricato prima sotto "configuration file".
A questo punto sarà sufficiente prendere una scheda micro sd e caricare 3 file mp3 rinominandoli "uno.mp3", "due.mp3" e "tre.mp3",
naturalmente potete anche dargli nomi differenti, basterà cambiare il nome nello sketch!
Abbiamo finito, come al solito se avete problemi scrivetemi pure qua sotto, ciao!
Seguimi sulle mie pagine per rimanere sempre aggiornato sui nuovi post!
Salve, mi chiamo Pietro, ho trovato questo progetto interessante e l'ho realizzato. Ho seguito passo passo le istruzioni qui postate e quelle del produttore della scheda, ma quando eseguo la verifica dello sketch mi viene restiuito questo errore:
RispondiEliminaVoce_BB8.ino:5: error: no matching function for call to MP3Player::MP3Player(int, int)'
MP3Player playerone(3, 2);
E altre a seguire...
Mi pare di capire che non viene trovata la funzione
MP3player::MP3player(int,int)
Ma onestamente non saprei dove cercare
Sto usando Arduino Uno r.3, scheda sd 8gb fat32
Potrebbe darmi due dritte?
La ringrazio anticipatamente
Pietro
Salve Pietro,
RispondiEliminami permetto di darti del tu,
sembrerebbe un problema di libreria, hai scaricato e importato correttamente la libreria?
inoltre al momento della realizzazione del tutorial usavo la versione 1.0.5 dell'ide, potrebbe esserci un problema di compatibilità della libreria con l'ide attuale. Prova a scaricare la versione 1.0.5 dal sito arduino.cc.
Ciao
Grazie Daniele per la sollecita risposta (passo anch'io al "tu"). Ho seguito il tuo consiglio e ho installato l'IDE 1.0.5, ho rinominato il file .zip della libreria perchè sono supportati solo numeri e lettere nel nomefile. Alla verifica dello sketch ora l'errore è il seguente:
Eliminaerror: 'MP3Player' does not name a type
Viene sempre evidenziata la stringa dello sketch:
MP3Player playerone(3,2);
Sembra proprio che la libreria non venga caricata oppure, per quel che riesco a capire, questo MP3Player non viene impostato/definito.
hai estratto lo zip e copiato la cartella "cytron_mp3shield-master" nella directory "libraries" di Arduino giusto?
Eliminaprova in alternativa ad includerla direttamente dall'ide di arduino, grazie alla funzione del menu.
ciao
Ciao Daniele, queste le prove:
RispondiEliminaSe estraggo la cartella e la copio in "...\arduino\libraries\" carico lo sketch e lo verifico ho questo errore:
sketch_aug17a:3: error: 'MP3Player' does not name a type
Se provo ad inserirla dal menu sketch viene inserita una riga vuota.
Temo che la libreria non venga letta perchè ha nel nome caratteri non standard "_" e "-".
Con l'IDE 1.5.0 Beta, quando provo a caricare la libreria mi dice esplicitamente che non è valida. Ora installo l'IDE 1.5.8 Beta e poi a a crescere di versione e vediamo un po' che succede.
Ti faccio sapere.
Grazie comunque per l'interessamento.
Rieccomi.
RispondiEliminaSintetico: dall'IDE 1.5.8 a crescere gli errori sono i promi che Ti ho segnalato.
Più esattamente, mi segnalava la mancanza di files ( es sdfat.h) che ho cercato nella libreria e man mano ho copiato nella cartella \crc della libreria stessa, finchè non ha ridato il primo errore che Ti ho segnalato. Misterium Arduinensis.
PS: se rinomino la cartella della libreria per farla leggere alle versioni di IDE più vecchie, non viene accettata (se la carico nello sketch inserisce una riga vuota).
Questo commento è stato eliminato dall'autore.
RispondiEliminaQuesto commento è stato eliminato dall'autore.
RispondiEliminaQuesto commento è stato eliminato dall'autore.
RispondiEliminaOK, ho risolto, ma non riesco a pubblicare lo sketch, viene eliminata parte del codice.
RispondiEliminagrazie mille, sembra che vengano cancellate solo le 2 librerie, se vuoi scrivile qui sotto, provvederò il prima possibile ad aggiornare il post. Grazie mille per il contributo!
EliminaQuesto commento è stato eliminato dall'autore.
RispondiEliminaQuesto commento è stato eliminato dall'autore.
RispondiEliminaCiao Daniele, qui di seguito lo sketch:
RispondiElimina#include
#include
int vol = 240; //imposta il volume di uscita
int tastouno = 6;
int tastodue = 5;
int tastotre = 4;
void setup()
{
mp3.Init(3,2); //inizializza lo shield mp3
pinMode (tastouno, INPUT_PULLUP);
pinMode (tastodue, INPUT_PULLUP);
pinMode (tastotre, INPUT_PULLUP);
}
void loop()
{
int valuno = digitalRead (tastouno);
int valdue = digitalRead (tastodue);
int valtre = digitalRead (tastotre);
if (valuno == LOW)
{
mp3.PlayTrack("uno.mp3"); //esegui la traccia "uno.mp3" caricata nella scheda sd
}
if (valdue == LOW)
{
mp3.PlayTrack("due.mp3"); //esegui la traccia "due.mp3" caricata nella scheda sd
}
if (valtre == LOW)
{
mp3.PlayTrack("tre.mp3"); //esegui la traccia "tre.mp3" caricata nella scheda sd
}
}
cosa bisogna mettere dove c'è #include #include ???
EliminaQuesto commento è stato eliminato dall'autore.
RispondiEliminaQuesto commento è stato eliminato dall'autore.
RispondiEliminaBuongiorno. Io ho provato a eseguire tutto il passaggio, ma alla fine mi da questo errore:
RispondiElimina________________________________________________________________________________________
In file included from G:\Utenti\Alessio\Documenti\Arduino\Shield_MP3\Shield_MP3.ino:1:0:
G:\Utenti\Alessio\Documenti\Arduino\libraries\Cytron_MP3Shield-master\src/MP3Player.h:12:19: fatal error: SdFat.h: No such file or directory
#include
^
compilation terminated.
exit status 1
Errore durante la compilazione per la scheda Arduino/Genuino Uno.
________________________________________________________________________________________
Ho provato anche a caricare altri Sketch e tutti gli altri funzionano.
come devo fare ? :/
Vi ringrazio in anticipo.
ciao, hai scaricato ed installato la libreria?
EliminaSalve,
RispondiEliminaavrei necessità di realizzare una cosa molto simile, ma con circa 20 tasti...
Dovrei realizzare un sistema che gestisce 20 tasti (uno per ogni regione italiana) e alla pressione di ogni tasto corrisponde un file audio relativo alla regione associata. Sto dando una mano a scuola di mio figlio (elementari) e sarebbe carino far avviare la descrizione di una regione con la voce di un alunno (20 alunni, 20 regioni, 20 file audio)
è complicato gestire così tanti tasti da arduino?
Ciao, bel progetto, il problema é che con Arduino Uno non hai abbastanza porte per mettere un tasto su ogni pin, ci sono piú soluzioni per risolvere il problema, puoi collegare piú tasti ad un pin analogico di ingresso, mettendo una resistenza in serie al tasto di differente valore per ognuno, in questo modo alla pressione di un tasto vedrai un diverso valore analogico. Un altra soluzione é usare un moltiplicatore di porte tipo MCP. Fammi sapere, ciao!
Eliminae' gia' fuori produzione, qualcosa di analogo c'e' in commercio? Mi sembra perfetto per quello che voglio fare (presepe luci/effetti sonori)
RispondiEliminabuongiorno
RispondiEliminaho acquistato una shield mp3 player sparkfun. ho seguito passo per passo le sue istruzioni, scaricando la libreria e utilizzando lo sketch proposto. quando compilo lo sketch mi viene fuori questo errore:
compilation terminated.
exit status 1
Errore durante la compilazione per la scheda Arduino/Genuino Uno.
come posso fare per risolverlo?
dimenticavo: utilizzo la versione arduino 1.8.1
Elimina