SENSORE ACUSTICO (SOUND SENSOR)

    

Oltre ai tradizionali sensori di contatto (bump sensors), di prossimità (proximity sensors) o di superficie (floor sensors), può essere interessante montare sul robot anche dei sensori acustici (sound sensors), delle "orecchie" elettroniche per attivare il minirobot con il suono della nostra voce o con altri suoni o rumori. 

Il circuito assomiglia molto a quello che i radioamatori chiamano VOX, cioè quel dispositivo che commuta il ricetrasmettitore in trasmissione non appena l'operatore parla nel microfono. Circuiti simili vengono utilizzati anche per accendere le luci con un battito di mani (clap switch). I circuiti impiegati nei robot sono un po' più complicati, perché il sensore tende ad essere influenzato dal rumore dei motori del robot stesso, creando un loop che mantiene il sensore sempre attivato. Vedremo più avanti come si risolve questo problema.

NOTA: gli schemi presentano un solo canale, in quanto i due sensori ("orecchio" destro e sinistro) sono perfettamente identici.

Il primo circuito è stato impiegato nel robot Eddy. Questo robot è normalmente inattivo e si "sveglia" solo quando percepisce un suono. Il sensore acustico provvede ad attivare l'alimentazione, i motori e tutti i sensori di navigazione del robot:

Il circuito è adatto per capsule microfoniche a condensatore. Il segnale del microfono, amplificato 1000 volte, viene raddrizzato e trasformato in un segnale digitale. Il sensore è "active-high", cioè in uscita avremo +5V quando il circuito è attivato dal suono. Il tempo durante il quale il sensore rimane a livello "alto" dipende dalla durata e dall'intensità del suono percepito e dai valori della coppia RC connessa tra i due operazionali. Il cambiamento di livello logico presente all'uscita del sensore viene utilizzato per attivare il regolatore di tensione (MAX603) e per abilitare il ponte H (L293D).

Il circuito che segue, tratto da http://boardroom.solarbotics.net/beamod/sonic.html è realizzato con due transistor 2N3904. L'autore promette un fattore di amplificazione di 2000 volte:

A questo preamplificatore di BF va aggiunto il circuito raddrizzatore e livellatore così da ottenere un livello logico definito ogni volta che il microfono percepisce un suono.

Molti circuiti simili si possono facilmente trovare su Internet (ad es. ) oppure cercando "voice switch", "sound activated switch", "sound sensor", ecc.

Quello che la maggior parte degli articoli però non dice è che con sensori molto sensibili il robot finisce inevitabilmente per captare il rumore dei suoi stessi motori. In questo caso il sensore rimane sempre attivo, in una sorta di loop infinito. L'alternativa sarebbe di diminuire la sensibilità del sensore, permettendogli di captare solamente dei suoni molto forti, ma allora sarebbe assolutamente inutile!

Per cercare di risolvere il problema si possono usare diversi accorgimenti:

  • fare in modo che il microfono venga disattivato quando i motori girano. In pratica, viene sfruttato il livello logico del sensore per bloccare l'amplificatore microfonico, così che per tutto il tempo che il sensore è attivato (= robot in movimento) il segnale captato dal microfono non influisce sul sensore stesso. Questo sistema ha però due grossi inconvenienti: funziona solo con suoni brevi (battito di mani, parole singole, ecc.); dà al robot un'andatura "a scatti".

  • inserire un filtro passa-banda centrato sulla frequenza della voce umana (es. 3KHz). Alla pagina http://xoomer.virgilio.it/guiott/dino/Sound/sound.html è possibile trovare uno schema di filtro a 4KHz con amplificatore operazionale. Sulla stessa pagina si trova un link molto utile per calcolare automaticamente la banda passante del filtro e i relativi componenti (vedi ).

Filtro Passa-Banda

  • utilizzare un tone-decoder PLL (tipo 567) centrato sulla frequenza della voce umana. Per la taratura, si applica un frequenzimetro al pin 5 del 567 e si ruota il trimmer sino a leggere la frequenza desiderata (3-4 KHz). La larghezza di banda è determinata dal condensatore collegato al pin 2 dell'integrato (vedi datasheet).

  • aumentare la larghezza di base dei due segnali destro (D) e sinistro (S) in modo da avere sulle due uscite i segnali S-D e D-S. In pratica, utilizzando due amplificatori differenziali, si sottrae il segnale di un canale al segnale del canale opposto, eliminando in questo modo tutti i suoni che arrivano contemporaneamente e con la stessa ampiezza al microfono S e D. 

Amplificatore differenziale


  • un effetto analogo si può ottenere inviando al canale S il segnale del canale D sfasato di 180° (e viceversa). Il modo più semplice per sfasare un segnale è utilizzare un transistor come amplificatore ad emettitore comune. Sull'emettitore abbiamo il segnale in fase, mentre sul collettore il segnale sfasato: 

Credo però che la soluzione più semplice sia quella di utilizzare dei motori di qualità, con ingranaggi silenziosi, possibilmente metallici, e delle ruote con battistrada morbido. Consiglio di montare i due microfoni su basette separate, e comunque di mettere sui punti di fissaggio dei gommini o altri accorgimenti per smorzare il più possibile le vibrazioni.

                

RetourMain Page