Sommario:

Lettore MP3 controllato a infrarossi: 6 passaggi (con immagini)
Lettore MP3 controllato a infrarossi: 6 passaggi (con immagini)

Video: Lettore MP3 controllato a infrarossi: 6 passaggi (con immagini)

Video: Lettore MP3 controllato a infrarossi: 6 passaggi (con immagini)
Video: QUALE LETTORE CD COMPRARE? ► Consigli per tutti i gusti e tutte le TASCHE! 2024, Giugno
Anonim
Image
Image
Lettore MP3 controllato a infrarossi
Lettore MP3 controllato a infrarossi

Costruisci un lettore MP3 con telecomando a infrarossi per circa $ 10 (usd). Ha le solite funzioni: riproduzione, pausa, riproduzione successiva o precedente, riproduzione di un singolo brano o di tutti i brani. Ha anche variazioni dell'equalizzatore e controllo del volume. Il tutto controllabile tramite telecomando.

Funzionalità programmata:

Tasto remoto: funzione

+ 01: Abbassa volume + 02: Imposta sulla directory #2. + 03: Aumenta volume + 4…9: Seleziona le seguenti impostazioni dell'equalizzatore: ++ (4)DFPLAYER_EQ_POP (5)DFPLAYER_EQ_CLASSIC (6)DFPLAYER_EQ_NORMAL ++ (7)DFPLAYER_EQ_ROCK (8)DFPLAYER_EQ_JAZZ (9)DFPLAYER_EQ_BASS + OK: Pausa + OK: Riproduci + >>: Riproduci successivo + <<: Riproduci precedente + Su: Riproduce i brani della directory successiva + Dn: Riproduce i brani della directory precedente + *|Invio: Riproduci singolo brano: on + #|Esci: Riproduci brano singolo: disattivato

Il primo passo è testare Arduino e collegarlo alla breadboard. I passaggi seguenti sono progettati per funzionare in modo indipendente. Ogni passaggio ha istruzioni di cablaggio e istruzioni di test. Quando creo progetti, collego e testo ogni componente per confermare che funzioni. Questo aiuta a integrare i componenti perché so che ogni lavoro e io posso concentrarmi sui requisiti di integrazione.

Questo Instructable richiede l'installazione dell'IDE Arduino. È inoltre necessario disporre delle competenze di base per scaricare un programma di sketch Arduino dai collegamenti in questo progetto, creare una directory per il programma (nome della directory uguale al nome del programma). I passaggi successivi sono caricare, visualizzare e modificare il programma nell'IDE. Quindi, carica il programma tramite un cavo USB sulla tua scheda Arduino.

Forniture

  • Scheda micro controller Nano V3 ATmega328P CH340G per Arduino. In alternativa, puoi utilizzare uno.
  • Ricevitore a infrarossi e telecomando. Ho usato un kit modulo di controllo remoto wireless IR fornito con un ricevitore a infrarossi e un telecomando a infrarossi.
  • Un resistore, da 1K a 5K. Sto usando un resistore 5K perché ne ho un sacco. Il resistore rimuove il rumore che esiste quando non si utilizza il resistore.
  • Breadboard cavi di filo
  • Adattatore da parete da 5 volt

Ho comprato le parti su eBay, principalmente da distributori di Hong Kong o Cina. I distributori statunitensi a volte hanno parti uguali o simili a prezzi ragionevoli e una consegna più rapida. Le parti in Cina impiegano dalle 3 alle 6 settimane per essere consegnate. I distributori che ho utilizzato sono stati tutti affidabili.

Costi approssimativi: Nano $ 3, kit infrarossi $ 1, breadboard $ 2, pacchetto di cavi 40 fili $ 1, $ 1 per un adattatore a parete da 5 volt. Totale, circa $ 8. Nota, ho acquistato il Nano con i pin della breadboard già saldati in posizione, poiché le mie capacità di saldatura sono scarse.

Passaggio 1: aggiungi Arduino Nano alla breadboard

Aggiungi Arduino Nano alla breadboard
Aggiungi Arduino Nano alla breadboard

Collega Arduino Nano alla breadboard. Oppure, se preferisci, puoi utilizzare un Arduino Uno per questo progetto; entrambi usano gli stessi pin per questo progetto. Collega il Nano (o Uno) al computer tramite un cavo USB.

Collega l'alimentazione e la messa a terra da Arduino alla barra di alimentazione della breadboard. Collega il pin Arduino 5+ alla barra positiva della breadboard. Collega il pin Arduino GRN (massa) alla barra negativa (massa) della breadboard. Questo verrà utilizzato da altri componenti.

Scarica ed esegui il programma di test Arduino di base: arduinoTest.ino. Durante l'esecuzione del programma, la luce LED integrata si accenderà per 1 secondo, quindi si spegnerà per 1 secondo. Inoltre, vengono pubblicati messaggi che possono essere visualizzati in Arduino IDE Tools/Serial Monitor.

+++ Configurazione.

+ Inizializzato il pin digitale del LED di bordo per l'uscita. Il LED è spento. ++ Vai al ciclo. + Contatore loop = 1 + Contatore loop = 2 + Contatore loop = 3 …

Come esercizio, modificare il ritardo sulla luce lampeggiante, caricare il programma modificato e confermare la modifica.

Nella foto sopra c'è una scatola di kit di ponticelli per breadboard senza saldatura da 140 pezzi che puoi ottenere per 3-5 dollari. Rendono le schede più ordinate rispetto all'utilizzo di cavi lunghi per connessioni brevi.

Passaggio 2: aggiungere il ricevitore a infrarossi e collegarlo ad Arduino

Aggiungi il ricevitore a infrarossi e collegalo ad Arduino
Aggiungi il ricevitore a infrarossi e collegalo ad Arduino

Collegare i cavi da femmina a maschio al ricevitore a infrarossi (estremità femmina). Collegare il pin di terra del modulo orologio, alla striscia della barra di terra della breadboard. Collegare il pin di alimentazione del modulo orologio, alla striscia della barra positiva della breadboard. Collegare il pin di uscita del ricevitore a infrarossi, al pin Arduino A1.

Collegare il ricevitore a infrarossi, pin da in alto a sinistra a destra:

Più a sinistra (vicino alla X) - Nano pin A1 Centro - 5 V Destra - massa A1 + - - Collegamenti nano pin | | | - Pin ricevitore infrarossi --------- |S | | | | --- | | | | | | --- | | | ---------

Nell'IDE Arduino, installa una libreria a infrarossi. Seleziona Strumenti/Gestisci librerie. Filtra la tua ricerca digitando "IRremote". Seleziona IRremote di Shirriff (per riferimento, il collegamento alla libreria GitHub). Informazioni sulla libreria Arduino Collegamento alla libreria IRremote.

Scarica ed esegui il programma di test di base: infrarossiReceiverTest.ino. Durante l'esecuzione del programma, puntare il telecomando verso il ricevitore e premere vari pulsanti come il numero da 0 a 9. Vengono emessi messaggi seriali (stampati) che possono essere visualizzati in Arduino IDE Tools/Serial Monitor.

+++ Configurazione.

+ Inizializzato il ricevitore a infrarossi. ++ Vai al ciclo. + Tasto OK - Toggle + Tasto > - successivo + Tasto < - precedente + Tasto su + Tasto giù + Tasto 1: + Tasto 2: + Tasto 3: + Tasto 4: + Tasto 6: + Tasto 7: + Tasto 8: + Tasto 9: + Tasto 0: + Tasto * (Invio) + Tasto # (Esci)

Come esercizio, usa un telecomando della TV per vedere i valori stampati. È quindi possibile modificare il programma per utilizzare i valori nell'istruzione switch della funzione infrarossiSwitch(). Ad esempio, premi il tasto "0" e ottieni il valore per il tuo telecomando, ad esempio "0xE0E08877". Quindi, aggiungi un case nell'istruzione switch come nel seguente frammento di codice.

caso 0xFF9867:

case 0xE0E08877: Serial.print("+ Tasto 0:"); Serial.println(""); rottura;

Passaggio 3: crea una scheda Mico SD di file MP3

Poiché DFPlayer è un piccolo componente hardware economico, gestisce file e cartelle in modo semplicistico. Ho avuto risultati contrastanti durante la riproduzione di file MP3 che non seguono i seguenti formati consigliati e, pertanto, consiglio quanto segue. Inoltre, non ho testato altre opzioni, come nomi di file a 3 cifre (esempio: 003.mp3), tuttavia ho visto nomi di file a 3 cifre utilizzati in altre istruzioni ed esempi.

Di seguito sono riportati i formati consigliati per il nome del file e il nome della directory della cartella:

  • Il nome della cartella predefinita è MP3, posizionato nella directory principale della scheda SD: SD:/MP3. Questa cartella è facoltativa quando si utilizzano più cartelle.
  • Il lettore riprodurrà anche i file MP3 nella directory principale.
  • Quando si utilizzano più cartelle, utilizzare i nomi delle cartelle: 01, 02, 03, …, 99.
  • Il nome del file mp3 deve essere di 4 cifre con "0001.mp3" come estensione, ad esempio "0001.mp3".
  • I file possono essere inseriti nella cartella MP3 o in una delle cartelle multiple.
  • Nomi file: da 0001.mp3 a 0255.mp3. Nota, il lettore riprodurrà anche file MP3 con altri nomi.
  • È possibile aggiungere caratteri dopo le cifre, ad esempio "0001hello.mp3".

Si consiglia di formattare la scheda prima di aggiungere file. Ciò assicura che la scheda sia priva di file di sistema. Formattare utilizzando FAT32 MS-DOS.

Su Mac, usa l'utility disco per formattare il disco: Applicazioni > Utility > apri Utility Disco.

Fare clic sulla scheda SD, ad esempio: APPLE SD Card Reader Media/MUSICSD. Fare clic sulla voce di menu Cancella. Imposta nome, esempio: MUSICSD. Selezionare: MS-DOS (Fat). Fare clic su Cancella.

Il disco viene pulito e formattato.

Ho scritto un programma Java che copierà una directory di file MP3 in una directory di destinazione, utilizzando directory e nomi di file che funzionano con un modulo DFPlayer. Per eseguire il programma, avrai bisogno di Java JRE installato. Di seguito è riportato l'output della guida del programma.

$ java -jar mp3player.jar

+++ Avvia, programma di copia del modulo DFPlayer. Sintassi: java -jar mp3player.jar copy [(IN: directory MP3) (OUT: directory MP3)] ---------------------- Questo programma copia una directory di file MP3 per creare un'altra directory di file MP3 utilizzando directory e nomi di file che funzionano con un modulo DFPlayer. Prima di eseguire questo programma, + Crea una directory dei tuoi file MP3. + Crea una directory di destinazione. + La directory di destinazione è dove verranno copiati i file MP3, ++ utilizzando la directory dei numeri di cifre e i nomi dei file. + La tua directory di destinazione dovrebbe essere vuota. + Se sono presenti file, elimina i file e le directory. ---------------------- + Esegui questo programma. + Sintassi: java -jar mp3player.jar copy [(IN: directory MP3) (OUT: directory MP3)] + Sintassi con i valori predefiniti: java -jar mp3player.jar copy + Nomi di directory predefiniti: mp3player1 e mp3player2. + Uguale a: java -jar mp3player.jar copia mp3player1 mp3player2. ---------------------- + Inserisci la scheda SD nel tuo computer. + Elimina le directory e i file dalla scheda SD. + Svuota il cestino perché i file sono ancora sulla scheda SD e il modulo DFPlayer potrebbe riprodurli. + Copia le nuove directory e file sulla scheda SD. + Espellere la scheda dal computer. ---------------------- + Inserire la scheda nel modulo DFPlayer. + La carta è pronta per essere giocata

Per visualizzare il codice sorgente, clicca qui. Fare clic qui per scaricare il file del programma JAR che è possibile eseguire.

Per riferimento

Su Mac, dalla riga di comando, puoi eseguire quanto segue.

Elenca per trovare la carta.

$ diskutil list

… /dev/disk3 (interno, fisico): #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *4.0 GB disk3 1: DOS_FAT_32 MUSICSD 4.0 GB disk3s1 $ ls /Volumes/MUSICSD

Copia i file in ordine sulla scheda SD. Poiché DFPlayer può eseguire l'ordinamento in base al timestamp, copia i file nell'ordine del nome file.

Pulisci i file nascosti che possono causare problemi (riferimento:

$ dot_clean /Volumi/MUSICSD

La tua scheda SD è ora pronta per l'uso. Inseriscilo nel modulo DFPlayer.

Passaggio 4: collegare il modulo DFPlayer che riproduce file MP3

Cavo nel modulo DFPlayer che riproduce file MP3
Cavo nel modulo DFPlayer che riproduce file MP3
Cavo nel modulo DFPlayer che riproduce file MP3
Cavo nel modulo DFPlayer che riproduce file MP3
Cavo nel modulo DFPlayer che riproduce file MP3
Cavo nel modulo DFPlayer che riproduce file MP3

Ho separato le connessioni in 3 parti: comunicazioni seriali, alimentazione e altoparlante/suono.

1. Collegare i pin RX/TX di Arduino al modulo DFPlayer. Collegare un filo tra il pin 10 di Arduino e il pin 3 di DFPlayer (TX). Collega un resistore, sto usando un resistore 5K dal pin 2 (RX) di DFPlayer, a una riga vuota tra Arduino e DFPlayer. Collegare un filo dal Nano pin 11 al resistore 5K. Il resistore 5K rimuove il rumore che esiste quando non si utilizza il resistore.

2. Collegare il pin di terra (GND) del modulo DFPlayer alla striscia della barra di messa a terra della breadboard. Collegare il pin di alimentazione (VCC) del modulo DFPlayer, alla striscia della barra positiva della breadboard.

3. Se hai un singolo altoparlante piccolo, collegalo ai pin 6 (SPK-) e 8 (SPK+) come nella foto sopra con Nano.

Mini pin DFPlayer

Nell'IDE Arduino, installa la libreria DFPlayer. Seleziona Strumenti/Gestisci librerie. Filtra la tua ricerca digitando "DFRobotDFPlayerMini". Selezionare DFRobotDFPlayerMini dalla libreria mini player di DFRobot (per riferimento, il collegamento alla libreria). Per la mia implementazione, ho caricato la versione 1.0.5.

Per riferimento, il collegamento alla biblioteca. E il collegamento alla pagina wiki di DFPlayer.

Carica i file MP3 sulla scheda micro SD. Puoi avere canzoni in directory separate. Inserisci la scheda SD in DFPlayer.

Scarica ed esegui il programma del lettore MP3: mp3infrared.ino. Durante l'esecuzione del programma, puntare il telecomando verso il ricevitore e premere il pulsante OK per avviare la riproduzione del primo brano. Quando inizia la riproduzione, la luce blu di DFPlayer si accenderà e rimarrà accesa durante la riproduzione di un file.

Configurazione avanzata

Ho costruito un computer emulatore Altair 8800 che utilizza un Arduino Mega. Quando ho aggiunto DFPlayer c'era molto rumore. Per eliminare il rumore, ho utilizzato un alimentatore separato per DFPlayer. Il Mega ha un alimentatore e invia segnali di controllo seriali al DFPlayer. Il DFPlayer ha un altro alimentatore e riceve e implementa i segnali di controllo seriale dal Mega.

Nella foto sopra, il mini hub USB bianco dell'emulatore Altair alimenta il Mega ed è collegato al mini hub nero del laptop. Il DFPlayer ha un cavo USB che lo collega direttamente al mini hub nero del laptop. Questa configurazione ha rimosso il rumore che esisteva quando DFPlayer era alimentato tramite il mini hub bianco dell'emulatore.

Clicca qui, per il codice configurato per il Mega. Quella versione del codice utilizza i pin Mega RX/TX, dove come Nano o Uno utilizza i pin della porta seriale del software.

Quanto segue è per riferimento

Connessioni utilizzate con un Arduino, 1. Seriale UART, RX per la ricezione delle istruzioni di controllo del DFPlayer. RX: l'ingresso si collega a TX su Mega/Nano/Uno. TX per l'invio di informazioni sullo stato. TX: l'uscita si collega a RX su Mega/Nano/Uno. Connessioni per Nano o Uno: RX(2) al resistore al pin software seriale 11(TX). TX(3) al pin software seriale 10(RX). Connessioni per Mega: RX(2) a resistore a Serial1 pin 18(TX). TX(3) al pin 19(RX) di Serial1. 2. Opzioni di alimentazione. Collegati da Arduino direttamente a DFPlayer: VCC a +5V. Nota, funziona anche con +3,3 V nel caso di un NodeMCU. GND a terra (-). Utilizzare una fonte di alimentazione completamente diversa: da VCC a +5V dell'altra fonte di alimentazione. GND a massa (-) dell'altra fonte di alimentazione. Ho visto un'altra opzione di alimentazione: da Arduino +5V, usa un 7805 con condensatori e diodo al pin VCC di DFPlayer. GND a terra (-). 3. Uscita altoparlante. Per un singolo altoparlante, meno di 3 W: SPK - al pin dell'altoparlante. SPK + all'altro pin dell'altoparlante. Per l'uscita a un amplificatore stereo o auricolari: DAC_R all'uscita destra (+) DAC_L all'uscita sinistra (+) GND all'uscita massa.

Seguendo le chiamate alla funzione della libreria di chiavi. Link alla pagina wiki di DFPlayer.

DFRobotDFPlayerMini myDFPlayer;

mioDFPlayer.play(1); // Riproduci il primo mp3 myDFPlayer.pause(); // mette in pausa l'mp3 myDFPlayer.start(); // avvia l'mp3 dalla pausa --------------------------------------------- myDFPlayer.next(); // Riproduci il prossimo mp3 myDFPlayer.previous(); // Riproduci l'mp3 precedente ------------------------------ myDFPlayer.playMp3Folder(4); // riproduce mp3 specifici in SD:/MP3/0004.mp3; Nome file(0~65535) myDFPlayer.playFolder(15, 4); // riproduce mp3 specifici in SD:/15/004.mp3; Nome cartella (1~99); Nome file(1~255) myDFPlayer.playLargeFolder(2, 999); //riproduci mp3 specifici in SD:/02/004.mp3; Nome cartella (1~10); Nome file(1~1000) ------------------------------ myDFPlayer.loop(1); // Loop il primo mp3 myDFPlayer.enableLoop(); // abilita il ciclo. myDFPlayer.disableLoop(); // disabilita il ciclo. myDFPlayer.loopFolder(5); // loop tutti i file mp3 nella cartella SD:/05. myDFPlayer.enableLoopAll(); // loop tutti i file mp3. myDFPlayer.disableLoopAll(); // interrompe il ciclo di tutti i file mp3. ---------------- myDFPlayer.volume(10); // Imposta il valore del volume. Da 0 a 30 myDFPlayer.volumeUp(); // Aumenta volume myDFPlayer.volumeDown(); // Volume giù ------------------------------ myDFPlayer.setTimeOut(500); //Imposta il timeout della comunicazione seriale 500ms myDFPlayer.reset(); //Reimposta il modulo ------------------------------- Serial.println(myDFPlayer.readState()); //leggi lo stato mp3 Serial.println(myDFPlayer.readVolume()); //legge il volume corrente Serial.println(myDFPlayer.readEQ()); //leggi l'impostazione EQ Serial.println(myDFPlayer.readFileCounts()); //legge tutti i conteggi dei file nella scheda SD Serial.println(myDFPlayer.readCurrentFileNumber()); //legge il numero del file di riproduzione corrente Serial.println(myDFPlayer.readFileCountsInFolder(3)); //leggi i conteggi di riempimento nella cartella SD:/03 ------------------------------ myDFPlayer.available()

Passaggio 5: alimentazione esterna

Image
Image
Alimentazione esterna
Alimentazione esterna
Alimentazione esterna
Alimentazione esterna

Ora che il tuo lettore MP3 è testato e funzionante, puoi scollegarlo dal computer e utilizzarlo con un alimentatore indipendente. Per semplicità, utilizzo un adattatore a muro da 5 volt, che può essere acquistato per circa un dollaro, e un cavo USB, un altro dollaro. Il cavo collega l'Arduino all'adattatore da parete +5V. Poiché i pin di alimentazione e di massa di Arduino sono collegati alla breadboard, ciò alimenterà gli altri componenti. A causa della sua semplicità e del basso costo, utilizzo questa stessa combinazione per alimentare altri progetti.

La foto a destra e il video mostrano il lettore collegato al mio amplificatore da $ 40 seduto sull'altoparlante Bose destro sulla mia scrivania. È il mio sistema musicale desktop: lettore MP3 Arduino, amplificatore Douk Audio e 2 altoparlanti Bose. Buona qualità del suono.

Spero che tu abbia successo e ti sia divertito a costruire il tuo lettore musicale MP3.

Passaggio 6: eliminare il rumore statico

A basso volume, c'era un fastidioso rumore statico di sottofondo. Il rumore andava bene quando il volume di DFPlayer era più alto e la musica era in riproduzione. Ma quando la musica era tranquilla, c'era l'elettricità statica.

Ho trovato una pagina StackExchage che conteneva molti suggerimenti. Il seguente ha funzionato per me:

  • Collegare un filo corto tra i pin di terra di DFPlayer: pin da 7 a 10.
  • Utilizzare una presa a muro USB separata (5 V) per alimentare il modulo DFPlayer.
  • Collega la massa della presa a muro alla massa di Arduino. Questo era necessario per far funzionare il controllo seriale tra Arduino e il lettore.

Quanto sopra è stato testato sul mio emulatore Altair 8800 che ho migliorato con un DFPlayer per riprodurre musica. Il lettore è controllato capovolgendo gli interruttori del pannello frontale.

Consigliato: