Spisu treści:

Senior Radio - Raspberry Pi: 8 kroków
Senior Radio - Raspberry Pi: 8 kroków

Wideo: Senior Radio - Raspberry Pi: 8 kroków

Wideo: Senior Radio - Raspberry Pi: 8 kroków
Wideo: Pierwsze kroki z Raspberry Pi: zdalny sterownik oświetlenia (via Ethernet) 2024, Lipiec
Anonim
Senior Radio - Raspberry Pi
Senior Radio - Raspberry Pi

Projekt Senior Radio to zaprojektowane urządzenie do radia internetowego o otwartym kodzie źródłowym, zawierające zarówno komponenty sprzętowe, jak i programowe. Jest przeznaczony do użytku dla użytkowników zaznajomionych z obsługą radia kieszonkowego, w którym pokrętła regulują głośność i wybraną stację radiową. Projekt został zaprojektowany z myślą o użytkowniku, zorientowanym na użytkownika, który chce mieć podobny rozmiar i sterowanie jak w standardowym ręcznym radiotelefonie.

Został zbudowany w celu zaspokojenia potrzeb osób niepełnosprawnych, aby mogły słuchać tysięcy różnych treści przesyłanych strumieniowo, które zwykle są dostępne tylko za pośrednictwem przeglądarki internetowej. Wiele osób nie ma możliwości łatwego korzystania z takiego urządzenia, więc ten projekt ma na celu stworzenie znanego interfejsu dla nowoczesnej technologii.

Podstawowa funkcjonalność znajduje się na Github, przechowywana w programie Pythona 3.7.3 o nazwie seniorRadio.py. Odczytuje i zapisuje plik json do przechowywania stanu radia, więc po wyłączeniu zapamięta aktualny poziom dźwięku i wybraną stację. Ponadto odczytuje hostowany online plik json, który możesz zmienić! Pozwala to zdalnie aktualizować stacje radiowe, jeśli przekazujesz je komuś innemu.

Obecnie jest tworzony, aby połączyć się z głośnikiem bluetooth, ale można go również łatwo zmusić do odtwarzania z wbudowanego głośnika.

Twórca tego urządzenia prawdopodobnie nie jest użytkownikiem i potrzebuje przynajmniej pewnego doświadczenia z elektroniką i podstawowej wiedzy programistycznej. Doświadczenie Linuksa jest również bardzo przydatne.

Dla użytkownika funkcjonalność jest prosta:

Po włączeniu odtworzy ostatnią wybraną stację na domyślnym urządzeniu audio. Lewe pokrętło steruje stacją, gdzie kilka kliknięć pokrętła zmienia na nowy adres URL. Przewróci się po ostatnim lub pierwszym wpisie. Prawe pokrętło kontroluje poziom dźwięku. Dioda LED wskazuje, że program jest włączony. A przycisk wstrzymuje lub "wyłącza" radio. Tak więc po włączeniu użytkownik może po prostu nacisnąć przycisk, aby wstrzymać/odtworzyć lub „wyłączyć/włączyć”, radio i dwa pokrętła, aby nim sterować.

Kieszonkowe dzieci

Na każdym elemencie znajduje się link do konkretnego, którego użyłem. Kosztował mnie około 60 dolarów z dużą ilością zapasów!

Podstawowa wiedza o elektronice i linuxie - do montażu i debugowania

Raspberry Pi Zero W (Zero WH ma wstępnie wlutowane nagłówki i prawdopodobnie przydatne)

Karta microSD-8 GB+ i możliwość wyłączenia

Zasilacz MicroUSB 5V - Link zawiera również adapter microHDMI i adapter microUSB OTG na USB A do konfiguracji, jeśli ich potrzebujesz

głośnik Bluetooth

Kable połączeniowe M/F i M/M

2 Enkoder obrotowy - ten sam link jak powyżej

Mała płytka do krojenia chleba

Naciśnij przycisk

LED (opcja) - kupiona LED + przycisk powyżej

Pudełko do pakowania

Krok 1: Konfiguracja (bezgłowa) Raspberry Pi W

Konfiguracja (bezgłowa) Raspberry Pi W
Konfiguracja (bezgłowa) Raspberry Pi W

Musimy skonfigurować system operacyjny na raspberry pi, który będzie uruchamiał oprogramowanie. Nic z tego nie jest unikalne dla tego projektu. W przypadku debugowania zalecam skonfigurowanie go, aby można było uzyskać do niego dostęp również w trybie bezgłowym. Oznacza to, że masz dostęp do pi przez sieć Wi-Fi za pośrednictwem GUI lub terminala SSH i nie potrzebujesz klawiatury, myszy ani monitora, aby używać go za każdym razem. Możesz to zrobić bez konieczności łączenia się z monitorem/myszą/klawiaturą, jeśli jesteś bardziej obeznany z technologią. Oto kilka przykładowych instrukcji. Jest to jednak mniej proste, a poniżej znajduje się inny sposób na jego skonfigurowanie.

Za pierwszym razem prawdopodobnie będziesz potrzebować:

  • Raspberry Pi W
  • Adapter karty MicroSD na SD [do zapisu systemu operacyjnego na karcie SD]
  • Karta microSD (~8 GB+) [do przechowywania systemu operacyjnego i naszego programu]
  • Zasilanie microUSB (5V)
  • MicroUSB do USB A [dla myszy/klawiatury]
  • Przejściówka Mini HDMI na HDMI [do wyświetlania]
  • Klawiatura
  • Mysz
  • Monitor

Najpierw musisz sflashować system operacyjny na kartę micro SD rPi.

Użyłem Raspian Buster, pobierasz to na komputer za pomocą karty SD do odczytu/zapisu, a następnie flashujesz Raspian OS na karcie SD. BalenaEtcher to łatwe do tego oprogramowanie

Następnie włóż kartę SD do gniazda pi, podłącz monitor, klawiaturę i zasilanie. Wykonaj kroki konfiguracji, o które poprosi raspian, w tym podłączenie go do sieci Wi-Fi i sparowanie głośnika Bluetooth za pośrednictwem GUI. Dobrą praktyką byłoby zaktualizowanie go za pomocą następujących poleceń

aktualizacja sudo apt-get

sudo apt-get upgrade

Jeśli chcesz dołączyć oznaczenie swojego bezgłowego pi, najpierw musimy pobrać adres IP pi. Za pośrednictwem terminala możesz go znaleźć za pomocą

ifconfig

Komenda. Następnie musisz włączyć SSH i VNC przez opcje interfejsu w

sudo raspi-config

Po ponownym uruchomieniu możesz teraz przetestować dostęp do pi przez SSH lub VNC. SSH to tylko interfejs terminala i może być łatwiej użyć GUI do sparowania głośnika bluetooth. Możesz użyć programu takiego jak VNC connect, aby łatwo uzyskać dostęp do swojego pi na osobnym komputerze w sieci. Możesz użyć do tego programu typu putty do SSH.

Ponadto możesz skonfigurować konto w chmurze VNC, aby w razie potrzeby uzyskać dostęp do urządzenia poza siecią

Krok 2: Zainstaluj starsze oprogramowanie radiowe

Zainstaluj starsze oprogramowanie radiowe
Zainstaluj starsze oprogramowanie radiowe

Można to zrobić z okna terminala Raspberry Pi. Najpierw upewnij się, że masz zainstalowany git

sudo apt-get zainstaluj git

W zależności od zainstalowanego systemu operacyjnego te kroki mogą się różnić, ponieważ może być konieczne zainstalowanie dodatkowych pakietów, system poinformuje Cię, jeśli tak. Najpierw musimy pobrać starszy kod radiowy z github. https://github.com/Bunborn/seniorRadio Najlepiej, jeśli tworzysz własne repozytorium, dzięki czemu możesz wprowadzać zmiany i łatwo zmieniać stacje radiowe w taki sam sposób, jak ja. Rozwidl repozytorium, jeśli tak

Możesz jednak użyć tego samego, co mój, bez problemu, jeśli chcesz umieścić plik json radia w innym miejscu

Następnie sklonuj repozytorium w dowolnej lokalizacji. Domyślny katalog jest w porządku. Uzyskaj adres URL, dla którego chcesz repozytorium github, naciskając zielony klon lub przycisk pobierania.

Z powrotem w oknie terminala, git klon

Powinieneś teraz zobaczyć dodatkowy katalog o nazwie seniorRadio podczas przeglądania przy użyciu ls. Fantastyczny!

Kod ma być samodokumentujący, warto by go przejrzeć. Zwłaszcza do celów debugowania i zmiany systemu.

Krok 3: Zainstaluj dodatkowe oprogramowanie

Zainstaluj dodatkowe oprogramowanie
Zainstaluj dodatkowe oprogramowanie

Zanim przejdziemy do obwodu i przetestujemy go, musimy również pobrać dla niego VLC i python api. Być może masz już zainstalowane VLC. Pierwsze dwa polecenia zaktualizują pi, a ostatnie dwa poniższe polecenia zainstalują VLC, a następnie api Pythona

aktualizacja sudo apt-get

sudo apt-get upgrade

sudo snap install VLC

sudo apt-get install vlc-python

Dodatkowo zainstaluj również gpiozero, którego użyjemy do połączenia z pinami GPIO pi. Być może masz go już zainstalowany w zależności od systemu operacyjnego.

sudo apt-get zainstaluj gpiozero

Krok 4: Znajdź strumienie stacji radiowych

Znajdź transmisje stacji radiowych
Znajdź transmisje stacji radiowych

Następnie jedna z najzabawniejszych części! Czas wybrać dowolne strumienie.

W moim pliku internetStation.json możesz zobaczyć linki do moich strumieni, głównie do wiadomości i muzyki. Ale jest tam mnóstwo hostowanych treści. Kluczem jest tutaj znalezienie adresu URL bezpośredniego strumienia. Na przykład wiadomości BBC i stacje muzyczne można znaleźć tutaj, na tym blogu. Te bezpośrednie strumienie nie będą miały żadnego interfejsu graficznego i będą automatycznie odtwarzać strumień za pomocą odtwarzacza multimedialnego przeglądarki. To są adresy URL, których potrzebujemy, aby VLC mógł je odczytać! Możesz szybko przetestować dowolne łącze w przeglądarce internetowej lub za pośrednictwem VLC na normalnym komputerze, aby upewnić się, że będzie działać na pi.

Aby znaleźć te stacje, możesz poszukać bezpośredniego strumienia online, jeśli usługa go obsługuje. Szybkim sposobem może być również odtworzenie strumienia, kliknięcie prawym przyciskiem myszy w przeglądarce i naciśnięcie „sprawdź element”. Przejdź do karty sieci, która powinna wskazywać „bezpośredni” adres URL strumienia. Ten film na youtube pokazuje to. Powinno pomóc odświeżenie strony z otwartą kartą.

Gdy masz już swoje stacje, chcesz umieścić je w Internecie, aby program python seniorRadio mógł je pobrać. Istnieje wiele opcji, aby to zrobić, możesz użyć witryn takich jak Github, bitbucket, a nawet sourceforge. Głównym celem hostowania tej listy online jest umożliwienie użytkownikowi konfiguracji zdalnej zmiany listy strumieni online.

Na początku programu python znajduje się zmienna o nazwie url, po prostu zmień ją na adres URL pliku json z linkami URL stacji

Możesz użyć tego samego formatu, co mój plik internetStation.json. Jeśli chciałbyś również użyć github, możesz po prostu rozwidlić moje repozytorium seniorRadio i edytować swój własny plik internetStation.json i wskazać go na ten „surowy” adres URL. Możesz to znaleźć poniżej w GUI Github po kliknięciu pliku.

Krok 5: Utwórz obwody

Twórz obwody
Twórz obwody

Teraz musimy ustawić obwód. To zmieni się w zależności od twojego sprzętu, ale poniżej przedstawiam, jak skonfigurować mój.

pinout.xyz/ dla odniesienia, które piny są które. Ponieważ używamy biblioteki gpiozero, zajmujemy się tylko numeracją pinów BCM. Zauważ, że kupiłem kilka dodatkowych enkoderów obrotowych KY040 - tarcze - aby je przetestować, ponieważ nie wszystkie mają taką samą dokładność. Każdy z nich miałby jakieś „odbijające się” lub po prostu niepoprawne wyjście, więc wybrałem najlepszy z dwóch, jakie miałem. W kodzie zauważysz, że jest kilka kroków, aby ograniczyć również to odbijanie.

Podłączyłem przycisk do pinu 17 BCM i masy

Moja dioda LED do rezystora 1k omów, a następnie pin 27 BCM i masa

Moje enkodery obrotowe KY040 miały przewód + do 5V, GND do masy i SW odłączony. Zostały one połączone za pomocą mini płytki stykowej

Pin dt enkodera stacji podłączony do pinu 21 BCM

Styk obrotowy enkodera stacji połączony z pinem 20. BCM

Pin dt enkodera obrotowego poziomu dźwięku podłączony do pinu 19 BCM

Styk obrotowy enkodera poziomu dźwięku podłączony do styku 16 BCM

Jeśli zmienisz te szpilki, po prostu zaktualizuj numer w programie python, gdzie ustawia obsługę

Użyłem mini płytki stykowej, aby to ułatwić. Użyłem również przewodów połączeniowych M/M i M/F, aby ułatwić interfejs. Przylutowałem kilka przewodów połączeniowych do pinów zakupionego wcześniej przycisku / diody LED. Aby nie lutować, możesz dostać przyciski i diody LED, które mają już przewody połączeniowe lub można je łatwo podłączyć.

Krok 6: Przetestuj

Teraz powinieneś mieć działający system! Przetestujmy to. Przejdź do folderu z programem Python, prawdopodobnie:

cd seniorRadio

python3 seniorRadio.py

Obecnie na początku programu występuje 45-sekundowe opóźnienie, aby dać mu czas na znalezienie głośnika bluetooth po włączeniu zasilania. Możesz zakomentować tę linię, jeśli nie potrzebujesz jej podczas testowania. Program może powiedzieć, że musisz zainstalować dodatkowe pakiety, jeśli tak. Może również wymagać zainstalowania nowszej wersji Pythona.

sudo apt-get zainstaluj python3.7

Niektóre możliwe problemy, nawet jeśli program działa:

nie słyszę żadnego dźwięku

Upewnij się, że głośnik jest włączony i wybrany w twoim Raspberry Pi. Poprzez GUI powinieneś być w stanie go sparować, a następnie wybrać jako urządzenie wyjściowe audio. Ponadto sprawdź sterowniki audio. Częstym problemem jest konieczność ponownej instalacji pakietu pulseaudio

Dźwięk przerywany lub zacinający się i zanikający

Spróbuj przesunąć urządzenie bliżej routera Wi-Fi. Ponadto upewnij się, że głośnik bluetooth znajduje się w pobliżu. Może to być również problem ze sterownikiem dźwięku

Krok 7: Włóż do stałej obudowy

Włóż do trwałej obudowy
Włóż do trwałej obudowy

Następnie włóż go do pudełka lub podobnego urządzenia, aby zamieszkał na stałe. Zalecam posiadanie takiego, do którego możesz uzyskać później dostęp w celu debugowania. Kupiłem to małe drewniane pudełko w sklepie rzemieślniczym za 2 dolary i połączyłem je na stronie z materiałami eksploatacyjnymi. Jeden z moich znajomych polecił pudełko cygar.

Następnie wyciąłem otwory z przodu na przycisk i przełączniki obrotowe, a z tyłu wywierciłem otwór na przewód zasilający microUSB.

Przetestowałem mocowanie i upewniłem się, że działa, i voilà!

Na koniec użyłem super kleju do przytrzymania przycisku. Moja płytka stykowa miała na spodzie klej, który połączyłem z częścią pudełka. Użyłem małego paska taśmy klejącej, aby przymocować tył pi do pudełka, aby w razie potrzeby można go było później przenieść.

Krok 8: Program instalacyjny do uruchomienia przy starcie

Wreszcie, prawdopodobnie będziesz chciał, aby ten program Pythona działał podczas uruchamiania Raspberry Pi, więc nie musisz tego robić ręcznie. Jest na to wiele sposobów, które można znaleźć w Internecie.

Osobiście skonfigurowałem to za pomocą drugiego sposobu w tym samouczku SparkFun:

Tutaj czeka, aż system wejdzie na pulpit graficzny przed uruchomieniem programu. Następnie jest opóźniany przez program Pythona o 45 sekund, aby dać systemowi czas na ponowne połączenie z głośnikiem bluetooth. Jeśli używasz zintegrowanego głośnika, możesz usunąć to opóźnienie. Pamiętaj, że głośnik bluetooth powinien być włączony jako pierwszy! (dla rozwiązania bluetooth)

Teraz możesz spróbować wyłączyć i ponownie włączyć swoje pi! Po około 90 sekundach twoje pi powinno ponownie zacząć odtwarzać strumienie radiowe. Po naciśnięciu przycisku nastąpi pauza/odtwarzanie. Zauważ, że w przypadku tych ponownych uruchomień ponownie odczytuje plik json internetStation, więc jeśli zmienisz stacje, musisz ponownie uruchomić urządzenie, aby działały. Gratulacje!

Jeśli to zrobiłeś lub dokonałeś modyfikacji w projekcie, daj mi znać!

Strona Github:

Zalecana: