Internet Radio con Raspberry PI

1

Di Stefano Lovati.

In questo articolo presentiamo un progetto di facile realizzazione, rivolto non solo agli appassionati audiofili, ma anche a chi vuole ascoltare la radio come fonte di intrattenimento o semplicemente per mantenersi informato. Il cuore del progetto è un Raspberry Pi, opportunamente programmato e configurato in veste di web o internet radio. Per i più esigenti è inoltre spiegato come aggiungere un DAC esterno (opzionale), capace di produrre un suono stereo di qualità superiore

L’avvento di Internet ha profondamente modificato molti aspetti della nostra vita di tutti i giorni.
Gli enormi progressi compiuti nel settore delle telecomunicazioni e delle tecnologie elettroniche hanno permesso la realizzazione di dispositivi mobili con prestazioni sempre più elevate e dimensioni estremamente compatte. In un’era in cui possiamo essere sempre e ovunque connessi, la radio (almeno quella tradizionale) è stata relegata a un ruolo marginale.
Perché allora non unire l’utile al dilettevole, realizzando un semplice progetto che permetterà a chiunque di apprezzare l’elevata qualità audio di una radio completamente digitale connessa a internet?
Il Raspberry Pi 3 B/B+ rappresenta un’ottima soluzione per questo tipo di applicazioni. Oltre ad essere economico e facilmente reperibile anche online, il Raspberry è un piccolo computer (o meglio, un SBC, acronimo di Single Board Computer) in grado di supportare numerose applicazioni ambite dai maker: controllo di sensori, attuatori e display, sistemi per la videosorveglianza e il riconoscimento di immagini, applicazioni nel settore video e audio.
La versione 3 di questa versatile scheda include un transceiver WiFi e Bluetooth integrato, candidandola a un immediato utilizzo per i nostri scopi.
In particolare, utilizzeremo l’interfaccia WiFi per eseguire lo streaming audio dai canali radio disponibili su internet e inseriti nella nostra playlist.

Raspberry Pi per applicazioni audio

È inutile negarlo, il Raspberry Pi (sin dalle versioni iniziali 1 A e 1 B) è stata una fonte di ispirazione per un’intera generazione di maker, hobbisti e semplici appassionati che l’hanno impiegato con successo per realizzare numerose applicazioni.
Nonostante ciò, il potenziale del Raspberry Pi come piattaforma audio di elevata qualità è stato pesantemente limitato dalla sua impossibilità di generare in modo nativo un segnale audio ad alta fedeltà.
L’uscita HDMI ha ovviamente la possibilità di generare (oltre al segnale video) un segnale audio di ottima qualità, ma non è adatta alla nostra applicazione.
Esiste comunque la possibilità di utilizzare l’uscita audio, disponibile sull’apposito connettore jack da 3,5 mm (in Figura 1 è evidenziato il connettore della scheda Raspberry Pi3 B+).

Figura 1: il connettore jack da 3,5 mm con l’uscita audio

 

Tutte le schede Raspberry Pi rilasciate a partire dal 2012 (ad eccezione della serie ultra compatta Pi Zero) dispongono infatti di un jack da 3,5 mm con uscita audio. Il relativo circuito elettrico (liberamente accessibile sulla piattaforma GitHub [1]) è relativamente semplice, tenendo conto che la maggior parte del lavoro è compiuta all’interno del SoC (System on Chip) Broadcom che equipaggia la board.
Lo schema elettrico di Figura 2 mostra la sezione audio presente sul Raspberry Pi 3 B+. A sinistra sono visibili gli ingressi, rappresentati da una coppia di segnali PWM, mentre sulla destra è presente il connettore jack audio. Possiamo subito osservare, con un certo stupore, che tutti i componenti utilizzati nel circuito sono di tipo discreto. In prossimità del connettore audio notiamo subito la presenza di un BAV99, un componente basato su una coppia di diodi in anti parallelo, con caratteristiche di elevata velocità di commutazione ed elevata tensione di breakdown. La loro funzione è quella di proteggere gli ingressi da tensioni eccessivamente elevate che potrebbero attraversare il connettore. A sinistra, alimentato dai segnali PWM, è invece presente un NC7WZ16, un doppio buffer ad elevata velocità la cui funzione è quella di ridurre l’impedenza del segnale in ingresso. Il resto dei componenti forma una rete RC, applicata sia al canale destro (AUDIO_L) che a quello sinistro (AUDIO_R). In particolare, le coppie di resistenze e condensatori R16/C59 e R18/C62 formano un filtro passa basso che converte il segnale PWM in ingresso in un segnale analogico in uscita. La frequenza di taglio dei filtri passa basso è di poco superiore a 7 kHz. Le coppie di resistenze e condensatori R17/C83 e R19/C80 formano invece un filtro passa alto, con frequenza di taglio di circa 33 kHz, la cui funzione è quella di eliminare le frequenze troppo basse che potrebbero provocare dei fastidiosi rumori negli altoparlanti. Certamente una frequenza di 7 kHz è ben lontana dalle prestazioni di un sistema Hi-Fi, ma tale valore deve essere inteso come la frequenza a partire dalla quale la risposta comincia a degradare e il filtro dovrebbe rimanere attivo fino a circa il doppio di tale frequenza.

 

Figura 2: Raspberry Pi 3 B+: schema elettrico del circuito audio

 

Possiamo pertanto concludere che il circuito audio integrato nel Raspberry Pi svolge il proprio compito in modo onesto, senza tuttavia eccellere a livello di prestazioni. Per chi non si accontenta di questi livelli qualitativi la soluzione c’è ed è anche relativamente economica.
È infatti sufficiente abbinare al Raspberry Pi un DAC esterno comandato tramite interfaccia I2S. Vediamo quindi in cosa consiste questa interfaccia

This content has been restricted to logged-in users only. Please login to view this content.

Informazioni sull'autore

Sono Stefano, nato a Milano nel 1963. Dopo aver conseguito la laurea in Ingegneria Elettronica al Politecnico di Milano, ho iniziato la mia attività lavorativa come sviluppatore firmware e software. Nel corso degli anni ho vissuto e "cavalcato" la progressiva trasformazione del mondo embedded, dai primi microprocessori a 8 bit programmabili esclusivamente in assembler ai più recenti Soc, FPGA, DSP e logiche programmabili con prestazioni e caratteristiche di assoluto rilievo. Mi interesso di tecnologia ed elettronica a 360°, dedicando parte del mio tempo libero allo studio di nuovi componenti e alla realizzazione di piccoli progetti.

1 commento su "Internet Radio con Raspberry PI"

  1. Bellissimo articolo, ottima spiegazione anche per i neofiti come me.
    Unico neo che riguarda Volumio, se cade la connessione internet e ti fidi della funzione sveglia con una webradio, sei fregato.
    Un suggerimento agli sviluppatori, creare un plugin che possa far suonare automaticamente una playlist locale in caso di disconnessione con relativo “ritorno” alla webradio se la connessione torna attiva.

    Grazie per il vostro lavoro.

Lascia un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.