Cuprins:

Keeping It Stoopid Radio de internet simplă: KISSIR: 13 pași
Keeping It Stoopid Radio de internet simplă: KISSIR: 13 pași

Video: Keeping It Stoopid Radio de internet simplă: KISSIR: 13 pași

Video: Keeping It Stoopid Radio de internet simplă: KISSIR: 13 pași
Video: DOCUMENTAR RECORDER. 30 de ani de democrație 2024, Noiembrie
Anonim
Keeping It Stoopid Radio de internet simplă: KISSIR
Keeping It Stoopid Radio de internet simplă: KISSIR
Keeping It Stoopid Radio de internet simplă: KISSIR
Keeping It Stoopid Radio de internet simplă: KISSIR

Uneori trebuie doar să fie tactil. Niciun fel de interfață. Doar butoane.

Raspberry Pi ca player radio pe internet nu este nimic nou și există o mulțime de instrumente despre cum să creați un player radio pe internet folosind un raspberry pi cu sau fără monitor pentru a transmite posturi de internet din întreaga lume. Dacă ar fi să alegeți să rămâneți fără cap (fără monitor), ați avea în continuare nevoie de un mijloc de interfață a playerului pi, de obicei o interfață web dacă nu un mijloc direct de comunicare cu gazda, cum ar fi ssh. Acest instructable va fi ușor diferit; vom folosi apăsări simple de butoane pentru a trimite comenzi către pi, eliminând astfel necesitatea unei interfețe web și a unui ecran LCD. Sună destul de ușor, nu (?)

Vom începe cu un design foarte de bază folosind butoane cu cod color, fiecare culoare va reprezenta un post de radio pe internet. Vom introduce un cod Python pentru a gestiona apăsarea butonului: Apăsați va executa o comandă pentru a reda un post de radio de internet precodificat folosind MPG123, un instrument excelent în linia de comandă pentru redarea audio pe pi-ul nostru.

Abilitățile dvs. de python nu trebuie să fie avansate. De fapt, am trecut literalmente de la „Hello World” la scrierea asta și, după cum veți vedea, am împrumutat o mulțime de cod - așa că, dacă pot să o fac și să o documentez oarecum, oricine altcineva nu ar trebui să aibă nicio problemă.

Să mergem!

Provizii:

Materiale necesare

  • Raspberry pi / pi zero w cu toate fixările: sursă de alimentare, card SD și Raspbian sau Raspbian lite.
  • Wifi și acces la internet
  • Un alt computer pentru a efectua o navigare pe web și abilitatea de a SSH la raspberry pi
  • Convertor digital-analog (DAC) - opțional, dar veți fi recunoscător.
  • Amplificator
  • Difuzoare
  • Sârmă de conectare și jumperi
  • Fier de lipit și lipit
  • Perf Board pentru butoane
  • Butoane tactile: în mod normal Deschis - unul pentru fiecare gen de muzică, un buton de pornire și un buton opțional de mutare (se recomandă 7 butoane)
  • O unitate de carcasă pentru toate cele de mai sus (opțional, dar ordonat)

Pasul 1: Cerințe prealabile:

Cerințe prealabile
Cerințe prealabile

Vom începe presupunând că ați configurat deja raspberry pi, DAC și amplificator și vom presupune, de asemenea, că aveți acces la internet. Datorită cantității de opțiuni, preferințe și opțiuni de ascultare a echipamentului audio, vom presupune că configurarea dvs. este deja completă: ar trebui să aveți deja sunet care iese din difuzoare înainte de a începe acest proiect. De asemenea, va trebui să trimitem ssh la raspberry pi, astfel încât, folosind configurația pi, să ne asigurăm că interfețele au ssh activat. Voi folosi Raspbian lite și vă recomand să aveți o nouă instalare a celei mai recente copii pe un card SD nou dedicat acestui proiect. Dacă vom avea succes, vom construi un dispozitiv autonom care poate fi lăsat pornit 24/7 ca dispozitiv de ascultare dedicat.

Pasul 2: Instalați Python și Pip

Prefer să folosesc un alt PC ssh față de pi și să realizez toate funcțiile necesare folosind o sesiune ssh, dar cred că este posibil să configurați inițial pi pe un monitor, tastatură și mouse și să lucrați direct pe pi până când este funcționează și apoi se desfășoară ca independent.

Mai întâi permiteți o verificare de întreținere de rutină a sistemului nostru și a versiunii python:

sudo apt-get update

sudo apt-get upgrade

Asigurați-vă că Python este instalat. Într-o sesiune terminal, tastați următoarele la promptul de comandă:

python --versiune

Dacă vedeți python 2.7.13 (sau o versiune anterioară) să instalăm python 3. +:

sudo apt-get install python3

sudo apt-get install python-pip

sudo apt-get install python3-pip

sudo pip3 instalează --upgrade pip

Pasul 3: Instalați MPG123 și Adafruit Blinka

Acum că s-au pus bazele, mai sunt doar câteva instalări:

MPG123 este software-ul audio care ne va reda muzica. Instalarea este foarte simplă:

sudo apt-get install mpg123

Am făcut o mulțime de cercetări și am găsit un șablon excelent pe site-ul web Adafruit despre redarea fișierelor de sunet folosind apăsarea butoanelor, așa că, mai degrabă decât să începem de la zero, să continuăm pe traseul pe care oamenii de la Adafruit l-au aprins deja pentru noi. Programul lor cere să instalăm Adafruit Blinka:

$ sudo pip3 instalează adafruit-blinka

Înainte de a merge mai departe, să efectuăm o verificare rapidă pentru a ne asigura că avem configurarea Alsa:

aplay --versiune

rezultatele noastre ar trebui să citească: versiunea 1.1.3 de Jaroslav Kysela

Pasul 4: Reglați volumul la 50% în Alsamixer

Reglați volumul la 50% în Alsamixer
Reglați volumul la 50% în Alsamixer
Reglați volumul la 50% în Alsamixer
Reglați volumul la 50% în Alsamixer

Acum să luăm o măsură de precauție și să ne reglăm volumul la 50% pentru a evita orice surpriză asurzitoare:

La promptul de comandă, tastați alsamixer:

alsamixer

Dacă ne uităm la un ecran roșu alb și verde, sau 100% volum maxim, este o idee bună să reducem volumul la 50% pentru a economisi timpanele. Ne putem ajusta oricând mai târziu (în sus sau în jos) dacă este necesar.

Pasul 5: Unele teme: Găsiți 5 posturi de radio care merită ascultate

Câteva teme: Găsiți 5 posturi de radio pe care merită să le ascultați
Câteva teme: Găsiți 5 posturi de radio pe care merită să le ascultați
Câteva teme: Găsiți 5 posturi de radio pe care merită să le ascultați
Câteva teme: Găsiți 5 posturi de radio pe care merită să le ascultați

Vom avea nevoie de câte o stație pentru fiecare buton. De fapt, vom avea nevoie de adresa URL pentru stație. Apăsarea butonului va apela adresa URL a postului de radio pe internet într-un bit simplu de cod de o linie. Cu toate acestea, ne depășim, așa că avem niște teme de făcut; găsiți 5 posturi de radio și adresele URL ale acestora. Găsirea a 5 posturi de radio nu este dificilă, dar găsirea adreselor URL poate fi dificilă. Îți voi explica de ce într-un minut.

SomaFm * este o sursă excelentă de început, mai ales dacă nu aveți nicio idee despre ceea ce doriți să ascultați încă. Au o mare varietate de opțiuni muzicale eclectice, dintre care niciuna nu mi se pare jignitoare, fără reclame și cea mai bună parte: împărtășesc în mod deschis adresele lor URL. Pentru a apuca adresa URL, faceți clic pe o imagine a postului care vă interesează și, în bara de navigare din partea stângă, faceți clic pe „Link-uri directe de flux”. De acolo, găsiți secțiunea MP3 și răzuieți adresa URL cu cea mai mare rată de redare (adică 128 bate 64). Lipiți adresa URL într-un editor de text sau un bloc de notă pentru moment.

De exemplu, pentru a răzuie Christmas Rocks, adresa URL ar fi: (nu avem nevoie de descrierea serverului)

ice4.somafm.com/xmasrocks-128-mp3

Devine puțin mai mic în afara lumii SomaFm. Multe posturi utilizează un intermediar între ascultător și post, indiferent dacă este vorba de publicitate, marketing sau posibil de urmărire - și, în general, încerc să evit aceste tipuri de posturi. Deoarece intermediarii preferă să ascultați postul prin intermediul lor, de obicei este destul de dificil să găsiți adresa URL; și aici intervine Vtuner.

* Aș fi lipsit de grijă dacă nu v-aș cere să luați în considerare să faceți o donație la postul de radio preferat, deoarece multe dintre posturi se bazează exclusiv pe sprijinul ascultătorului.

Pasul 6: Opțional: Scrape URL-ul folosind Vtuner

Opțional: Scrape URL-ul folosind Vtuner
Opțional: Scrape URL-ul folosind Vtuner
Opțional: Scrape URL-ul folosind Vtuner
Opțional: Scrape URL-ul folosind Vtuner

Acum vine partea distractivă …. Pe pagina principală Vtuner, verificați linkul uriaș al listei de stații din colțul din dreapta sus. Alegeți un gen de muzică care vă interesează și apoi sortați pe cea mai mare viteză, unde veți vedea o listă de posturi. Alegeți o stație pe care credeți că v-ar plăcea, faceți clic pe link sau pe butonul de redare și probați muzica. Dacă nu este pentru dvs., nu vă faceți griji, repetați procesul până când găsim unul potrivit pentru plăcerea pe termen lung. În captura de ecran, am ales versiunea cu impuls digital a muzicii country și pe următorul ecran am observat că se joacă în afara Croației. Muzica country din Croația sună destul de interesant.

Imi place. Dar cum pot obține adresa URL? Pur și simplu efectuați un clic dreapta pe spațiul alb din dreapta imaginii stației, sub numele stației și selectați „Vizualizați sursa paginii” și derulați în jos până la rândul 150. Căutăm linia care spune „// Încercați să se ocupe de gheață . Și adresa URL se găsește imediat dedesubt!

orion.shoutca.st:8110/stream

Destul de slick!

Repetați acest pas până când avem cel puțin 5 stații pe lista noastră.

Dublu opțional: pentru măsuri suplimentare, dacă puteți găsi 5 genuri de muzică care vă interesează (spre deosebire de 5 posturi), creați o listă de posturi de radio pentru fiecare gen și salvați listele ca fișiere text. Vom reveni la asta mai târziu.

Pasul 7: Configurați butoanele noastre

Configurați butoanele noastre
Configurați butoanele noastre
Configurați butoanele noastre
Configurați butoanele noastre

Cea mai importantă parte! Îndepărtați vechiul fier de lipit sau cel puțin conectați-l și coaceți praful. E timpul să-l soldezi. Folosesc 4 butoane momentane, deschise în mod normal. Voi construi o serie de butoane (foto din stânga) și le voi fixa pe o tablă de perfecționare. Este greu de spus pe fotografie, dar direcția vârfurilor butonului rulează toate nord-sud. În partea dreaptă, puteți vedea unde am rulat o șină de împământare pentru firele de masă și am atașat niște cabluri jumper cu capăt masculin pe partea opusă a fiecărui buton. Mai degrabă decât să avem 7 conexiuni la sol, șina ne va permite să împărtășim o conexiune la sol la pi pentru toți. Rezultatul final este o placă delicată de napolitane care va fi montată sub partea superioară a radioului folosind niște șuruburi prin orificiile pilot furnizate. Numai vârfurile butoanelor vor apărea prin canelura pe care am tăiat-o din partea de sus. Deoarece suprafața mea superioară are o grosime de doar 1/4 , vreau să fiu atentă să nu înșurubați. Adezivul poate fi util pentru a menține placa de fixare atașată la radio.

Pasul 8: Identificați pinii GPIO

Identificați pinii GPIO
Identificați pinii GPIO
Identificați pinii GPIO
Identificați pinii GPIO

În singurul meu alt instructable, am prezentat o nouă utilizare pentru vechile pălării vocale Google AIY versiunea 1. În acest instructiv pe larg nepopular (sau foarte popular), am menționat cât de impresionat am fost de designul pălăriei în sine. Am câteva așezări în jur, așa că voi construi un prototip folosind pălăria, deoarece are atât dac cât și amplificatorul la bord.

Să identificăm acum șase pini care vor găzdui apăsarea butonului nostru. Vă voi cere să vă concentrați pe partea stângă a pălăriei Google AIY, unde scrie „servos”. Există o coloană de 6 ochiuri pentru Pin, unde voi atașa și lipi butonul masculin de la pasul nostru anterior. Dacă lucrați fără pălăria vocală google aiy, nu vă faceți griji, - fotografia din dreapta vă va ghida. În ambele cazuri, vom lucra cu pinii gpio (BCM) 26, 06, 13, 05, 12 și 24 de sus în jos (sau 0-5). GPIO # 24 va fi rezervat pentru un buton opțional de pauză.

Nu uitați să atașați și conexiunea la sol.

Pasul 9: Cod

Mă îndoiesc că codul se va schimba mult de aici, totuși pentru cea mai recentă versiune a codului python, vă rugăm să vizitați github-ul meu. Am atașat o copie începând cu 18.12.2019 numită pytiful3.py.

Nu este codul cel mai eficient pe care îl veți vedea vreodată și este destul de detaliat, dar face treaba.

Să începem prin a crea un sandbox pentru a juca. Din directorul nostru principal, creați un director pe raspberry pi numit kissir:

mkdir kissir /

și copiați conținutul fișierului pytiful3.py în director deschizând fișierul eșantion într-un editor de text și utilizând

sudo nano kissir / pytiful3.py

copiați / lipiți conținutul fișierului în scriptul nostru Python nou creat. Nu uitați să ne salvați munca folosind Ctrl-x, Y și introduceți.

Dacă doriți un tur rapid al scriptului, importăm modulele python de care vom avea nevoie, apoi ne definim butoanele și atribuim un pin gpio fiecăruia dintre cele 7 butoane. Vor fi 5 posturi de radio (nu ezitați să editați la preferința postului dvs.), un buton de oprire și un buton de oprire. În timp ce bucla adevărată rulează și rulează până când este apăsat un buton, care, în majoritatea cazurilor, va opri orice redare mpg123 existentă și va începe redarea stației atribuite butonului care a fost apăsat. Butonul de pauză / oprire nu este într-adevăr un buton de pauză, ci mai degrabă un comutator de oprire, deoarece nu putem întrerupe radioul pe internet. Radio prin Internet nu așteaptă pe nimeni.

Pasul 10: testați în Sandbox-ul nostru

Testează în Sandbox-ul nostru
Testează în Sandbox-ul nostru

Înainte de a ne implementa radioul, în timp ce ne aflăm încă în sesiunea ssh, navigați la folderul kissir unde este stocat scriptul nostru. Putem pur și simplu să rulăm manual scriptul din linia de comandă, tastând:

python3 pytiful3.py

Dacă ați analizat mai întâi codul, probabil ați observat că am lăsat câteva declarații tipărite, astfel încât să putem spune ce se întâmplă. Dacă totul a funcționat bine, vom primi o solicitare pe care scrie „Apăsați un buton”. Asta ne spune că scriptul nostru rulează și a trecut o verificare preliminară a codului. Încercarea mea inițială a avut o buclă infinită de „muzică întreruptă - apăsați butonul pentru a continua” și am aflat că aveam butonul de pauză conectat pentru a fi întotdeauna închis, în loc să fie deschis în mod normal. Sperăm că ai avut mai mult noroc cu pasul de lipit.

Ctrl-C va opri scriptul dacă trebuie să renunțați.

Deci, dacă vedeți „Apăsați un buton”, ce așteptăm? Selectați oricare dintre cele cinci butoane ale posturilor noastre de radio.

Sunt șanse să auziți probabil un difuzor care să inițieze redarea muzicii și nu mă pot abține cu asta pentru moment. Mpg123 permite un sufix "--preload 1" după adresa stației din comanda os.system, totuși nu aș putea spune dacă a făcut o diferență. Ar trebui să permită un tampon ușor.

Un alt bit de cod despre care s-ar fi putut întreba: există un semn „-f 7000” după apelul mpg123. Aceasta reduce volumul la o distanță mare de volumul maxim. Volumul complet ar fi de 32K. După cum am înțeles, scara volumului nu este o scară liniară, deci nu pot spune că este doar o cincime din volumul maxim, dar totuși foarte tare. A trebuit să fac acest lucru deoarece placa mea de sunet - placa de sunet vocală Google AIY, nu se joacă bine uneori cu Alsamixer.

Continuați să selectați butoanele la alegere, așezați-vă, relaxați-vă și bucurați-vă de confortul ascultării pentru moment.

Pasul 11: Configurați codul nostru pentru a rula automat la pornire

Deci, dacă totul funcționează bine și v-a plăcut proiectul nostru de comandă sandbox, acum este un moment bun pentru a automatiza încărcarea scriptului. Asigurați-vă că sunteți încă în directorul kissir și plasați codul scriptului în bin-ul utilizatorului:

sudo cp pytiful3.py / usr / local / bin /

Faceți executabil:

sudo chmod + x /usr/local/bin/pytiful3.py

Scrieți un script shell pentru al rula la pornire:

sudo nano pytiful3.sh

Și introduceți următorul text:

#! / bin / sh ### BEGIN INIT INFO # Oferă: pytiful3.py # Obligatoriu-Start: $ remote_fs $ syslog # Obligatoriu-Stop: $ remote_fs $ syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 ### END INIT INFO # asigurați-vă că nivelul volumului nu este puternic TODO # Efectuați funcții specifice atunci când vi se solicită de carcasa sistemului „$ 1” în start) ecou „Pornirea pytiful3.py” /usr/local/bin/pytiful3.py &;; stop) ecou „Oprirea pytiful3.py” pkill -f /usr/local/bin/pytiful3.py;; *) ecou „Utilizare: /etc/init.d/pytiful3.sh {start | stop}” ieșirea 1;; esac ieșire 0

Mutați-l la init.d:

sudo mv pytiful3.sh /etc/init.d/

Faceți executabil:

sudo chmod + x /etc/init.d/pytiful3.sh

Înregistrați scriptul pentru a rula la pornire:

sudo update-rc.d pytiful3.sh implicit

Pasul 12: Testați din nou

Acum că avem scriptul încărcat pentru a rula la pornire, trebuie doar să ne amintim că orice modificări pe care le facem trebuie să fie aduse în coșul de utilizatori, iar scriptul nostru frumos, kissir / pytiful3.py este doar un orfan acum. Dar, în ceea ce privește aspectul luminos, mai avem un sandbox de jucat. Probabil voi continua să joc cu scriptul, să fac modificări și să îl salvez ca o nouă versiune în viitorul apropiat. Este încă un proiect de lucru.

Să repornim, să așteptăm repornirea pi și, după aproximativ un minut, să apăsăm din nou un buton.

Dacă volumul dvs. audio este foarte scăzut, nu uitați că avem și volumul mixerului la 50%, deci îl putem crește corespunzător din promptul de comandă.

Pentru început, un lucru care este necesar este o valoare a volumului global, în loc să trebuiască să schimbați nivelul volumului de 5 ori diferite.

Hei, ce zici de lista aia de posturi de radio pe care am făcut-o la pasul 6? Ei bine, se pare că MPG123 are o comandă de selecție aleatorie. Este la fel de simplu ca să construiți o listă de adrese URL ale posturilor și, în loc să apelați la o adresă URL a posturilor de radio, pur și simplu utilizați

„btn1234_choice = random.choice (btn1234)”, imediat după identificarea listei noastre de stații, unde btn1234_choice este lista noastră. Nu uitați să utilizați paranteze pătrate în jurul listei noastre de stații separate prin virgule. Apelul de comandă subproces redă apoi alegerea noastră aleatorie:

subprocess.call (['mpg123', '-q', btn1234_choice, "--preload 1"])

Pasul 13: Box It Up și am terminat

Box It Up și am terminat
Box It Up și am terminat
Box It Up și am terminat
Box It Up și am terminat
Box It Up și am terminat
Box It Up și am terminat

Dacă ați ajuns la acest pas, lucrarea este finalizată! Felicitări - tocmai ai construit un player radio pe internet.

În funcție de echipamentul pe care îl aveți (difuzoare, dac și amplificator), s-ar putea să vă întrebați cum să ascundeți unele dintre cabluri. Poate o altă instrucțiune pentru o altă zi, dar dacă intenționați să faceți o unitate de locuințe pentru a ascunde unele fire, vă recomand să vă oferiți mult spațiu suplimentar.

După cum puteți vedea în fotografiile de mai sus - de fapt, am făcut două săruturi, unul folosind rămășițele unui lipici în urma primei mele încercări (din umorul deformat provin plăcile deformate). A doua unitate folosește excitatori de sunet mai degrabă decât difuzoare convenționale și, dacă ați luat numele dispozitivului pe una dintre capturile de ecran, l-am numit slimbox.

Mi s-a părut că acest proiect este destul de distractiv. De ambele ori. Cu siguranță nu este un proiect dificil, poate puțin consumator de timp, dar foarte plin de satisfacții. Sper să vă bucurați și de ascultarea voastră.

Recomandat: