Korzysta z tego radia internetowego i odtwarzacza MP3 ekran dotykowy 3.5 HDMI LCD do pracy. Oryginalny projekt został opublikowany przez Adafruit i wykorzystuje MPC, MPD i Pygame.

Komponenty radia internetowego i odtwarzacz mp3 na raspberry pi 3

Instalacja radia internetowego i odtwarzacza mp3 na raspberry pi 3

  • Pobierz raspbian, wypal obraz na microSD 8GB lub więcej. Musisz także wiedzieć, jak połączyć się przez SSH z raspberry pi. Podłącz klawiaturę i mysz
  • Podłącz ekran LCD do raspberry pi.
  • Otwórz okno terminala i wpisz

sudo raspi-config

  • dokonać wstępnych ustawień czasu i języka wprowadzania
  • Iść do Dodatkowe opcje i włącz VNC, SSH i ustaw rozdzielczość na 640x480
  • Zrestartuj Raspberry Pi
  • Obraz zawiera niepotrzebne dla projektu programy, które zajmują miejsce potrzebne nam do przechowywania muzyki, więc usuwamy Wolfram i Libreoffice, używając myszki na Pi i wybieramy dodaj/usuń lub przez SSH

sudo apt-get purge wolfram-engine libreoffice* -y

sudo apt-get clean

sudo apt-get autoremove

aktualizacja sudo apt-get

sudo apt-get upgrade

  • Po aktualizacji jesteś gotowy do zainstalowania niezbędnych. Teraz zainstaluj sterowniki LCD.

klon git https://github.com/goodtft/LCD-show.git

chmod -R 755 LCD-pokaż

sudo ./MPI3508_600_400-pokaż

  • Rozdzielczość używana z radiem Pi to 640x480, więc musisz zmienić plik config.txt

sudo nano /boot/config.txt

  • i zmień rozdzielczość na dole pliku na 640x480. Zapisz, wyjdź i uruchom ponownie (reboot).
  • W tym momencie Pi powinno uruchomić się na pulpicie i ekranie dotykowym. Teraz zainstaluj pliki radia Pi.

sudo apt-get zainstaluj mpc mpd

klon git https://github.com/granpino/Pi-Radio-mp3-.git

chmod -R 755 Pi-Radio-mp3-

cd Pi-Radio-mp3-

sudo ./install.sh

  • Plik instalacyjny utworzy niezbędne listy odtwarzania dla mp3 i radia internetowego. Na malinowym pulpicie powinna znajdować się ikona. Aby otworzyć Pi-radio, kliknij dwukrotnie skrót radiowy. Aby zmienić pulpit jednym kliknięciem, przejdź do menedżer plików, kliknij edytuj i wybierz właściwości na samym dole. Wybierz "otwórz pliki jednym kliknięciem".
  • Postanowiłem uruchomić aplikację z pulpitu, ponieważ chcę uruchamiać inne aplikacje na tym samym Pi, które korzystają z ekranu LCD. Do testów dołączyłem kilka przykładowych plików mp3 i stacji radiowych. Aby dodać inne stacje radiowe do swojej listy odtwarzania, przejdź do http://www.radiosure.com/stations/ i skopiuj linki do swojego M3U.

mpc zapisz listę odtwarzania

  • lub edytuj plik

sudo nano ~/var/lib/mpd/listy odtwarzania/lista odtwarzania

  • dodaj pliki mp3, przenieś je do folderu muzycznego

sudo ls -1 /home/pi/Music/*.mp3 > /var/lib/mpd/playlists/mp3.m3u

W tym projekcie zamienimy Twoje Raspberry Pi w potężną stację radiową FM! Ma wystarczający zasięg, aby pokryć Twój dom, domowy kino samochodowe na świeżym powietrzu, boisko do baseballu w liceum, a nawet paradę motocyklową.

Do projektu będziesz potrzebować programu PiFM, który znacznie poprawi możliwości twojego Pi, a także kawałka drutu o określonej długości. Innymi słowy, potrzebujesz minimum komponentów do sterowania Raspberry Pi - karty SD, zasilacza, samej płyty. Raspberry Pi (kup na AliExpress)- Cóż, dodaj jeden kawałek drutu. Rezultatem powinno być najfajniejsze urządzenie Pi spośród niewielkiej liczby komponentów.

Program PiFM został pierwotnie stworzony przez Olivera Mattosa i Oskara Weigla, a następnie przeprojektowany przez Ryana Grassela. Chciałbym szczególnie podziękować całej społeczności PiFM za udzielone rady. MAKE Lab współtworzyło projekt - scenariusz pirackie radio.py, który umożliwia odtwarzanie plików muzycznych bez korzystania z wiersza poleceń, a także zapewnia ich automatyczne przetwarzanie i zarządzanie. Scenariusz został stworzony przez stażystę MAKE Labs Wyntera Woodsa. Kod źródłowy można znaleźć.

NOTATKA: Częstotliwość transmisji Raspberry Pi waha się od 1 MHz do 250 MHz i może pokrywać się z pasmami rządowymi. Zalecamy ograniczenie transmisji do standardowego pasma FM 87,5 MHz - 108,0 MHz (patrz krok 3) i zawsze wybieraj częstotliwość, która nie jest jeszcze używana, aby uniknąć nakładania się częstotliwości z licencjonowanymi nadawcami.

Krok 1: Zrób antenę

  • Do wykonania anteny wystarczy kawałek drutu. Aby to zrobić, musisz podłączyć 75cm przewód do pinu 4 (pozwoli to prawidłowo stworzyć półfalową antenę dipolową na 100MHz, w regionie mid-FM). Użyliśmy 40 cm solidnego drutu 12 AWG (2,053 mm), ponieważ urządzenie zaczynało wariować, jeśli drut był dłuższy.
  • Odetnij i zdejmij żeński przewód połączeniowy. Przylutuj go do jednego końca anteny i zaizoluj lutowany obszar za pomocą rurki termokurczliwej.
  • Nałóż trochę kleju rozgrzewającego wokół połączenia i przesuń go na pin 4 GPIO twojego Raspberry Pi. Klej sprawi, że struktura anteny będzie sztywniejsza, dzięki czemu będzie lepiej stać w pozycji pionowej.
  • NOTATKA: Jeśli masz zestaw startowy Raspberry Pi i się spieszysz, możesz użyć męskiego złącza podłączonego do płytki rozszerzającej Cobblera! (Oba są wliczone). Będzie działać, ale zasięg zmieni się prawie o połowę w porównaniu z 40-centymetrowym drutem miedzianym 12 AWG (2,053 mm).

Krok #2: Pobierz obraz płyty na kartę SD i dodaj muzykę

  • Aby zaoszczędzić czas podczas konfigurowania systemu, MAKE Labs stworzyło obraz dysku. Pobierz go stąd (zaawansowani użytkownicy, którzy tylko potrzebują źródło można znaleźć przypis do pobrania w trzecim akapicie tego dokumentu).
  • Oryginalny kod PiFM wykazał imponujące wyniki. Obraz MAKE dokonuje partycjonowania mapy, tworząc na niej partycja systemowa oraz sekcję na dane. Pozwala również na automatyczne montowanie partycji danych. Obraz wykorzystuje część oryginalnego kodu i pozwala na odtwarzanie MP3, FLAC i innych formatów. Skrypt jest wykonywany przy starcie pirackie radio. py, dzięki czemu Twoja muzyka będzie transmitowana natychmiast po załadowaniu nadajnika radiowego. W końcu zaoszczędzi nam to dużo czasu. Nie możesz jednak po prostu skopiować plików na kartę SD; karta musi być przygotowana do pracy.
  • Pobierz obraz na kartę SD. Jeśli nie wiesz, jak to zrobić, nie przejmuj się, wszystko jest bardzo proste. Możesz użyć Win32DiskImager w systemie Windows lub instrukcji do pracy wiersz poleceń(1) jeśli używasz komputera z systemem OSX. Przypuszczam, że Użytkownicy Linuksa bardziej zaznajomiony z wierszem poleceń.
  • Dla użytkowników OSX i Linux wystarczy otworzyć sekcję PirateRadio i zacząć. Użytkownicy systemu Windows powinni postępować zgodnie z naszymi instrukcjami dotyczącymi łączenia Pi przez SSH przy użyciu WinSCP.
  • Aby dodać muzykę, po prostu skopiuj folder wykonawcy lub albumu do katalogu głównego „Pirate Radio” na karcie SD. Twoje pliki muzyczne będą znajdować się w tych folderach, więc nie musisz zrzucać całej muzyki razem do głównego katalogu.

Krok 3: Edytuj plik konfiguracyjny

W pliku można ustawić żądaną częstotliwość nadawania pirackie radio. konfiguracja. Otwórz plik w Edytor tekstu. Powinieneś zobaczyć następujące informacje:

Częstotliwość = 108,2 shuffle = prawda powtórz_wszystko = prawda

  • Ustaw częstotliwość dla stacji, którą chcesz nadawać w radiu. Standardowe częstotliwości FM zwykle wahają się od 87,5 MHz do 108,0 MHz (108,2 była najwyższą częstotliwością, jaką może osiągnąć nasze radio testowe, bez nakładania się z innymi stacjami).
  • Ustaw opcję losowania na Prawda lub Fałsz, aby odtwarzać je w kolejności alfabetycznej.
  • Ustaw parametr repeat_all na True, jeśli chcesz, aby lista odtwarzania była odtwarzana w pętli.

Krok 4: Uruchom!

Dostrój radio FM do żądanej częstotliwości i uruchom Raspberry Pi. Uruchomienie mikrokomputera zajmuje około 15 sekund. Po tym powinieneś słyszeć swoją muzykę głośno i wyraźnie.

Krok #5: Jak działa program PiFM


  • Fragment wiki PiFM: „Program wykorzystuje sprzęt Raspberry Pi; oznacza to generowanie szerokopasmowych sygnałów synchronizacji na pinach GPIO dla potężnego radia FM. Oznacza to, że wystarczy podłączyć Raspberry Pi tylko kawałkiem przewodu (około 20 cm długi) włożyć w pin 4 GPIO i uruchomić kod programu".
  • Modulacja częstotliwości jest „wykonywana przez dostosowanie częstotliwości za pomocą dzielnika ułamkowego”. Na przykład, aby uzyskać docelową częstotliwość 100 MHz, sygnał zmienia się między 100,025 MHz a 99,975 MHz, co daje sygnał audio.
  • W kod programu w Pythonie domyślna częstotliwość to 87,9 FM z wyłączonym losowym odtwarzaniem plików i zapętleniem listy muzycznej. Program skanuje kartę SD w poszukiwaniu plików muzycznych i tworzy listę na podstawie opcji ustawionych w konfiguracja plik. Ponadto każdy plik, w zależności od jego typu, jest przesyłany do dekodera. Następnie każdy plik jest transkodowany do formatu mono zrozumiałego dla PiFM. Pozwala to na odtwarzanie nie tylko plików WAV, ale także MP3, FLAC, M4A, AAC czy WMA.

Krok #6: Ostatni etap

Mieszkając w dużym mieście i mając nawet prosty odbiornik radiowy można słuchać kilkudziesięciu stacji radiowych w paśmie UKF w bardzo dobrej jakości. Wydawałoby się, że to wystarczy ...

Jednak stacje radiowe naziemne mają kilka wad. Po pierwsze jest to niepewny odbiór sygnału w niektórych rejonach, a po drugie, pomimo pozornej różnorodności, nie zawsze łatwo jest znaleźć stację radiową, która w pełni odpowiadałaby gustom muzycznym. Do tego irytująca reklama i dość ograniczony repertuar większości stacji.

Nic dziwnego, że teraz wielu użytkowników woli słuchać stacji radiowych nadających w sieci WWW. Obecnie liczba internetowych stacji radiowych przekroczyła już 10 tys. Za pośrednictwem Internetu można słuchać programów stacji zlokalizowanych w niemal każdym kraju na świecie i nadających na większości inne języki. Ale włączenie komputera w celu słuchania radia jest, delikatnie mówiąc, niewygodne. Jakoś bardziej znajomy i wygodniejszy - przekręcił gałkę - dostroił się do stacji ...

I tak zrobię radio internetowe. Ta myśl przyszła mi do głowy, gdy decydowałem, w którym projekcie użyć mikrokomputera Raspberry Pi model B, który został wyłączony z pracy po zakupie znacznie wydajniejszego Raspberry Pi 2.

Istnieje wiele projektów radia internetowego na Raspberry Pi. Najlepsze, jakie znalazłem, to Pi Radio. Autor - Bob Rathbone- pracuje nad tym projektem od ponad 2 lat. Na szczególną uwagę zasługuje otwartość i dostępność wszystkich informacji, a także bardzo szczegółowy opis metod konfiguracji sprzętu i oprogramowania.

To właśnie ten rozwój postanowiłem powtórzyć. Oczywiście nie tylko ślepo kopiowałem projekt, ale kreatywnie podszedłem do procesu, dodając coś własnego.

A więc czym jest Pi Radio. Jest to odbiornik internetowy, który umożliwia słuchanie internetowych stacji radiowych, dodatkowo może odtwarzać pliki muzyczne z pendrive'a lub dysk sieciowy w sieć domowa. Program zawiera wiele różnych funkcji serwisowych - timer, budzik, wiadomości RSS, podcasty...

Połączenie internetowe może być przewodowe lub WiFi. Podstawą odbiornika jest popularny mikrokomputer Raspberry Pi, do którego można zastosować dowolny model: B, B+, 2 lub Zero.

Bob Rathbone opracował kilka opcji obwodów i oprogramowania. Sterowanie możliwe jest zarówno za pomocą enkodera, jak i przycisków, wyświetlających informacje na 2- lub 4-liniowym wyświetlaczu LCD. Odbiornikiem można sterować za pomocą pilota.

Wyświetlacz można podłączyć bezpośrednio do portów I/O Raspberry Pi lub za pomocą płytki opartej na PCF8574 za pośrednictwem magistrali I2C. Autor przewidział możliwość zastosowania dwóch kolejnych typów wyświetlaczy - AdaFruit LCD z interfejsem I2C oraz PiFace CAD z interfejsem SPI.

Powtórzyłem opcję z bezpośrednim podłączeniem dwuliniowego wyświetlacza do portów I/O i sterowania enkoderem. Wyniki całkowicie mnie usatysfakcjonowały, więc gdy pojawiła się potrzeba innego odbiornika, wykonałem drugą wersję, wszystko jest takie samo, tylko sterowanie przyciskami. W dalszej części opiszę dokładnie te dwie modyfikacje.

Zaznaczam, że na początku próbowałem podłączyć wyświetlacz poprzez magistralę I2C za pomocą płytki PCF8574. Spędziłem dużo czasu na setupie, ale ostatecznie musiałem zrezygnować z tej opcji. Oprogramowanie dość skomplikowany i obszerny, oczywiście autor po prostu nie ma siły i umiejętności, aby dokładnie przetestować wszystkie opcje swojego radia.

Program ciągle się zawieszał, zwłaszcza podczas wysyłania komendy z pilota. Trudno zorientować się, co się tutaj dzieje. Ale opcje z bezpośrednim podłączeniem wyświetlacza do Raspberry Pi działają stabilnie. Dlatego nie polecam używania magistrali I2C lub SPI w tym odbiorniku.

Moim zdaniem autor zbyt wiele uwagi poświęcił wszelkim funkcjom pomocniczym ze szkodą dla głównych. W końcu możliwości wskaźnika LCD są bardzo ograniczone i czytanie na nim np. wiadomości nie jest zbyt wygodne. Używanie odbiornika jako budzika jest bardzo ryzykowne, jeśli z jakiegoś powodu nie będzie internetu, nie będzie radia. A prąd można odciąć w nocy...

Jednak generalnie wszystko się udało, odbiornik może być używany.

W rzeczywistości odbiornik radiowy to płytka Raspberry Pi, do której portów I/O podłączony jest wyświetlacz i 2 enkodery. Za pomocą jednego z nich wybiera się stację, za pomocą drugiego reguluje się głośność. Zastosowany wyświetlacz jest najczęściej, oparty na kontrolerze HD44780 dla 2 linii po 16 znaków. Zamiast enkoderów do nawigacji można użyć 5 przycisków.

Dla miłośników wysokiej jakości dźwięku możliwe jest użycie wyjścia Raspberry Pi zamiast AUDIO zewnętrzne USB karta dźwiękowa.

Oczywiście odbiornik potrzebuje zasilania. Opcji do wyboru jest wiele – wystarczy dowolny zasilacz stabilizowany na 5 V o prądzie co najmniej 1,5 A. Należy pamiętać, że ładowarka do telefonu nie będzie działać, potrzebny jest zasilacz stabilizowany, napięcie pod obciążeniem nie powinno spaść poniżej 4,8 V, a bez obciążenia wzrosnąć powyżej 5,2 V.

Cóż, trzeba jakoś posłuchać muzyki, tj. wymagany wzmacniacz stereo lub aktywne głośniki. Istnieje również wiele opcji na każdy gust (plotka) i portfel.

Postanowiłem jak najlepiej wykorzystać moją amatorską skrzynkę na śmieci do tego projektu. Zawierał doskonały transformator sieciowy dla wymaganego prądu i napięcia, mikroukład stabilizatora przełączania LM2576-ADJ oraz mikroukład dobrego i dość mocnego stereofonicznego wzmacniacza basowego LM1876.

Autor sugeruje włączanie i wyłączanie odbiornika po prostu wyłącznikiem sieciowym. Chociaż nie zaszkodzi to Raspberry Pi, może uszkodzić Raspberry Pi w niefortunnych okolicznościach. system plików na karcie SD. Dlatego postanowiłem uzupełnić urządzenie o układ do prawidłowego wyłączania systemu i wyłączania zasilania. Co więcej, autor przewidział taki tryb - trzeba nacisnąć i przytrzymać przycisk "Menu" przez 3 sekundy, a następnie odczekać kolejne 30 sekund i wyłączyć zasilanie. Zgadzam się - to bardzo niewygodne.

Rezultatem jest ten schemat. To jest moja pierwsza wersja ze sterowaniem enkoderem. Moje dodatki są podświetlone na niebiesko.

Strojenie i głośność są kontrolowane za pomocą enkoderów z przyciskami odpowiednio SA1, SB1 i SA2, SB2. Przycisk SB1 - wejdź do "Menu", SB2 - tryb "Mute". Enkodery muszą wysyłać sekwencję impulsów przesuniętą o 90 stopni. Użyłem typu ES110501S-HA2 5 pinów. Pod tym oznaczeniem zostały wymienione w cenniku sklepu.

Tranzystory VT3 ... VT7 i rezystory R11 ... R23 to konwertery poziomów logicznych 3,3 - 5 V dla wskaźnika. Te elementy są opcjonalne. Jak pokazała praktyka, wskaźnik 5 V działa normalnie z poziomami logicznymi 3,3 V. Jednak w przypadku problemów konwerter poziomów można zamontować na małej płytce bezpośrednio na wskaźniku. Jeszcze lepiej jest użyć wskaźnika zasilanego napięciem 3,3 V, ale takie wskaźniki są dość rzadkie i kosztują znacznie więcej.

DA1 to odbiornik zdalnego sterowania do telewizorów, na wyjściu ma tranzystor zgodnie z obwodem ze wspólnym emiterem i rezystorem obciążającym około 30 KΩ w obwodzie kolektora, więc nie ma problemu z dopasowaniem poziomu. HL2 - wskaźnik aktywności pilota.

To właściwie cały odbiornik, a część obwodu zaznaczona na niebiesko po lewej stronie to obwód zasilający. Użyłem zwykłego zasilacza transformatorowego. W stanie wyłączonym wszystkie obwody są pozbawione napięcia, brak trybów czuwania. Po naciśnięciu przycisku SB4 transformator jest zasilany. Zwracam uwagę - przycisk nie zatrzaskuje się i musi być przystosowany do przełączania 220 V. C4, C5, L1, L2 - filtr sieci zakłócenia, oceny L1, L2 nie są krytyczne.

Z wyjścia stabilizatora do złącza microUSB Raspberry Pi i do Kontroler PIC DD1. Na styku 7 (GP0) sterownika ustawiony jest wysoki poziom logiczny, tranzystor VT1 otwiera się, przekaźnik K1 jest aktywowany i blokuje przycisk zasilania swoimi stykami.

Na pinie 3 (GP4) kontrolera ustawiony jest poziom zerowy, służy on do zwierania wejścia ULF podczas rozruchu i wyłączania systemu. Faktem jest, że procesowi aktywacji karty dźwiękowej USB towarzyszą nieprzyjemne, dość głośne dźwięki. Jeśli zamierzasz korzystać z wbudowanego wyjścia AUDIO Raspberry Pi, przekaźnik K2 można pominąć, w tym przypadku wyjście GP4 kontrolera nie jest nigdzie podłączone.

Po włączeniu zasilania dioda HL1 miga przez około 50 sekund, wskazując, że system się uruchamia. Po tym czasie odbiornik jest gotowy do pracy, na pinie 3 (GP4) ustawiony jest wysoki poziom logiczny, wejście ULF jest odblokowane, HL1 świeci światłem ciągłym. W przypadku HL1 i HL2 użyłem jednej dwukolorowej diody LED ze wspólną katodą.

Aby wyłączyć odbiornik, należy krótko nacisnąć przycisk SB3. W tym przypadku wyjście sterownika 5 (GP2) jest ustawione na niski poziom logiczny, symulując naciśnięcie przycisku „Menu” SB1. Po 3 sekundach układ zaczyna się zamykać, wejście ULF jest zablokowane, ponownie miga HL1 sygnalizując zamknięcie. Po około 40 sekundach układ zostaje zamknięty, pin 7 (GP0) przechodzi w stan zerowy, przekaźnik K1 wyłącza się, a układ nie jest pod napięciem.

Sterownik może być używany jak PIC12F629 lub PIC12F675, a po niewielkiej modyfikacji programu - dowolny PIC.

Napięcia na uzwojeniach wtórnych transformatora są nieco duże, ale wyszedłem z dostępności. Musiałem użyć regulatora napięcia przełączającego na 5 V. Jest on montowany na LM2576-ADJ, zawartym zgodnie z typowym obwodem. Wartość rezystora R1 obliczana jest zgodnie z prawem Ohma na podstawie znamionowego prądu i napięcia pracy przekaźnika. L2, C3 - dodatkowy filtr szumu impulsowego. Wartość L1 jest dobierana na podstawie napięcia wejściowego i prądu roboczego zgodnie z zaleceniami podanymi w arkuszu danych LM2576. Wartość L2 nie jest krytyczna.

Jedynym know-how obwodu jest dioda Zenera typu VD3 D815B o napięciu stabilizacji 6,8 V. Nie uczestniczy w działaniu stabilizatora, jest instalowana w celu ochrony obciążenia przed zwiększonym napięciem w przypadku stabilizatora awaria. Zgadzam się - jeśli zamiast 5 V przyłożysz do obwodu 24 V, konsekwencje będą bardzo smutne.

Tutaj musisz użyć starej diody Zenera w metalowej obudowie z nakrętką, zamontowanej na płycie bez radiatora. Jeśli z jakiegoś powodu napięcie na wyjściu stabilizatora wzrośnie powyżej 7 V, przez diodę Zenera przepłynie duży prąd, który spowoduje przepalenie bezpiecznika w obwodzie uzwojenia transformatora.

Cóż, jeśli zamiast bezpiecznika zostanie zainstalowany gwóźdź, dioda Zenera przegrzeje się, kryształ w nim stopi się i zewrze wyjście. Raspberry Pi zostanie zapisane. Jeśli użyjesz niskoprądowej diody Zenera w szklanej obudowie, jeśli zostanie przeciążona, po prostu eksploduje i nie ochroni obciążenia.

Wzmacniacz niskotonowy nie ma żadnych cech, jest montowany zgodnie z typowym obwodem na LM1876. Elementy C9...C12 i R12...R17 - regulacja barwy dla 2 stałych pozycji Classic i Rock. W pierwszym przypadku Pasmo przenoszenia liniowy, w drugim następuje wzrost częstotliwości dolnej i górnej. Jeśli użyjesz przełącznika SA1 dla trzech pozycji, to w pozycji środkowej, gdy wszystkie styki są otwarte, podniosą się tylko niskie częstotliwości. Regulacja barwy jest montowana powierzchniowo na pinach SA1.

Styki normalnie zamknięte przekaźnika K2 zwierają wejście wzmacniacza podczas rozruchu i wyłączania systemu. Schemat przedstawia podłączenie przekaźnika z uzwojeniem 24 V, ale może być również stosowany na 12 lub 5 V w zależności od zastosowanego zasilania. Jak już pisałem ten przekaźnik jest potrzebny tylko do karty dźwiękowej USB i wysokiej jakości akustyki.

Za pomocą rezystora strojenia R4 wzmocnienie jest wyrównywane w kanałach (balans stereo). Nie ma potrzeby wyprowadzania tego rezystora w celu regulacji on-line. Wzmocnienie ULF jest określone przez stosunek wartości rezystorów R8/(R3+R4) i R9/R7.

Wzmacniacz zasilany jest osobnym uzwojeniem transformatora. Jeśli użyjesz wspólnego zasilacza dla części analogowej i cyfrowej odbiornika, trudniej będzie pozbyć się zakłóceń tworzonych przez Raspberry Pi - wszelkiego rodzaju "bzygowic" i "skrzypiec". „masę” analogową i cyfrową należy podłączyć tylko w jednym punkcie – na złączu wejściowym VLF. Jeszcze lepiej, użyj oddzielnego wzmacniacz zewnętrzny Głośniki niskotonowe lub aktywne.

Schemat drugiej wersji odbiornika ze sterowaniem przyciskami jest następujący.

Tryb „Mute” aktywuje się poprzez jednoczesne naciśnięcie przycisków „Volume Up” i „Volume Down”. Rezystory R27-R31 są potrzebne tylko dla najstarszych modeli Raspberry Pi model B rev.1. Dla ks. Modele 2 i B+, 2 i Zero nie muszą być instalowane.

Impuls zasilania 5 V, 2 A. Rezystory R26, R27 ograniczają prąd rozruchowy, gdy sieć jest włączona, a także działają jak bezpieczniki. Diody VD2 - VD4 służą do dopasowania poziomów 5-3,3 V. Przekaźnik K1 z uzwojeniem 5 V. Jeśli nie możesz kupić takiego przekaźnika z dwiema parami styków, możesz włączyć dwa przekaźniki równolegle jedną parą w każdy. W takim przypadku może być konieczne użycie więcej potężny tranzystor VT1. Zamiast ULF użyłem aktywnych głośników zasilanych napięciem 5 V (USB). Łączą się z wyjściem AUDIO Raspberry Pi. Pozostałe elementy obwodu są podobne do opcji z enkoderami.

Rysunki wszystkich plansz zamieszczam w Sprint Layout tylko po to, by można je było „wziąć za podstawę”. Link na końcu strony. Nie polecam powtarzania 1:1, wymiary i konfiguracja desek determinuje przede wszystkim przypadek.

Oprogramowanie układowe PIC dla dwóch opcji odbiornika jest inne, dla opcji z enkoderami jest to plik piсrdo_enc.hex, dla opcji z przyciskami - piсrdo_but.hex. Oprogramowanie układowe jest odpowiednie zarówno dla PIC12F629, jak i PIC12F675. W archiwum z oprogramowaniem znajduje się również plik z tekstem źródłowym programu. W razie potrzeby możesz łatwo zmienić czas opóźnienia włączenia i wyłączenia odbiornika.

Gdzie kupić akcesoria? Raspberry Pi jest nadal (koniec 2015 roku) tańsze na zamówienie w Chinach, na Aliexpressie jego koszt, w zależności od modelu, oscyluje w granicach 30...40 USD. W tym samym miejscu, w razie potrzeby, można kupić zasilacz i kartę dźwiękową USB w bardzo rozsądnej cenie.

Użyj USB karta dźwiękowa ma sens tylko wtedy, gdy akustyka jest wystarczająco dobra. Jeśli twoje głośniki kosztują mniej niż 50 USD, wbudowane wyjście AUDIO Raspberry Pi jest w porządku. Wybór głośników jest dość duży w każdym rosyjskim sklepie z elektroniką. Oczywiście nie oczekuj dźwięku Hi-End z radia internetowego, ale głośniki wysokotonowe wielkości piłki tenisowej nie są najlepszym wyborem.

Lepiej jest kupić wskaźnik w Rosji, jeśli potrzebujesz obsługi języka rosyjskiego. Preferowane powinny być modele z ciemnymi postaciami na jasnym tle. Popularne wskaźniki z białymi znakami i niebieskim podświetleniem wyglądają ładnie, ale są bardzo „bezwładnościowe”. Trudno będzie podążać za linią biegową.

Jeśli twój wskaźnik pokazuje hieroglify zamiast rosyjskich liter, to w porządku, może być używany w tym odbiorniku. Tylko tekst rosyjski będzie wyświetlany po łacinie. Lepiej też kupić enkodery w sklepie detalicznym, przynajmniej marka będzie znana, co oznacza, że ​​możesz wyjaśnić parametry z arkusza danych.

Jeśli masz pytania, zanim je zadasz, przeczytaj uważnie wszystkie części opisu, a także zapoznaj się z dokumentacją autora Pi Radio

Jak wiesz, nie ma ograniczeń co do perfekcji. Nawet dla domowej roboty akustyka przenośna, którego odbiorcami jest tylko jedna osoba. Bardzo wymagająca, a czasem maniakalnie uparta osoba. Od publikacji pierwszego posta o Pi-Sonosie minęło prawie 5 miesięcy. W tym czasie oprogramowanie wewnątrz tej akustyki zdołało radykalnie zmienić się dwukrotnie. Przyczynami zmian były: pomocne wskazówki habravchan i własny UX.

Pi-Sonos to domowej roboty kompaktowy głośnik inspirowany Sonos Play 1. Zadaniem tego głośnika było przede wszystkim odtwarzanie muzyki z internetowych stacji radiowych. Tworząc go stawiam na minimalizm i wygodę: podłączasz go do gniazdka, a potem sterujesz muzyką ze smartfona/komputera/tabletu w dowolnym miejscu w domu.


O czym jest ten artykuł

Przede wszystkim o wytrwałość i ciekawość w drodze do ideału. Pod cięciem nazwa użytkownika nie będzie ani rozwiązania jakiegoś globalnego problemu, ani opisu nowej unikalnej technologii. Artykuł zawiera jedynie porównanie popularnych centrów multimedialnych dla Raspberry Pi, ujawnia ich zalety i wady, a także moją osobistą wizję optymalnego szkieletu dla radia internetowego. Tak naprawdę, pracując nad własnym oprogramowaniem do głośnika, tylko częściowo powtórzyłem drogę twórców Volumio, po prostu realizując od podstaw tylko jedną z jego funkcji (czytaj: „wymyślił kolejny rower”).
Pomimo tego, że artykuł porusza temat wytwarzania oprogramowania, nie ma w nim kodu, ponieważ celem artykułu jest opisanie idei i funkcjonalności, a nie procesu jej realizacji. Jeśli temat kodu jest interesujący dla habravchans, postaram się opanować osobny artykuł opisujący proces rozwoju.


Początkowo OSMC było miękkim wypełnieniem akustyki, ale mądrzy ludzie w komentarzach zwracali uwagę na fakt, że Kodi (aka OSMC) jest zbyt odważny jako „mózg” dla internetowej stacji radiowej. Jest zbyt sprytny i duży, tylko do projektów audio Volumio lepiej się nadaje. Właściwie tak się okazało. Volumio jest lżejszy, oparty na sieci i ma bardziej zaawansowany i łatwy do opracowania interfejs API. Nie ma również potrzeby, aby kabel HDMI wystawał z tyłu, ponieważ Volumio można w pełni dostosować w dowolnej przeglądarce.

Jednak Volumio pokazał również kilka ważnych niedociągnięć, które skłoniły mnie do dalszych badań. Jest to po pierwsze czas ładowania, a po drugie brak autoodtwarzania. Po przestudiowaniu oficjalnej dokumentacji (z której możesz zrozumieć, że Volumio jest dodatkiem do mpd ( Odtwarzacz muzyki Daemon))), zdecydowałem, że nadszedł czas na napisanie własnego wrappera js o nazwie RPi-Radio, który rozwiąże te problemy. Część serwerowa działa na Node.js, a część kliencka (GUI) korzystająca z React.js jest gotowa od OSMC, wystarczyło ją trochę podrasować. Tak to wygląda w tej chwili na ekranie smartfona:


Poniżej znajduje się tabela, która wyraźnie pokazuje wady i zalety każdego z frameworków.
Kryterium OSMC Objętość Radio RPi
Czas ładowania 35 sekund 45 sekund 20 sekund
Autoodtwarzanie przy starcie Nie* Nie* TAk
Liczba stuknięć z głównego ekranu „natywnego” GUI na smartfonie w celu wybrania stacji radiowej z listy Ulubionych** Zwój 5+1 4 1
Wymagany monitor, klawiatura i mysz*** TAk Nie Nie
Kontrola sieci częściowy kompletny częściowy
Edycja listy stacji tak sobie normy tak sobie
Łatwość początkowej konfiguracji tak sobie Świetny przeciętny
Integracja z moim GUI do sterowania smartfonem o kulach o kulach z pudełka
Wygoda codziennego użytkowania ☆☆ ☆☆☆
* w rzeczywistości tak, ale musisz zrobić kulę i wsunąć ją do automatycznego ładowania Raspbian; w przypadku OSMC kula jest napisana w Pythonie, a w przypadku Volumio w js lub bash. Ale w obu przypadkach nadal nie działa tak, jak byśmy chcieli.
** dla OSMC i Volumio jest to bardzo ważne parametry, ponieważ wszystkie te tapas-scrolle muszą być wykonywane za każdym razem, gdy włączasz kolumnę. Dla RPi-Radio ten parametr, choć minimalny, nadal nie jest tak ważny, ponieważ głośnik zaczyna grać sam po włączeniu.
*** oznaczający fizyczne połączenie monitor, klawiatura i mysz do samego Raspberry Pi, czyli te przypadki, w których nie można się obejść za pomocą wbudowanego interfejsu internetowego lub połączenia ssh.

Pod tym spojlerem kryje się szczegółowe wyjaśnienie każdego z punktów porównawczych.

Czas ładowania wynoszący 20 sekund to moim zdaniem minimum, które można osiągnąć bez zagłębiania się w dzikość optymalizacji Raspbian dla tego projektu. Tyle czasu zajmuje "malinowi" załadowanie systemu operacyjnego i uruchomienie usługi mpd. Prawdopodobnie ten wynik można poprawić, jeśli microSDHC zostanie zastąpiony microSDXC o wyższej prędkości odczytu/zapisu (sprawdzę, jeśli to możliwe). Co zaskakujące, Volumio, udając, że jest lekki i zwinny, ładuje się dłużej niż kombajn do zbioru potworów OSMC. 45 sekund oczekiwania przekracza próg komfortowej obsługi i to był główny powód opuszczenia Volumio.

Autoodtwarzanie jest dołączone do mpd po wyjęciu z pudełka, nie musiałem nic robić, aby go aktywować - poręczne! W Volumio, chociaż jest to opakowanie dla mpd, ta funkcja została stłumiona na rzecz przyjemnego dźwięku powitalnego. Jak już pisałem, możesz zrobić skrypt i umieścić go w autoloadzie. Podobnie jest z OSMC.

W OSMC większość interakcji z użytkownikiem odbywa się za pośrednictwem monitora: jest piękny interfejs, możliwość oglądania filmów, zdjęć, czytania wiadomości i oglądania pogody - wiele rzeczy, których moja kolumna nigdy w moim życiu nie zrobi.

Ale zarządzanie siecią OSMC jest bardzo ograniczone i nie możesz nawet zdalnie skonfigurować listy ulubionych stacji we wtyczce Radio - tylko za pomocą monitora. Volumio ma coś przeciwnego, wszystko odbywa się tylko przez interfejs sieciowy. Najwygodniej jest edytować listę stacji w przeglądarce na komputerze stacjonarnym/laptopie, ale jeśli chcesz, możesz też na smartfonie. Dzięki RPi-Radio, poprzez interfejs sieciowy, możesz tylko wybrać stację i dostosować dźwięk. Lista stacji, a właściwie wszystko inne, musi być zrobione przez konsolę przez ssh. Najtrudniejsza jest lista stacji: jeśli OSMC i Volumio mają swoje rozbudowane biblioteki internetowych stacji radiowych, to w RPi-Radio musiałem ręcznie wpisać adresy moich ulubionych stacji w formacie JSON. Niewygodnie, ale tylko raz (lub kilka) razy w życiu.

Z początkowe ustawienia najgorsze w OSMC. Najpierw musisz podłączyć monitor do „maliny” i skonfigurować wtyczkę Radio, następnie musisz również skonfigurować wyjście dźwięku do zewnętrznego IQAudio DAC (tego na płycie Suptronics X400) za pomocą konsoli lub przez ssh. RPi-Radio ma tę samą konfigurację DAC, ale przynajmniej wszystko inne odbywa się również przez ssh. Liderem w tej nominacji jest oczywiście Volumio – aby wyprowadzić dźwięk przez zewnętrzny przetwornik cyfrowo-analogowy, wystarczy wybrać odpowiednią pozycję z rozwijanej listy w menu ustawień. Istnieje nawet porównanie na oficjalnej stronie Suptronics (http://www.suptronics.com/xseries/x400.html)

GUI w RPi-Radio to prosta strona internetowa zaimplementowana w React.js. Część serwerowa odpowiedzialna za interakcję między GUI klienta a mpd działa na Node.js i jest prostym serwerem HTTP i WebSocket opartym na pakiecie Socket.io + http + express. Działa na Raspbian jako usługa przy starcie systemu zaraz po uruchomieniu usługi mpd i używa modułu mpc-js do sterowania mpd. GUI klienta jest dostępne dla każdej przeglądarki w mojej sieci domowej po prostu przez adres IP lub nazwę hosta „maliny”. Idealny.


Źródła RPi-Radio opublikowane na

Jak już wielokrotnie mówiono, wszechstronność mini PC nie zna granic. Do tworzenia unikalnych projektów wystarczy podstawowa wiedza z zakresu programowania oraz wolny dzień. Ale nie każdy ma dodatkowy czas, ale chcę coś zrobić własnymi rękami. Dlatego przygotowaliśmy krótki artykuł o tym, jak słuchać radia na Raspberry za pomocą Internetu lub wtyczek.

Radio internetowe na Raspberry Pi

Aby stworzyć stację radiową tą metodą, potrzebujemy modelu gadżetu wyposażonego w odpowiedni moduł. Dla większej wygody można zastosować starsze modyfikacje z wbudowanym modułem Wi-Fi, co pozwoli zrezygnować z wielu dodatkowych przewodów. Następnie przystępujemy do wykonania odbiornika radia internetowego z Raspberry Pi, postępując zgodnie z poniższą instrukcją:

  1. Podłączamy do płytki urządzenie audio, z którego będzie odtwarzana muzyka. Opcjonalnie możesz dobrać etui i mały ekran na gadżet.
  2. Piszemy polecenie „sudo_apt-get_install_mplayer”, które zainstaluje na mini-PC odtwarzacz, który może odtwarzać najpopularniejsze formaty plików audio, w tym audycje radiowe.
  3. Zainstaluj na smartfonie lub tablecie z systemem operacyjnym aplikacja na Androida, zdolny do wykonywania poleceń na Raspberry bez podłączania klawiatury. W naszym przypadku jest to Raspi SSH. Dodatkowo można przylutować do gadżetu poszczególne przyciski oraz wpisać odpowiednie polecenia włączania i wyłączania odtwarzania stacji radiowych.
  4. Piszemy polecenie włączenia radia „mplayer_-playlist_http://bezpośredni link do stacji radiowej”. W takim przypadku warto zwrócić uwagę, że będzie odtwarzana tylko zarejestrowana stacja radiowa. Aby przełączyć się na inny, będziesz musiał ponownie wprowadzić polecenie. Oficjalne linki można znaleźć na odpowiednich stronach internetowych i zapisać w wygodnym miejscu do szybkiej nawigacji.
  5. Aby wyłączyć radio po odsłuchaniu, wprowadź polecenie „killall_mplayer”, które zamknie aplikację przy minimalnym ryzyku uszkodzenia gadżetu, a następnie odłącz mini-PC od źródła zasilania.

Dodatkowo, aby słuchać radia internetowego na Raspberry można zainstalować „OS” z obsługą odpowiednich aplikacji lub skorzystać z oprogramowania układowego z gotowymi narzędziami (dostępnymi na Github). Przyjrzyjmy się teraz możliwościom korzystania z Raspberry z odbiornikiem RTL-SDR.

Aby odłączyć mini PC od stałego połączenia internetowego, możesz kupić mały odbiornik SDR dla Raspberry Pi i wyświetlacz (PiTFT) o przekątnej 2,8 cala lub więcej w dowolnym dostępnym sklepie internetowym. Następnie postępuj zgodnie z instrukcjami:

  • Podłączanie i konfigurowanie wyświetlacza. Aby to zrobić, pobierz obraz z całym niezbędnym oprogramowaniem (bezpośredni link adafruit-download.s3.amazonaws.com/2015-02-16-raspbian-pitft28r_150312.zip) i zapisz nim kartę pamięci gadżetu. Jeśli system operacyjny jest już zainstalowany na Raspberry, a nie chcesz stracić ważnych danych, możesz dokonać ustawień ręcznie (tylko dla zaawansowanych użytkowników).
  • Pobierz biblioteki na Raspberry Pi RTL-SDR (możesz znaleźć gotowe archiwum ze wszystkim, czego potrzebujesz na Github lub ręcznie przepisać każdą bibliotekę, co jest bardzo odradzane).
  • Zainstaluj opakowanie modułu dla Pythona. Aby to zrobić, piszemy polecenie „sudo_pip_install_pyrtlsdr” i czekamy na zakończenie instalacji na karcie pamięci.
  • Zainstaluj aplikację FreqShow, która w przyszłości zapewni monitoring odbioru sygnału oraz możliwość słuchania radia. Aby to zrobić, wpisz polecenie „cd_~ Akapit git_clone_https://github.com/adafruit/FreqShow.git Akapit cd_FreqShow”.
  • Uruchamiamy aplikację poleceniem "sudo_python_freqshow.py" i czekamy na zakończenie ładowania wszystkich funkcji.
  • Używamy programu rtl_fm do odtworzenia sygnału radiowego za pomocą polecenia "rtl_fm_-f_104.7M (może być dowolna częstotliwość) -M_wbfm_-s 200000_-r_48000_-_|_aplay_-r_48k_-f_S16_LE". Ta metoda umożliwia słuchanie nie tylko częstotliwości oficjalnych stacji radiowych, ale także przechwytywanie wszelkich sygnałów przechodzących przez strefę przechwytywania modułu radiowego.

Ponadto w Raspberry Gqrx można użyć modułów SDR, aby zapewnić lepszy dźwięk. Jednak gdy te moduły działają, znacznie trudniej jest złapać żądany sygnał i skonfigurować stabilna praca na mini PC, ponieważ są one mniej popularne w społeczności użytkowników Raspberry.

To wszystko przydatna informacja o korzystaniu z internetu i SDR na Raspberry do słuchania radia. Ciesz się czystym dźwiękiem ulubionych stacji radiowych w kompaktowej obudowie i zaimponuj znajomym mocą małego gadżetu.