Gli spot in TV ad alto volume: un problema che si può risolvere con Arduino!

Vi siete mai accorti di quanto sa essere fastidiosa la televisione quando si mette a strillare i suoi odiosissimi spot pubblicitari? Vi sarà certamente capitato, mentre state ancora asciugandovi le lacrime per la commozione data dalla scena d'un film romantico, di dovervi arrendere alla illuminante attrattiva del nuovissimo detersivo... Ecco, queste brutte sorprese potrebbero essere parte del passato!

 

L'idea:

In questo breve articolo verrà proposta una configurazione circuitale che realizza una scheda per Arduino in grado di conferirle una serie di funzioni, tra cui un ingresso audio dedicato.

Vi chiederete "a che cosa può servire?". La risposta viene dalla vita di tutti i giorni: state guardando la televisione, vi assopite e all'improvviso nel silenzio di una scena romantica del film che vi sta cullando "BANG!", la televisione si mette a schiamazzare dell'ultimissimo detersivo straordinario che renderà il vostro bucato eccezionalmente più bianco di quanto mai bianco sia stato in vita sua...

La tecnica è semplice: lo spot deve essere a volume necessariamente più alto del film che stavate guardando perché così vi rimane impresso.

E se a voi non andasse assolutamente di essere sorpresi in modo così spiacevole da uno spot televisivo?

E se la televisione mi piacesse sempre in sordina in modo da non uccidere il dialogo a tavola?

E se voi non voleste quei 30 secondi di schiamazzo fastidioso?

Lo scopo ultimo di questo progetto è quello di realizzare un prototipo di sistema che sia in grado di abbassare il volume della tv quando è troppo alto, o riportarlo ad un volume “accettabile” quando, sebbene certamente più di rado, esso sia troppo basso.

Il sistema è stato pensato per ovviare, in prima istanza, al problema del volume tremendamente superiore alla media durante ogni spot televisivo. Vi siete mai accorti di quanto è seccante? E sebbene . In generale, è possibile

 

Lo schema elettrico: analisi della configurazione.

Passiamo, quindi, ad una descrizione dei singoli blocchi funzionali che compongono il sistema complessivo, come mostrato in figura.

 

 

Il primo blocco funzionale, probabilmente il più evidente, è il microfono. Si tratta di un microfono electret ABM-715-RC con tensione operativa 2 V, massimo assorbimento di corrente pari a 0,5 mA, impedenza d'uscita 2,2 kOhm e banda passante 50 Hz -16 kHz.

 

La sezione successiva è rappresentata da un filtro con architettura Sallen-Key del 2° ordine. Si tratta di una delle più robuste ed affidabili soluzioni circuitali per effettuare il filtraggio di segali, in questo caso segnale audio. L'architettura scelta per questo progetto consta di un filtro attivo noto e diffuso grazie alla sua semplicità. Il circuito fornisce una risposta a 2 poli (20 dB/decade o 12 dB/ottava) e può essere di tipo passa basso, passa alto oppure passa banda. Tramite l'utilizzo di due resistenze e due condensatori, nonché di un amplificatore operazionale, si realizzano le strutture menzionate. È anche possibile ottenere filtri di ordine superiore tramite l'utilizzo di diversi filtri in cascata. Sovente, questa topologia circuitale viene indicata con l'acronimo VCVS, ovvero Voltage Controlled Voltage Source.

Un'altra possibilità, per la configurazione Sallen-Key, è l'utilizzo di un partitore resistivo aggiuntivo che, all'ingresso non invertente dell'amplificatore operazionale, realizzi un guadagno maggiore di quello unitario. In questo caso, appunto, le reti resistive, costituite dalle coppie R9-R10 ed R11-R12, garantiscono al filtro un guadagno in tensione pari a 10.

I filtri Sallen Key sono, tipicamente, poco sensibili alle tolleranze dei componenti (ad esempio le incertezze sui valori delle resistenze), nonostante siano necessari valori notevoli per avere un fattore di merito significativo o un guadagno alto.

 

Buona norma di progettazione richiede che, note che siano le formule (lo studio teorico del filtro è demandato al lettore), si scelgano dei componenti disponibili presso un produttore e si utilizzino componenti di quei valori per ottenere quella particolare frequenza di taglio. Ben presto si impara che anche su questo procedimento abbastanza semplice c'è da operare scelte di tread-off importantissime onde evitare di penalizzare la banda passante del filtro.

 

L'amplificatore presente in questo filtro è un LM324; si tratta di un quadruplo amplificatore operazionale low power con guadagno DC pari a 100 dB, larghezza di banda pari a 1 MHz, input voltage range -0,3 – 32 V, tensione d'ingresso di modo differenziale pari a 32 V, input bias current pari a 45 nA e offset di tensione e corrente molto bassi (rispettivamente 2 mV e 5 nA).

Il progetto è incentrato sull'utilizzo di Arduino, la celebre scheda di prototipazione. Il progetto Open Source di Massimo Banzi & Co. qui svolge un ruolo centrale. La scheda riceve in ingresso il segnale, come è evidente dalla configurazione riportata, ed è stata accessoriata con le seguenti features:

1. un pulsante di reset. Si intende questo un pulsante ulteriore rispetto a quello già presente sulla board rev 2. Questo pulsante dovrà essere accessibile dall'utente esterno. L'utilità di questa aggiunta è autoesplicante.

2. un display per la visualizzazione di testo (o altro). Il progetto è pensato perché il monitor sia un alfanumerico 20x4 compatibile Hitachi HD44780.

3. 4 pulsanti general purpose. Scopo del progetto è avere un alto grado in interazione con l'utente quindi possono sempre essere programmati.

4. interfaccia seriale RS232 per le comunicazioni, standard sempre di grande utilità.

5. possibilità di trasmissione tramite LED IR modello TSAL6400 con lunghezza d'onda di emissione 940 nm realizzato in tecnologia GaAlAs/GaAs.

La sezione di alimentazione, invece, risulta la meno “interessante di tutte”. Dotata di uno switch, essa fornisce la VCC al circuito.

 

Com'era e com'è: che modifiche son state fatte.

Rispetto allo schema appena mostrato, il progetto ha subito alcune modifiche. La prima, più importante ed evidente, è l'utilizzo di un lcd backpack che permette di connettere il display con protocollo i2c. Ciò ha garantito un notevole risparmi in termini di collegamenti da effettuare, rendeno anche la scheda di prototipazione più libera.

Altro punto fondamentale è stato il ridimensionamento del filtro a fronte di una problematica elementare: il progetto su carta funziona, di solito, sempre. Ma se non si fanno i conti con la componentistica che sia ha a disposizione, ci si può imbattere nell'odioso problema del non poter montare. Ecco perchè, come si vede, i componenti del filtro sono stati leggermente ritoccati al fine di garantire le stesse specifiche di banda passante ma col vantaggio di essere effettivamente realizzabile.

 

 

Come funziona

Il funzionamento del dispositivo è molto semplice ed in realtà risulta chiaro, ne sono certo, fin da inizio lettura. Il sistema acquisisce il segnale audio, che viene filtrato e portato in ingresso alla scheda Arduino tramite l'ingresso analogico 0. A questo punto, il funzionamento è semplicissimo e viene spiegato dal grafico qui di seguito.

 

 

 

Per l'invio dei comandi, è previsto l'utilizzo del protocollo RC5. La scelta è motivata dal fatto che si tratta di uno tra i più diffusi ed usati. Il segnale usato per modulare la portante che va dai 33 ai 38 kHz e viene inviato tramite il LED. Al ricevitore il segnale verrà demodulato opportunamente.

La comunicazione tramite questo protocollo consiste nell’invio di pacchetti di impulsi di dimensioni standard: 14 bit.

I primi due bit, S1 e S2, hanno sempre valore logico "1", il terzo bit è usato per indicare lo stato del tasto cui succede la trasmissione; se è premuto, assume il valore logico "0". S1, S2 e T costituiscono il preambolo alla comunicazione.

I 5 bit successivi, A4,A3,A2,A1 e A0, sono i bit di indirizzo mentre gli ultimi 6 bit, D5,D4,D3,D2,D1 e D0, sono bit di dati e compongono il comando da inviare al dispositivo destinatario. La durata del singolo bit è di 1,778 ms.

 

I due comandi che devono essere implementati sono, dunque:

VOL + : 0x111 00000 001010

VOL - : 0x111 00000 001011

 

Da questo diagramma, che rappresenta il funzionamento elementare, restano esclusi alcuni elementi, tra cui i 4 pulsanti e le loro funzioni.

Come detto, questo progetto nasce per avere un alto grado di interazione con l'utente per cui, è possibile che il sistema effettui in automatico la “censura” del livello del volume, tramite l'utilizzo di una soglia preimpostata, oppure che sia l'utente a gestire l'impostazione corrente.

Così, un pulsante garantirà di poter comunque attivare o meno il sistema automatico, altri due permetteranno all'utente di selezionare il livello desiderato e ne resta uno libero la cui funzione non viene definita.

L'interfaccia RS232 è un utilissimo supporto e sebbene non sia stata pensata per una funzione in particolare, beh.. con questo hardware a disposizione, è possibile sbizzarrirsi.

 

Il risultato del montaggio viene riportato nelle foto che seguono.

La prima è relativa alla prima versione del prototipo mentre la seconda all'ultima.

Possibili sviluppi futuri.

Come ogni buon progetto, anche per questo è necessario indicare i possibili sviluppi futuri.

Il perfezionamento del codice è certamente uno di questi, un orizzonte necessario, oltre che un'ottima sfida.

Anche una ulteriore fase di test per il ritardo di ripetizione del ciclo di misura ed acquisizione del volume è da valutarsi, in quanto il valore impostato è, teoricamente, molto breve.

Alla scheda sono rimasti liberi ben 10 pin per cui, dotarla di qualsiasi cosa è ancora possibile.

Inoltre, algoritmi intelligenti di rilevazione del livello di rumorosità di fondo per escludere il segnale tv sarebbero certamente molto utili per perfezionare il sistema.

Scarica subito una copia gratis

7 Commenti

  1. Piero Boccadoro 3 Maggio 2012
  2. Livio Cicala 4 Maggio 2012
  3. Livio Cicala 12 Maggio 2012
  4. Piero Boccadoro 12 Maggio 2012
  5. Livio Cicala 12 Maggio 2012
  6. Emanuele Bonanni Emanuele 13 Maggio 2012
  7. Livio Cicala 13 Maggio 2012

Scrivi un commento

Send this to a friend