Sadržaj:

Stariji radio - Raspberry Pi: 8 koraka
Stariji radio - Raspberry Pi: 8 koraka

Video: Stariji radio - Raspberry Pi: 8 koraka

Video: Stariji radio - Raspberry Pi: 8 koraka
Video: Электрика в квартире своими руками. Финал. Переделка хрущевки от А до Я. #11 2024, Juli
Anonim
Stariji radio - Raspberry Pi
Stariji radio - Raspberry Pi

Projekt Senior Radio je otvoreni izvorni pristup dizajniranom internetskom radijskom uređaju sa hardverskim i softverskim komponentama. Namijenjen je za korisnike koji poznaju upravljanje džepnim radijem gdje brojčanici kontroliraju glasnoću i odabranu radio stanicu. Projekt je napravljen sa 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ćavanja osobama sa oštećenjima da slušaju hiljade različitih internetskih sadržaja koji su obično obično 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 je na Githubu, pohranjena u python 3.7.3 programu koji se zove seniorRadio.py. On čita i piše json datoteku za spremanje stanja radija, pa će je, kad je isključite, zapamtiti trenutni nivo zvuka i odabranu stanicu. Osim toga, čita json datoteku na mreži koju možete promijeniti! Ovo vam omogućava daljinsko ažuriranje radio stanica ako ovo dajete nekome drugom.

Trenutno je kreiran za povezivanje s bluetooth zvučnikom, ali se lako može napraviti i za reprodukciju putem 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đe vrlo korisno.

Korisniku je funkcija jednostavna:

Kada se uključi, reproducirat će zadnju stanicu odabranu preko zadanog audio uređaja. Lijevi brojčanik kontrolira stanicu, gdje se nekoliko klikova birača mijenja u novi URL. Premjestit će se nakon posljednjeg ili prvog unosa. Desni točkić kontroliše nivo zvuka. LED indikator označava da je program uključen. Taster pauzira ili "isključuje" radio. Dakle, nakon uključivanja, korisnik može samo pritisnuti dugme za pauziranje/reprodukciju ili "isključivanje/uključivanje", radija i dva točkića za upravljanje.

Supplies

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

Osnovno znanje o elektronici i linux -u - za montažu i otklanjanje grešaka

Raspberry Pi Zero W (Zero WH ima zaglavlja prethodno lemljena i vjerovatno 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

Taster

LED (opcionalno) - kupljeno LED + dugme iznad

Kutija za pakovanje

Korak 1: Postavljanje (bez glave) Raspberry Pi W

Podešavanje (bez glave) Raspberry Pi W
Podešavanje (bez glave) Raspberry Pi W

Moramo postaviti operativni sistem na maline pi koji će pokretati softver. Ništa od ovoga nije jedinstveno za ovaj projekat. 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 da biste ga koristili svaki put. To možete učiniti bez potrebe za povezivanjem na monitor/miš/tastaturu 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 da ga postavite.

Prvi put će vam vjerovatno trebati:

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

Prvo ćete morati prebaciti operativni sistem na rPi mikro SD karticu.

Koristio sam raspian buster, preuzmete ovo na računar sa čitačem/pisanjem SD kartica, a zatim fleš OS raspian prebacite na SD karticu. BalenaEtcher je jednostavan softver za to

Zatim umetnite SD karticu u pi slot, povežite monitor, tastaturu i napajanje. Prođite kroz korake postavljanja na koje vas Raspian od vas zatraži, uključujući povezivanje na vašu WiFi mrežu 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 update

sudo apt-get nadogradnja

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

ifconfig

komanda. Zatim trebate omogućiti SSH i VNC preko opcija sučelja u

sudo raspi-config

Nakon ponovnog pokretanja, sada možete testirati pristup pi preko SSH 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čunaru na vašoj mreži. U njega možete koristiti program kao što je 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 iz terminalnog prozora maline pi. Prvo provjerite imate li instaliran git

sudo apt-get install git

U zavisnosti od toga koji ste operativni sistem instalirali, ovi koraci se mogu razlikovati jer ćete možda morati instalirati dodatne pakete, sistem će vam reći da li je tako. Prvo moramo preuzeti stariji radio kod sa github -a. https://github.com/Bunborn/seniorRadio Idealno bi bilo da napravite vlastiti repo kako biste mogli unositi izmjene i jednostavno mijenjati radio stanice na isti način kao i ja. Forkirajte repo ako je tako

Međutim, možete koristiti isto što i ja bez problema ako želite svoju radio json datoteku smjestiti na drugo mjesto

Zatim klonirajte repo na bilo kojoj lokaciji koju želite. Zadani direktorij je u redu. Dobijte URL za koji github repo želite pritiskom na zeleni klon ili dugme za preuzimanje.

Nazad u prozoru terminala, git clone

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

Kod je zamišljen da se sam dokumentuje, pa bi bilo korisno pregledati ga. Posebno u svrhu otklanjanja grešaka i ako mijenjate sistem.

Korak 3: Instalirajte dodatni softver

Instalirajte dodatni softver
Instalirajte dodatni softver

Prije nego što pređemo na kolo 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 update

sudo apt-get nadogradnja

sudo snap install VLC

sudo apt-get install vlc-python

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

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 prijenose koje želite.

U mojoj datoteci internetStations.json možete vidjeti moje linkove za prijenos, uglavnom za vijesti i muziku. Ali postoji gomila hostiranog sadržaja. Ključ ovdje je pronaći URL adresu direktnog prijenosa. Na primjer, vijesti i muzičke stanice BBC -a mogu se pronaći ovdje na ovom blogu. Ovi izravni prijenosi neće imati nikakvo grafičko sučelje i automatski će reproducirati prijenos putem vašeg media preglednika preglednika. Ovo su URL -ovi koji su nam potrebni kako bi ih VLC mogao pročitati! Možete brzo testirati bilo koju vezu u pregledniku weba ili putem VLC -a na svom normalnom računaru kako biste bili sigurni da će raditi na pi.

Da biste pronašli ove stanice, možete potražiti izravan prijenos na mreži ako ga usluga hostira. Brzi način može biti i reprodukcija streama, desnim klikom na preglednik i pritiskom na "inspect element". Idite na karticu mreža i ona bi trebala označiti "direktni" URL prijenosa. Ovaj YouTube video to dokazuje. Osvježavanje stranice s otvorenom karticom trebalo bi pomoći.

Nakon što imate svoje stanice, želite ih staviti na mrežu kako bi ih vaš seniorRadio python program mogao preuzeti. Postoji mnogo opcija za to, možete koristiti web lokacije poput Github, bitbucket ili čak sourceforge. Glavna svrha hostiranja ove liste na mreži je da korisnik koji je postavi može daljinski promijeniti listu prijenosa 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, mogli biste jednostavno forkirati 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: Kreirajte krugove

Create Circuits
Create Circuits

Sada moramo postaviti krug. Ovo ć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 biblioteku, brinemo se samo o BCM numerisanju pinova. Imajte na umu da sam kupio nekoliko dodatnih KY040 rotacijskih davača - brojčanika - da ih isprobam jer nemaju svi istu točnost. Svaki od njih bi imao "odskakanje" ili jednostavno netačan izlaz, pa sam odabrao najbolje od dva koja sam imao. U kodu ćete primijetiti da postoje neki koraci za ograničavanje ovog skakanja.

Spojio sam dugme 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 isključeni. Oni su povezani preko mini ploče

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

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

Rotirajući koder dt pin audio nivoa 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 ovo olakšao. Koristio sam i M/M i M/F kratkospojnike kako bih olakšao sučelje. Zalemio sam neke žice kratkospojnika na pinove dugmeta/LED -a koji sam ranije kupio. Da ne lemite, mogli biste nabaviti gumbe i LED diode koji već imaju kratkospojnike ili bi se na njih lako spojili.

Korak 6: Isprobajte

Sada biste trebali imati funkcionalan sistem! Hajde da ga testiramo. Idite do mape s programom python, vjerovatno:

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 ovu liniju ako vam ne treba tokom testiranja. Program vam može reći da trebate instalirati dodatne pakete, ako je tako, nastavite. Možda će biti potrebno i instaliranje novije verzije 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 audio izlazni uređaj. Nadalje, provjerite audio upravljačke programe. Uobičajen problem je da ćete možda morati ponovo instalirati paket pulseaudio

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

Pokušajte približiti uređaj svom WiFi usmjerivaču. Osim toga, provjerite je li Bluetooth zvučnik u blizini. Može biti i problem sa 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 na kojem će trajno živjeti. Preporučujem da imate neki kojem ćete kasnije moći pristupiti radi otklanjanja grešaka. Ovu malu drvenu kutiju nabavio sam u zanatskoj radnji za 2 USD i povezao sam je na stranici sa zalihama. Jedan od mojih prijatelja mi je preporučio 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 povezala s dijelom kutije. Koristio sam malu traku ljepljive trake da pričvrstim stražnju stranu pi za 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, tako da to ne morate raditi 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 sistem uđe na grafičku radnu površinu prije pokretanja programa. Python program ga zatim odlaže na 45 sekundi kako bi sistemu dao vremena za ponovno povezivanje sa bluetooth zvučnikom. Ako koristite integrirani zvučnik, ovo kašnjenje možete ukloniti. 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 ponovo uključiti svoj pi! Nakon otprilike 90 sekundi vaš pi bi trebao ponovo početi reproducirati radijske prijenose. Kada pritisnete dugme, pauziraće se/reprodukovati. Imajte na umu da se pri ponovnom pokretanju ponovo čita ta internetStation json datoteka, pa ako promijenite svoje stanice morate ponovo pokrenuti uređaj kako bi radili. Čestitamo!

Javite mi ako ste ovo napravili ili izvršili izmjene na projektu!

Github stranica:

Preporučuje se: