Cuprins:

Radio Senior - Raspberry Pi: 8 pași
Radio Senior - Raspberry Pi: 8 pași

Video: Radio Senior - Raspberry Pi: 8 pași

Video: Radio Senior - Raspberry Pi: 8 pași
Video: Raspberry Pi - Что можно сделать? Готовые проекты. Есть ли смысл? Как научиться? 2024, Noiembrie
Anonim
Radio Senior - Raspberry Pi
Radio Senior - Raspberry Pi

Proiectul Senior Radio este un dispozitiv radio de internet accesibil cu sursă deschisă, cu componente hardware și software. Este destinat utilizării utilizatorilor familiarizați cu controlul unui radio de buzunar unde cadranele controlează volumul și postul de radio selectat. Proiectul este realizat cu un design centrat pe utilizator, axat pe un utilizator care dorește o dimensiune similară și controlează ca un radio portabil standard.

A fost construit pentru a satisface nevoile de a permite persoanelor cu dizabilități să poată asculta mii de conținut diferit de streaming pe internet, care este de obicei disponibil numai în mod normal printr-un browser de internet. Mulți oameni nu au capacitatea de a utiliza cu ușurință un astfel de dispozitiv, așa că acest design își propune să creeze o interfață familiară pentru o tehnologie modernă.

Funcționalitatea de bază este pe Github, stocată într-un program Python 3.7.3 numit seniorRadio.py. Citește și scrie un fișier json pentru a stoca starea radioului, așa că, atunci când îl opriți, își va aminti nivelul audio actual și stația selectată. În plus, citește un fișier json găzduit online pe care îl puteți schimba! Acest lucru vă permite să actualizați posturile de radio de la distanță dacă dați altcuiva acest lucru.

În prezent, este creat pentru a vă conecta la un difuzor bluetooth, dar ar putea fi ușor făcut să redați și un difuzor de la bord.

Este posibil ca creatorul acestui dispozitiv să nu fie utilizatorul și are nevoie de cel puțin o experiență în electronică și cunoștințe de bază de programare. Experiența Linux este, de asemenea, foarte utilă.

Pentru utilizator, funcționalitatea este simplă:

La pornire, acesta va reda ultima stație selectată pe dispozitivul audio implicit. Cadranul din stânga controlează stația, unde câteva clicuri ale cadranului se transformă într-o nouă adresă URL. Se va răsturna după ultima sau prima intrare. Cadranul din dreapta controlează nivelul audio. LED-ul indică faptul că programul este pornit. Iar butonul pune în pauză sau „oprește” radioul. Deci, odată pornit, un utilizator poate doar să apese butonul pentru a întrerupe / reda sau „opri / porni”, radioul și cele două cadrane pentru al controla.

Provizii

Legat pe fiecare articol este cel specific pe care l-am folosit. Costă-mă în jur de 60 $ în total, cu o mulțime de provizii rămase!

Cunoștințe electronice și linux de bază - pentru asamblare și depanare

Raspberry Pi Zero W (Zero WH are anteturi pre-lipite și probabil utile)

Card MicroSD-8 GB + și capacitate o

Adaptor de alimentare MicroUSB 5V - Link include și adaptor microHDMI și adaptor microUSB OTG la USB A pentru configurare dacă aveți nevoie de ele

difuzor Bluetooth

Cabluri jumper M / F și M / M

2 Codificator rotativ - aceeași legătură ca mai sus

Pană mică

Apasa butonul

LED (opțional) - LED cumpărat + buton de mai sus

Cutie pentru ambalare

Pasul 1: Configurare (fără cap) Raspberry Pi W

Configurare (fără cap) Raspberry Pi W
Configurare (fără cap) Raspberry Pi W

Trebuie să configurăm sistemul de operare pe raspberry pi care va rula software-ul. Nimic din toate acestea nu este unic pentru acest proiect. Pentru depanare, aș recomanda configurarea, astfel încât să o puteți accesa și în modul fără cap. Aceasta înseamnă că accesați pi-ul prin rețeaua WiFi prin GUI sau un terminal SSH și nu aveți nevoie de tastatură, mouse și monitor pentru ao utiliza de fiecare dată. Ați putea face acest lucru fără a fi nevoie să vă conectați vreodată la un monitor / mouse / tastatură dacă sunteți mai pricepuți la tehnologie. Câteva exemple de instrucțiuni aici. Cu toate acestea, este mai puțin direct și mai jos este o altă modalitate de configurare.

La prima dată va trebui probabil:

  • Raspberry Pi W
  • Adaptor de card MicroSD la SD [pentru a scrie OS pe cardul SD]
  • Card MicroSD (~ 8 GB +) [pentru a stoca sistemul de operare și programul nostru]
  • Putere MicroUSB (5V)
  • MicroUSB la USB A [pentru mouse / tastatură]
  • Adaptor Mini HDMI la HDMI [pentru ieșire afișaj]
  • Tastatură
  • Șoarece
  • Monitor

Mai întâi, va trebui să blocați sistemul de operare pe cardul micro SD rPi.

Am folosit raspian buster, descărcați acest lucru pe un computer cu o citire / scriere a cardului SD și apoi blocați sistemul de operare raspian pe cardul SD. BalenaEtcher este un software ușor pentru a face acest lucru

Apoi puneți cardul SD în slotul pi, conectați monitorul, tastatura și alimentarea. Continuați pașii de configurare la care vă solicită raspian, inclusiv conectarea la rețeaua WiFi și asocierea difuzorului Bluetooth prin interfața grafică. O bună practică ar fi actualizarea acestuia folosind următoarele comenzi

sudo apt-get update

sudo apt-get upgrade

Dacă doriți să includeți marcarea pi fără cap, va trebui să luăm mai întâi adresa IP a pi. Printr-un terminal îl puteți găsi prin

ifconfig

comanda. Apoi, trebuie să activați SSH și VNC peste opțiunile de interfață din

sudo raspi-config

După o repornire, puteți testa acum accesarea pi prin SSH sau VNC. SSH este doar o interfață terminală și este posibil să vă fie mai ușor să utilizați interfața grafică pentru a împerechea un difuzor bluetooth. Puteți utiliza un program precum conectarea VNC pentru a accesa cu ușurință pi pe un computer separat din rețeaua dvs. Puteți utiliza un program precum chit pentru SSH în el.

În plus, puteți configura un cont cloud VNC, astfel încât să puteți accesa dispozitivul din rețea, dacă este necesar

Pasul 2: Instalați software Radio Senior

Instalați software radio pentru seniori
Instalați software radio pentru seniori

Acest lucru se poate face de la o fereastră terminală a raspberry pi. Mai întâi asigurați-vă că ați instalat git

sudo apt-get install git

În funcție de sistemul de operare pe care l-ați instalat, acești pași pot fi diferiți, deoarece poate fi necesar să instalați pachete suplimentare, sistemul vă va spune dacă da. Mai întâi trebuie să descărcăm codul radio senior de pe github. https://github.com/Bunborn/seniorRadio În mod ideal, vă creați propria repo, astfel încât să puteți face schimbări și să schimbați cu ușurință posturile de radio în același mod ca și mine. Furcați repo, dacă da

Cu toate acestea, puteți utiliza același lucru ca al meu, fără probleme, dacă doriți să găzduiți fișierul radio json într-un alt loc

Apoi clonați repo în orice locație doriți să fie. Directorul implicit este în regulă. Obțineți adresa URL pentru care doriți repo github apăsând pe butonul de clonare verde sau de descărcare.

Înapoi în fereastra terminalului, git clonează

Acum ar trebui să vedeți un director suplimentar numit seniorRadio atunci când căutați folosind ls. Fantastic!

Codul este menit să se autodocumentează, ar fi util să aruncăm o privire prin el. Mai ales în scopuri de depanare și dacă schimbați sistemul.

Pasul 3: Instalați software suplimentar

Instalați software suplimentar
Instalați software suplimentar

Înainte de a trece la circuit și de a-l testa, trebuie să descărcăm VLC și API-ul Python pentru acesta. Este posibil să aveți deja instalat VLC. Primele două comenzi vor actualiza pi, iar ultimele două comenzi de mai jos vor instala VLC și apoi API-ul python

sudo apt-get update

sudo apt-get upgrade

sudo snap instalează VLC

sudo apt-get install vlc-python

În plus, instalați și gpiozero, pe care îl vom folosi pentru a interfața cu pinii GPIO ai lui pi. Este posibil să îl aveți deja instalat în funcție de sistemul de operare.

sudo apt-get install gpiozero

Pasul 4: Găsiți fluxuri de posturi de radio

Găsiți fluxuri de posturi de radio
Găsiți fluxuri de posturi de radio

În continuare, una dintre cele mai distractive părți! Este timpul să selectați ce fluxuri doriți.

În fișierul meu internetStations.json puteți vedea link-urile mele de flux, în principal pentru știri și muzică. Dar există o mulțime de conținut găzduit acolo. Cheia aici este să găsiți adresa URL a fluxului direct. De exemplu, posturile de știri și muzică BBC pot fi găsite aici pe acest blog. Aceste fluxuri directe nu vor avea nicio interfață grafică și vor reda automat fluxul prin playerul media al browserului. Acestea sunt adresele URL de care avem nevoie pentru ca VLC să le poată citi! Puteți testa rapid orice link din browserul dvs. web sau prin VLC pe computerul normal pentru a vă asigura că va funcționa pe pi.

Pentru a găsi aceste stații, puteți căuta fluxul direct online dacă serviciul îl găzduiește. O modalitate rapidă ar putea fi, de asemenea, să redați fluxul, să faceți clic dreapta pe browser și să apăsați „inspect element”. Navigați la fila de rețea și aceasta ar trebui să indice URL-ul „direct” al fluxului. Acest videoclip de pe YouTube demonstrează acest lucru. Reîmprospătarea paginii cu fila deschisă ar trebui să vă ajute.

Odată ce aveți stațiile dvs., doriți să le puneți online, astfel încât programul dvs. seniorRadio python să le poată lua. Există multe opțiuni pentru a face acest lucru, puteți utiliza site-uri precum Github, bitbucket sau chiar sourceforge. Scopul principal al găzduirii acestei liste online este ca utilizatorul care o configurează să poată modifica lista de fluxuri online de la distanță.

La începutul programului python există o variabilă numită url, pur și simplu schimbați aceasta pentru a fi adresa URL a fișierului dvs. json cu legăturile URL ale stației

Puteți urma același format ca fișierul meu internetStation.json. Dacă vrei să folosești și github, poți pur și simplu să îmi găsești depozitul seniorRadio și să-ți editezi propriul fișier internetStation.json și să-l direcționezi către acel URL „brut”. Puteți găsi acest lucru mai jos în interfața grafică Github după ce ați făcut clic pe fișier.

Pasul 5: Creați circuite

Creați circuite
Creați circuite

Acum trebuie să configurăm circuitul. Acest lucru se va schimba în funcție de echipamentul dvs., dar mai jos este modul în care am configurat-o pe a mea.

pinout.xyz/ pentru referință pe care sunt ace. Deoarece folosim biblioteca gpiozero, ne preocupă doar numerotarea pinului BCM. Rețineți că am cumpărat câteva codificatoare rotative KY040 suplimentare - cadranele - pentru a le testa, deoarece nu toate au aceeași precizie. Fiecare ar avea o ieșire „bouncing” sau pur și simplu incorectă, așa că am ales cel mai bun dintre cele două pe care le-am avut. În cod, veți observa că există câțiva pași pentru a limita și acest salt.

Mi-am conectat butonul la pinul BCM 17 și la masă

LED-ul meu la un rezistor de 1k ohm, apoi pinul BCM 27 și la sol

Codificatoarele mele rotative KY040 aveau cablul + la 5V, GND la sol și SW deconectat. Acestea au fost conectate printr-o mini placă de măsurare

Cod pin rotativ pentru stație conectat la pinul 21 BCM

Cod pin rotativ al codului stației conectat la pinul 20 BCM

Pin de cod audio rotativ de nivel audio conectat la pinul 19 BCM

Cod PIN rotativ de cod audio conectat la pinul BCM 16

Dacă schimbați acești pini, trebuie doar să actualizați numărul din programul python, de asemenea, în cazul în care acesta configurează gestionarele

Am folosit o mini placă pentru a ușura acest lucru. Am folosit și fire jumper M / M și M / F pentru a facilita interfața. Am lipit niște fire de jumper pe știfturile butonului / LED-ului pe care le-am cumpărat mai devreme. Pentru a nu lipi, puteți obține butoane și LED-uri care au deja cabluri de sârmă sau se vor conecta cu ușurință la unul.

Pasul 6: Testează-l

Acum, ar trebui să aveți un sistem funcțional! Să testăm. Navigați la folderul cu programul python, probabil:

cd seniorRadio

python3 seniorRadio.py

În prezent, există o întârziere de 45 de secunde la începutul programului pentru a-i da timp să găsească difuzorul bluetooth la pornire. Puteți comenta această linie dacă nu aveți nevoie de ea în timpul testării. Programul vă poate spune că trebuie să instalați pachete suplimentare, continuați dacă da. Poate fi necesar, de asemenea, să instalați o versiune mai nouă a Python.

sudo apt-get install python3.7

Unele probleme posibile chiar dacă programul rulează:

Nu aud niciun sunet

Asigurați-vă că difuzorul este pornit și selectat în raspberry pi. Prin interfața grafică, ar trebui să o puteți asocia și apoi să o selectați ca dispozitiv de ieșire audio. În plus, verificați driverele audio. O problemă obișnuită este că poate fi necesar să reinstalați pachetul pulseaudio

Audio agitat sau tăiat în interior și în afara

Încercați să apropiați dispozitivul de routerul WiFi. În plus, asigurați-vă că difuzorul Bluetooth este aproape. Ar putea fi, de asemenea, o problemă a driverului audio

Pasul 7: introduceți într-o incintă permanentă

Puneți într-o incintă permanentă
Puneți într-o incintă permanentă

Apoi, punându-l într-o cutie sau un dispozitiv similar pentru ca acesta să locuiască permanent. Vă recomand să aveți unul pe care îl puteți accesa mai târziu pentru depanare. Am luat această cutie mică de lemn la un magazin de artizanat pentru 2 USD și am legat-o pe pagina de consumabile. Unul dintre prietenii mei mi-a recomandat o cutie de trabucuri.

Apoi am tăiat găurile din față pentru butonul de apăsare și comutatoarele rotative și am forat o gaură în spatele cutiei pentru cablul de alimentare microUSB.

Am testat montura și m-am asigurat că funcționează și voilà!

În cele din urmă, am folosit super lipici pentru a ține apăsat butonul. Panoul meu avea un adeziv pe fund pe care l-am conectat la o parte din cutie. Am folosit o bandă mică de bandă adezivă pentru a fixa partea din spate a pi la cutie, astfel încât să poată fi mutată mai târziu, dacă este necesar.

Pasul 8: Configurați programul pentru a rula la pornire

În cele din urmă, probabil că veți dori ca acest program python să ruleze la pornirea raspberry pi, astfel încât să nu aveți nevoie să îl faceți manual. Există multe modalități de a face acest lucru pe care le puteți găsi online.

Personal, l-am configurat folosind a doua cale pe acest tutorial SparkFun:

Aici, așteaptă ca sistemul să intre pe desktopul grafic înainte de a rula programul. Apoi, programul python întârzie 45 de secunde pentru a da sistemului timp să se reconecteze la difuzorul bluetooth. Dacă utilizați un difuzor integrat, puteți elimina această întârziere. Rețineți că difuzorul bluetooth ar trebui să fie pornit mai întâi! (pentru soluția bluetooth)

Acum puteți încerca să opriți și să re-alimentați pi! După aproximativ 90 de secunde, pi-ul tău ar trebui să înceapă din nou să redea fluxurile radio. La apăsarea butonului se va întrerupe / reda. Notă cu privire la aceste reporniri, citește din nou fișierul json internetStations, deci dacă vă schimbați stațiile, trebuie să reporniți dispozitivul pentru ca acestea să funcționeze. Felicitări!

Dacă ați făcut acest lucru sau ați făcut modificări proiectului, vă rugăm să ne anunțați!

Pagina Github:

Recomandat: