Innholdsfortegnelse:
- Rekvisita
- Trinn 1: Legg Arduino Nano til brødbrettet
- Trinn 2: Legg til den infrarøde mottakeren og koble den til Arduino
- Trinn 3: Lag et Mico SD -kort med MP3 -filer
- Trinn 4: Koble til DFPlayer -modulen som spiller MP3 -filer
- Trinn 5: Ekstern strømforsyning
- Trinn 6: Eliminer statisk støy
Video: Infrarød kontrollert MP3 -spiller: 6 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
Bygg en infrarød fjernkontroll MP3 -spiller for ca $ 10 (usd). Den har de vanlige funksjonene: spill, pause, spill neste eller forrige, spill en enkelt sang eller alle sangene. Den har også utjevningsvariasjoner og volumkontroll. Alt kan kontrolleres via en fjernkontroll.
Programmerte funksjoner:
Fjernkontrollnøkkel: Funksjon
+ 01: Volum ned + 02: Sett til katalog nr. 2. + 03: Volum opp + 4… 9: Velg følgende equalizer -innstillinger: ++ (4) DFPLAYER_EQ_POP (5) DFPLAYER_EQ_CLASSIC (6) DFPLAYER_EQ_NORMAL ++ (7) DFPLAYER_EQ_ROCK (8) DFPLAYER_EQ_JAZZASS (9) DFPLAYER_EQ_JAZZASS (9): Spill + >>: Spill neste + <<: Spill forrige + Opp: Spill neste katalogsanger + Dn: Spill av tidligere katalogsanger + *| Retur: Sløyfe enkeltsang: på + #| Avslutt: Sløyfe enkeltsang: av
Det første trinnet er å teste Arduino og koble den til brødbrettet. Følgende trinn er designet for å fungere uavhengig. Hvert trinn har ledningsinstruksjoner og testinstruksjoner. Når jeg bygger prosjekter, kobler og tester jeg hver komponent for å bekrefte at de fungerer. Dette hjelper med å integrere komponenter fordi jeg vet at hvert arbeid og jeg kan fokusere på integrasjonskravene.
Denne instruksen krever at du har Arduino IDE installert. Du må også ha de grunnleggende ferdighetene for å laste ned et Arduino -skisseprogram fra koblingene i dette prosjektet, opprette en katalog for programmet (katalognavn det samme som programnavnet). De neste trinnene er å laste, vise og redigere programmet i IDE. Last deretter opp programmet via en USB -kabel til Arduino -kortet.
Rekvisita
- Nano V3 ATmega328P CH340G mikrokontrollerkort for Arduino. Som et alternativ kan du bruke en Uno.
- Infrarød mottaker og fjernkontroll. Jeg brukte et IR trådløst fjernkontrollmodulsett som fulgte med en infrarød mottaker og infrarød fjernkontroll.
- En motstander, 1K til 5K. Jeg bruker en 5K resister fordi jeg har en haug med dem. Resister fjerner støy som oppstår når resister ikke brukes.
- Breadboard Wire kabler
- 5 volt veggadapter
Jeg kjøpte delene på eBay, hovedsakelig fra Hong Kong eller Kina distributører. Amerikanske distributører har noen ganger samme eller lignende deler til rimelige priser og raskere levering. Kina -delene tar fra 3 til 6 uker før levering. Distributørene jeg har brukt har alle vært pålitelige.
Omtrentlige kostnader: Nano $ 3, infrarødt sett $ 1, brødbrett $ 2, pakke med 40 ledninger $ 1, $ 1 for en 5 volt veggadapter. Totalt, ca $ 8. Merk, jeg kjøpte Nano med brødbrettene allerede loddet på plass, ettersom jeg er loddeferdig.
Trinn 1: Legg Arduino Nano til brødbrettet
Koble Arduino Nano til brødbrettet. Eller, hvis du foretrekker det, kan du bruke en Arduino Uno til dette prosjektet; de bruker begge de samme pinnene for dette prosjektet. Koble Nano (eller Uno) til datamaskinen din via en USB -kabel.
Koble strøm og jord fra Arduino til brødbrettets strømlinje. Koble Arduino 5+ -nålen til brødbrettets positive bar. Koble Arduino GRN (bakken) pin til brødbrettets negative (bakken) bar. Dette vil bli brukt av andre komponenter.
Last ned og kjør det grunnleggende Arduino -testprogrammet: arduinoTest.ino. Når du kjører programmet, tennes den innebygde LED -lampen i 1 sekund, og deretter slås den av i 1 sekund. Det blir også lagt ut meldinger som kan vises i Arduino IDE Tools/Serial Monitor.
+++ Oppsett.
+ Initialiserte den digitale LED -pinnen ombord for utgang. LED er slått av. ++ Gå til loop. + Loop teller = 1 + Loop teller = 2 + Loop teller = 3 …
Som en øvelse må du endre tidsforsinkelsen på det blinkende lyset, laste opp det endrede programmet og bekrefte endringen.
På bildet ovenfor er en 140 -biters loddfri brødbrett -jumper wire -eske du kan få for 3 til 5 dollar. De gjør brettene ryddigere med lange kabler for korte tilkoblinger.
Trinn 2: Legg til den infrarøde mottakeren og koble den til Arduino
Koble hun -til -hann -ledningene til den infrarøde mottakeren (hunenden). Koble bakkenålen til klokkemodulen til brødbrettets malestavlist. Koble strømpinnen til klokkemodulen til brødbrettets positive barlist. Koble utgangspinnen til den infrarøde mottakeren til Arduino A1 -pinnen.
Koble til infrarød mottaker, pinner fra øverst til venstre til høyre:
Mest venstre (ved siden av X) - Nano pin A1 Center - 5V Høyre - bakken A1 + - - Nano pin tilkoblinger | | | -Infrarøde mottakerpinner --------- | S | | | | --- | | | | | | --- | | | ---------
Installer et infrarødt bibliotek i Arduino IDE. Velg Verktøy/Administrer biblioteker. Filtrer søket ditt ved å skrive 'IRremote'. Velg IRremote av Shirriff (for referanse, bibliotekets GitHub -lenke). Arduino biblioteksinformasjon IRfjernbibliotekskobling.
Last ned og kjør det grunnleggende testprogrammet: infraredReceiverTest.ino. Når du kjører programmet, må du rette fjernkontrollen mot mottakeren og trykke på forskjellige knapper, for eksempel tallet fra 0 til 9. Serielle meldinger sendes ut (skrives ut) som kan vises i Arduino IDE Tools/Serial Monitor.
+++ Oppsett.
+ Initialiserte den infrarøde mottakeren. ++ Gå til loop. + Tast OK - Veksle + Tast> - neste + Tast < - forrige + Tast opp + Tast ned + Tast 1: + Tast 2: + Tast 3: + Tast 4: + Tast 6: + Tast 7: + Tast 8: + Tast 9: + Tast 0: + Tast * (Retur) + Tast # (Avslutt)
Som en øvelse bruker du en TV -fjernkontroll for å se verdiene skrevet ut. Du kan deretter endre programmet for å bruke verdiene i infrarødSwitch () -funksjonens switch -setning. For eksempel, trykk på "0" -tasten og få verdien for fjernkontrollen, for eksempel "0xE0E08877". Deretter legger du til en sak i switch -setningen som i følgende kodebit.
sak 0xFF9867:
sak 0xE0E08877: Serial.print ("+ nøkkel 0:"); Serial.println (""); gå i stykker;
Trinn 3: Lag et Mico SD -kort med MP3 -filer
Siden DFPlayer er en liten billig maskinvare, administrerer den filer og mapper på en forenklet måte. Jeg har hatt blandede resultater når jeg spiller MP3 -filer som ikke følger følgende anbefalte formater, og derfor anbefaler jeg følgende. Jeg har heller ikke testet andre alternativer, for eksempel tresifrede filnavn (eksempel: 003.mp3), men jeg har sett tresifrede filnavn brukt i andre instruksjoner og prøver.
Følgende er mine anbefalte filnavn og mappekatalogformater:
- Standard mappenavn er MP3, plassert under SD -kortets rotkatalog: SD:/MP3. Denne mappen er valgfri når du bruker flere mapper.
- Spilleren vil også spille MP3 -filer i rotkatalogen.
- Når du bruker flere mapper, bruker du mappenavnene: 01, 02, 03, …, 99.
- MP3 -filnavnet bør være fire sifre med "0001.mp3" som forlengelse, for eksempel "0001.mp3".
- Filer kan plasseres i MP3 -mappen eller i en av flere mapper.
- Filnavn: 0001.mp3 til 0255.mp3. Vær oppmerksom på at spilleren også spiller MP3 -filer med andre navn.
- Du kan legge til tegn etter sifrene, for eksempel "0001hello.mp3".
Det anbefales at du formaterer kortet før du legger til filer. Dette sikrer at kortet er rent for systemfiler. Formater med FAT32 MS-DOS.
På Mac bruker du diskverktøyet til å formatere disken: Programmer> Verktøy> åpne Diskverktøy.
Klikk på SD-kortet, eksempel: APPLE SD Card Reader Media/MUSICSD. Klikk på menyelementet, Slett. Sett navn, eksempel: MUSICSD. Velg: MS-DOS (fett). Klikk på Slett.
Disken rengjøres og formateres.
Jeg skrev et Java -program som vil kopiere en katalog med MP3 -filer til en destinasjonskatalog, ved hjelp av katalog- og filnavn som fungerer med en DFPlayer -modul. For å kjøre programmet trenger du Java JRE installert. Følgende er programmets hjelpeutgang.
$ java -jar mp3player.jar
+++ Start, DFPlayer -modulkopieringsprogram. Syntaks: java -jar mp3player.jar copy [(IN: MP3 directory) (OUT: MP3 directory)] ---------------------- Dette programmet kopierer en katalog MP3 -filer for å lage en annen katalog med MP3 -filer ved hjelp av katalog- og filnavn som fungerer med en DFPlayer -modul. Før du kjører dette programmet, + Lag en katalog med MP3 -filene dine. + Lag en destinasjonskatalog. + Destinasjonskatalogen er stedet der MP3 -filene skal kopieres til, ++ ved hjelp av sifferkatalog og filnavn. + Destinasjonskatalogen skal være tom. + Hvis det er filer i den, sletter du filene og katalogene. ---------------------- + Kjør dette programmet. + Syntaks: java -jar mp3player.jar kopi [(IN: MP3 katalog) (UT: MP3 katalog)] + Syntaks ved bruk av standard: java -jar mp3player.jar kopi + Standard katalognavn: mp3player1 og mp3player2. + Samme som: java -jar mp3player.jar kopier mp3player1 mp3player2. ---------------------- + Sett inn SD-kortet i datamaskinen. + Slett katalogene og filene fra SD -kortet. + Tøm søppel fordi filene fortsatt er på SD -kortet og DFPlayer -modulen kan spille dem. + Kopier de nye katalogene og filene til SD -kortet. + Ta ut kortet fra datamaskinen. ---------------------- + Sett kortet inn i DFPlayer-modulen. + Kortet er klart til å spilles
Klikk her for å se kildekoden. Klikk her for å laste ned JAR -programfilen du kan kjøre.
For referanse
På Mac, fra kommandolinjen, kan du kjøre følgende.
Liste for å finne kortet.
$ diskutil liste
… /Dev /disk3 (intern, fysisk): #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *4.0 GB disk3 1: DOS_FAT_32 MUSICSD 4.0 GB disk3s1 $ ls /Volumes /MUSICSD
Kopier filer i rekkefølge til SD -kortet. Siden DFPlayer kan sortere på tidsstempelet, kopierer du filene i filnavnrekkefølgen.
Rengjør skjulte filer som kan forårsake problemer (referanse:
$ dot_clean /Volumes /MUSICSD
SD -kortet ditt er nå klart til bruk. Sett den inn i DFPlayer -modulen.
Trinn 4: Koble til DFPlayer -modulen som spiller MP3 -filer
Jeg har delt tilkoblingene i tre deler: seriell kommunikasjon, strøm og høyttaler/lyd.
1. Koble Arduino RX/TX -pinnene til DFPlayer -modulen. Koble en ledning mellom Arduino pin 10 og DFPlayer pin 3 (TX). Koble en resister, jeg bruker en 5K resister fra DFPlayer pin 2 (RX), til en tom rad mellom Arduino og DFPlayer. Koble en ledning fra Nano pin 11 til 5K resister. 5K resister fjerner støy som oppstår når resister ikke brukes.
2. Koble jordnålen (GND) på DFPlayer -modulen til brødbrettets bakkebøyle. Koble strømnålen (VCC) til DFPlayer -modulen til brødbrettets positive barlist.
3. Hvis du har en liten liten høyttaler, kobler du den til pinne 6 (SPK-) og 8 (SPK+) som på bildet ovenfor med Nano.
DFPlayer Minipinner
Installer DFPlayer -biblioteket i Arduino IDE. Velg Verktøy/Administrer biblioteker. Filtrer søket ditt ved å skrive 'DFRobotDFPlayerMini'. Velg DFRobotDFPlayerMini av DFRobot minispillerbibliotek (for referanse, bibliotekskoblingen). For min implementering lastet jeg inn versjon 1.0.5.
For referanse, bibliotekets lenke. Og linken til DFPlayer wiki -siden.
Last MP3 -filer på micro SD -kortet. Du kan ha sanger i separate kataloger. Sett SD -kortet i DFPlayer.
Last ned og kjør MP3 -spillerprogrammet: mp3infrared.ino. Når du kjører programmet, peker du fjernkontrollen mot mottakeren og trykker på OK -knappen for å begynne å spille den første sangen. Når den begynner å spille, vil DFPlayer -blått lys tennes og forbli på mens en fil spilles av.
Avansert konfigurasjon
Jeg har bygget en Altair 8800 emulator datamaskin som bruker en Arduino Mega. Da jeg la til DFPlayer var det mye støy. For å bli kvitt støyen, brukte jeg en separat strømforsyning for DFPlayer. Mega har én strømforsyning og sender serielle kontrollsignaler til DFPlayer. DFPlayer har en annen strømforsyning, og mottar og implementerer de serielle styresignalene fra Mega.
På bildet ovenfor driver Altair -emulatorens hvite mini -USB -hub Megaen og er koblet til den svarte mini -huben på den bærbare datamaskinen. DFPlayer har en USB -kabel som kobler den direkte til den svarte minihubben på den bærbare datamaskinen. Denne konfigurasjonen fjernet støyen som eksisterte da DFPlayer ble drevet gjennom den hvite mini -huben til emulatoren.
Klikk her for koden som er konfigurert for Mega. Den versjonen av koden ved hjelp av Mega RX/TX -pinner, der som en Nano eller Uno bruker programvare serielle portpinner.
Følgende er til referanse
Tilkoblinger brukt med en Arduino, 1. UART -serie, RX for mottak av kontrollinstruksjoner til DFPlayer. RX: inngang kobles til TX på Mega/Nano/Uno. TX for å sende statlig informasjon. TX: utgang kobles til RX på Mega/Nano/Uno. Tilkoblinger for Nano eller Uno: RX (2) for å motstå seriell programvarepinne 11 (TX). TX (3) til seriell programvarepinne 10 (RX). Tilkoblinger for Mega: RX (2) til motstand mot Serial1 pin 18 (TX). TX (3) til Serial1 pin 19 (RX). 2. Strømalternativer. Koble fra Arduino direkte til DFPlayer: VCC til +5V. Merk, fungerer også med +3.3V i tilfelle av en NodeMCU. GND til bakken (-). Bruk en helt annen strømkilde: VCC til +5V for den andre strømkilden. GND til jord (-) for den andre strømkilden. Jeg så et annet strømalternativ: Fra Arduino +5V, bruk en 7805 med kondensatorer og diode til DFPlayer VCC -pinnen. GND til bakken (-). 3. Høyttalerutgang. For en enkelt høyttaler, mindre enn 3W: SPK - til høyttalerpinnen. SPK + til den andre høyttalerenålen. For utgang til en stearo -forsterker eller øretelefoner: DAC_R til utgang til høyre (+) DAC_L til utgang til venstre (+) GND til utgangsbunn.
Følger de viktigste biblioteksfunksjonene. Lenke til DFPlayer -wikisiden.
DFRobotDFPlayerMini myDFPlayer;
myDFPlayer.play (1); // Spill den første mp3 myDFPlayer.pause (); // pause mp3 myDFPlayer.start (); // start mp3 fra pausen ------------------------------ myDFPlayer.next (); // Spill neste mp3 myDFPlayer.previous (); // Spill av forrige mp3 ------------------------------ myDFPlayer.playMp3Folder (4); // spill spesifikk mp3 i SD: /MP3/0004.mp3; Filnavn (0 ~ 65535) myDFPlayer.playFolder (15, 4); // spill spesifikk mp3 i SD: /15/004.mp3; Mappenavn (1 ~ 99); Filnavn (1 ~ 255) myDFPlayer.playLargeFolder (2, 999); // spill spesifikk mp3 i SD: /02/004.mp3; Mappenavn (1 ~ 10); Filnavn (1 ~ 1000) ------------------------------ myDFPlayer.loop (1); // Sløyfe den første mp3 myDFPlayer.enableLoop (); // aktiver sløyfe. myDFPlayer.disableLoop (); // deaktiver loop. myDFPlayer.loopFolder (5); // sløyfe alle mp3 -filer i mappen SD:/05. myDFPlayer.enableLoopAll (); // sløyfe alle mp3 -filer. myDFPlayer.disableLoopAll (); // stopp loop alle mp3 -filer. ------------------------------ myDFPlayer.volume (10); // Angi volumverdi. Fra 0 til 30 myDFPlayer.volumeUp (); // Volum opp myDFPlayer.volumeDown (); // Volum ned ------------------------------ myDFPlayer.setTimeOut (500); // Angi seriell kommunikasjonstid ut 500 ms myDFPlayer.reset (); // Tilbakestill modulen ------------------------------ Serial.println (myDFPlayer.readState ()); // read mp3 state Serial.println (myDFPlayer.readVolume ()); // les nåværende volum Serial.println (myDFPlayer.readEQ ()); // les EQ -innstilling Serial.println (myDFPlayer.readFileCounts ()); // lese alle filtellingen i SD -kort Serial.println (myDFPlayer.readCurrentFileNumber ()); // les gjeldende spillfilnummer Serial.println (myDFPlayer.readFileCountsInFolder (3)); // lese fylltall i mappe SD:/03 ------------------------------ myDFPlayer.available ()
Trinn 5: Ekstern strømforsyning
Nå som MP3 -spilleren er testet og fungerer, kan du koble den fra datamaskinen og bruke den med en uavhengig strømforsyning. For enkelhets skyld bruker jeg en 5 volt veggadapter, som kan kjøpes for omtrent en dollar, og en USB -kabel, en dollar til. Kabelen kobler Arduino til +5V veggadapter. Siden Arduino strøm- og bakkepinner er koblet til brødbrett, vil det drive de andre komponentene. På grunn av sin enkelhet og lave pris, bruker jeg den samme kombinasjonen for å drive andre prosjekter.
Bildet til høyre og videoen viser spilleren som er koblet til min $ 40 amp på den høyre Bose -høyttaleren på skrivebordet mitt. Det er mitt stasjonære musikksystem: Arduino MP3 -spiller, Douk Audio -forsterker og 2 Bose -høyttalere. God lydkvalitet.
Jeg håper du lykkes og likte å bygge din egen MP3 -musikkspiller.
Trinn 6: Eliminer statisk støy
På lavt volum var det en irriterende statisk støy i bakgrunnen. Støyen var ok da DFPlayer -volumet var høyere og musikk spilte. Men når musikken var stille, var det statiske der.
Jeg fant en StackExchage -side som hadde mange forslag. Følgende fungerte for meg:
- Koble en kort ledning mellom DFPlayer -jordpinnene: pinner 7 til 10.
- Bruk en separat USB -veggkontakt (5V) for å drive DFPlayer -modulen.
- Koble veggpluggen til Arduino -bakken. Dette var nødvendig for å få det serielle kontrollarbeidet mellom Arduino og spilleren.
Ovenstående ble testet på min Altair 8800 -emulator som jeg forbedret med et DFPlayer for å spille musikk. Spilleren styres ved å snu frontpanelskiftene.
Anbefalt:
Bruke infrarød sensor med Arduino: 8 trinn (med bilder)
Bruke infrarød sensor med Arduino: Hva er en infrarød (aka IR) sensor? En IR -sensor er et elektronisk instrument som skanner IR -signaler i bestemte frekvensområder definert av standarder og konverterer dem til elektriske signaler på utgangspinnen (vanligvis kalt signalpinne) . IR -signalet
Automatisk infrarød vannkran på $ 5: 12 trinn (med bilder)
Automatisk infrarød vannkran på $ 5: I dette prosjektet lager vi bare en automatisk på-av-vannkran under $ 5. Vi vil bruke en IR -sensor og en vannbryter for å lage denne automatiske infrarøde vannkranen. Ingen mikrokontroller brukes til å lage denne automatiske infrarøde vannkranen. Bare plasser din
Hjemmeautomatisering med infrarød og Bluetooth -kontrollert relemodul: 10 trinn
Hjemmeautomatisering med infrarød og Bluetooth -kontrollert relemodul: I dette hjemmeautomatiseringsprosjektet har jeg vist hvordan vi kan styre lys, vifte og andre husholdningsapparater fra smarttelefonappen vår og IR -fjernkontrollen ved hjelp av Arduino -kontrollrelémodulkretsen. kretsen har to moduser, Inf
Infrarød laser tag med Raspberry Pi Zero: 6 trinn (med bilder)
Infrarød lasermerking med Raspberry Pi Zero: Denne instruksjonsboken vil gå gjennom prosessen for å lage et infrarødt lasermerkespill ved bruk av en basisservercomputer og en Raspberry Pi -null for hver spiller. Prosjektet er sterkt avhengig av en Wifi -tilkobling for å kommunisere med serveren som gjør
I2C infrarød fjernkontroll med Arduino: 8 trinn (med bilder)
I2C infrarød fjernkontroll med Arduino: Preamble Denne instruksjonsinformasjonen beskriver hvordan du lager en universell fjernkontroll ved hjelp av I2C for grensesnittet. Hvor rart du sier, ved hjelp av en I2C -slaveenhet? Ja, en I2C -slaveenhet. Dette er fordi den nøyaktige timingen for IR -pakker er ganske krevende og