Sadržaj:

Radio za starije osobe - Raspberry Pi: 8 koraka
Radio za starije osobe - Raspberry Pi: 8 koraka

Video: Radio za starije osobe - Raspberry Pi: 8 koraka

Video: Radio za starije osobe - Raspberry Pi: 8 koraka
Video: Как из планшетного USB-сканера сделать сетевой с помощью Raspberry Pi. Реальный проект 2024, Studeni
Anonim
Viši radio - Raspberry Pi
Viši radio - Raspberry Pi

Projekt Senior Radio je otvoreni izvorni pristup dizajniranom internetskom radijskom uređaju s hardverskim i softverskim komponentama. Namijenjeno je za korisnike koji poznaju upravljanje džepnim radijem gdje brojčanici kontroliraju glasnoću i odabranu radio stanicu. Projekt je napravljen s korisnički usmjerenim dizajnom, fokusiranim na korisnika koji želi sličnu veličinu i kontrole kao standardni ručni radio.

Izgrađen je kako bi zadovoljio potrebe omogućujući osobama s invaliditetom da mogu slušati tisuće različitih internetskih streaming sadržaja koji su obično normalno dostupni samo putem internetskog preglednika. Mnogi ljudi nemaju mogućnost lakog korištenja takvog uređaja pa ovaj dizajn ima za cilj napraviti poznato sučelje za modernu tehnologiju.

Osnovna funkcionalnost nalazi se na Githubu, pohranjena u programu python 3.7.3 koji se zove seniorRadio.py. On čita i zapisuje json datoteku za spremanje stanja radija, pa kad je isključite, zapamtit će trenutnu razinu zvuka i odabranu postaju. Osim toga, čita json datoteku na mreži koju možete promijeniti! To vam omogućuje daljinsko ažuriranje radijskih postaja ako to dajete nekome drugome.

Trenutačno je stvoren za povezivanje s bluetooth zvučnikom, ali se lako može napraviti i za reprodukciju s ugrađenog zvučnika.

Tvorac ovog uređaja vjerojatno nije korisnik i potrebno mu je barem malo iskustva s elektronikom i osnovno znanje programiranja. Linux iskustvo je također vrlo korisno.

Korisniku je funkcija jednostavna:

Kad se uključi, reproducirat će zadnju postaju odabranu preko zadanog audio uređaja. Lijevi brojčanik kontrolira postaju, gdje se nekoliko klikova birača mijenja u novi URL. Premjestit će se nakon posljednjeg ili prvog unosa. Desni brojčanik kontrolira razinu zvuka. LED lampica označava da je program uključen. A tipka pauzira ili "isključuje" radio. Dakle, nakon uključivanja, korisnik može samo pritisnuti gumb za pauziranje/reprodukciju ili "isključiti/uključiti", radio i dva brojčanika za upravljanje.

Pribor

Na svakoj stavci je povezana ona koju sam koristio. Koštalo me ukupno 60 USD uz obilje preostalih zaliha!

Osnovno znanje o elektronici i linuxu - za sastavljanje i ispravljanje pogrešaka

Raspberry Pi Zero W (Zero WH ima zaglavlja prethodno lemljena i vjerojatno korisna)

MicroSD kartica-8 GB+ i mogućnost o

MicroUSB 5V adapter za napajanje - veza također uključuje microHDMI adapter i microUSB OTG na USB adapter za postavljanje ako vam trebaju

Bluetooth zvučnik

M/Ž i M/M kratkospojni kablovi

2 Rotacijski koder - ista veza kao gore

Mala ploča

Tipkalo

LED (opcija) - kupljena LED + tipka iznad

Kutija za pakiranje

Korak 1: Postavljanje (bez glave) Raspberry Pi W

Postavljanje (bez glave) Raspberry Pi W
Postavljanje (bez glave) Raspberry Pi W

Moramo postaviti operacijski sustav na maline pi koji će pokretati softver. Ništa od ovoga nije jedinstveno za ovaj projekt. Za otklanjanje pogrešaka preporučio bih da ga postavite tako da mu možete pristupiti i u načinu rada bez glave. To znači da pi pristupate putem svoje WiFi mreže putem GUI-ja ili SSH terminala i ne trebaju vam tipkovnica, miš i monitor za svako korištenje. To možete učiniti bez potrebe za povezivanjem s monitorom/mišem/tipkovnicom ako ste više upućeni u tehnologiju. Evo nekoliko primjera uputstava ovdje. Međutim, to je manje jednostavno, a dolje je još jedan način kako ga postaviti.

Prvi put će vam vjerojatno trebati:

  • Malina Pi W
  • Adapter za microSD na SD karticu [za pisanje OS -a na SD karticu]
  • MicroSD kartica (~ 8 GB+) [za pohranu OS -a i našeg programa]
  • Napajanje MicroUSB (5V)
  • MicroUSB na USB A [za miš/tipkovnicu]
  • Mini HDMI na HDMI adapter [za izlaz zaslona]
  • Tipkovnica
  • Miš
  • Monitor

Prvo ćete morati prebaciti operacijski sustav na rPi mikro SD karticu.

Koristio sam raspian buster, preuzimate ovo na računalo sa SD karticom za čitanje/pisanje, a zatim bljesnete raspian OS na SD karticu. BalenaEtcher je jednostavan softver za to

Zatim umetnite SD karticu u pi utor, spojite monitor, tipkovnicu i napajanje. Prođite kroz korake postavljanja na koje vas Raspian od vas zatraži, uključujući povezivanje s vašom WiFi mrežom i uparivanje vašeg Bluetooth zvučnika putem grafičkog sučelja. Dobra bi praksa bila ažuriranje pomoću sljedećih naredbi

sudo apt-get ažuriranje

sudo apt-get nadogradnja

Ako želite uključiti označavanje vašeg pi bez glave, morat ćemo prvo dohvatiti pi -jevu IP adresu. Putem terminala možete ga pronaći putem

ifconfig

naredba. Zatim morate omogućiti SSH i VNC preko opcija sučelja u

sudo raspi-config

Nakon ponovnog pokretanja, sada možete testirati pristup pi preko SSH -a ili VNC -a. SSH je samo terminalno sučelje i možda će vam biti lakše koristiti GUI za uparivanje bluetooth zvučnika. Možete koristiti program poput VNC connect za lak pristup vašem pi na zasebnom računalu u vašoj mreži. U njega možete upotrijebiti program poput kit za SSH.

Nadalje, možete postaviti VNC cloud račun tako da možete pristupiti uređaju izvan mreže ako je potrebno

Korak 2: Instalirajte stariji radio softver

Instalirajte stariji radio softver
Instalirajte stariji radio softver

To se može učiniti s terminalnog prozora maline pi. Prvo provjerite imate li instaliran git

sudo apt-get install git

Ovisno o tome koji ste operacijski sustav instalirali, ti se koraci mogu razlikovati jer ćete možda morati instalirati dodatne pakete, sustav će vam reći je li tako. Prvo moramo preuzeti stariji radio kod s githuba. https://github.com/Bunborn/seniorRadio Idealno bi bilo da napravite vlastiti repo kako biste mogli mijenjati i jednostavno mijenjati radio postaje na isti način kao i ja. Forknite repo ako je tako

Međutim, možete koristiti isto što i moje bez problema ako želite svoju radio json datoteku smjestiti na drugom mjestu

Zatim klonirajte repo na bilo kojem mjestu koje želite. Zadani direktorij je u redu. Dobijte URL za koji github repo želite pritiskom na zeleni klon ili gumb za preuzimanje.

Natrag u prozoru terminala, git klon

Sada biste trebali vidjeti dodatni direktorij pod imenom seniorRadio kada tražite pomoću ls -a. Fantastičan!

Kôd je zamišljen da se sam dokumentira, pa bi bilo korisno pregledati ga. Posebno u svrhu otklanjanja pogrešaka i ako mijenjate sustav.

Korak 3: Instalirajte dodatni softver

Instalirajte dodatni softver
Instalirajte dodatni softver

Prije nego prijeđemo na sklop i testiramo ga, također moramo preuzeti VLC i python api za njega. Možda ste već instalirali VLC. Prve dvije naredbe ažurirat će pi, a posljednje dvije naredbe ispod instalirat će VLC, a zatim i python api

sudo apt-get ažuriranje

sudo apt-get nadogradnja

sudo snap install VLC

sudo apt-get install vlc-python

Osim toga, instalirajte i gpiozero, koji ćemo koristiti za povezivanje s pi -jevim GPIO pinovima. Možda ste ga već instalirali ovisno o operativnom sustavu.

sudo apt-get install gpiozero

Korak 4: Pronađite prijenose radio stanica

Pronađite prijenose radio stanica
Pronađite prijenose radio stanica

Zatim jedan od najzabavnijih dijelova! Vrijeme je da odaberete sve streamove koje želite.

U mojoj datoteci internetStations.json možete vidjeti moje veze prema streamu, uglavnom za vijesti i glazbu. No, postoji mnoštvo hostiranih sadržaja. Ovdje je ključ pronaći URL adresu izravnog prijenosa. Na primjer, vijesti i glazbene postaje BBC -a mogu se pronaći ovdje na ovom blogu. Ovi izravni streamovi neće imati nikakvo grafičko sučelje i automatski će reproducirati stream putem media playera vašeg preglednika. Ovo su URL -ovi koji su nam potrebni kako bi ih VLC mogao pročitati! Možete brzo testirati bilo koju vezu u svom web pregledniku ili putem VLC -a na svom uobičajenom računalu kako biste bili sigurni da će raditi na pi.

Da biste pronašli te postaje, možete potražiti izravan prijenos na mreži ako ga usluga hostira. Brzi način može biti i reprodukcija streama, desnom tipkom miša kliknite preglednik i pritisnite "pregledaj element". Idite na karticu mreža i ona bi trebala označavati "izravni" URL streama. Ovaj YouTube video to dokazuje. Osvježavanje stranice s otvorenom karticom trebalo bi pomoći.

Nakon što imate svoje postaje, želite ih staviti na mrežu kako bi ih vaš seniorRadio python program mogao ugrabiti. Postoji mnogo mogućnosti za to, možete koristiti web lokacije poput Github, bitbucket ili čak sourceforge. Glavna svrha hostiranja ovog popisa na mreži je da korisnik koji ga postavi može daljinski promijeniti popis streaminga na mreži.

Na početku programa python postoji varijabla koja se zove url, jednostavno promijenite ovo u URL vaše json datoteke s vezama na URL stanice

Možete slijediti isti format kao i moja datoteka internetStation.json. Ako želite koristiti i github, jednostavno biste mogli račvati moje seniorRadio spremište i urediti vlastitu datoteku internetStation.json i usmjeriti je na taj "sirovi" URL. To možete pronaći ispod u Github GUI -u nakon što kliknete na datoteku.

Korak 5: Stvorite krugove

Stvorite sklopove
Stvorite sklopove

Sada moramo postaviti krug. To će se promijeniti ovisno o vašoj opremi, ali dolje je kako sam ja postavio svoju.

pinout.xyz/ za referencu o tome koji su pinovi koji. Budući da koristimo gpiozero knjižnicu, brine nas samo numeriranje BCM pinova. Imajte na umu da sam kupio nekoliko dodatnih KY040 rotacijskih davača - brojčanika - kako bih ih isprobao jer nemaju svi istu točnost. Svaki od njih bi imao "odskakanje" ili jednostavno netočan izlaz, pa sam odabrao najbolje od dva koja sam imao. U kodu ćete primijetiti da postoje neki koraci za ograničenje ovog skakanja.

Spojio sam svoj gumb na BCM pin 17 i masu

Moja LED dioda na otpornik od 1 k ohma, zatim BCM pin 27 i uzemljenje

Moji rotacijski davači KY040 imali su + vod na 5V, GND na masu i SW odspojen. Oni su povezani putem mini ploče

Dt pin rotacijskog davača postaje priključen na BCM pin 21

Clk pin rotacijskog davača stanice spojen na BCM pin 20

Dt pin rotacijskog davača razine zvuka spojen na BCM pin 19

Clk pin rotacijskog davača razine zvuka spojen na BCM pin 16

Ako promijenite ove pinove, samo ažurirajte broj u programu python gdje on postavlja rukovatelje

Koristio sam mini ploču kako bih to olakšao. Koristio sam i kratkospojnike M/M i M/F kako bih olakšao sučelje. Zalemio sam neke žice kratkospojnika na igle tipke/LED -a koju sam ranije kupio. Da ne lemite, mogli biste nabaviti gumbe i LED diode koji već imaju kratkospojnike ili bi se s njima lako spojili.

Korak 6: Isprobajte

Sada biste trebali imati funkcionirajući sustav! Hajde da to isprobamo. Dođite do mape s programom python, vjerojatno:

cd seniorRadio

python3 seniorRadio.py

Trenutno postoji kašnjenje od 45 sekundi na početku programa kako bi mu se dalo vremena da pronađe Bluetooth zvučnik pri uključivanju. Možete komentirati ovaj redak ako vam ne treba tijekom testiranja. Program vam može reći da morate instalirati dodatne pakete, samo naprijed ako je tako. Možda će biti potrebno instalirati i noviju verziju Pythona.

sudo apt-get install python3.7

Neki mogući problemi čak i ako program radi:

Ne čujem zvuk

Provjerite je li zvučnik uključen i izabran u vašem maline pi. Putem grafičkog sučelja trebali biste ga moći upariti, a zatim odabrati kao audioizlazni uređaj. Nadalje, provjerite audio upravljačke programe. Uobičajen problem je da ćete možda morati ponovno instalirati paket pulseaudio

Zvuk je isprekidan ili se uključuje i isključuje

Pokušajte pomaknuti uređaj bliže WiFi usmjerivaču. Osim toga, provjerite je li Bluetooth zvučnik u blizini. Može biti i problem s audio upravljačkim programom

Korak 7: Stavite u trajno kućište

Stavite u trajno kućište
Stavite u trajno kućište

Zatim ga stavite u kutiju ili sličan uređaj u kojem će trajno živjeti. Preporučujem da imate onu kojoj ćete kasnije moći pristupiti radi otklanjanja pogrešaka. Ovu malu drvenu kutiju nabavio sam u zanatskoj trgovini za 2 USD i povezao sam je na stranici zaliha. Jedan od mojih prijatelja preporučio mi je kutiju cigara.

Zatim sam izrezao rupe na prednjoj strani za gumb i okretne prekidače, te izbušio rupu na stražnjoj strani kutije za kabel za napajanje microUSB.

Testirao sam nosač i uvjerio se da radi, i eto!

Konačno, upotrijebio sam super ljepilo za držanje gumba. Moja ploča je na dnu imala ljepilo koje sam spojila na dio kutije. Koristio sam malu traku ljepljive trake za pričvršćivanje stražnje strane pi na kutiju, tako da se kasnije mogla pomaknuti ako je potrebno.

Korak 8: Postavljanje programa za pokretanje pri pokretanju

Konačno, vjerojatno ćete htjeti da se ovaj python program pokrene pri pokretanju maline pi pa to ne morate učiniti ručno. Postoji mnogo načina za to koje možete pronaći na internetu.

Osobno, postavio sam ga na drugi način u ovom SparkFun vodiču:

Ovdje se čeka da sustav uđe na grafičku radnu površinu prije pokretanja programa. Program Python ga zatim odgađa 45 sekundi kako bi sustavu dao vremena za ponovno povezivanje s Bluetooth zvučnikom. Ako koristite integrirani zvučnik, možete ukloniti ovu odgodu. Imajte na umu da bi Bluetooth zvučnik trebao biti uključen prvi! (za bluetooth rješenje)

Sada možete pokušati isključiti i ponovno uključiti svoj pi! Nakon otprilike 90 sekundi vaš bi pi trebao ponovno početi reproducirati radijske prijenose. Kada pritisnete gumb, pauzirat će se/reproducirati. Imajte na umu da se pri ponovnom pokretanju ponovno čita ta internetska datoteka json pa ako promijenite svoje postaje, morate ponovno pokrenuti uređaj kako bi radili. Čestitamo!

Javite mi ako ste ovo napravili ili izmijenili projekt!

Github stranica:

Preporučeni: