Cuprins:

Player infraroșu controlat MP3: 6 pași (cu imagini)
Player infraroșu controlat MP3: 6 pași (cu imagini)

Video: Player infraroșu controlat MP3: 6 pași (cu imagini)

Video: Player infraroșu controlat MP3: 6 pași (cu imagini)
Video: Ce înseamna semnul tau din nastere 2024, Iunie
Anonim
Image
Image
Player infraroșu controlat MP3
Player infraroșu controlat MP3

Construiți un player MP3 cu telecomandă în infraroșu pentru aproximativ 10 USD (USD). Are caracteristicile obișnuite: redare, pauză, redare următoare sau anterioară, redare a unei singure melodii sau a tuturor melodiilor. De asemenea, are variații ale egalizatorului și control al volumului. Toate controlabile printr-o telecomandă.

Funcționalitate programată:

Tasta la distanță: Funcție

+ 01: Reducere volum + 02: Setați la directorul # 2. + 03: Creșterea volumului + 4 … 9: Selectați următoarele setări ale egalizatorului: ++ (4) DFPLAYER_EQ_POP (5) DFPLAYER_EQ_CLASSIC (6) DFPLAYER_EQ_NORMAL ++ (7) DFPLAYER_EQ_ROCK (8) DFPLAYER_EQ_JAZZ (OK): Redare + >>: Redare următoare + <<: Redare anterioară + Sus: Redare melodii din directorul următor + Dn: Redare melodii din directorul anterior + * | Întoarcere: Buclă melodie simplă: pornită + # | Ieșire: Buclă melodie simplă: dezactivată

Primul pas este testarea Arduino și conectarea la panou. Pașii care urmează sunt proiectați pentru a funcționa independent. Fiecare pas are instrucțiuni de cablare și instrucțiuni de testare. Când construiesc proiecte, conectez și testez fiecare componentă pentru a confirma că funcționează. Acest lucru ajută la integrarea componentelor, deoarece știu că fiecare lucru și eu ne putem concentra asupra cerințelor de integrare.

Acest instructabil necesită instalarea IDE-ului Arduino. De asemenea, vi se cere să aveți abilitățile de bază pentru a descărca un program de schiță Arduino de pe linkurile din acest proiect, pentru a crea un director pentru program (numele directorului același cu numele programului). Următorii pași sunt încărcarea, vizualizarea și editarea programului în IDE. Apoi, încărcați programul printr-un cablu USB pe placa Arduino.

Provizii

  • Placă micro controler Nano V3 ATmega328P CH340G pentru Arduino. Ca alternativă, puteți utiliza un Uno.
  • Receptor infraroșu și telecomandă. Am folosit un kit de modul de telecomandă fără fir IR care a venit cu un receptor cu infraroșu și telecomandă cu infraroșu.
  • Un rezistent, de la 1K la 5K. Folosesc un rezistor de 5K pentru că am o grămadă de ele. Resisterul elimină zgomotul care există atunci când nu se utilizează resisterul.
  • Cabluri de sârmă de pană
  • Adaptor de perete de 5 volți

Am cumpărat piesele de pe eBay, mai ales de la distribuitori din Hong Kong sau China. Distribuitorii americani au uneori piese identice sau similare pentru prețuri rezonabile și livrare mai rapidă. Piesele din China durează între 3 și 6 săptămâni pentru a fi livrate. Distribuitorii pe care i-am folosit au fost de încredere.

Costuri aproximative: Nano 3 dolari, kit cu infraroșu 1 dolar, panou de dolari 2 dolari, pachet de cabluri de 40 fire 1 dolar, 1 dolar pentru un adaptor de perete de 5 volți. Total, aproximativ 8 USD. Rețineți, am cumpărat Nano cu știfturile de panou de lipit deja lipite, deoarece abilitățile mele de lipit sunt slabe.

Pasul 1: Adăugați Arduino Nano la Breadboard

Adăugați Arduino Nano la Breadboard
Adăugați Arduino Nano la Breadboard

Conectați Arduino Nano în Breadboard. Sau, dacă preferați, puteți utiliza un Arduino Uno pentru acest proiect; ambii folosesc aceiași pini pentru acest proiect. Conectați Nano (sau Uno) la computer printr-un cablu USB.

Conectați alimentarea și împământarea de la Arduino la bara de alimentare a plăcii de calcul. Conectați pinul Arduino 5+ la bara pozitivă a panoului. Conectați pinul Arduino GRN (masă) la bara negativă (masă) a panoului de masă. Aceasta va fi utilizată de alte componente.

Descărcați și rulați programul de test Arduino de bază: arduinoTest.ino. Când rulați programul, lumina LED de la bord se va aprinde timp de 1 secundă, apoi se va stinge timp de 1 secundă. De asemenea, sunt postate mesaje care pot fi vizualizate în Arduino IDE Tools / Serial Monitor.

+++ Configurare.

+ A inițializat pinul digital LED de la bord pentru ieșire. LED-ul este stins. ++ Accesați bucla. + Contor buclă = 1 + Contor buclă = 2 + Contor buclă = 3 …

Ca exercițiu, modificați întârzierea pe lumina intermitentă, încărcați programul modificat și confirmați modificarea.

În fotografia de mai sus este o cutie de kit de sârmă fără sudură de 140 de bucăți, pe care o puteți obține pentru 3 până la 5 dolari. Acestea fac plăcile mai îngrijite, folosind cabluri lungi pentru conexiuni scurte.

Pasul 2: Adăugați receptorul cu infraroșu și conectați-l la Arduino

Adăugați receptorul cu infraroșu și conectați-l la Arduino
Adăugați receptorul cu infraroșu și conectați-l la Arduino

Conectați firele cablului mamă la cablul masculin la receptorul cu infraroșu (capetele mamă). Conectați știftul de masă al modulului de ceas, la banda de masă a panoului de masă. Conectați știftul de alimentare al modulului de ceas, la banda de bare pozitivă a panoului. Conectați pinul de ieșire al receptorului cu infraroșu, la pinul Arduino A1.

Conectați receptorul infraroșu, pinii de la stânga sus la dreapta:

Stânga cea mai mare (lângă X) - Nano pin A1 Centru - 5V Dreapta - masă A1 + - - Conexiuni Nano pin | | | - Pinii receptorului cu infraroșu --------- | S | | | | --- | | | | | | --- | | | ---------

În IDE-ul Arduino, instalați o bibliotecă cu infraroșu. Selectați Instrumente / Gestionați bibliotecile. Filtrați căutarea tastând „IRremote”. Selectați IRremote de Shirriff (pentru referință, link-ul GitHub bibliotecă). Informații despre bibliotecă Arduino Link pentru bibliotecă IRremote.

Descărcați și rulați programul de testare de bază: infraredReceiverTest.ino. Când rulați programul, îndreptați telecomanda către receptor și apăsați diverse butoane, cum ar fi numărul de la 0 la 9. Mesajele seriale sunt afișate (tipărite), care pot fi vizualizate în Arduino IDE Tools / Serial Monitor.

+++ Configurare.

+ Initializat receptorul infraroșu. ++ Accesați bucla. + Tasta OK - Comută + Tasta> - următoarea + Tasta <- anterioară + Tasta sus + Tasta jos + Tasta 1: + Tasta 2: + Tasta 3: + Tasta 4: + Tasta 6: + Tasta 7: + Tasta 8: + Tasta 9: + Tasta 0: + Tasta * (Return) + Tasta # (Ieșire)

Ca exercițiu, utilizați o telecomandă TV pentru a vedea valorile tipărite. Apoi puteți modifica programul pentru a utiliza valorile din declarația de comutare a funcției infraredSwitch (). De exemplu, apăsați tasta „0” și obțineți valoarea pentru telecomandă, de exemplu „0xE0E08877”. Apoi, adăugați un caz în instrucțiunea switch ca în următorul fragment de cod.

carcasa 0xFF9867:

cazul 0xE0E08877: Serial.print ("+ Cheia 0:"); Serial.println (""); pauză;

Pasul 3: Creați un card SD Mico de fișiere MP3

Deoarece DFPlayer este o mică piesă hardware ieftină, gestionează fișiere și foldere într-un mod simplist. Am avut rezultate mixte la redarea fișierelor MP3 care nu respectă următoarele formate recomandate și, prin urmare, recomand următoarele. De asemenea, nu am testat alte opțiuni, cum ar fi numele de fișiere din 3 cifre (exemplu: 003.mp3), totuși am văzut numele de fișiere din 3 cifre folosite în alte instrucțiuni și mostre.

Următoarele sunt formatele mele recomandate pentru numele fișierului și directorul folderului:

  • Numele implicit al folderului este MP3, plasat sub directorul rădăcină al cardului SD: SD: / MP3. Acest folder este opțional atunci când utilizați mai multe foldere.
  • Playerul va reda, de asemenea, fișiere MP3 în directorul rădăcină.
  • Când utilizați mai multe foldere, utilizați numele folderelor: 01, 02, 03,…, 99.
  • Numele fișierului mp3 trebuie să aibă 4 cifre cu extensia „0001.mp3”, de exemplu „0001.mp3”.
  • Fișierele pot fi plasate în folderul MP3 sau într-unul din folderele multiple.
  • Numele fișierelor: 0001.mp3 la 0255.mp3. Rețineți că playerul va reda și fișierul MP3 cu alte nume.
  • Puteți adăuga caractere după cifre, de exemplu, "0001hello.mp3".

Este recomandat să formatați cardul înainte de a adăuga fișiere. Acest lucru asigură faptul că cardul este curat de fișierele de sistem. Formatează folosind FAT32 MS-DOS.

Pe Mac, utilizați utilitarul de disc pentru a formata discul: Aplicații> Utilitare> deschideți Utilitarul de disc.

Faceți clic pe cardul SD, exemplu: Media Card Reader SD / MUSICS D. Faceți clic pe elementul de meniu, Ștergeți. Numele setului, exemplu: MUSICSD. Selectați: MS-DOS (Fat). Faceți clic pe Ștergeți.

Discul este curățat și formatat.

Am scris un program Java care va copia un director de fișiere MP3 într-un director de destinație, folosind nume de directoare și fișiere care funcționează cu un modul DFPlayer. Pentru a rula programul, veți avea nevoie de Java JRE instalat. Urmează rezultatul ajutorului programului.

$ java -jar mp3player.jar

+++ Start, programul de copiere a modulului DFPlayer. Sintaxă: java -jar mp3player.jar copia [(IN: director MP3) (OUT: director MP3)] ---------------------- Acest program copiază un director de fișiere MP3 pentru a crea un alt director de fișiere MP3 utilizând numele directorului și a fișierelor care funcționează cu un modul DFPlayer. Înainte de a rula acest program, + Creați un director al fișierelor dvs. MP3. + Creați un director de destinație. + Directorul de destinație este locul în care vor fi copiate fișierele MP3, ++ folosind directorul numerelor de cifre și numele fișierelor. + Directorul dvs. de destinație ar trebui să fie gol. + Dacă există fișiere, ștergeți fișierele și directoarele. ---------------------- + Rulați acest program. + Sintaxă: copie java -jar mp3player.jar [(IN: director MP3) (OUT: director MP3)] + Sintaxă folosind valorile implicite: copie java -jar mp3player.jar + Numele directorului implicit: mp3player1 și mp3player2. + La fel ca: java -jar mp3player.jar copia mp3player1 mp3player2. ---------------------- + Introduceți cardul SD în computer. + Ștergeți directoarele și fișierele de pe cardul SD. + Goliți coșul de gunoi, deoarece fișierele sunt încă pe cardul SD, iar modulul DFPlayer le poate reda. + Copiați noile directoare și fișiere pe cardul SD. + Scoateți cardul de pe computer. ---------------------- + Introduceți cardul în modulul DFPlayer. + Cartea este gata de joc

Pentru a vizualiza codul sursă, faceți clic aici. Faceți clic aici, pentru a descărca fișierul programului JAR pe care îl puteți rula.

Pentru trimitere

Pe Mac, din linia de comandă, puteți rula următoarele.

Lista pentru a găsi cardul.

lista $ diskutil

… / Dev / disk3 (intern, fizic): #: TIP DENUMIRE IDENTIFICATOR DE MĂRIME 0: FDisk_partition_scheme * 4.0 GB disk3 1: DOS_FAT_32 MUSICSD 4.0 GB disk3s1 $ ls / Volume / MUSICSD

Copiați fișierele în ordine pe cardul SD. Deoarece DFPlayer poate sorta pe marca de timp, copiați fișierele în ordinea numelui fișierului.

Curățați fișierele ascunse care pot cauza probleme (referință:

$ dot_clean / Volumes / MUSICSD

Cardul dvs. SD este acum gata de utilizare. Introduceți-l în modulul DFPlayer.

Pasul 4: Conectați modulul DFPlayer care redă fișiere MP3

Sârmă în modulul DFPlayer care redă fișiere MP3
Sârmă în modulul DFPlayer care redă fișiere MP3
Sârmă în modulul DFPlayer care redă fișiere MP3
Sârmă în modulul DFPlayer care redă fișiere MP3
Sârmă în modulul DFPlayer care redă fișiere MP3
Sârmă în modulul DFPlayer care redă fișiere MP3

Am separat conexiunile în 3 părți: comunicații seriale, alimentare și difuzor / sunet.

1. Conectați pinii Arduino RX / TX la modulul DFPlayer. Conectați un fir între pinul Arduino 10 și pinul DFPlayer 3 (TX). Conectați un resister, folosesc un rezister de 5K de la pinul 2 DFPlayer (RX), la un rând gol între Arduino și DFPlayer. Conectați un fir de la pinul Nano 11 la rezistorul 5K. Rezistenta 5K elimină zgomotul care există atunci când nu se utilizează rezistenta.

2. Conectați știftul de masă (GND) al modulului DFPlayer, la banda de masă a panoului de masă. Conectați pinul de alimentare (VCC) al modulului DFPlayer, la banda de bare pozitivă a panoului.

3. Dacă aveți un singur difuzor mic, conectați-l la pinii 6 (SPK-) și 8 (SPK +) ca în fotografia de mai sus cu Nano.

Mini pini DFPlayer

În IDE-ul Arduino, instalați biblioteca DFPlayer. Selectați Instrumente / Gestionați bibliotecile. Filtrați căutarea tastând „DFRobotDFPlayerMini”. Selectați biblioteca mini player DFRobotDFPlayerMini by DFRobot (pentru referință, linkul bibliotecii). Pentru implementarea mea, am încărcat versiunea 1.0.5.

Pentru referință, linkul bibliotecii. Și link-ul pentru pagina wiki DFPlayer.

Încărcați fișiere MP3 pe cardul micro SD. Puteți avea melodii în directoare separate. Introduceți cardul SD în DFPlayer.

Descărcați și rulați programul MP3 player: mp3infrared.ino. Când rulați programul, îndreptați telecomanda către receptor și apăsați butonul OK pentru a începe redarea primei melodii. Când începe redarea, lumina albastră DFPlayer se va aprinde și va rămâne aprinsă, în timp ce se redă un fișier.

Configurare avansată

Am construit un computer emulator Altair 8800 care utilizează un Arduino Mega. Când am adăugat DFPlayer a fost mult zgomot. Pentru a scăpa de zgomot, am folosit o sursă de alimentare separată pentru DFPlayer. Mega are o singură sursă de alimentare și trimite semnale de control serial către DFPlayer. DFPlayer are o altă sursă de alimentare și primește și implementează semnalele de control serial de la Mega.

În fotografia de mai sus, mini hub-ul alb al emulatorului Altair alimentează Mega și este conectat la mini hub-ul negru pentru laptop. DFPlayer are un cablu USB care îl conectează direct la mini hub-ul negru pentru laptop. Această configurație a eliminat zgomotul care a existat când DFPlayer a fost alimentat prin mini hub-ul alb al emulatorului.

Faceți clic aici, pentru codul configurat pentru Mega. Această versiune a codului utilizând pinii Mega RX / TX, unde ca Nano sau Uno utilizează pinii portului serial al software-ului.

Următorul este pentru referință

Conexiuni utilizate cu un Arduino, 1. Serial UART, RX pentru primirea instrucțiunilor de control DFPlayer. RX: intrarea se conectează la TX pe Mega / Nano / Uno. TX pentru trimiterea informațiilor de stare. TX: ieșirea se conectează la RX pe Mega / Nano / Uno. Conexiuni pentru Nano sau Uno: RX (2) pentru a rezista la pinul software serial 11 (TX). TX (3) la pinul software serial 10 (RX). Conexiuni pentru Mega: RX (2) pentru a rezista la Serial1 pin 18 (TX). TX (3) la Serial1 pin 19 (RX). 2. Opțiuni de alimentare. Conectați-vă de la Arduino direct la DFPlayer: VCC la + 5V. Notă, funcționează și cu + 3.3V în cazul unui NodeMCU. GND la sol (-). Utilizați o sursă de alimentare complet diferită: VCC la + 5V din cealaltă sursă de alimentare. GND la masă (-) a celeilalte surse de energie. Am văzut o altă opțiune de alimentare: de la Arduino + 5V, utilizați un 7805 cu condensatori și diodă la pinul DFPlayer VCC. GND la sol (-). 3. Ieșire difuzor. Pentru un singur difuzor, mai puțin de 3W: SPK - la pinul difuzorului. SPK + către celălalt pin al difuzorului. Pentru ieșire către un amplificator stearo sau telefoane cu urechi: DAC_R pentru ieșirea din dreapta (+) DAC_L pentru ieșirea din stânga (+) GND pentru ieșirea la sol.

În urma apelurilor funcției bibliotecii de taste. Link către pagina wiki DFPlayer.

DFRobotDFPlayerMini myDFPlayer;

myDFPlayer.play (1); // Redați primul mp3 myDFPlayer.pause (); // întrerupeți mp3-ul myDFPlayer.start (); // porniți mp3-ul din pauză ------------------------------ myDFPlayer.next (); // Redă următorul mp3 myDFPlayer.previous (); // Redă mp3-ul anterior ------------------------------ myDFPlayer.playMp3Folder (4); // redă mp3 specific în SD: /MP3/0004.mp3; Nume fișier (0 ~ 65535) myDFPlayer.playFolder (15, 4); // redă mp3 specific în SD: /15/004.mp3; Numele folderului (1 ~ 99); Nume fișier (1 ~ 255) myDFPlayer.playLargeFolder (2, 999); // redă mp3 specific în SD: /02/004.mp3; Numele folderului (1 ~ 10); Nume fișier (1 ~ 1000) ------------------------------ myDFPlayer.loop (1); // Buclați primul mp3 myDFPlayer.enableLoop (); // activa bucla. myDFPlayer.disableLoop (); // dezactivează bucla. myDFPlayer.loopFolder (5); // buclați toate fișierele mp3 din folderul SD: / 05. myDFPlayer.enableLoopAll (); // buclați toate fișierele mp3. myDFPlayer.disableLoopAll (); // stop loop toate fișierele mp3. ------------------------------ myDFPlayer.volume (10); // Setați valoarea volumului. De la 0 la 30 myDFPlayer.volumeUp (); // Creșterea volumului myDFPlayer.volumeDown (); // Reducere volum ------------------------------ myDFPlayer.setTimeOut (500); // Setați expirarea comunicării seriale 500 ms myDFPlayer.reset (); // Resetați modulul ------------------------------ Serial.println (myDFPlayer.readState ()); // citirea stării mp3 Serial.println (myDFPlayer.readVolume ()); // citiți volumul curent Serial.println (myDFPlayer.readEQ ()); // citiți setarea EQ Serial.println (myDFPlayer.readFileCounts ()); // citește toate numărul de fișiere din cardul SD Serial.println (myDFPlayer.readCurrentFileNumber ()); // citiți numărul fișierului de redare curent Serial.println (myDFPlayer.readFileCountsInFolder (3)); // citire numărare umplere în folderul SD: / 03 ------------------------------ myDFPlayer.available ()

Pasul 5: sursă de alimentare externă

Image
Image
Alimentare externă
Alimentare externă
Alimentare externă
Alimentare externă

Acum că playerul MP3 este testat și funcționează, îl puteți deconecta de la computer și îl puteți utiliza cu o sursă de alimentare independentă. Pentru simplitate, folosesc un adaptor de perete de 5 volți, care poate fi cumpărat cu aproximativ un dolar, și un cablu USB, un alt dolar. Cablul conectează Arduino la adaptorul de perete + 5V. Deoarece pinii de alimentare și de masă Arduino sunt conectați la panoul de control, acesta va alimenta celelalte componente. Datorită simplității și a costului redus, folosesc aceeași combinație pentru a alimenta alte proiecte.

Fotografia din dreapta și videoclipul arată playerul conectat la amplificatorul meu de 40 USD, așezat pe difuzorul Bose din dreapta de pe biroul meu. Este sistemul meu de muzică desktop: player MP3 Arduino, amplificator audio Douk și 2 difuzoare Bose. Calitate bună a sunetului.

Sper că ai succes și ți-a plăcut să-ți construiești propriul player MP3.

Pasul 6: Eliminați zgomotul static

La un volum redus, a existat un zgomot static de fundal iritant. Zgomotul a fost în regulă atunci când volumul DFPlayer a fost mai mare și s-a redat muzica. Dar când muzica era liniștită, statica era acolo.

Am găsit o pagină StackExchage care avea o mulțime de sugestii. Pentru mine au funcționat următoarele:

  • Conectați un fir scurt între pinii de împământare DFPlayer: pinii 7-10.
  • Utilizați o priză separată de perete USB (5V) pentru a alimenta modulul DFPlayer.
  • Conectați împământarea prizei de perete la masa Arduino. Acest lucru era necesar pentru ca controlul serial să funcționeze între Arduino și player.

Cele de mai sus au fost testate pe emulatorul meu Altair 8800 pe care l-am îmbunătățit cu un DFPlayer pentru a reda muzică. Jucătorul este controlat prin rotirea panourilor frontale.

Recomandat: