Innholdsfortegnelse:

Seniorradio - Raspberry Pi: 8 trinn
Seniorradio - Raspberry Pi: 8 trinn

Video: Seniorradio - Raspberry Pi: 8 trinn

Video: Seniorradio - Raspberry Pi: 8 trinn
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Juli
Anonim
Seniorradio - Raspberry Pi
Seniorradio - Raspberry Pi

Senior Radio-prosjektet er en åpen kildekode, tilgjengelig, designet internettradioenhet med både maskinvare- og programvarekomponenter. Den er beregnet på å bli brukt for brukere som er kjent med å kontrollere en lommeradio der ringer styrer volumet og den valgte radiostasjonen. Prosjektet er laget med et bruker-sentrert design, fokusert på en bruker som ønsker en lignende størrelse og kontroller som en standard håndholdt radio.

Det ble bygget for å tilfredsstille behovene til å tillate funksjonshemmede å kunne lytte til tusenvis av forskjellige Internett -streaminginnhold som vanligvis bare er normalt tilgjengelig via en nettleser. Mange mennesker har ikke muligheten til å bruke en slik enhet enkelt, så dette designet tar sikte på å lage et kjent grensesnitt for en moderne teknologi.

Kjernefunksjonaliteten er på Github, lagret i et python 3.7.3 -program kalt seniorRadio.py. Den leser og skriver en json -fil for å lagre radioens tilstand, så når du slår den av, husker den gjeldende lydnivå og valgt stasjon. I tillegg leser den en online hostet json -fil som du kan endre! Dette lar deg oppdatere radiostasjonene eksternt hvis du gir dette til noen andre.

Den er for øyeblikket opprettet for å koble til en bluetooth -høyttaler, men kan lett også lages for å spille av en innebygd høyttaler.

Skaperen av denne enheten er sannsynligvis ikke brukeren, og trenger i det minste litt erfaring med elektronikk og grunnleggende programmeringskunnskap. Linux -erfaring er også veldig nyttig.

For brukeren er funksjonaliteten enkel:

Ved oppstart vil den spille den siste stasjonen som ble valgt over standard lydenhet. Den venstre skiven styrer stasjonen, der noen få klikk på skiven endres til en ny URL. Den ruller over etter den siste eller første oppføringen. Høyre skive styrer lydnivået. Lysdioden indikerer at programmet er på. Og trykknappen stopper eller "slår av" radioen. Så når den er slått på, kan en bruker bare trykke på knappen for å pause/spille, eller "slå av/på", radioen og de to hjulene for å kontrollere den.

Rekvisita

Koblet til hvert element er den spesifikke jeg brukte. Kostet meg ca $ 60 totalt med masse restmateriell!

Grunnleggende elektronisk og linux -kunnskap - for montering og feilsøking

Raspberry Pi Zero W (Zero WH har overskrifter forhåndsloddet og sannsynligvis nyttig)

MicroSD-kort-8 GB+ og evne o

MicroUSB 5V strømadapter - Link inneholder også microHDMI -adapter og microUSB OTG til USB A -adapter for oppsett hvis du trenger dem

blåtann-høytaler

M/F og M/M startkabler

2 Rotary encoder - samme lenke som ovenfor

Lite brødbrett

Trykknapp

LED (valgfritt) - kjøpt LED + trykknapp ovenfor

Eske for emballasje

Trinn 1: Oppsett (uten hoder) Raspberry Pi W

Oppsett (uten hoder) Raspberry Pi W
Oppsett (uten hoder) Raspberry Pi W

Vi må konfigurere operativsystemet på bringebær -pi som skal kjøre programvaren. Ingenting av dette er unikt for dette prosjektet. For feilsøking, vil jeg anbefale å sette den opp slik at du også kan få tilgang til den i hodeløs modus. Dette betyr at du får tilgang til pi over WiFi-nettverket ditt via GUI eller en SSH-terminal og ikke trenger tastatur, mus og skjerm for å bruke det hver gang. Du kan gjøre dette uten å måtte koble til en skjerm/mus/tastatur noen gang hvis du er mer teknisk kunnskapsrik. Noen eksempler på instruksjoner her. Det er imidlertid mindre rett frem, og nedenfor er en annen måte å sette det opp på.

Denne første gangen vil du sannsynligvis trenge:

  • Bringebær Pi W
  • MicroSD til SD -kortadapter [for å skrive OS på SD -kort]
  • MicroSD -kort (~ 8 GB+) [for å lagre operativsystemet og programmet vårt]
  • MicroUSB -strøm (5V)
  • MicroUSB til USB A [for mus/tastatur]
  • Mini HDMI til HDMI -adapter [for skjermutgang]
  • Tastatur
  • Mus
  • Observere

Først må du blinke operativsystemet på rPi micro SD -kortet.

Jeg brukte raspian buster, du laster den ned på en datamaskin med et SD -kort leser/skriver og blinker deretter raspian OS på SD -kortet. BalenaEtcher er en enkel programvare for å gjøre dette

Sett deretter SD -kortet inn i pi -sporet, koble til skjermen, tastaturet og strømmen. Fortsett gjennom oppsettstrinnene som raspian ber deg om, inkludert å koble den til WiFi -nettverket og koble Bluetooth -høyttaleren din gjennom GUI. God praksis ville være å oppdatere den ved hjelp av følgende kommandoer

sudo apt-get oppdatering

sudo apt-get oppgradering

Hvis du vil inkludere merking av pi -hodeløs, må vi først ta tak i pi -adressen. Gjennom en terminal kan du finne den gjennom

ifconfig

kommando. Du må deretter aktivere SSH og VNC over grensesnittalternativene i

sudo raspi-config

Etter en omstart kan du nå teste tilgang til pi over SSH eller VNC. SSH er bare et terminalgrensesnitt, og du kan finne det lettere å bruke GUI for å koble til en Bluetooth -høyttaler. Du kan bruke et program som VNC connect for enkelt å få tilgang til pi -en din på en egen datamaskin i nettverket. Du kan bruke et program som kitt til SSH i det.

Videre kan du konfigurere en VNC -skykonto slik at du kan få tilgang til enheten utenfor nettverket om nødvendig

Trinn 2: Installer Senior Radio -programvare

Installer Senior Radio -programvare
Installer Senior Radio -programvare

Dette kan gjøres fra et terminalvindu på bringebærpi. Sørg først for at du har git installert

sudo apt-get install git

Avhengig av hvilket operativsystem du har installert, kan disse trinnene være forskjellige, ettersom du kan trenge å installere flere pakker, vil systemet fortelle deg i så fall. Først må vi laste ned seniorradiokoden fra github. https://github.com/Bunborn/seniorRadio Ideelt sett lager du vår egen repo, slik at du kan gjøre endringer og enkelt endre radiostasjonene på samme måte som jeg gjør. Gaffel repoen i så fall

Du kan imidlertid bruke den samme som min ikke noe problem hvis du vil være vert for radio -json -filen din på et annet sted

Deretter kan du klone ned repoen uansett hvor du vil at den skal være. Standardkatalogen er fin. Få nettadressen for hvilken github -repo du vil ha ved å trykke på den grønne klonen eller nedlastingsknappen.

Tilbake i terminalvinduet, git klon

Du bør nå se en ekstra katalog som heter seniorRadio når du ser med ls. Fantastisk!

Koden er ment å være selvdokumenterende, og det kan være nyttig å ta en titt på den. Spesielt for feilsøkingsformål og hvis du endrer systemet.

Trinn 3: Installer tilleggsprogramvare

Installer tilleggsprogramvare
Installer tilleggsprogramvare

Før vi går videre til kretsen og tester den, må vi også laste ned VLC og python api for den. Du har kanskje allerede VLC installert. De to første kommandoene vil oppdatere pi, og de to siste kommandoene nedenfor vil installere VLC og deretter python api

sudo apt-get oppdatering

sudo apt-get oppgradering

sudo snap installere VLC

sudo apt-get install vlc-python

I tillegg installerer du også gpiozero, som vi vil bruke til å koble til pi's GPIO -pinner. Du kan allerede ha den installert avhengig av operativsystemet.

sudo apt-get install gpiozero

Trinn 4: Finn radiostasjoner

Finn radiostasjoner
Finn radiostasjoner

Deretter en av de morsomste delene! På tide å velge hvilke strømmer du vil ha.

I min internetStations.json -fil kan du se strømlinkene mine, hovedsakelig for nyheter og musikk. Men det er massevis av vertsinnhold der ute. Nøkkelen her er å finne URL -adressen til direkte strøm. For eksempel kan BBCs nyheter og musikkstasjoner finnes her på denne bloggen. Disse direktestrømmene vil ikke ha noe grafisk grensesnitt og vil automatisk spille av strømmen gjennom mediespilleren i nettleseren din. Dette er nettadressene vi trenger, slik at VLC kan lese dem! Du kan teste en hvilken som helst lenke raskt i nettbrowseren din, eller via VLC på din vanlige datamaskin for å sikre at den fungerer på pi.

For å finne disse stasjonene kan du se etter direkte strøm på nettet hvis tjenesten er vert for den. En rask måte kan også være å spille av strømmen, høyreklikke på nettleseren og trykke "inspiser element". Naviger til nettverksfanen, og den skal indikere strømmen 'direkte' URL. Denne youtube -videoen demonstrerer dette. Å oppdatere siden med fanen åpen burde hjelpe.

Når du har stasjonene dine, vil du sette dem på nettet slik at seniorRadio python -programmet ditt kan ta dem. Det er mange alternativer for å gjøre dette, du kan bruke nettsteder som Github, bitbucket eller til og med sourceforge. Hovedformålet med å være vert for denne listen på nettet er at brukeren som setter den opp kan endre strømlisten online eksternt.

Ved starten av python -programmet er det en variabel som heter url, bare endre dette til å være nettadressen til json -filen din med stasjonens URL -lenker

Du kan følge samme format som min internetStation.json -fil. Hvis du også ville bruke github, kan du bare forkle mitt seniorRadio -depot og redigere din egen internetStation.json -fil og peke den på den "rå" URL -adressen. Du finner det nedenfor i Github GUI når du klikket på filen.

Trinn 5: Lag kretser

Lag kretser
Lag kretser

Nå må vi sette opp kretsen. Dette vil endre seg basert på utstyret ditt, men nedenfor er hvordan jeg konfigurerte mitt.

pinout.xyz/ for referanse på hvilke pinner som er. Siden vi bruker gpiozero -biblioteket, er vi bare opptatt av BCM -pinnummerering. Vær oppmerksom på at jeg kjøpte noen ekstra KY040 roterende encoders - skivene - for å teste dem, siden de ikke alle har samme nøyaktighet. Hver enkelt ville ha noen "hoppende" eller rett og slett feil utgang, så jeg valgte den beste av de to jeg hadde. I koden vil du legge merke til at det også er noen trinn for å begrense denne sprettingen.

Jeg koblet trykknappen min til BCM pin 17 og jordet

Min LED til en 1k ohm motstand deretter BCM pin 27 og jordet

Mine KY040 roterende kodere hadde + ledningen til 5V, GND til bakken og SW koblet fra. Disse ble koblet sammen over et mini -brødbrett

Stasjons roterende encoder dt pin koblet til BCM pin 21

Stasjonsroterende encoder CLK -pinne koblet til BCM -pinne 20

Lydnivå roterende encoder dt pin koblet til BCM pin 19

Lydnivå roterende encoder clk pin koblet til BCM pin 16

Hvis du endrer disse pinnene, må du bare oppdatere nummeret i python -programmet også der det setter opp håndtererne

Jeg brukte et mini -brødbrett for å gjøre dette lettere. Jeg brukte også M/M og M/F jumperkabler for å lette grensesnittet. Jeg loddet noen jumper wire leads på pinnene på trykknappen/LED jeg kjøpte tidligere. For ikke å lodde, kan du få trykknapper og lysdioder som allerede har ledninger for jumperkabler eller som enkelt kan kobles til en.

Trinn 6: Test den

Nå bør du ha et fungerende system! La oss teste det. Naviger til mappen med python -programmet, sannsynligvis:

cd seniorRadio

python3 seniorRadio.py

For øyeblikket er det en 45 sekunders forsinkelse ved starten av programmet for å gi det tid til å finne Bluetooth -høyttaleren ved oppstart. Du kan kommentere denne linjen hvis du ikke trenger den under testing. Programmet kan fortelle deg at du må installere flere pakker. Fortsett i så fall. Kan også være nødvendig å installere en nyere versjon av Python.

sudo apt-get install python3.7

Noen mulige problemer, selv om programmet kjører:

Jeg hører ingen lyd

Sørg for at høyttaleren er slått på og valgt i bringebærpi. Gjennom GUI bør du kunne koble den og deretter velge den som lydenhet. Sjekk dessuten lyddriverne. Et vanlig problem er at du kanskje må installere pulseaudio -pakken på nytt

Lyd hakket eller kutte inn og ut

Prøv å flytte enheten nærmere WiFi -ruteren. I tillegg må du kontrollere at Bluetooth -høyttaleren er i nærheten. Kan også være et problem med lyddriveren

Trinn 7: Sett inn i en permanent innkapsling

Sett inn i en permanent innkapsling
Sett inn i en permanent innkapsling

Deretter legger du den i en eske eller lignende enhet for at den skal bo permanent. Jeg anbefaler å ha en som du fortsatt kan få tilgang til senere for feilsøking. Jeg kjøpte denne lille trekassen på en håndverksbutikk for $ 2, og koblet den på forsyningssiden. En av vennene mine anbefalte en sigareske.

Jeg skar deretter ut hull foran på trykknappen og dreiebryterne, og boret et hull på baksiden av esken for microUSB -strømledningen.

Jeg testet festet og sørget for at det fungerte, og voilà!

Til slutt brukte jeg superlim for å holde trykknappen. Brettbrettet mitt hadde et lim på bunnen som jeg koblet til en del av esken. Jeg brukte en liten stripe med tape for å feste baksiden av pi -en til esken, så den kan flyttes senere om nødvendig.

Trinn 8: Oppsettprogrammet skal kjøres ved oppstart

Til slutt vil du sannsynligvis at dette python -programmet skal kjøres ved oppstart av bringebær -pi, slik at du ikke trenger å gjøre det manuelt. Det er mange måter å gjøre dette på som du kan finne på nettet.

Personlig konfigurerte jeg det på den andre måten på denne SparkFun-opplæringen:

Her venter det på at systemet skal gå inn på det grafiske skrivebordet før programmet kjøres. Det blir deretter forsinket av python -programmet i 45 sekunder for å gi systemet tid til å koble til Bluetooth -høyttaleren på nytt. Hvis du bruker en integrert høyttaler, kan du fjerne denne forsinkelsen. Vær oppmerksom på at Bluetooth -høyttaleren skal være på først! (for bluetooth -løsningen)

Nå kan du prøve å slå pi-en av og på igjen! Etter omtrent 90 sekunder bør pi begynne å spille av radiostrømmene igjen. Når du trykker på knappen, vil den stoppe/spille. Merk på disse omstartene, den leser igjen den internetStations json-filen, så hvis du endrer stasjoner må du starte enheten på nytt for at de skal fungere. Gratulerer!

Gi meg beskjed hvis du har gjort dette, eller gjort endringer i prosjektet!

Github -side:

Anbefalt: