Taula de continguts:

Reproductor de MP3 controlat per infrarojos: 6 passos (amb imatges)
Reproductor de MP3 controlat per infrarojos: 6 passos (amb imatges)

Vídeo: Reproductor de MP3 controlat per infrarojos: 6 passos (amb imatges)

Vídeo: Reproductor de MP3 controlat per infrarojos: 6 passos (amb imatges)
Vídeo: Solución al problema del módulo decodificador Bluetooth MP3 2024, Juny
Anonim
Image
Image
Reproductor de MP3 controlat per infrarojos
Reproductor de MP3 controlat per infrarojos

Construïu un reproductor de MP3 de control remot per infraroig per uns 10 dòlars (usd). Té les característiques habituals: reproduir, pausar, reproduir el següent o l’anterior, reproduir una sola cançó o totes les cançons. També té variacions d'equalitzador i control de volum. Tot controlable mitjançant un comandament a distància.

Funcionalitat programada:

Tecla remota: funció

+ 01: Reducció de volum + 02: Estableix al directori núm. 2. + 03: Augment de volum + 4 … 9: seleccioneu els paràmetres de l'equalitzador següents: ++ (4) DFPLAYER_EQ_POP (5) DFPLAYER_EQ_CLASSIC (6) DFPLAYER_EQ_NORMAL ++ (7) DFPLAYER_EQ_ROCK (8) DFPLAYER_EQ_JAZZ (OK) DFPL: Reprodueix + >>: Reprodueix següent + <<: Reprodueix anterior + Amunt: Reprodueix les cançons del directori següent + Dn: Reprodueix les cançons del directori anterior + * | Tornar: Cançó única de bucle: activada + # | Sortida: Cançó única de bucle: desactivada

El primer pas és provar l’Arduino i connectar-lo a la placa de control. Els passos següents dissenyats per funcionar de forma independent. Cada pas té instruccions de cablejat i instruccions de prova. Quan construeixo projectes, connecto i provo cada component per confirmar que funcionen. Això ajuda a integrar components perquè sé que cada treball i jo ens podem centrar en els requisits d'integració.

Aquesta instrucció requereix que tingueu instal·lat l'IDE Arduino. També heu de tenir les habilitats bàsiques per descarregar un programa d'esbós Arduino des dels enllaços d'aquest projecte, crear un directori per al programa (el nom del directori és el mateix que el nom del programa). Els passos següents són carregar, visualitzar i editar el programa a l'IDE. A continuació, pengeu el programa mitjançant un cable USB a la vostra placa Arduino.

Subministraments

  • Nano V3 ATmega328P CH340G Placa de controlador micro per Arduino. Com a alternativa, podeu utilitzar un Uno.
  • Receptor d'infrarojos i control remot. He utilitzat kits de mòduls de control remot sense fils IR que venien amb un receptor d'infrarojos i un comandament a distància per infraroig.
  • Un resister, d'1K a 5K. Estic fent servir un resistent de 5K perquè en tinc un munt. El resister elimina el soroll que hi ha quan no s'utilitza el resister.
  • Cables de filferro de taulers de pa
  • Adaptador de paret de 5 volts

Vaig comprar les peces a eBay, principalment a distribuïdors de Hong Kong o Xina. Alguns distribuïdors nord-americans tenen parts iguals o similars per obtenir preus raonables i un lliurament més ràpid. Les peces de la Xina triguen de 3 a 6 setmanes a ser lliurades. Tots els distribuïdors que he utilitzat han estat fiables.

Costos aproximats: Nano $ 3, kit d'infrarojos $ 1, tauleta de pa $ 2, paquet de 40 cables de cable $ 1, $ 1 per a un adaptador de paret de 5 volts. Total, aproximadament 8 dòlars. Tingueu en compte que he comprat el Nano amb els passadors de taulers ja soldats al seu lloc, ja que les meves habilitats de soldadura són pobres.

Pas 1: afegiu l'Arduino Nano a la taula de pa

Afegiu l’Arduino Nano a la taula de pa
Afegiu l’Arduino Nano a la taula de pa

Connecteu l’Arduino Nano a la placa de pa. O, si ho preferiu, podeu utilitzar un Arduino Uno per a aquest projecte; tots dos utilitzen els mateixos pins per a aquest projecte. Connecteu el Nano (o Uno) a l'ordinador mitjançant un cable USB.

Connecteu l’alimentació i la terra des de l’Arduino a la barra d’alimentació de la placa de control. Connecteu el pin Arduino 5+ a la barra positiva del tauler de control. Connecteu el pin Arduino GRN (terra) a la barra negativa (terra) de la taula de suport. Això l’utilitzaran altres components.

Descarregueu i executeu el programa bàsic de prova Arduino: arduinoTest.ino. En executar el programa, el llum LED integrat s’encendrà durant 1 segon i després s’apagarà durant 1 segon. A més, es publiquen missatges que es poden visualitzar a Arduino IDE Tools / Serial Monitor.

+++ Configuració.

+ Inicialitzat el pin digital LED de bord per a la sortida. El LED està apagat. ++ Vés al bucle. + Comptador de bucles = 1 + Comptador de bucles = 2 + Comptador de bucles = 3 …

Com a exercici, canvieu el retard de la llum parpellejant, pengeu el programa modificat i confirmeu el canvi.

A la foto anterior hi ha una caixa de kit de filferro sense soldar de 140 peces que es pot obtenir per 3 a 5 dòlars. Fan que els taulers siguin més nets que utilitzant cables llargs per a connexions curtes.

Pas 2: afegiu el receptor d'infrarojos i connecteu-lo a l'Arduino

Afegiu el receptor d'infrarojos i connecteu-lo a l'Arduino
Afegiu el receptor d'infrarojos i connecteu-lo a l'Arduino

Connecteu els cables de femella a mascle al receptor d’infrarojos (extrems femella). Connecteu el passador de terra del mòdul de rellotge a la barra de terra de la placa de pa. Connecteu el passador d’alimentació del mòdul de rellotge a la barra de barres positiva de la taula. Connecteu el pin de sortida del receptor d'infrarojos al pin Arduino A1.

Connecteu el receptor d'infrarojos, els pins de la part superior esquerra a la dreta:

Més a l'esquerra (al costat de la X) - Nano pin A1 Centre - 5V Terra dreta A1 + - - Connexions de Nano pin | | | - Pins del receptor d'infrarojos --------- | S | | | | --- | | | | | | --- | | | ---------

A l'IDE Arduino, instal·leu una biblioteca d'infrarojos. Seleccioneu Eines / Gestiona biblioteques. Filtra la cerca escrivint "IRremote". Seleccioneu IRremote per Shirriff (com a referència, l'enllaç GitHub de la biblioteca). Informació de la biblioteca Arduino Enllaç de la biblioteca IRremote.

Descarregueu i executeu el programa de prova bàsic: infraredReceiverTest.ino. Quan executeu el programa, apunteu el comandament a distància cap al receptor i premeu diversos botons, com ara el número del 0 al 9. Els missatges de sèrie es publiquen (s’imprimeixen) que es poden visualitzar a les eines / monitor sèrie IDE Arduino.

+++ Configuració.

+ Inicialitzat el receptor d'infrarojos. ++ Vés al bucle. + Tecla OK - Commuta + Tecla> - següent + Tecla <- anterior + Tecla amunt + Tecla avall + Tecla 1: + Tecla 2: + Tecla 3: + Tecla 4: + Tecla 6: + Tecla 7: + Tecla 8: + Tecla 9: + Tecla 0: + Tecla * (Retorn) + Tecla # (Surt)

Com a exercici, utilitzeu un comandament a distància per veure els valors impresos. A continuació, podeu modificar el programa per utilitzar els valors de la instrucció de commutació de la funció infraredSwitch (). Per exemple, premeu la tecla "0" i obteniu el valor del comandament a distància, per exemple, "0xE0E08877". A continuació, afegiu un cas a la sentència switch com al fragment de codi següent.

cas 0xFF9867:

cas 0xE0E08877: Serial.print ("+ clau 0:"); Serial.println (""); trencar;

Pas 3: creeu una targeta SD Mico d'arxius MP3

Com que el DFPlayer és un petit maquinari econòmic, gestiona fitxers i carpetes de manera simplista. He tingut resultats mixtos en reproduir fitxers MP3 que no segueixen els formats recomanats següents i, per tant, recomano els següents. Tampoc no he provat altres opcions, com ara noms de fitxer de 3 dígits (exemple: 003.mp3), però he vist noms de fitxers de 3 dígits utilitzats en altres instruccions i mostres.

A continuació es mostren els formats recomanats del meu nom de fitxer i del directori de carpeta:

  • El nom de la carpeta per defecte és MP3, situat al directori arrel de la targeta SD: SD: / MP3. Aquesta carpeta és opcional quan s’utilitzen diverses carpetes.
  • El reproductor també reproduirà fitxers MP3 al directori arrel.
  • Quan feu servir diverses carpetes, utilitzeu els noms de les carpetes: 01, 02, 03, …, 99.
  • El nom del fitxer mp3 ha de tenir 4 dígits amb "0001.mp3" com a extensió, per exemple, "0001.mp3".
  • Els fitxers es poden col·locar a la carpeta MP3 o en una de les carpetes múltiples.
  • Noms de fitxer: 0001.mp3 a 0255.mp3. Tingueu en compte que el reproductor també reproduirà fitxers MP3 d'altres noms.
  • Podeu afegir caràcters després dels dígits, per exemple, "0001hello.mp3".

Es recomana formatar la targeta abans d'afegir fitxers. Això garanteix que la targeta estigui neta dels fitxers del sistema. Format amb FAT32 MS-DOS.

Al Mac, utilitzeu la utilitat de disc per formatar el disc: Aplicacions> Utilitats> obriu la Utilitat de disc.

Feu clic a la targeta SD, per exemple: Lector de targetes SD APPLE Media / MUSICSD. Feu clic a l'element de menú, Esborra. Nom del conjunt, exemple: MUSICSD. Seleccioneu: MS-DOS (greix). Feu clic a Esborra.

El disc es neteja i es format.

Vaig escriure un programa Java que copiarà un directori de fitxers MP3 a un directori de destinació, fent servir noms de fitxers i directoris que funcionin amb un mòdul DFPlayer. Per executar el programa, necessitareu instal·lar el JRE de Java. A continuació es mostra l’ajuda del programa.

$ java -jar mp3player.jar

+++ Start, programa de còpia del mòdul DFPlayer. Sintaxi: còpia java -jar mp3player.jar [(IN: directori MP3) (OUT: directori MP3)] ---------------------- Aquest programa copia un directori de fitxers MP3 per crear un altre directori de fitxers MP3 mitjançant noms de directori i fitxers que funcionin amb un mòdul DFPlayer. Abans d'executar aquest programa, + Creeu un directori dels vostres fitxers MP3. + Creeu un directori de destinació. + El directori de destinació és on es copiaran els fitxers MP3, ++ mitjançant el directori de números de dígits i els noms de fitxers. + El directori de destinació hauria d'estar buit. + Si hi ha fitxers, suprimiu els fitxers i els directoris. ---------------------- + Executeu aquest programa. + Sintaxi: còpia java -jar mp3player.jar [(IN: directori MP3) (OUT: directori MP3)] + Sintaxi mitjançant valors predeterminats: còpia java -jar mp3player.jar + Noms de directori per defecte: mp3player1 i mp3player2. + Igual que: java -jar mp3player.jar copy mp3player1 mp3player2. ---------------------- + Inseriu la targeta SD a l'ordinador. + Esborreu els directoris i fitxers de la targeta SD. + Buida la paperera perquè els fitxers continuen a la targeta SD i és possible que el mòdul DFPlayer els reprodueixi. + Copieu els directoris i fitxers nous a la targeta SD. + Expulseu la targeta de l'ordinador. ---------------------- + Inseriu la targeta al mòdul DFPlayer. + La carta està a punt per jugar

Per veure el codi font, feu clic aquí. Feu clic aquí per descarregar el fitxer del programa JAR que podeu executar.

Com a referència

Al Mac, des de la línia d’ordres, podeu executar el següent.

Llista per trobar la targeta.

Llista $ diskutil

… / Dev / disk3 (intern, físic): #: TIPUS NOM TALL IDENTIFICADOR 0: FDisk_partition_scheme * 4,0 GB disc3 1: DOS_FAT_32 MUSICSD 4,0 GB disk3s1 $ ls / Volums / MUSICSD

Copieu els fitxers per ordre a la targeta SD. Com que el DFPlayer pot ordenar la marca de temps, copieu els fitxers en l'ordre del nom del fitxer.

Netejar els fitxers ocults que poden causar problemes (referència:

$ dot_clean / Volums / MUSICSD

La vostra targeta SD ja està a punt per utilitzar-la. Inseriu-lo al mòdul DFPlayer.

Pas 4: Connecteu el mòdul DFPlayer que reprodueix fitxers MP3

Cable al mòdul DFPlayer que reprodueix fitxers MP3
Cable al mòdul DFPlayer que reprodueix fitxers MP3
Cable al mòdul DFPlayer que reprodueix fitxers MP3
Cable al mòdul DFPlayer que reprodueix fitxers MP3
Cable al mòdul DFPlayer que reprodueix fitxers MP3
Cable al mòdul DFPlayer que reprodueix fitxers MP3

He separat les connexions en tres parts: comunicacions en sèrie, alimentació i altaveu / so.

1. Connecteu els pins Arduino RX / TX al mòdul DFPlayer. Connecteu un cable entre el pin Arduino 10 i el pin 3 de DFPlayer (TX). Connecteu un resister, estic fent servir un resister de 5K del pin 2 de DFPlayer (RX), a una fila buida entre l'Arduino i el DFPlayer. Connecteu un cable del pin Nano 11 al resistent 5K. El resister 5K elimina el soroll que hi ha quan no s'utilitza el resister.

2. Connecteu el passador de terra (GND) del mòdul DFPlayer a la barra de terra de la placa de suport. Connecteu el pin d'alimentació (VCC) del mòdul DFPlayer a la barra de barres positiva de la placa de control.

3. Si teniu un únic altaveu petit, connecteu-lo als pins 6 (SPK-) i 8 (SPK +) com a la foto anterior amb Nano.

Mini pins DFPlayer

A l’IDE Arduino, instal·leu la biblioteca DFPlayer. Seleccioneu Eines / Gestiona biblioteques. Filtra la cerca escrivint "DFRobotDFPlayerMini". Seleccioneu la biblioteca del reproductor DFRobotDFPlayerMini per DFRobot (per a referència, l'enllaç de la biblioteca). Per a la meva implementació, he carregat la versió 1.0.5.

Com a referència, l'enllaç de la biblioteca. I l'enllaç de la pàgina wiki de DFPlayer.

Carregueu fitxers MP3 a la targeta micro SD. Podeu tenir cançons en directoris separats. Introduïu la targeta SD al DFPlayer.

Descarregueu i executeu el programa del reproductor MP3: mp3infrared.ino. Quan executeu el programa, dirigiu el comandament a distància cap al receptor i premeu el botó d’acord per començar a reproduir la primera cançó. Quan comença a reproduir-se, el llum blau DFPlayer s’encendrà i continuarà encès mentre es reprodueix un fitxer.

Configuració avançada

He construït un ordinador emulador Altair 8800 que utilitza un Arduino Mega. Quan vaig afegir el DFPlayer hi havia molt de soroll. Per desfer-me del soroll, vaig utilitzar una font d'alimentació independent per al DFPlayer. El Mega té una font d'alimentació i envia senyals de control sèrie al DFPlayer. El DFPlayer té una altra font d'alimentació i rep i implementa els senyals de control sèrie del Mega.

A la foto anterior, el concentrador mini USB blanc de l’emulador Altair alimenta el Mega i està connectat al mini concentrador negre del portàtil. El DFPlayer té un cable USB que el connecta directament al mini hub negre del portàtil. Aquesta configuració va eliminar el soroll que existia quan el DFPlayer s'alimentava a través del mini hub blanc de l'emulador.

Feu clic aquí per obtenir el codi configurat per a la Mega. Aquesta versió del codi utilitza pins Mega RX / TX, on, com a Nano o Uno, utilitza pins de port sèrie del programari.

A continuació es fa referència

Connexions utilitzades amb un Arduino, 1. Sèrie UART, RX per rebre instruccions de control al DFPlayer. RX: l'entrada es connecta a TX en Mega / Nano / Uno. TX per enviar informació d'estat. TX: la sortida es connecta a RX a Mega / Nano / Uno. Connexions per a Nano o Uno: RX (2) per resister al pin de programari sèrie 11 (TX). TX (3) al pin de programari sèrie 10 (RX). Connexions per a Mega: RX (2) per resistir a Serial1 pin 18 (TX). TX (3) a Serial1 pin 19 (RX). 2. Opcions d’alimentació. Connecteu-vos des de l'Arduino directament a DFPlayer: VCC a + 5V. Nota, també funciona amb + 3,3 V en el cas d'un NodeMCU. GND a terra (-). Utilitzeu una font d'energia completament diferent: VCC a + 5V de l'altra font d'energia. GND a terra (-) de l'altra font d'energia. Vaig veure una altra opció d’alimentació: des de l’Arduino + 5V, utilitzeu un 7805 amb condensadors i díode al pin VCC de DFPlayer. GND a terra (-). 3. Sortida dels altaveus. Per a un únic altaveu, menys de 3 W: SPK: al pin de l’altaveu. SPK + a l'altre passador de l'altaveu. Per a la sortida a un amplificador stearo o auriculars: DAC_R a la sortida dreta (+) DAC_L a la sortida esquerra (+) GND a la sortida de terra.

Després de les trucades de funció de biblioteca de tecles. Enllaç a la pàgina wiki de DFPlayer.

DFRobotDFPlayerMini myDFPlayer;

myDFPlayer.play (1); // Reprodueix el primer mp3 myDFPlayer.pause (); // pausa el mp3 myDFPlayer.start (); // iniciar el mp3 des de la pausa ------------------------------ myDFPlayer.next (); // Reprodueix el següent mp3 myDFPlayer.previous (); // Reprodueix mp3 anterior ------------------------------ myDFPlayer.playMp3Folder (4); // reproduir mp3 específics en SD: /MP3/0004.mp3; Nom del fitxer (0 ~ 65535) myDFPlayer.playFolder (15, 4); // reproduir mp3 específics en SD: /15/004.mp3; Nom de la carpeta (1 ~ 99); Nom del fitxer (1 ~ 255) myDFPlayer.playLargeFolder (2, 999); // reproduir mp3 específics en SD: /02/004.mp3; Nom de la carpeta (1 ~ 10); Nom del fitxer (1 ~ 1000) ------------------------------ myDFPlayer.loop (1); // Bucleu el primer mp3 myDFPlayer.enableLoop (); // habilitar bucle. myDFPlayer.disableLoop (); // desactiva el bucle. myDFPlayer.loopFolder (5); // bucleu tots els fitxers mp3 de la carpeta SD: / 05. myDFPlayer.enableLoopAll (); // bucle de tots els fitxers mp3. myDFPlayer.disableLoopAll (); // Stop loop tots els fitxers mp3. ------------------------------ myDFPlayer.volume (10); // Estableix el valor del volum. De 0 a 30 myDFPlayer.volumeUp (); // Augmentar el volum myDFPlayer.volumeDown (); // Baixar de volum ------------------------------ myDFPlayer.setTimeOut (500); // Estableix el temps d'espera de la comunicació en sèrie 500 ms myDFPlayer.reset (); // Restablir el mòdul ------------------------------ Serial.println (myDFPlayer.readState ()); // llegir estat mp3 Serial.println (myDFPlayer.readVolume ()); // llegir el volum actual Serial.println (myDFPlayer.readEQ ()); // Llegiu la configuració d'equalització Serial.println (myDFPlayer.readFileCounts ()); // llegeix tots els recomptes de fitxers a la targeta SD Serial.println (myDFPlayer.readCurrentFileNumber ()); // llegir el número de fitxer de reproducció actual Serial.println (myDFPlayer.readFileCountsInFolder (3)); // Llegir el recompte de farcits a la carpeta SD: / 03 ------------------------------ myDFPlayer.available ()

Pas 5: font d'alimentació externa

Image
Image
Font d'alimentació externa
Font d'alimentació externa
Font d'alimentació externa
Font d'alimentació externa

Ara que el reproductor de MP3 està provat i funciona, el podeu desconnectar de l'ordinador i utilitzar-lo amb una font d'alimentació independent. Per simplicitat, faig servir un adaptador de paret de 5 volts, que es pot comprar per aproximadament un dòlar, i un cable USB, un altre dòlar. El cable connecta l’Arduino a l’adaptador de paret + 5V. Atès que els pins d'alimentació i de terra d'Arduino estan connectats a la placa, això alimentarà els altres components. Per la seva simplicitat i baix cost, faig servir aquesta mateixa combinació per impulsar altres projectes.

La foto de la dreta i el vídeo mostren el reproductor connectat al meu amplificador de 40 dòlars assegut a l’altaveu Bose dret del meu escriptori. És el meu sistema de música d'escriptori: reproductor MP3 Arduino, amplificador Douk Audio i 2 altaveus Bose. Bona qualitat de so.

Espero que tingueu èxit i gaudiu de la creació del vostre propi reproductor de música MP3.

Pas 6: elimineu el soroll estàtic

Amb un volum baix, hi havia un soroll estàtic de fons irritant. El soroll estava bé quan el volum de DFPlayer era més alt i la música sonava. Però quan la música era tranquil·la, l’estàtica hi era.

Vaig trobar una pàgina de StackExchage que tenia molts suggeriments. El següent va funcionar per a mi:

  • Connecteu un cable curt entre els pins de terra de DFPlayer: els pins 7 a 10.
  • Utilitzeu un endoll de paret USB (5V) separat per alimentar el mòdul DFPlayer.
  • Connecteu la terra del endoll a la terra Arduino. Això era necessari perquè el control en sèrie funcionés entre l'Arduino i el reproductor.

L'anterior es va provar amb el meu emulador Altair 8800 que vaig millorar amb un DFPlayer per reproduir música. El jugador es controla donant voltes als panells frontals.

Recomanat: