Spisu treści:

Odtwarzacz MP3 na podczerwień: 6 kroków (ze zdjęciami)
Odtwarzacz MP3 na podczerwień: 6 kroków (ze zdjęciami)

Wideo: Odtwarzacz MP3 na podczerwień: 6 kroków (ze zdjęciami)

Wideo: Odtwarzacz MP3 na podczerwień: 6 kroków (ze zdjęciami)
Wideo: Zaawansowany odtwarzacz muzyki FiiO M6 DAP 2024, Czerwiec
Anonim
Image
Image
Odtwarzacz MP3 na podczerwień
Odtwarzacz MP3 na podczerwień

Zbuduj odtwarzacz MP3 z pilotem na podczerwień za około 10 USD (usd). Ma zwykłe funkcje: odtwarzanie, pauza, odtwarzanie następnego lub poprzedniego, odtwarzanie pojedynczego utworu lub wszystkich utworów. Posiada również wariacje korektora i regulację głośności. Wszystko sterowane za pomocą pilota.

Zaprogramowana funkcjonalność:

Klucz zdalny: funkcja

+ 01: Zmniejszenie głośności + 02: Ustaw na katalog #2. + 03: Zwiększenie głośności + 4…9: Wybierz następujące ustawienia korektora: ++ (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: Pauza + OK: Odtwórz + >>: Odtwórz następny + <<: Odtwórz poprzedni + W górę: Odtwórz następne utwory z katalogu + Dn: Odtwórz poprzednie utwory z katalogu + *|Return: Zapętl pojedynczy utwór: wł. + #|Wyjdź: Zapętl pojedynczy utwór: wył.

Pierwszym krokiem jest przetestowanie Arduino i podłączenie go do płytki stykowej. Poniższe kroki są przeznaczone do niezależnej pracy. Każdy krok zawiera instrukcje okablowania i instrukcje testowania. Kiedy tworzę projekty, podłączam i testuję każdy komponent, aby potwierdzić, że działa. Pomaga to w integracji komponentów, ponieważ wiem, że każda praca i ja mogę skupić się na wymaganiach integracyjnych.

Ta instrukcja wymaga zainstalowania Arduino IDE. Wymagane jest również posiadanie podstawowych umiejętności pobierania programu do szkicowania Arduino z linków w tym projekcie, utworzenia katalogu dla programu (nazwa katalogu taka sama jak nazwa programu). Kolejne kroki to załadowanie, przeglądanie i edycja programu w IDE. Następnie wgraj program przez kabel USB na płytkę Arduino.

Kieszonkowe dzieci

  • Nano V3 ATmega328P CH340G Płytka kontrolera mikro dla Arduino. Alternatywnie możesz użyć Uno.
  • Odbiornik podczerwieni i pilot. Użyłem zestawów bezprzewodowych modułów zdalnego sterowania na podczerwień, które były dostarczane z odbiornikiem podczerwieni i pilotem na podczerwień.
  • Jeden rezystor, od 1K do 5K. Używam rezystora 5K, ponieważ mam ich kilka. Rezystor usuwa szum, który występuje, gdy nie jest używany.
  • Kable do krojenia chleba
  • Adapter ścienny 5 V

Kupiłem części na eBayu, głównie od dystrybutorów z Hongkongu lub Chin. Dystrybutorzy w USA mają czasami takie same lub podobne części w rozsądnych cenach i szybszej dostawie. Dostawa części z Chin zajmuje od 3 do 6 tygodni. Wszyscy dystrybutorzy, z których korzystałem, byli niezawodni.

Przybliżone koszty: Nano 3 USD, zestaw na podczerwień 1 USD, płytka stykowa 2 USD, pakiet 40 przewodów 1 USD, 1 USD za adapter ścienny 5 V. Razem około 8 dolarów. Uwaga, kupiłem Nano z już przylutowanymi pinami płytki stykowej, ponieważ moje umiejętności lutowania są słabe.

Krok 1: Dodaj Arduino Nano do płyty chlebowej

Dodaj Arduino Nano do tablicy chlebowej
Dodaj Arduino Nano do tablicy chlebowej

Podłącz Arduino Nano do płytki do krojenia chleba. Lub, jeśli wolisz, możesz użyć Arduino Uno do tego projektu; obaj używają tych samych szpilek do tego projektu. Podłącz Nano (lub Uno) do komputera za pomocą kabla USB.

Podłącz zasilanie i uziemienie z Arduino do listwy zasilającej płytki stykowej. Podłącz pin Arduino 5+ do dodatniego paska płytki stykowej. Podłącz pin Arduino GRN (masa) do ujemnej (masy) listwy płytki stykowej. Będzie to używane przez inne komponenty.

Pobierz i uruchom podstawowy program testowy Arduino: arduinoTest.ino. Podczas uruchamiania programu wbudowane światło LED włączy się na 1 sekundę, a następnie wyłączy na 1 sekundę. Ponadto publikowane są wiadomości, które można wyświetlić w Arduino IDE Tools/Serial Monitor.

+++ Konfiguracja.

+ Zainicjowano cyfrowy pin LED na płycie dla wyjścia. Dioda jest wyłączona. ++ Przejdź do pętli. + Licznik pętli = 1 + Licznik pętli = 2 + Licznik pętli = 3 …

W ramach ćwiczenia zmień opóźnienie czasowe na migającej lampce, załaduj zmieniony program i potwierdź zmianę.

Na powyższym zdjęciu znajduje się 140-częściowe pudełko z zestawem przewodów połączeniowych bez lutowania, które można dostać za 3 do 5 dolarów. Sprawiają, że płyty są schludniejsze niż przy użyciu długich kabli do krótkich połączeń.

Krok 2: Dodaj odbiornik podczerwieni i podłącz go do Arduino

Dodaj odbiornik podczerwieni i podłącz go do Arduino
Dodaj odbiornik podczerwieni i podłącz go do Arduino

Podłącz żeńskie i męskie przewody kablowe do odbiornika podczerwieni (żeńskie końce). Podłącz pin uziemiający modułu zegara do listwy uziemiającej płytki stykowej. Podłącz pin zasilania modułu zegara do dodatniego paska płytki stykowej. Podłącz pin wyjściowy odbiornika podczerwieni do pinu Arduino A1.

Podłącz odbiornik podczerwieni, piny od góry z lewej do prawej:

Skrajnie w lewo (obok X) - Nano pin A1 Środek - 5 V Prawy - masa A1 + - - Połączenia Nano pin | | | - Piny odbiornika podczerwieni --------- |S | | | | --- | | | | | | --- | | | ---------

W Arduino IDE zainstaluj bibliotekę podczerwieni. Wybierz Narzędzia/Zarządzaj bibliotekami. Filtruj wyszukiwanie, wpisując „IRremote”. Wybierz opcję IRremote by Shirriff (dla odniesienia, link do biblioteki GitHub). Informacje o bibliotece Arduino IRremote link do biblioteki.

Pobierz i uruchom podstawowy program testowy: infraredReceiverTest.ino. Podczas uruchamiania programu skieruj pilota na odbiornik i naciśnij różne przyciski, takie jak cyfra od 0 do 9. Komunikaty szeregowe są wysyłane (drukowane), które można wyświetlić w Arduino IDE Tools/Serial Monitor.

+++ Konfiguracja.

+ Zainicjuj odbiornik podczerwieni. ++ Przejdź do pętli. + Klawisz OK - Przełącz + Klawisz > - Dalej + Klawisz < - Poprzedni + Klawisz w górę + Klawisz w dół + Klawisz 1: + Klawisz 2: + Klawisz 3: + Klawisz 4: + Klawisz 6: + Klawisz 7: + Klawisz 8: + Klawisz 9: + Klawisz 0: + Klawisz * (Powrót) + Klawisz # (Wyjście)

W ramach ćwiczenia użyj pilota telewizora, aby zobaczyć wydrukowane wartości. Następnie można zmodyfikować program tak, aby używał wartości z instrukcji switch funkcji infraredSwitch(). Na przykład naciśnij klawisz „0” i uzyskaj wartość dla pilota, na przykład „0xE0E08877”. Następnie dodaj wielkość liter do instrukcji switch, jak w poniższym fragmencie kodu.

sprawa 0xFF9867:

case 0xE0E08877: Serial.print("+ klucz 0:"); Serial.println(""); przerwa;

Krok 3: Utwórz kartę Mico SD z plikami MP3

Ponieważ DFPlayer to mały, niedrogi sprzęt, w uproszczony sposób zarządza plikami i folderami. Miałem mieszane wyniki podczas odtwarzania plików MP3, które nie są zgodne z następującymi zalecanymi formatami, dlatego polecam poniższe. Ponadto nie testowałem innych opcji, takich jak 3-cyfrowe nazwy plików (przykład: 003.mp3), jednak widziałem 3-cyfrowe nazwy plików używane w innych instrukcjach i próbkach.

Oto moje zalecane formaty nazw plików i nazw folderów:

  • Domyślna nazwa folderu to MP3, umieszczony w katalogu głównym karty SD: SD:/MP3. Ten folder jest opcjonalny w przypadku korzystania z wielu folderów.
  • Odtwarzacz odtworzy również pliki MP3 w katalogu głównym.
  • W przypadku korzystania z wielu folderów użyj nazw folderów: 01, 02, 03, …, 99.
  • Nazwa pliku mp3 powinna składać się z 4 cyfr z rozszerzeniem „0001.mp3”, na przykład „0001.mp3”.
  • Pliki można umieszczać w folderze MP3 lub w jednym z wielu folderów.
  • Nazwy plików: od 0001.mp3 do 0255.mp3. Uwaga, odtwarzacz odtworzy również pliki MP3 o innych nazwach.
  • Możesz dodawać znaki po cyfrach, na przykład „0001hello.mp3”.

Zaleca się sformatowanie karty przed dodaniem plików. Zapewnia to, że karta jest czysta z plików systemowych. Sformatuj za pomocą FAT32 MS-DOS.

Na komputerze Mac użyj narzędzia dyskowego, aby sformatować dysk: Aplikacje > Narzędzia > otwórz Narzędzie dyskowe.

Kliknij kartę SD, na przykład: APPLE SD Card Reader Media/MUSICSD. Kliknij pozycję menu Erase. Set name, przykład: MUSICSD. Wybierz: MS-DOS (Fat). Kliknij Erase.

Dysk zostanie wyczyszczony i sformatowany.

Napisałem program Java, który skopiuje katalog plików MP3 do katalogu docelowego, używając nazw katalogów i plików współpracujących z modułem DFPlayer. Aby uruchomić program, będziesz potrzebować zainstalowanego środowiska Java JRE. Poniżej znajduje się wyjście pomocy programu.

$ java -jar mp3player.jar

+++ Start, program do kopiowania modułu DFPlayer. Składnia: java -jar mp3player.jar copy [(IN: katalog MP3) (OUT: katalog MP3)] ---------------------- Ten program kopiuje katalog plików MP3, aby utworzyć kolejny katalog plików MP3 przy użyciu nazw katalogów i plików współpracujących z modułem DFPlayer. Przed uruchomieniem tego programu + Utwórz katalog z plikami MP3. + Utwórz katalog docelowy. + Katalog docelowy to miejsce, do którego zostaną skopiowane pliki MP3, ++ przy użyciu numeru katalogu i nazw plików. + Twój katalog docelowy powinien być pusty. + Jeśli są w nim pliki, usuń pliki i katalogi. ---------------------- + Uruchom ten program. + Składnia: java -jar mp3player.jar copy [(wejście: katalog MP3) (wyjście: katalog MP3)] + Domyślna składnia: java -jar mp3player.jar copy + Domyślne nazwy katalogów: mp3player1 i mp3player2. + To samo co: java -jar mp3player.jar skopiuj mp3player1 mp3player2. ---------------------- + Włóż kartę SD do komputera. + Usuń katalogi i pliki z karty SD. + Opróżnij kosz, ponieważ pliki nadal znajdują się na karcie SD i moduł DFPlayer może je odtwarzać. + Skopiuj nowe katalogi i pliki na kartę SD. + Wysuń kartę z komputera. ---------------------- + Włóż kartę do modułu DFPlayer. + Karta jest gotowa do gry

Aby zobaczyć kod źródłowy, kliknij tutaj. Kliknij tutaj, aby pobrać plik programu JAR, który możesz uruchomić.

Na przykład

Na komputerze Mac z wiersza poleceń możesz uruchomić następujące.

Lista, aby znaleźć kartę.

$ diskutil lista

… /dev/disk3 (wewnętrzny, fizyczny): #: TYP NAZWA ROZMIAR IDENTYFIKATOR 0: FDisk_partition_scheme *4.0 GB disk3 1: DOS_FAT_32 MUSICSD 4.0 GB disk3s1 $ ls /Wolumeny/MUSICSD

Skopiuj pliki w kolejności na kartę SD. Ponieważ DFPlayer może sortować według sygnatury czasowej, skopiuj pliki w kolejności nazw plików.

Wyczyść ukryte pliki, które mogą powodować problemy (odnośnik:

$ dot_clean /Wolumeny/MUZYKAD

Twoja karta SD jest teraz gotowa do użycia. Wstaw go do modułu DFPlayer.

Krok 4: Podłącz moduł DFPlayer, który odtwarza pliki MP3

Podłącz moduł DFPlayer, który odtwarza pliki MP3
Podłącz moduł DFPlayer, który odtwarza pliki MP3
Podłącz moduł DFPlayer, który odtwarza pliki MP3
Podłącz moduł DFPlayer, który odtwarza pliki MP3
Podłącz moduł DFPlayer, który odtwarza pliki MP3
Podłącz moduł DFPlayer, który odtwarza pliki MP3

Podzieliłem połączenia na 3 części: komunikacja szeregowa, zasilanie i głośnik/dźwięk.

1. Podłącz piny Arduino RX/TX do modułu DFPlayer. Podłącz przewód między pinem 10 Arduino a pinem 3 DFPlayer (TX). Podłącz rezystor, używam rezystora 5K z DFPlayer pin 2 (RX), do pustego rzędu między Arduino i DFPlayer. Podłącz przewód z pinu Nano 11 do rezystora 5K. Rezystor 5K usuwa szum, który występuje, gdy nie jest używany.

2. Podłącz styk uziemienia (GND) modułu DFPlayer do paska uziemienia płytki stykowej. Podłącz pin zasilania (VCC) modułu DFPlayer do dodatniego paska płytki stykowej.

3. Jeśli masz pojedynczy mały głośnik, podłącz go do pinów 6 (SPK-) i 8 (SPK+) jak na powyższym zdjęciu z Nano.

Przypinki DFPPlayer Mini

W Arduino IDE zainstaluj bibliotekę DFPlayer. Wybierz Narzędzia/Zarządzaj bibliotekami. Filtruj swoje wyszukiwanie, wpisując „DFRobotDFPlayerMini”. Wybierz bibliotekę miniodtwarzacza DFRobotDFPlayerMini by DFRobot (dla odniesienia, link do biblioteki). Do mojej implementacji załadowałem wersję 1.0.5.

W celach informacyjnych link do biblioteki. I link do strony wiki DFPlayera.

Załaduj pliki MP3 na kartę micro SD. Możesz mieć utwory w osobnych katalogach. Włóż kartę SD do odtwarzacza DFPlayer.

Pobierz i uruchom program odtwarzacza MP3: mp3infrared.ino. Podczas uruchamiania programu skieruj pilota na odbiornik i naciśnij przycisk OK, aby rozpocząć odtwarzanie pierwszego utworu. Gdy rozpocznie się odtwarzanie, niebieskie światło DFPlayer włączy się i pozostanie włączone podczas odtwarzania pliku.

Zaawansowana konfiguracja

Zbudowałem komputer z emulatorem Altair 8800, który wykorzystuje Arduino Mega. Kiedy dodałem DFPlayer, było dużo hałasu. Aby pozbyć się szumu, użyłem osobnego zasilacza do odtwarzacza DFPlayer. Mega ma jeden zasilacz i wysyła szeregowe sygnały sterujące do odtwarzacza DFPlayer. DFPlayer ma inny zasilacz i odbiera i implementuje szeregowe sygnały sterujące z Mega.

Na powyższym zdjęciu biały koncentrator mini USB emulatora Altair zasila Mega i jest podłączony do czarnego mini koncentratora laptopa. DFPlayer ma kabel USB, który łączy go bezpośrednio z czarnym mini hubem laptopa. Ta konfiguracja usunęła szum, który istniał, gdy DFPlayer był zasilany przez biały mini koncentrator emulatora.

Kliknij tutaj, aby uzyskać kod skonfigurowany dla Mega. Ta wersja kodu używa pinów Mega RX/TX, gdzie jako Nano lub Uno używa pinów portu szeregowego oprogramowania.

Poniżej przedstawiono w celach informacyjnych

Połączenia używane z Arduino, 1. Szeregowy UART, RX do odbioru instrukcji sterujących DFPlayerem. RX: wejście łączy się z TX na Mega/Nano/Uno. TX do wysyłania informacji o stanie. TX: wyjście łączy się z RX na Mega/Nano/Uno. Połączenia dla Nano lub Uno: RX(2) do rezystora do portu 11 (TX) oprogramowania szeregowego. TX(3) do pinu 10 (RX) oprogramowania szeregowego. Połączenia dla Mega: RX(2) do rezystora do styku 18 (TX) Serial1. TX(3) do Serial1 pin 19(RX). 2. Opcje zasilania. Połącz z Arduino bezpośrednio do DFPlayer: VCC do +5V. Uwaga, działa również z +3,3 V w przypadku NodeMCU. GND do masy (-). Użyj zupełnie innego źródła zasilania: VCC do +5 V drugiego źródła zasilania. GND do uziemienia (-) drugiego źródła zasilania. Widziałem inną opcję zasilania: z Arduino +5V użyj 7805 z kondensatorami i diodą do pinu DFPlayer VCC. GND do masy (-). 3. Wyjście głośnikowe. Dla jednego głośnika mniej niż 3W: SPK - do pinu głośnika. SPK + do drugiego pinu głośnika. W przypadku wyjścia do wzmacniacza stearo lub słuchawek: DAC_R do wyjścia prawego (+) DAC_L do wyjścia lewego (+) GND do masy wyjściowej.

Po wywołaniu funkcji biblioteki kluczy. Link do strony wiki DFPlayera.

DFRobotDFPlayerMini myDFPlayer;

myDFPlayer.play(1); // Odtwórz pierwszy plik mp3 myDFPlayer.pause(); // wstrzymaj mp3 myDFPlayer.start(); // uruchom mp3 z pauzy ------------------------------ myDFPlayer.next(); // Odtwórz następny mp3 myDFPlayer.previous(); // Odtwórz poprzednie mp3 ------------------------------ myDFPlayer.playMp3Folder(4); // odtwórz określone mp3 w SD:/MP3/0004.mp3; Nazwa pliku (0~65535) myDFPlayer.playFolder(15, 4); // odtwórz określone mp3 w SD:/15/004.mp3; Nazwa folderu (1~99); Nazwa pliku (1~255) myDFPlayer.playLargeFolder(2, 999); //odtwórz określone mp3 w SD:/02/004.mp3; Nazwa folderu (1~10); Nazwa pliku (1~1000) ------------------------------ myDFPlayer.loop(1); // Zapętl pierwszy plik mp3 myDFPlayer.enableLoop(); // włącz pętlę. myDFPlayer.disableLoop(); // wyłącz pętlę. myDFPlayer.loopFolder(5); // zapętl wszystkie pliki mp3 w folderze SD:/05. myDFPlayer.enableLoopAll(); // zapętl wszystkie pliki mp3. myDFPlayer.disableLoopAll(); // zatrzymaj zapętlenie wszystkich plików mp3. ------------------------------ myDFPlayer.volume(10); // Ustaw wartość głośności. Od 0 do 30 myDFPlayer.volumeUp(); // Zwiększanie głośności myDFPlayer.volumeDown(); // Zmniejszenie głośności ------------------------------ myDFPlayer.setTimeOut(500); //Ustaw limit czasu komunikacji szeregowej 500ms myDFPlayer.reset(); //Resetuj moduł ------------------------------ Serial.println(myDFPlayer.readState()); //odczytaj stan mp3 Serial.println(myDFPlayer.readVolume()); //odczytaj bieżący wolumin Serial.println(myDFPlayer.readEQ()); //odczytaj ustawienia EQ Serial.println(myDFPlayer.readFileCounts()); //odczytaj wszystkie liczby plików na karcie SD Serial.println(myDFPlayer.readCurrentFileNumber()); //odczytaj bieżący numer pliku odtwarzania Serial.println(myDFPlayer.readFileCountsInFolder(3)); //odczytaj liczniki wypełnienia w folderze SD:/03 --------------------------------- myDFPlayer.available()

Krok 5: Zasilanie zewnętrzne

Image
Image
Zewnętrzny zasilacz
Zewnętrzny zasilacz
Zewnętrzny zasilacz
Zewnętrzny zasilacz

Teraz, gdy Twój odtwarzacz MP3 został przetestowany i działa, możesz odłączyć go od komputera i używać go z niezależnym zasilaniem. Dla uproszczenia używam adaptera ściennego 5 V, który można kupić za około dolara, i kabla USB, kolejnego dolara. Kabel łączy Arduino z adapterem ściennym +5V. Ponieważ piny zasilania i uziemienia Arduino są podłączone do płytki stykowej, będą one zasilać pozostałe komponenty. Ze względu na prostotę i niski koszt używam tej samej kombinacji do zasilania innych projektów.

Zdjęcie po prawej stronie i wideo pokazują odtwarzacz podłączony do mojego wzmacniacza za 40 USD, siedzący na prawym głośniku Bose na moim biurku. To mój stacjonarny system muzyczny: odtwarzacz MP3 Arduino, wzmacniacz Douk Audio i 2 głośniki Bose. Dobra jakość dźwięku.

Mam nadzieję, że odniosłeś sukces i spodobało Ci się budowanie własnego odtwarzacza muzyki MP3.

Krok 6: Wyeliminuj szum statyczny

Przy niskim poziomie głośności w tle pojawiał się irytujący, statyczny szum. Hałas był w porządku, gdy głośność DFPlayera była wyższa i grała muzyka. Ale kiedy muzyka ucichła, pojawiły się zakłócenia.

Znalazłem stronę StackExchage, która zawierała wiele sugestii. Pracowały dla mnie:

  • Podłącz krótki przewód między stykami uziemienia DFPlayer: styki 7 do 10.
  • Użyj oddzielnej wtyczki ściennej USB (5 V) do zasilania modułu DFPlayer.
  • Podłącz uziemienie wtyczki ściennej do uziemienia Arduino. Było to wymagane do pracy szeregowego sterowania między Arduino a odtwarzaczem.

Powyższe zostało przetestowane na moim emulatorze Altair 8800, który wzbogaciłem o DFPlayer do odtwarzania muzyki. Odtwarzaczem steruje się za pomocą przełączników na przednim panelu.

Zalecana: