
Witam
Chciałem przedstawić modyfikację projektu odtwarzacza internetowych stacji radiowych zbudowany jedynie przy użyciu modułu ESP-01, filtra RC oraz kilku elementów zewnętrznych.
Hardware:
Schemat oraz pcb zostało przygotowane w programie Eagle w wersji 7.7.0.
Dekodowaniem strumienia mp3 zajmuje się mikrokontroler ESP8266 przetaktowany do prędkości 160MHz. Jako, że na wyjściu generuje sygnał PWM, gdzie samo PWM ma rozdzielczość jedynie 4 bitów konieczne było dołożenie filtra dolnoprzepustowego. Zastosowałem rozwiązanie zaproponowane przez użytkownika @tmf w którymś wątku w dziale mikrokontrolery. Jest to 3 stopniowy filtr RC co powinno dać spadek charakterystyki 18dB na oktawę, którego częstotliwości granicznej już nie pamiętam. Jako gniazdo zasilania dałem możliwość użycia złącza DC, złącza ark lub zwykłych goldpinów. Stabilizacją napięcia zajmuje się ams1117, lub podobny o tej samej konfiguracji wyprowadzeń.


Software
Oprogramowanie to zmodyfikowany kod który był dostępny pod tym adresem:
https://github.com/pvvx/mp3_decode
Dodałem możliwość zmiany stacji radiowych przy pomocy klawiszy. Nie jest ona jednak do końca poprawna i posiada 2 bugi z którymi nie mogłem sobie poradzić:
- podczas zmiany stacji, zanim połączymy się z kolejną odtwarzany dźwięk ulegnie zawieszeniu i w głośnikach będzie słychać brzęk.
- w momencie, gdy przytrzymamy przycisk przełączania przez dłuższy czas układ się zresetuje.
Reszta wydaje się działać jak powinna. Pliki ze zmodyfikowanym kodem programu umieszczam w załączniku.
Uwagi:
- Odtwarzacz potrafi zdekodować jedynie streamy mp3,
- Do wyciągnięcia adresów typów,adresów oraz bitrate streamów używałem wireshark + foobar
- Teoretycznie maksymalny bitrate to 256kb/s
- Kompilacja programu odbywa się przy pomocy Eclipse+RTOS SDK, chcącym samemu dodać stacje radiowe oraz skonfigurować opcje połączenia sieciowego polecam zapoznać się z tym wątkiem.
- Adresy i liczbę stacji definiujemy w pliku radiostation.c
- Nazwę i hasło do sieci definiujemy w pliku playerconfig.c
- W załączniku umieszczam także skompilowany program z nazwą sieci TPLINK oraz hasłem 1234abcd, gdzie dodałem stacje
Code:
RMF FM
Duth radio(?)
Maxima FM
Radio Złote Przeboje
VOX FM
Radio ZET
Polskie Radio PR1
- Żeby wgrać program najlepiej skonfigurować eclipse i zrobić to z jego poziomu jednak na 100% można zrobić to przy użyciu innego narzędzia np ESP Flash Tool. Adresy pod jakie trzeba wgrać pliki trzeba samemu poszukać, bo sam wgrywałem jedynie z eclipse.
- Podczas programowania podłączamy się konwerterem usb<=>uart do goldpinów wyciągniętych z boku płytki. Po zaprogramowaniu układu trzeba założyć zworkę pomiędzy RXD a wyjście. Musiałem użyć takiego rozwiązania ponieważ obciążona linia powodowała brak możliwości programowania. Aby przełączyć układ w tryb flashowania należy przytrzymać przycisk z rogu i dopiero podłączyć zasilanie.
- Układ w czasie pracy pobiera 110mA
- Jakość dźwięku jest dosyć słaba i nie nadaje się raczej do słuchania na słuchawkach. Ja u siebie uzyskałem znośną jakość podczas podłączenia do wieży Sony FH-411R i regulując odpowiednio ustawienia korektora.
- Dostępna jest też wersja z użyciem DAC i zewnętrznej pamięci RAM pod tym adresem, jednak mi po kliku godzinach walki nie udało się tego skompilować. Gdyby ktoś się z tym uporał to proszę o jakiś opis.
- Jeżeli ktoś ma jakiś pomysł jak na serwerze w locie konwertować AAC do mp3 to również proszę o informację jak to zrobić.
- W załączniku wszystkie potrzebne pliki








Tak to gra
Pozdrawiam
Paweł
Cool? Ranking DIY