Sommario:

Senior Radio - Raspberry Pi: 8 passaggi
Senior Radio - Raspberry Pi: 8 passaggi

Video: Senior Radio - Raspberry Pi: 8 passaggi

Video: Senior Radio - Raspberry Pi: 8 passaggi
Video: Raspberry Pi HF radio - step by step instructions 2024, Settembre
Anonim
Radio Senior - Raspberry Pi
Radio Senior - Raspberry Pi

Il progetto Senior Radio è un dispositivo radio Internet progettato e accessibile open source con componenti hardware e software. È destinato agli utenti che hanno familiarità con il controllo di una radio tascabile in cui i quadranti controllano il volume e la stazione radio selezionata. Il progetto è realizzato con un design incentrato sull'utente, focalizzato su un utente che desidera dimensioni e controlli simili a una radio portatile standard.

È stato creato per soddisfare le esigenze di consentire alle persone con disabilità di ascoltare le migliaia di diversi contenuti in streaming Internet che di solito sono normalmente disponibili solo tramite un browser Internet. Molte persone non hanno la capacità di utilizzare facilmente un dispositivo del genere, quindi questo design mira a creare un'interfaccia familiare per una tecnologia moderna.

La funzionalità principale è su Github, memorizzata in un programma python 3.7.3 chiamato seniorRadio.py. Legge e scrive un file json per memorizzare lo stato della radio, così quando la spegni si ricorderà il livello audio corrente e la stazione selezionata. Inoltre, legge un file json ospitato online che puoi modificare! Ciò ti consente di aggiornare le stazioni radio da remoto se lo stai dando a qualcun altro.

Attualmente è stato creato per connettersi a un altoparlante bluetooth, ma potrebbe essere facilmente realizzato per riprodurre anche un altoparlante integrato.

Il creatore di questo dispositivo probabilmente non è l'utente e ha bisogno di almeno una certa esperienza con l'elettronica e le conoscenze di programmazione di base. Anche l'esperienza con Linux è molto utile.

Per l'utente, la funzionalità è semplice:

All'accensione riprodurrà l'ultima stazione selezionata sul dispositivo audio predefinito. Il quadrante sinistro controlla la stazione, dove pochi clic del quadrante si trasformano in un nuovo URL. Verrà ripristinato dopo l'ultima o la prima voce. La manopola destra controlla il livello audio. Il LED indica che il programma è attivo. E il pulsante mette in pausa o "spegne" la radio. Quindi, una volta acceso, un utente può semplicemente premere il pulsante per mettere in pausa/riprodurre, o "spegnere/accendere", la radio e i due quadranti per controllarla.

Forniture

Collegato su ogni articolo è quello specifico che ho usato. Mi è costato circa $ 60 in totale con un sacco di scorte rimaste!

Conoscenze di base di elettronica e Linux - per l'assemblaggio e il debug

Raspberry Pi Zero W (Zero WH ha le intestazioni pre-saldate e probabilmente utili)

Scheda MicroSD-8 GB+ e capacità disattivata

Adattatore di alimentazione MicroUSB 5V - Il collegamento include anche l'adattatore microHDMI e l'adattatore microUSB da OTG a USB A per la configurazione se ne hai bisogno

Altoparlante Bluetooth

Cavi jumper M/F e M/M

2 Encoder rotativo - stesso collegamento come sopra

Tagliere piccolo

Premi il bottone

LED (opzionale) - LED acquistato + pulsante sopra

Scatola per imballaggio

Passaggio 1: configurazione (senza testa) Raspberry Pi W

Configurazione (senza testa) Raspberry Pi W
Configurazione (senza testa) Raspberry Pi W

Dobbiamo configurare il sistema operativo sul raspberry pi che eseguirà il software. Niente di tutto questo è unico per questo progetto. Per il debug, ti consiglio di configurarlo in modo da poterlo accedere anche in modalità headless. Ciò significa che accedi al pi tramite la tua rete WiFi tramite GUI o un terminale SSH e non hai bisogno di tastiera, mouse e monitor per usarlo ogni volta. Potresti farlo senza doverti connettere a un monitor/mouse/tastiera se sei più esperto di tecnologia. Alcune istruzioni di esempio qui. Tuttavia è meno semplice e di seguito è riportato un altro modo per configurarlo.

Questa prima volta avrai probabilmente bisogno di:

  • Raspberry Pi W
  • Adattatore da MicroSD a scheda SD [per scrivere il sistema operativo su scheda SD]
  • Scheda MicroSD (~ 8 GB+) [per memorizzare il sistema operativo e il nostro programma]
  • Alimentazione MicroUSB (5V)
  • Da MicroUSB a USB A [per mouse/tastiera]
  • Adattatore da mini HDMI a HDMI [per uscita display]
  • Tastiera del computer
  • Topo
  • Tenere sotto controllo

Innanzitutto, dovrai eseguire il flashing del sistema operativo sulla scheda micro SD rPi.

Ho usato raspian buster, lo scarichi su un computer con una scheda di lettura/scrittura SD e poi esegui il flashing del sistema operativo raspian sulla scheda SD. BalenaEtcher è un software facile per farlo

Quindi inserisci la scheda SD nello slot pi, collega il monitor, la tastiera e l'alimentazione. Procedi attraverso i passaggi di configurazione richiesti da raspian, inclusa la connessione alla rete WiFi e l'associazione dell'altoparlante bluetooth tramite la GUI. Una buona pratica sarebbe aggiornarlo usando i seguenti comandi

sudo apt-get update

sudo apt-get upgrade

Se vuoi includere la marcatura del tuo pi senza testa, dovremo prima prendere l'indirizzo IP del pi greco. Attraverso un terminale puoi trovarlo tramite il

ifconfig

comando. È quindi necessario abilitare SSH e VNC sulle opzioni di interfaccia in

sudo raspi-config

Dopo un riavvio, ora puoi testare l'accesso al pi tramite SSH o VNC. SSH è solo un'interfaccia terminale e potresti trovare più semplice utilizzare la GUI per accoppiare un altoparlante bluetooth. Puoi utilizzare un programma come VNC connect per accedere facilmente al tuo pi su un computer separato sulla tua rete. Puoi usare un programma come putty per SSH al suo interno.

Inoltre, puoi configurare un account cloud VNC in modo da poter accedere al dispositivo fuori rete, se necessario

Passaggio 2: installare il software radio senior

Installa il software radio senior
Installa il software radio senior

Questo può essere fatto da una finestra terminale di Raspberry Pi. Per prima cosa assicurati di aver installato git

sudo apt-get install git

A seconda del sistema operativo installato, questi passaggi potrebbero essere diversi in quanto potrebbe essere necessario installare pacchetti aggiuntivi, il sistema ti dirà se è così. Per prima cosa dobbiamo scaricare il codice radio senior da github. https://github.com/Bunborn/seniorRadio Idealmente, stai creando il nostro repository in modo da poter apportare modifiche e cambiare facilmente le stazioni radio come faccio io. Forcella il repository in caso affermativo

Tuttavia, puoi usare lo stesso del mio senza problemi se vuoi ospitare il tuo file json radio in un altro punto

Quindi clona il repository in qualsiasi posizione desideri che sia. La directory predefinita va bene. Ottieni l'URL per il repository github che desideri premendo il clone verde o il pulsante di download.

Tornando alla finestra del terminale, git clone

Ora dovresti vedere una directory aggiuntiva chiamata seniorRadio quando guardi usando ls. Fantastico!

Il codice è pensato per essere autodocumentante, dargli un'occhiata sarebbe utile. Soprattutto per scopi di debug e se stai cambiando il sistema.

Passaggio 3: installa software aggiuntivo

Installa software aggiuntivo
Installa software aggiuntivo

Prima di passare al circuito e testarlo, dobbiamo anche scaricare VLC e l'API Python per esso. Potresti avere già installato VLC. I primi due comandi aggiorneranno il pi e gli ultimi due comandi sotto installeranno VLC e quindi l'API Python

sudo apt-get update

sudo apt-get upgrade

sudo snap install VLC

sudo apt-get install vlc-python

Inoltre, installa anche gpiozero, che useremo per interfacciarci con i pin GPIO del pi. Potresti averlo già installato a seconda del tuo sistema operativo.

sudo apt-get install gpiozero

Passaggio 4: trova gli stream delle stazioni radio

Trova gli stream delle stazioni radio
Trova gli stream delle stazioni radio

Successivamente, una delle parti più divertenti! È ora di selezionare i flussi che desideri.

Nel mio file internetStations.json puoi vedere i miei collegamenti in streaming, principalmente per notizie e musica. Ma ci sono un sacco di contenuti ospitati là fuori. La chiave qui è trovare l'indirizzo URL del flusso diretto. Ad esempio, le stazioni di notizie e musica della BBC possono essere trovate qui su questo blog. Questi flussi diretti non avranno alcuna interfaccia grafica e riprodurranno automaticamente il flusso tramite il lettore multimediale del browser. Questi sono gli URL di cui abbiamo bisogno in modo che VLC possa leggerli! Puoi testare rapidamente qualsiasi collegamento nel tuo browser web o tramite VLC sul tuo normale computer per assicurarti che funzionerà sul pi.

Per trovare queste stazioni, puoi cercare il flusso diretto online se il servizio lo ospita. Un modo rapido potrebbe anche essere quello di riprodurre lo stream, fare clic con il tasto destro del mouse sul browser e premere "ispeziona elemento". Passare alla scheda di rete e dovrebbe indicare l'URL "diretto" del flusso. Questo video di YouTube lo dimostra. L'aggiornamento della pagina con la scheda aperta dovrebbe aiutare.

Una volta che hai le tue stazioni, vuoi metterle online in modo che il tuo programma python seniorRadio possa prenderle. Ci sono molte opzioni per farlo, potresti usare siti come Github, bitbucket o anche sourceforge. Lo scopo principale dell'hosting di questo elenco online è che l'utente che lo configura possa modificare l'elenco di streaming online in remoto.

All'inizio del programma Python c'è una variabile chiamata url, cambia semplicemente questo per essere l'URL del tuo file json con i collegamenti URL della stazione

Puoi seguire lo stesso formato del mio file internetStation.json. Se volessi usare anche github, potresti semplicemente eseguire il fork del mio repository seniorRadio e modificare il tuo file internetStation.json e puntarlo a quell'URL "grezzo". Puoi trovarlo di seguito nella GUI di Github dopo aver fatto clic sul file.

Passaggio 5: creare circuiti

Crea circuiti
Crea circuiti

Ora dobbiamo configurare il circuito. Questo cambierà in base alla tua attrezzatura, ma di seguito è come ho impostato il mio.

pinout.xyz/ per riferimento su quali pin sono quali. Poiché stiamo utilizzando la libreria gpiozero, ci occupiamo solo della numerazione dei pin BCM. Nota che ho acquistato alcuni encoder rotativi KY040 extra - i quadranti - per testarli poiché non tutti hanno la stessa precisione. Ognuno avrebbe avuto un "rimbalzo", o semplicemente un output errato, quindi ho scelto il migliore dei due che avevo. Nel codice noterai che ci sono alcuni passaggi per limitare anche questo rimbalzo.

Ho collegato il mio pulsante al pin 17 BCM e alla massa

Il mio LED a un resistore da 1k ohm, quindi pin 27 BCM e massa

I miei encoder rotativi KY040 avevano il cavo + a 5V, il GND a terra e il SW scollegato. Questi erano collegati su una mini breadboard

Pin dt encoder rotativo stazione collegato al pin 21. BCM

Pin clk encoder rotativo stazione collegato al pin BCM 20

Pin dt encoder rotativo livello audio collegato al pin BCM 19

Pin clk dell'encoder rotativo del livello audio collegato al pin BCM 16

Se cambi questi pin, aggiorna semplicemente il numero nel programma Python anche dove imposta i gestori

Ho usato una mini breadboard per rendere questo più facile. Ho usato anche i ponticelli M/M e M/F per facilitare l'interfaccia. Ho saldato alcuni cavi dei ponticelli sui pin del pulsante/LED che ho acquistato in precedenza. Per non saldare, potresti ottenere pulsanti e LED che hanno già cavi di ponticello o si collegherebbero facilmente a uno.

Passaggio 6: provalo

Ora dovresti avere un sistema funzionante! Mettiamolo alla prova. Passa alla cartella con il programma python, probabilmente:

cd seniorRadio

python3 seniorRadio.py

Attualmente, c'è un ritardo di 45 secondi all'inizio del programma per dargli il tempo di trovare l'altoparlante bluetooth all'accensione. Puoi commentare questa riga se non ne hai bisogno durante il test. Il programma potrebbe dirti che devi installare pacchetti aggiuntivi, vai avanti in tal caso. Potrebbe anche essere necessario installare una versione più recente di Python.

sudo apt-get install python3.7

Alcuni possibili problemi anche se il programma viene eseguito:

non sento alcun suono

Assicurati che l'altoparlante sia acceso e selezionato nel tuo Raspberry Pi. Attraverso la GUI dovresti essere in grado di accoppiarlo e quindi selezionarlo come dispositivo di uscita audio. Inoltre, controlla i tuoi driver audio. Un problema comune è che potresti dover reinstallare il pacchetto pulseaudio

Audio discontinuo o in entrata e in uscita

Prova ad avvicinare il dispositivo al tuo router WiFi. Inoltre, assicurati che l'altoparlante bluetooth sia vicino. Potrebbe anche essere un problema di driver audio

Passaggio 7: mettere in un recinto permanente

Mettere in un recinto permanente
Mettere in un recinto permanente

Quindi, mettendolo in una scatola o in un dispositivo simile in modo che possa vivere in modo permanente. Ti consiglio di averne uno a cui puoi accedere in seguito ancora per il debug. Ho preso questa piccola scatola di legno in un negozio di artigianato per $ 2 e l'ho collegata alla pagina dei materiali di consumo. Uno dei miei amici mi ha consigliato una scatola di sigari.

Ho quindi ritagliato dei fori nella parte anteriore per il pulsante e gli interruttori rotanti e ho praticato un foro nella parte posteriore della scatola per il cavo di alimentazione microUSB.

Ho testato la montatura e mi sono assicurato che funzionasse, e voilà!

Infine, ho usato la colla super per tenere premuto il pulsante. La mia breadboard aveva un adesivo sul fondo che ho collegato a una parte della scatola. Ho usato una piccola striscia di nastro adesivo per fissare il retro del pi alla scatola, in modo che potesse essere spostato in seguito, se necessario.

Passaggio 8: programma di installazione da eseguire all'avvio

Infine, probabilmente vorrai che questo programma python venga eseguito all'avvio di raspberry pi, quindi non è necessario farlo manualmente. Ci sono molti modi per farlo che puoi trovare online.

Personalmente, l'ho configurato utilizzando il secondo modo in questo tutorial SparkFun:

Qui, attende che il sistema acceda al desktop grafico prima di eseguire il programma. Viene quindi ritardato dal programma Python per 45 secondi per dare al sistema il tempo di riconnettersi all'altoparlante bluetooth. Se utilizzi un altoparlante integrato, puoi rimuovere questo ritardo. Nota che l'altoparlante bluetooth dovrebbe essere acceso per primo! (per la soluzione bluetooth)

Ora puoi provare a spegnere e riaccendere il tuo pi! Dopo circa 90 secondi il tuo pi dovrebbe iniziare a riprodurre nuovamente i flussi radio. Premendo il pulsante si metterà in pausa/riproduzione. Nota su questi riavvii rilegge quel file json di internetStation, quindi se cambi le tue stazioni devi riavviare il dispositivo per farle funzionare. Congratulazioni!

Se hai fatto questo, o hai apportato modifiche al progetto, per favore fammelo sapere!

Pagina Github:

Consigliato: