Innehållsförteckning:

Seniorradio - Raspberry Pi: 8 steg
Seniorradio - Raspberry Pi: 8 steg

Video: Seniorradio - Raspberry Pi: 8 steg

Video: Seniorradio - Raspberry Pi: 8 steg
Video: Raspberry Pi - Что можно сделать? Готовые проекты. Есть ли смысл? Как научиться? 2024, Juli
Anonim
Seniorradio - Raspberry Pi
Seniorradio - Raspberry Pi

Senior Radio-projektet är en tillgänglig internetradioenhet med öppen källkod med både hårdvara och programvarukomponenter. Den är avsedd att användas för användare som är bekanta med att styra en fickradio där rattar styr volymen och den valda radiostationen. Projektet är gjort med en användarcentrerad design, fokuserad på en användare som vill ha en liknande storlek och kontroller som en vanlig handhållen radio.

Det byggdes för att tillgodose behoven för att låta funktionshindrade personer kunna lyssna på tusentals olika internetströmmande innehåll som vanligtvis endast är normalt tillgängligt via en webbläsare. Många människor har inte möjlighet att använda en sådan enhet enkelt, så den här designen syftar till att göra ett välbekant gränssnitt för en modern teknik.

Kärnfunktionen finns på Github, lagrad i ett python 3.7.3 -program som kallas seniorRadio.py. Den läser och skriver en json -fil för att lagra radion, så när du stänger av den kommer den att minnas den aktuella ljudnivån och den valda stationen. Dessutom läser den en online -värd json -fil som du kan ändra! Detta gör att du kan uppdatera radiostationerna på distans om du ger detta till någon annan.

Det är för närvarande skapat för att ansluta till en bluetooth -högtalare, men kan enkelt göras för att spela upp en inbyggd högtalare också.

Skaparen av denna enhet är sannolikt inte användaren och behöver åtminstone lite erfarenhet av elektronik och grundläggande programmeringskunskap. Linux -erfarenhet är också mycket användbar.

För användaren är funktionen enkel:

Vid uppstart kommer den att spela upp den senaste stationen som valts över standardljudenheten. Den vänstra ratten styr stationen, där några klick på ratten ändras till en ny URL. Den rullar över efter den sista eller första posten. Den högra ratten styr ljudnivån. Lysdioden indikerar att programmet är på. Och tryckknappen pausar eller "stänger av" radion. Så när den väl är påslagen kan en användare bara trycka på knappen för att pausa/spela, eller "stänga av/slå på", radion och de två rattarna för att styra den.

Tillbehör

Länkad till varje objekt är den specifika jag använde. Kostade mig cirka $ 60 totalt med massor av kvarvarande förnödenheter!

Grundläggande elektronisk och linuxkunskap - för montering och felsökning

Raspberry Pi Zero W (Zero WH har huvuden förlödda och sannolikt användbara)

MicroSD-kort-8 GB+ och förmåga o

MicroUSB 5V strömadapter - Länken innehåller också microHDMI -adapter och microUSB OTG till USB A -adapter för installation om du behöver dem

Bluetooth högtalare

M/F och M/M bygelkablar

2 Rotary encoder - samma länk som ovan

Liten brödbräda

Tryckknapp

LED (tillval) - köpt LED + tryckknapp ovan

Låda för förpackning

Steg 1: Installera (headless) Raspberry Pi W

Setup (huvudlös) Raspberry Pi W
Setup (huvudlös) Raspberry Pi W

Vi måste konfigurera operativsystemet på hallon pi som kommer att köra programvaran. Inget av detta är unikt för detta projekt. För felsökning rekommenderar jag att du konfigurerar den så att du också kan komma åt den i huvudlöst läge. Det betyder att du får tillgång till pi via ditt WiFi-nätverk via GUI eller en SSH-terminal och inte behöver ett tangentbord, mus och bildskärm för att använda det varje gång. Du kan göra detta utan att behöva ansluta till en bildskärm/mus/tangentbord någonsin om du är mer tekniskt kunnig. Några exempel instruktioner här. Det är dock mindre rakt fram, och nedan är ett annat sätt att ställa in det.

Första gången kommer du troligen att behöva:

  • Hallon Pi W
  • Adapter för MicroSD till SD -kort [för att skriva OS på SD -kort]
  • MicroSD -kort (~ 8 GB+) [för att lagra OS och vårt program]
  • MicroUSB -effekt (5V)
  • MicroUSB till USB A [för mus/tangentbord]
  • Mini HDMI till HDMI -adapter [för skärmutgång]
  • Tangentbord
  • Mus
  • Övervaka

Först måste du blinka operativsystemet på rPi micro SD -kortet.

Jag använde raspian buster, du laddar ner detta till en dator med ett SD -kort läs/skrivare och flashar sedan raspian OS till SD -kortet. BalenaEtcher är en enkel programvara för att göra detta

Sätt sedan in SD -kortet i pi -kortplatsen, anslut skärmen, tangentbordet och strömmen. Fortsätt med installationsstegen som raspian uppmanar dig till, inklusive att ansluta den till ditt WiFi -nätverk och para ihop din Bluetooth -högtalare via GUI. God praxis är att uppdatera den med följande kommandon

sudo apt-get uppdatering

sudo apt-get uppgradering

Om du vill inkludera märkning av din pi utan huvud måste vi först ta IP: s IP -adress. Genom en terminal kan du hitta den genom

ifconfig

kommando. Du måste sedan aktivera SSH och VNC över gränssnittsalternativen i

sudo raspi-config

Efter en omstart kan du nu testa åtkomst till pi över SSH eller VNC. SSH är bara ett terminalgränssnitt, och du kan ha lättare att använda GUI för att para ihop en Bluetooth -högtalare. Du kan använda ett program som VNC connect för att enkelt komma åt din pi på en separat dator i ditt nätverk. Du kan använda ett program som kitt till SSH i det.

Dessutom kan du konfigurera ett VNC -molnkonto så att du kan komma åt enheten från nätverket om det behövs

Steg 2: Installera Senior Radio Software

Installera Senior Radio Software
Installera Senior Radio Software

Detta kan göras från ett terminalfönster på hallon pi. Kontrollera först att du har git installerat

sudo apt-get install git

Beroende på vilket operativsystem du installerade kan dessa steg vara annorlunda eftersom du kan behöva installera ytterligare paket, systemet kommer att berätta om det i så fall. Först måste vi ladda ner seniorradionkoden från github. https://github.com/Bunborn/seniorRadio Helst gör du vår egen repo så att du kan göra ändringar och enkelt byta radiostationer på samma sätt som jag gör. Gaffel repo i så fall

Du kan dock använda samma som min inga problem om du vill vara värd för din radio json -fil på en annan plats

Klona sedan ner repo på vilken plats du vill att den ska vara. Standardkatalogen är bra. Få webbadressen för vilken github -repo du vill ha genom att trycka på den gröna klonen eller nedladdningsknappen.

Tillbaka i terminalfönstret, git -klon

Du bör nu se en extra katalog som heter seniorRadio när du letar med ls. Fantastisk!

Koden är avsedd att vara självdokumenterande, att titta igenom den skulle vara användbart. Speciellt för felsökningsändamål och om du ändrar systemet.

Steg 3: Installera ytterligare programvara

Installera ytterligare programvara
Installera ytterligare programvara

Innan vi går vidare till kretsen och testar den måste vi också ladda ner VLC och python api för den. Du kanske redan har VLC installerat. De två första kommandona uppdaterar pi, och de två sista kommandona nedan installerar VLC och sedan python api

sudo apt-get uppdatering

sudo apt-get uppgradering

sudo snap installera VLC

sudo apt-get install vlc-python

Dessutom installerar du också gpiozero, som vi kommer att använda för att ansluta till pi: s GPIO -stift. Du kanske redan har det installerat beroende på ditt operativsystem.

sudo apt-get install gpiozero

Steg 4: Hitta radiostationer

Hitta strömmar från radiostationer
Hitta strömmar från radiostationer

Därefter en av de roligaste delarna! Dags att välja vilka strömmar du vill ha.

I min internetStations.json -fil kan du se mina strömlänkar, främst för nyheter och musik. Men det finns massor av värdinnehåll där ute. Nyckeln här är att hitta URL -adressen för direktströmmen. Till exempel kan BBC -nyheter och musikstationer hittas här på den här bloggen. Dessa direktströmmar kommer inte att ha något grafiskt gränssnitt och kommer automatiskt att spela strömmen via din webbläsares mediaspelare. Det här är de webbadresser vi behöver så VLC kan läsa dem! Du kan snabbt testa vilken länk som helst i din webbrowser eller via VLC på din vanliga dator för att säkerställa att den fungerar på pi: n.

För att hitta dessa stationer kan du leta efter direktströmmen online om tjänsten är värd för den. Ett snabbt sätt kan också vara att spela strömmen, högerklicka på webbläsaren och klicka på "inspektera element". Navigera till nätverksfliken och den ska ange strömmen "direkt" URL. Denna youtube -video visar detta. Uppdatera sidan med fliken öppen bör hjälpa.

När du väl har dina stationer vill du lägga dem online så att ditt seniorRadio python -program kan ta tag i dem. Det finns många alternativ för att göra detta, du kan använda webbplatser som Github, bitbucket eller till och med sourceforge. Huvudsyftet med att vara värd för den här listan online är så att användaren som ställer in den kan ändra strömlistan online på distans.

I början av python -programmet finns det en variabel som heter url, helt enkelt ändra detta till att vara webbadressen till din json -fil med stationens URL -länkar

Du kan följa samma format som min internetStation.json -fil. Om du också vill använda github kan du helt enkelt gaffla mitt seniorRadio -arkiv och redigera din egen internetStation.json -fil och peka på den "råa" URL: en. Du hittar det nedan i Github GUI när du klickade på filen.

Steg 5: Skapa kretsar

Skapa kretsar
Skapa kretsar

Nu måste vi ställa in kretsen. Detta kommer att ändras baserat på din utrustning, men nedan är hur jag ställde in min.

pinout.xyz/ för referens om vilka stift som är vilka. Eftersom vi använder gpiozero -biblioteket är vi bara bekymrade över BCM -stiftnumret. Observera att jag köpte några extra KY040 roterande givare - rattarna - för att testa dem eftersom de inte alla har samma noggrannhet. Var och en skulle ha någon "studsande" eller helt enkelt felaktig utgång, så jag valde det bästa av de två jag hade. I koden kommer du att notera att det finns några steg för att begränsa denna studs också.

Jag kopplade min tryckknapp till BCM -stift 17 och jordade

Min lysdiod till ett 1k ohm motstånd sedan BCM stift 27 och jordat

Mina KY040 roterande kodare hade + ledningen till 5V, GND till jord och SW frånkopplad. Dessa var anslutna över en mini -brödbräda

Station roterande pulsgivare dt pin ansluten till BCM pin 21

Station roterande kodare CLK -stift ansluten till BCM -stift 20

Ljudnivå roterande givare dt pin ansluten till BCM pin 19

Ljudnivå roterande kodare CLK -stift ansluten till BCM -stift 16

Om du ändrar dessa stift, uppdatera bara numret i pythonprogrammet också där det ställer in hanterarna

Jag använde en mini -brödbräda för att underlätta detta. Jag använde även M/M och M/F bygelkablar för att underlätta gränssnittet. Jag lödde några bygelkablar på stiften på tryckknappen/lysdioden som jag köpte tidigare. För att inte löda kan du få tryckknappar och lysdioder som redan har bygelkablar eller enkelt skulle ansluta till en.

Steg 6: Testa det

Nu borde du ha ett fungerande system! Låt oss testa det. Navigera till mappen med python -programmet, troligtvis:

cd seniorRadio

python3 seniorRadio.py

För närvarande är det 45 sekunders fördröjning i början av programmet för att ge det tid att hitta Bluetooth -högtalaren när den startar. Du kan kommentera den här raden om du inte behöver den under testningen. Programmet kan berätta att du måste installera ytterligare paket, fortsätt i så fall. Kan också behöva installera en nyare version av Python.

sudo apt-get install python3.7

Några möjliga problem även om programmet körs:

Jag hör inget ljud

Se till att högtalaren är på och vald i din hallon pi. Via GUI bör du kunna para ihop det och sedan välja det som din ljudutmatningsenhet. Kontrollera dessutom dina ljuddrivrutiner. Ett vanligt problem är att du kan behöva installera om pulseaudio -paketet

Ljud hackigt eller skär in och ut

Prova att flytta enheten närmare din WiFi -router. Kontrollera dessutom att Bluetooth -högtalaren är i närheten. Kan också vara ett problem med ljuddrivrutinen

Steg 7: Sätt i en permanent kapsling

Sätt i en permanent kapsling
Sätt i en permanent kapsling

Lägg sedan den i en låda eller liknande för att den ska bo permanent. Jag rekommenderar att du har en som du kan komma åt senare för felsökning. Jag fick den här lilla trälådan i en hantverksbutik för $ 2 och länkade den på sidan förnödenheter. En av mina vänner rekommenderade en cigarrlåda.

Jag klippte sedan ut hål på framsidan för tryckknappen och vridknapparna och borrade ett hål på baksidan av lådan för microUSB -nätsladden.

Jag testade fästet och såg till att det fungerade, och voilà!

Slutligen använde jag superlim för att hålla tryckknappen. Min brödbräda hade ett lim på botten som jag kopplade till en del av lådan. Jag använde en liten remsa av tejp för att fästa pi: s baksida till lådan, så att den kan flyttas senare om det behövs.

Steg 8: Installationsprogram för att köra vid start

Slutligen kommer du sannolikt att detta pythonprogram ska köras vid start av hallon pi så att du inte behöver göra det manuellt. Det finns många sätt att göra detta som du kan hitta online.

Personligen konfigurerade jag det med det andra sättet i denna SparkFun-handledning:

Här väntar det på att systemet kommer in i det grafiska skrivbordet innan programmet körs. Det fördröjs sedan av pythonprogrammet i 45 sekunder för att ge systemet tid att återansluta till Bluetooth -högtalaren. Om du använder en integrerad högtalare kan du ta bort denna fördröjning. Observera att Bluetooth -högtalaren ska vara på först! (för bluetooth -lösningen)

Nu kan du försöka stänga av och slå på din pi igen! Efter cirka 90 sekunder bör din pi börja spela radioströmmarna igen. När du trycker på tryckknappen kommer den att pausa/spela. Observera att dessa omstarter läser om den InternetStations json-filen så om du byter station måste du starta om enheten för att de ska fungera. Grattis!

Om du har gjort detta eller gjort ändringar i projektet, vänligen meddela mig!

Github -sida:

Rekommenderad: