Taula de continguts:

Ràdio sènior: Raspberry Pi: 8 passos
Ràdio sènior: Raspberry Pi: 8 passos

Vídeo: Ràdio sènior: Raspberry Pi: 8 passos

Vídeo: Ràdio sènior: Raspberry Pi: 8 passos
Vídeo: Raspberry Pi - Что можно сделать? Готовые проекты. Есть ли смысл? Как научиться? 2024, De novembre
Anonim
Ràdio sènior: Raspberry Pi
Ràdio sènior: Raspberry Pi

El projecte de ràdio sènior és un dispositiu de ràdio per internet accessible de codi obert dissenyat amb components tant de maquinari com de programari. Està destinat a ser utilitzat per a usuaris familiaritzats amb el control d’una ràdio de butxaca on els dials controlen el volum i l’estació de ràdio seleccionada. El projecte es fa amb un disseny centrat en l’usuari, centrat en un usuari que vol una mida i controls similars a la d’una ràdio de mà estàndard.

Es va crear per satisfer les necessitats de permetre que les persones amb discapacitat poguessin escoltar els milers de continguts de transmissió d’Internet diferents que normalment normalment només estan disponibles a través d’un navegador d’Internet. Moltes persones no tenen la possibilitat d’utilitzar aquest dispositiu fàcilment, de manera que aquest disseny pretén fer una interfície familiar per a una tecnologia moderna.

La funcionalitat principal es troba a Github, emmagatzemada en un programa Python 3.7.3 anomenat seniorRadio.py. Llegeix i escriu un fitxer json per emmagatzemar l’estat de la ràdio, de manera que quan l’apagueu recordarà el nivell d’àudio actual i l’estació seleccionada. A més, es llegeix un fitxer json allotjat en línia que podeu canviar. Això us permet actualitzar les estacions de ràdio de manera remota si ho doneu a algú més.

Actualment està creat per connectar-se a un altaveu bluetooth, però també es pot fer que reprodueixi un altaveu integrat.

És probable que el creador d’aquest dispositiu no sigui l’usuari i necessiti almenys una mica d’experiència en electrònica i coneixements bàsics de programació. L’experiència de Linux també és molt útil.

Per a l'usuari, la funcionalitat és senzilla:

En engegar, reproduirà l'última emissora seleccionada al dispositiu d'àudio predeterminat. El dial esquerre controla l'estació, on uns quants clics del dial es converteixen en un URL nou. Es desplaçarà després de la darrera o primera entrada. El dial dret controla el nivell d'àudio. El LED indica que el programa està encès. I el polsador posa en pausa o "apaga" la ràdio. Per tant, un cop engegat, l’usuari només pot prémer el botó per aturar / reproduir o “apagar / encendre”, la ràdio i els dos dials per controlar-la.

Subministraments

Enllaçat a cada element hi ha l’específic que he utilitzat. Em costen uns 60 dòlars en total, amb sobres de subministraments.

Coneixements bàsics d’electrònica i Linux: per al muntatge i la depuració

Raspberry Pi Zero W (Zero WH té capçaleres pre-soldades i probablement útils)

Targeta MicroSD de 8 GB + i capacitat o

Adaptador d'alimentació MicroUSB 5V: l'enllaç també inclou adaptador microHDMI i adaptador microUSB OTG a USB A per configurar-los si els necessiteu

Altaveu Bluetooth

Cables de pont M / F i M / M

2 Codificador rotatiu: el mateix enllaç que l'anterior

Tauleta reduïda

Polsador

LED (opcional): comprat LED + polsador superior

Caixa per envasar

Pas 1: Configuració (sense cap) de Raspberry Pi W

Configuració (sense cap) Raspberry Pi W
Configuració (sense cap) Raspberry Pi W

Hem de configurar el sistema operatiu al raspberry pi que executarà el programari. Res d’això no és exclusiu d’aquest projecte. Per a la depuració, us recomanaria configurar-lo perquè també hi pugueu accedir en mode sense cap. Això vol dir que accediu al pi mitjançant la vostra xarxa WiFi a través de la interfície gràfica d’usuari o d’un terminal SSH i no necessiteu teclat, ratolí i monitor per utilitzar-lo cada cop. Podeu fer-ho sense necessitat de connectar-vos mai a un monitor / ratolí / teclat si teniu més experiència en tecnologia. Alguns exemples d’instruccions aquí. Tanmateix, és menys senzill i a sota hi ha una altra manera de configurar-lo.

Aquesta primera vegada és probable que necessiteu:

  • Raspberry Pi W
  • Adaptador de targeta MicroSD a SD [per escriure el sistema operatiu a la targeta SD]
  • Targeta MicroSD (~ 8 GB +) [per emmagatzemar el sistema operatiu i el nostre programa]
  • Potència MicroUSB (5V)
  • MicroUSB a USB A [per a ratolí / teclat]
  • Adaptador Mini HDMI a HDMI [per a sortida de pantalla]
  • Teclat
  • Ratolí
  • Monitor

En primer lloc, haureu de fer flaixar el sistema operatiu a la targeta micro SD rPi.

He utilitzat raspian buster, el descarregueu a un ordinador amb una lectura / escriptura de targeta SD i, a continuació, feu flipar el sistema operatiu raspian a la targeta SD. BalenaEtcher és un programari fàcil per fer-ho

A continuació, poseu la targeta SD a la ranura pi, connecteu el monitor, el teclat i l’alimentació. Seguiu els passos de configuració que us demana raspian, inclosa la connexió a la vostra xarxa WiFi i l’aparellament de l’altaveu bluetooth a través de la interfície gràfica d’usuari. Una bona pràctica seria actualitzar-lo mitjançant les ordres següents

sudo apt-get update

sudo apt-get upgrade

Si voleu incloure el marcatge de pi sense cap, haurem d’agafar primer l’adreça IP del pi. A través d 'un terminal el podeu trobar a través de

ifconfig

comandament. A continuació, haureu d'activar SSH i VNC a través de les opcions d'interfície de

sudo raspi-config

Després d'un reinici, ara podeu provar l'accés al pi mitjançant SSH o VNC. SSH és només una interfície de terminal i és possible que sigui més fàcil utilitzar la interfície gràfica d’usuari per emparellar un altaveu bluetooth. Podeu utilitzar un programa com connectar-vos a VNC per accedir fàcilment al vostre pi en un equip separat de la vostra xarxa. Podeu utilitzar-hi un programa com massilla a SSH.

A més, podeu configurar un compte al núvol de VNC perquè pugueu accedir al dispositiu des de la xarxa si cal

Pas 2: instal·leu el programari de ràdio sènior

Instal·leu el programari de ràdio sènior
Instal·leu el programari de ràdio sènior

Això es pot fer des d'una finestra terminal del raspberry pi. Primer assegureu-vos que teniu git instal·lat

sudo apt-get install git

Depenent del sistema operatiu que hàgiu instal·lat, aquests passos poden ser diferents ja que és possible que hàgiu d'instal·lar paquets addicionals, el sistema us indicarà si és així. Primer cal descarregar el codi de ràdio sènior de github. https://github.com/Bunborn/seniorRadio L’ideal seria que feu la nostra pròpia reposició perquè pugueu fer canvis i canviar fàcilment les emissores de ràdio de la mateixa manera que jo. Forqueu la reposició si és així

Tanmateix, podeu utilitzar el mateix que el meu sense cap problema si voleu allotjar el fitxer json de ràdio en un altre lloc

A continuació, cloneu la reposició a la ubicació que vulgueu. El directori per defecte està bé. Per obtenir l'URL del repositori de github que vulgueu, feu clic al botó de clonació o descàrrega verd.

De nou a la finestra del terminal, git clonar

Ara hauríeu de veure un directori addicional anomenat seniorRadio quan busqueu ls. Fantàstic!

El codi es vol autodocumentar, seria útil fer-hi una ullada. Especialment per a finalitats de depuració i si canvieu el sistema.

Pas 3: instal·leu programari addicional

Instal·leu programari addicional
Instal·leu programari addicional

Abans de passar al circuit i provar-lo, també hem de descarregar-lo VLC i l’api python. És possible que ja tingueu instal·lat VLC. Les dues primeres ordres actualitzaran el pi, i les dues darreres ordres següents instal·laran VLC i, a continuació, l’api python

sudo apt-get update

sudo apt-get upgrade

sudo snap instal·la VLC

sudo apt-get install vlc-python

A més, també instal·leu gpiozero, que utilitzarem per a la interfície amb els pins GPIO del pi. És possible que ja el tingueu instal·lat en funció del vostre sistema operatiu.

sudo apt-get install gpiozero

Pas 4: cerqueu reproduccions d’emissores de ràdio

Cerqueu corrents d’emissores de ràdio
Cerqueu corrents d’emissores de ràdio

A continuació, una de les parts més divertides! És hora de seleccionar els fluxos que vulgueu.

Al meu fitxer internetStations.json podeu veure els enllaços del meu flux, principalment per a notícies i música. Però hi ha un munt de contingut allotjat. La clau aquí és trobar l'adreça URL del flux directe. Per exemple, les estacions de notícies i música de la BBC es poden trobar aquí en aquest bloc. Aquests fluxos directes no tindran cap interfície gràfica i es reproduiran automàticament a través del reproductor multimèdia del navegador. Aquests són els URL que necessitem perquè VLC els pugui llegir. Podeu provar qualsevol enllaç ràpidament a la vostra pàgina web o mitjançant VLC al vostre ordinador normal per assegurar-vos que funcionarà al pi.

Per trobar aquestes estacions, podeu cercar la transmissió directa en línia si el servei l’allotja. Una manera ràpida també podria ser reproduir el flux, fer clic amb el botó dret del ratolí al navegador i prémer "inspecciona l'element". Aneu a la pestanya de xarxa i hauria d'indicar l'URL "directe" del flux. Aquest vídeo de youtube ho demostra. Actualitzar la pàgina amb la pestanya oberta hauria d’ajudar.

Un cop tingueu les vostres estacions, les voleu posar en línia perquè el vostre programa python seniorRadio les pugui agafar. Hi ha moltes opcions per fer-ho, podeu utilitzar llocs com Github, bitbucket o fins i tot sourceforge. L’objectiu principal d’allotjar aquesta llista en línia és que l’usuari que la configuri pugui canviar la llista de transmissions en línia de forma remota.

Al començament del programa Python hi ha una variable anomenada URL, simplement canvieu-la perquè sigui l'URL del fitxer json amb els enllaços d'URL de l'estació

Podeu seguir el mateix format que el meu fitxer internetStation.json. Si volíeu fer servir també github, podríeu simplement bifurcar el meu dipòsit seniorRadio i editar el vostre propi fitxer internetStation.json i apuntar-lo a aquest URL "cru". Podeu trobar-ho a continuació a la interfície gràfica d’usuari de Github un cop heu fet clic al fitxer.

Pas 5: Creeu circuits

Crea circuits
Crea circuits

Ara hem de configurar el circuit. Això canviarà en funció del vostre equip, però a continuació es mostra com he configurat el meu.

pinout.xyz/ com a referència sobre quins pins són quins. Com que fem servir la biblioteca gpiozero, només ens preocupa la numeració de pins BCM. Tingueu en compte que he comprat uns quants codificadors rotatius KY040 addicionals, els dials, per provar-los, ja que no tots tenen la mateixa precisió. Cadascun tindria una sortida "rebotant" o simplement incorrecta, així que vaig escollir la millor de les dues que tenia. Al codi, observareu que també hi ha alguns passos per limitar aquest rebot.

Vaig connectar el meu polsador al pin 17 i a terra de BCM

El meu LED a una resistència de 1k ohm, a continuació, el pin 27 BCM i terra

Els meus codificadors rotatius KY040 tenien el cable + a 5 V, el GND a terra i el SW desconnectat. Aquests es van connectar a través d'una mini taula

Pin dt del codificador rotatiu de l'estació connectat al pin 21 de BCM

Pin clk del codificador rotatiu de l'estació connectat al pin 20 de BCM

Pin de codificador rotatiu de nivell d’àudio connectat al pin 19 de BCM

Pin clk del codificador rotatiu de nivell d’àudio connectat al pin 16 de BCM

Si canvieu aquests pins, només cal que actualitzeu el número del programa python, on també s'estableix el controlador

Vaig fer servir una mini taula per facilitar-ho. També he utilitzat cables de pont M / M i M / F per facilitar la interfície. He soldat alguns cables de pont als passadors del polsador / LED que he comprat anteriorment. Per no soldar-se, podríeu obtenir botons i LEDs que ja tinguin cables de pont o que es connectin fàcilment a un.

Pas 6: proveu-ho

Ara hauríeu de tenir un sistema que funcioni. Provem-ho. Aneu a la carpeta amb el programa python, probablement:

cd seniorRadio

python3 seniorRadio.py

Actualment, hi ha un retard de 45 segons a l'inici del programa per donar-li temps a trobar l'altaveu bluetooth encès. Podeu comentar aquesta línia si no la necessiteu durant les proves. És possible que el programa us indiqui que heu d’instal·lar paquets addicionals, si és així, endavant. També pot ser que hagueu d’instal·lar una versió més nova de Python.

sudo apt-get install python3.7

Alguns problemes possibles, fins i tot si s'executa el programa:

No sento cap so

Assegureu-vos que l’altaveu està activat i seleccionat al raspberry pi. A través de la interfície gràfica d’usuari hauríeu de poder aparellar-lo i seleccionar-lo com a dispositiu de sortida d’àudio. A més, comproveu els controladors d'àudio. Un problema habitual és que potser haureu de tornar a instal·lar el paquet pulseaudio

Àudio entrecortat o retallat

Proveu d’apropar el dispositiu al vostre encaminador WiFi. A més, assegureu-vos que l’altaveu bluetooth és a prop. També podria ser un problema amb el controlador d'àudio

Pas 7: poseu-lo en un recinte permanent

Introduïu un recinte permanent
Introduïu un recinte permanent

A continuació, col·loqueu-lo en una caixa o dispositiu similar perquè visqui permanentment. Us recomano tenir-ne una a la qual pugueu accedir més endavant per depurar-la. Vaig aconseguir aquesta petita caixa de fusta en una botiga d'artesania per 2 dòlars i la vaig enllaçar a la pàgina de subministraments. Un dels meus amics em va recomanar una caixa de cigars.

Després vaig tallar forats a la part davantera del polsador i dels interruptors rotatius i vaig perforar un forat a la part posterior de la caixa per al cable d’alimentació microUSB.

Vaig provar el muntatge i vaig assegurar-me que funcionés, i voilà!

Finalment, he utilitzat la súper cola per mantenir premut el polsador. La meva taula tenia un adhesiu a la part inferior que connectava a una part de la caixa. Vaig utilitzar una petita tira de cinta adhesiva per fixar la part posterior del pi a la caixa, de manera que es pogués moure més tard si fos necessari.

Pas 8: configureu el programa per executar-lo a l'inici

Finalment, és probable que vulgueu que aquest programa python s’executi a l’inici del raspberry pi, de manera que no cal que ho feu manualment. Hi ha moltes maneres de fer-ho que podeu trobar en línia.

Personalment, el vaig configurar utilitzant la segona manera d’aquest tutorial de SparkFun:

Aquí espera que el sistema entri a l'escriptori gràfic abans d'executar el programa. Després, el programa Python retarda 45 segons per donar temps al sistema de tornar a connectar-se a l'altaveu bluetooth. Si feu servir un altaveu integrat, podeu eliminar aquest retard. Tingueu en compte que l’altaveu bluetooth hauria d’estar encès primer. (per a la solució bluetooth)

Ara podeu provar d’apagar i tornar a engegar el vostre pi. Al cap d'uns 90 segons, el vostre pi hauria de començar a reproduir les seqüències de ràdio una vegada més. En prémer el botó, es posarà en pausa / reproducció. Nota sobre aquests reinicis, torna a llegir aquell fitxer json d’InternetStations, de manera que si canvieu d’estació, heu de reiniciar el dispositiu perquè funcioni. Enhorabona!

Si heu fet això o heu fet modificacions al projecte, feu-m'ho saber.

Pàgina de Github:

Recomanat: