Indholdsfortegnelse:

Seniorradio - Raspberry Pi: 8 trin
Seniorradio - Raspberry Pi: 8 trin

Video: Seniorradio - Raspberry Pi: 8 trin

Video: Seniorradio - Raspberry Pi: 8 trin
Video: RADIOBERRY HF SDR TRANSCEIVER PI HAT - IT'S BACK! 2024, Juli
Anonim
Seniorradio - Raspberry Pi
Seniorradio - Raspberry Pi

Seniorradio-projektet er en open-source tilgængelig designet internetradioenhed med både hardware- og softwarekomponenter. Det er beregnet til at blive brugt til brugere, der er fortrolige med at styre en lommeradio, hvor opkald styrer lydstyrken og den valgte radiostation. Projektet er lavet med et brugercentreret design, fokuseret på en bruger, der ønsker en lignende størrelse og betjening som en standard håndholdt radio.

Det blev bygget for at tilfredsstille behovene ved at tillade handicappede at kunne lytte til de tusindvis af forskellige internetstreamingindhold, der normalt kun er normalt tilgængeligt via en internetbrowser. Mange mennesker har ikke mulighed for let at bruge en sådan enhed, så dette design sigter mod at lave et velkendt interface til en moderne teknologi.

Kernefunktionen er på Github, gemt i et python 3.7.3 -program kaldet seniorRadio.py. Den læser og skriver en json -fil for at gemme radioens tilstand, så når du slukker den, husker den det aktuelle lydniveau og den valgte station. Derudover læser den en online hostet json -fil, som du kan ændre! Dette giver dig mulighed for at opdatere radiostationerne eksternt, hvis du giver dette til en anden.

Det er i øjeblikket oprettet for at oprette forbindelse til en bluetooth -højttaler, men kan også let fås til at afspille en indbygget højttaler.

Skaberen af denne enhed er sandsynligvis ikke brugeren og har brug for i det mindste en vis erfaring med elektronik og grundlæggende programmeringskendskab. Linux -erfaring er også meget nyttig.

For brugeren er funktionaliteten enkel:

Ved opstart afspiller den den sidste station, der er valgt over standardlydenheden. Den venstre urskive styrer stationen, hvor et par klik på skiven skifter til en ny URL. Det ruller over efter den sidste eller første indtastning. Den højre drejeknap styrer lydniveauet. Lysdioden angiver, at programmet er tændt. Og trykknappen holder radioen på pause eller "slukker". Så når den er tændt, kan en bruger bare trykke på knappen for at sætte pause/afspille eller "slukke/tænde" radioen og de to skiver for at styre den.

Forbrugsvarer

Linket til hvert element er den specifikke, jeg brugte. Kostede mig cirka $ 60 i alt med masser af rester af forsyninger!

Grundlæggende elektronisk og linux -viden - til samling og fejlfinding

Raspberry Pi Zero W (Zero WH har overskrifter forudloddet og sandsynligvis nyttigt)

MicroSD-kort-8 GB+ og evne o

MicroUSB 5V strømadapter - Link indeholder også microHDMI -adapter og microUSB OTG til USB A -adapter til opsætning, hvis du har brug for dem

Bluetooth -højttaler

M/F og M/M jumperkabler

2 Rotary encoder - samme link som ovenfor

Lille brødbræt

Trykknap

LED (ekstraudstyr) - købt LED + trykknap ovenfor

Æske til emballering

Trin 1: Opsætning (hovedløs) Raspberry Pi W

Opsætning (uden hoved) Raspberry Pi W
Opsætning (uden hoved) Raspberry Pi W

Vi skal konfigurere operativsystemet på den hindbær pi, der vil køre softwaren. Intet af dette er unikt for dette projekt. Til fejlfinding vil jeg anbefale at konfigurere det, så du også kan få adgang til det i hovedløs tilstand. Dette betyder, at du får adgang til pi'en via dit WiFi-netværk via GUI eller en SSH-terminal og ikke har brug for et tastatur, mus og skærm for at bruge det hver gang. Du kan gøre dette uden at skulle oprette forbindelse til en skærm/mus/tastatur nogensinde, hvis du er mere teknisk kyndig. Nogle eksempler på instruktioner her. Det er dog mindre ligetil, og nedenfor er en anden måde at konfigurere det på.

Denne første gang får du sandsynligvis brug for:

  • Hindbær Pi W
  • Adapter til MicroSD til SD -kort [til at skrive OS på SD -kort]
  • MicroSD -kort (~ 8 GB+) [til at gemme OS og vores program]
  • MicroUSB strøm (5V)
  • MicroUSB til USB A [til mus/tastatur]
  • Mini HDMI til HDMI adapter [til skærmoutput]
  • Tastatur
  • Mus
  • Overvåge

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

Jeg brugte raspian buster, du downloader dette på en computer med et SD -kort læser/skriver og blinker derefter raspian OS på SD -kortet. BalenaEtcher er en let software til at gøre dette

Sæt derefter SD -kortet i pi -stikket, tilslut skærmen, tastaturet og strømmen. Fortsæt gennem de opsætningstrin, som raspian beder dig om, herunder tilslutning til dit WiFi -netværk og parring af din bluetooth -højttaler via GUI. God praksis ville være at opdatere den ved hjælp af følgende kommandoer

sudo apt-get opdatering

sudo apt-get opgradering

Hvis du vil inkludere markering af din pi uden hoved, skal vi først have fat i pi's ip -adresse. Gennem en terminal kan du finde den gennem

ifconfig

kommando. Du skal derefter aktivere SSH og VNC over grænsefladeindstillingerne i

sudo raspi-config

Efter en genstart kan du nu teste adgang til pi over SSH eller VNC. SSH er bare en terminal -grænseflade, og du kan have lettere ved at bruge GUI'en til at parre en bluetooth -højttaler. Du kan bruge et program som VNC connect til nemt at få adgang til din pi på en separat computer på dit netværk. Du kan bruge et program som spartel til SSH i det.

Desuden kan du konfigurere en VNC -sky -konto, så du kan få adgang til enheden uden for netværk, hvis det er nødvendigt

Trin 2: Installer Senior Radio Software

Installer Senior Radio Software
Installer Senior Radio Software

Dette kan gøres fra et terminalvindue på hindbær pi. Sørg først for, at du har installeret git

sudo apt-get install git

Afhængigt af hvilket operativsystem du har installeret, kan disse trin være forskellige, da du muligvis skal installere yderligere pakker, vil systemet fortælle dig i så fald. Først skal vi downloade seniorradiokoden fra github. https://github.com/Bunborn/seniorRadio Ideelt set foretager du vores egen repo, så du kan foretage ændringer og nemt ændre radiostationer på samme måde som jeg gør. Gaffel repoen i så fald

Du kan dog bruge den samme som min, intet problem, hvis du vil være vært for din radio json -fil et andet sted

Klon derefter repoen ned, uanset hvor du vil have den. Standardmappen er fin. Få webadressen til den github -repo, du vil have, ved at trykke på den grønne klon eller download -knap.

Tilbage i terminalvinduet, git -klon

Du skulle nu se en ekstra mappe ved navn seniorRadio, når du kigger med ls. Fantastisk!

Koden er beregnet til at være selvdokumenterende, og det ville være nyttigt at kigge igennem den. Især til fejlretning og hvis du ændrer systemet.

Trin 3: Installer yderligere software

Installer yderligere software
Installer yderligere software

Inden vi går videre til kredsløbet og tester det, skal vi også downloade VLC og python api til det. Du har muligvis allerede VLC installeret. De to første kommandoer opdaterer pi, og de sidste to kommandoer herunder installerer VLC og derefter python api

sudo apt-get opdatering

sudo apt-get opgradering

sudo snap installere VLC

sudo apt-get install vlc-python

Derudover skal du også installere gpiozero, som vi vil bruge til at interface med pi's GPIO -ben. Du har muligvis allerede installeret det afhængigt af dit operativsystem.

sudo apt-get install gpiozero

Trin 4: Find radiostationer

Find radiostationer
Find radiostationer

Dernæst en af de mest sjove dele! Tid til at vælge, hvilke streams du ønsker.

I min internetStations.json -fil kan du se mine stream -links, hovedsageligt til nyheder og musik. Men der er masser af hostet indhold derude. Nøglen her er at finde URL -adressen til direkte stream. For eksempel kan BBC -nyheder og musikstationer findes her på denne blog. Disse direkte streams har ingen grafisk grænseflade og afspiller strømmen automatisk via din browser medieafspiller. Dette er de webadresser, vi har brug for, så VLC kan læse dem! Du kan hurtigt teste ethvert link i din webbrowser eller via VLC på din normale computer for at sikre, at det fungerer på pi.

For at finde disse stationer kan du kigge efter direkte stream online, hvis tjenesten er vært for den. En hurtig måde kan også være at afspille strømmen, højreklikke på browseren og trykke på "inspicer element". Naviger til fanen Netværk, og det skal angive streamens 'direkte' URL. Denne youtube -video demonstrerer dette. Opdatering af siden med fanen åben burde hjælpe.

Når du har dine stationer, vil du sætte dem online, så dit seniorRadio python -program kan gribe dem. Der er mange muligheder for at gøre dette, du kan bruge websteder som Github, bitbucket eller endda sourceforge. Hovedformålet med at hoste denne liste online er, så brugeren, der opretter den, kan ændre streamlisten online eksternt.

I starten af python -programmet er der en variabel, der hedder url. Du skal blot ændre dette til at være webadressen til din json -fil med stationens URL -links

Du kan følge det samme format som min internetStation.json -fil. Hvis du også ville bruge github, kunne du simpelthen gaffel mit seniorRadio -depot og redigere din egen internetStation.json -fil og pege den på den "rå" URL. Du kan finde det nedenfor i Github GUI, når du har klikket på filen.

Trin 5: Opret kredsløb

Opret kredsløb
Opret kredsløb

Nu skal vi opsætte kredsløbet. Dette vil ændre sig baseret på dit udstyr, men nedenfor er hvordan jeg konfigurerede mit.

pinout.xyz/ for reference til hvilke pins der er hvilke. Da vi bruger gpiozero -biblioteket, er vi kun bekymrede for BCM -pin -nummereringen. Bemærk, at jeg købte et par ekstra KY040 roterende encodere - skiverne - for at teste dem, da de ikke alle har samme nøjagtighed. Hver enkelt ville have noget "hoppende" eller simpelthen forkert output, så jeg valgte det bedste af de to, jeg havde. I koden vil du bemærke, at der også er nogle trin for at begrænse denne afvisning.

Jeg sluttede min trykknap til BCM pin 17 og jordede

Min LED til en 1k ohm modstand derefter BCM pin 27 og jordet

Mine KY040 roterende encodere havde + ledningen til 5V, GND til jorden og SW afbrudt. Disse blev forbundet over et mini -brødbræt

Station roterende encoder dt pin tilsluttet BCM pin 21

Station roterende encoder clk pin tilsluttet BCM pin 20

Lydniveau roterende encoder dt pin tilsluttet BCM pin 19

Lydniveau roterende encoder clk pin tilsluttet BCM pin 16

Hvis du ændrer disse stifter, skal du bare opdatere nummeret i python -programmet, hvor det opsætter håndtererne

Jeg brugte et mini -brødbræt til at gøre dette lettere. Jeg brugte også M/M og M/F jumperwires for at lette grænsefladen. Jeg loddet nogle jumper wire leads på benene på trykknappen/LED, jeg købte tidligere. For ikke at lodde kan du få trykknapper og lysdioder, der allerede har jumper wire leads eller let ville kunne tilsluttes en.

Trin 6: Test det

Nu skulle du have et fungerende system! Lad os teste det. Naviger til mappen med python -programmet, sandsynligvis:

cd seniorRadio

python3 seniorRadio.py

I øjeblikket er der en forsinkelse på 45 sekunder i starten af programmet for at give det tid til at finde bluetooth -højttaleren ved opstart. Du kan kommentere denne linje, hvis du ikke har brug for den under test. Programmet fortæller dig muligvis, at du skal installere yderligere pakker. Fortsæt i så fald. Det kan også være nødvendigt at installere en nyere version af Python.

sudo apt-get install python3.7

Nogle mulige problemer, selvom programmet kører:

Jeg hører ingen lyd

Sørg for, at højttaleren er tændt og valgt i din hindbærpi. Gennem GUI'en skal du være i stand til at parre den og derefter vælge den som din lydoutputenhed. Kontroller desuden dine lyddrivere. Et almindeligt problem er, at du muligvis skal geninstallere pulseaudio -pakken

Lyd hakket eller skærer ind og ud

Prøv at flytte enheden tættere på din WiFi -router. Derudover skal du sørge for, at bluetooth -højttaleren er tæt på. Det kan også være et problem med lyddriveren

Trin 7: Sæt i en permanent kabinet

Sæt i en permanent kabinet
Sæt i en permanent kabinet

Derefter skal du lægge den i en kasse eller lignende enhed, så den kan bo permanent. Jeg anbefaler at have en, som du stadig kan få adgang til senere til fejlfinding. Jeg fik denne lille trækasse i en håndværksbutik for $ 2, og linkede den på forsyningssiden. En af mine venner anbefalede en cigaræske.

Jeg skar derefter huller ud foran til trykknappen og drejekontakter og borede et hul bag på boksen til microUSB -netledningen.

Jeg testede holderen og sørgede for, at den virkede, og voilà!

Til sidst brugte jeg superlim til at holde trykknappen. Mit brødbræt havde et klæbemiddel i bunden, som jeg sluttede til en del af kassen. Jeg brugte en lille strimmel gaffatape til at fastgøre pi'ens bagside til kassen, så den kan flyttes senere, hvis det er nødvendigt.

Trin 8: Opsætningsprogram til at køre ved opstart

Endelig vil du sandsynligvis have, at dette python -program kører ved opstart af hindbær pi, så du ikke behøver at gøre det manuelt. Der er mange måder at gøre dette på, som du kan finde online.

Personligt konfigurerede jeg det ved hjælp af den anden måde på denne SparkFun-vejledning:

Her venter det på, at systemet kommer ind på det grafiske skrivebord, før programmet køres. Det forsinkes derefter af python -programmet i 45 sekunder for at give systemet tid til at genoprette forbindelse til bluetooth -højttaleren. Hvis du bruger en integreret højttaler, kan du fjerne denne forsinkelse. Bemærk, at bluetooth -højttaleren skal være tændt først! (til bluetooth -løsningen)

Nu kan du prøve at slukke og tænde din pi igen! Efter cirka 90 sekunder skulle din pi begynde at afspille radiostrømmene igen. Når du trykker på knappen, stopper den/afspilles. Bemærk om disse genstarter den genlæser den internetStations json-fil, så hvis du ændrer dine stationer, skal du genstarte enheden for at de kan fungere. Tillykke!

Hvis du lavede dette eller foretog ændringer af projektet, så lad mig det vide!

Github -side:

Anbefalede: