Come costruire un radar a ultrasuoni

Un radar è un sistema di rilevamento di oggetti che utilizza le onde radio per determinare l’intervallo, l’altitudine, la direzione o la velocità degli oggetti. I sistemi radar sono disponibili in diverse dimensioni e hanno specifiche di prestazioni diverse. Alcuni sistemi radar sono utilizzati per il controllo del traffico aereo negli aeroporti e altri sono utilizzati per i sistemi di sorveglianza a lungo raggio e di allarme rapido. Un sistema radar è anche il cuore di un sistema di guida missilistica. In questo articolo vedremo come realizzare un semplice radar a ultrasuoni utilizzando Arduino e un opportuno software.

I moderni sistemi radar ad alta tecnologia sono associati all’elaborazione del segnale digitale, ma il radar è stato segretamente sviluppato da diverse nazioni prima e durante la Seconda guerra mondiale. Il termine “RADAR” stesso – non lo sviluppo attuale – fu coniato nel 1940 dalla Marina degli Stati Uniti come acronimo per RAdio Detection And Ranging. Il termine radar è entrato da allora nel vocabolario inglese e in quello di altre lingue con il nome comune di “radar”, perdendo tutte le maiuscole.

Gli usi moderni del radar sono molti, tra cui il controllo del traffico aereo, l’astronomia radar, i sistemi di difesa aerea, i sistemi antimissile; radar marini per localizzare monumenti e altre navi; sistemi anti-collisione per aerei; sistemi di sorveglianza oceanica, sorveglianza dello spazio esterno; monitoraggio meteorologico delle precipitazioni; altimetria e sistemi di controllo del volo; sistemi di localizzazione mirati di missili guidati; e radar che penetra nel terreno per osservazioni geologiche.

L’utilità dei sensori a ultrasuoni

I sensori a ultrasuoni (più generalmente chiamati trasduttori) funzionano su un principio simile al radar o al sonar, cioè valutano gli attributi di un obiettivo interpretando gli echi rispettivamente forniti dalle onde radio o dalle onde sonore riflesse. I sensori ad ultrasuoni, in particolare, generano onde sonore ad alta frequenza e valutano l’eco che viene ricevuto dal sensore.

Il sensore a ultrasuoni HC-SR04 ed i relativi piedini di collegamento. Puoi trovare i sensori a ultrasuoni per Arduino cliccando qui.

I sensori a ultrasuoni – di cui vediamo in figura un esempio che useremo per il nostro radar – calcolano l’intervallo di tempo tra l’invio del segnale e la ricezione dell’eco per determinare la distanza da un oggetto. Questa tecnologia può essere utilizzata per misurare la velocità e la direzione del vento (anemometro), il livello del serbatoio o di un canale e la velocità del attraverso l’aria o l’acqua. Sono quindi molto utili in un laboratorio di scienza dilettantistica e puoi trovarli online a un buon prezzo qui.

Per misurare la velocità o la direzione, un dispositivo utilizza rivelatori multipli e calcola la velocità dalle distanze relative alle particelle nell’aria o nell’acqua. Per misurare il livello del serbatoio o del canale, il sensore misura la distanza dalla superficie del fluido. Ulteriori applicazioni includono: umidificatori, sonar, ecografia medica, allarmi anti-intrusione e test non distruttivi.

I sistemi usano tipicamente un trasduttore che genera onde sonore nel campo degli ultrasuoni, cioè a frequenze superiori ad approssimativamente 20.000 hertz (il limite superiore delle frequenze udibili dall’orecchio umano), trasformando l’energia elettrica in suono; quindi, dopo aver ricevuto l’eco, trasforma le onde sonore in energia elettrica che può essere misurata e visualizzata.

Le varie bande sonore e le frequenze ultrasoniche.

Grazie a sensori di questo tipo, è nata l’idea delle auto a guida autonoma, come pure l’idea di auto che parcheggiano da sole. Il problema principale delle persone in Italia – e anche nella maggior parte dei Paesi – è la sicurezza durante la guida. Quindi, una soluzione tale problema si trova scansionando continuamente un’area per il traffico, i pedoni, ostacoli vari, etc. E anche per proteggere allo stesso tempo i veicoli, per prevenire incidenti o piccoli graffi al veicolo stesso.

Il sensore HC-SR04 è un sensore ad ultrasuoni costituito da quattro piedini: uno per Vcc, il secondo per Gnd, il terzo per il segnale a impulsi ed il quarto per il segnale di eco. Quando è collegato alla scheda Arduino, quest’ultima fornisce il segnale a impulsi al sensore, che quindi invia l’onda ultrasonica in avanti. Ogni volta che c’è un ostacolo rilevato o presente davanti, riflette le onde che vengono ricevute dal sensore a ultrasuoni. Se rilevato, il segnale viene inviato all’arduino e quindi al PC / laptop per le elaborazioni del caso.

Il funzionamento del sensore a infrasuoni HC-SR04. Per semplicità, i due piedini di impulso e di eco sono stati rappresentati come un unico piedino.

Come realizzare il radar a ultrasuoni

Un radar funziona emettendo brevi impulsi di radiazioni elettromagnetiche. In pratica, emette un breve impulso che si si allontana dal radar in una determinata direzione. Quando raggiunge un altro oggetto, l’impulso sarà riflesso indietro verso il radar che a sua volta misura il tempo trascorso da quando l’impulso è stato emesso. Se si conosce la velocità con cui un impulso elettromagnetico viaggia attraverso l’aria, si può facilmente calcolare quanto l’impulso ha viaggiato tra emissione e rilevamento.

La distanza tra il radar e l’oggetto che riflette l’impulso è quindi semplicemente la metà di quella lunghezza (poiché l’impulso doveva spostarsi dal radar all’oggetto e tornare al radar). Un sonar funziona in modo analogo a un radar, ma utilizza impulsi sonori brevi (“ping”). È impiegato da navi e sottomarini per le operazioni subacquee. Delfini e pipistrelli usano un sistema molto simile per trovare colazione, pranzo e cena. Il radar che stiamo per illustrare è quindi, in realtà, più un sonar.

Il materiale occorrente per realizzare un radar a ultrasuoni è il seguente:

  • Un microcontrollore Arduino Uno
  • Un servomotore (ad es. SG90 9g)
  • Un sensore ad ultrasuoni HC-SR04
  • Una struttura base su cui montare il radar
  • Cavi di collegamento

La prima cosa che dovrete fare sarà creare una struttura rigida su cui montare il sensore a ultrasuoni HC-SR04 e poi montare questa struttura sul servomotore, in modo che possa muoversi e “spazzare” l’area davanti a sé da sinistra a destra e viceversa, come un vero radar. Una volta realizzato il supporto per collegare il sensore ultrasonico al servomotore, potete avvitarlo sul servomotore stesso.

Una semplice struttura fai-da-te (a sinistra) per reggere il sensore sul servomotore e (a destra) il servomotore SG90, un micro servo analogico che può ruotare di circa 90°. Puoi trovare dei servomotori per Arduino qui.

Un servomotore è un attuatore rotante che consente un controllo preciso della posizione angolare, della velocità e dell’accelerazione. Consiste di un motore adatto accoppiato ad un sensore per il feedback della posizione. Richiede anche un controller relativamente sofisticato, spesso un modulo dedicato progettato specificamente per l’uso con i servomotori. I servomotori non sono una classe diversa di motori, ma utilizzano il servomeccanismo per ottenere il controllo a circuito chiuso.

I collegamenti per realizzare il circuito che connette i tre componenti del progetto (sensore, servomotore e microcontroller Arduino) sono molto semplici. Lo schema qui sotto mostra le connessioni del servomotore e del sensore a ultrasuoni nel caso si utilizzi una breadboard e una scheda Arduino Uno. La realizzazione dei collegamenti completa la parte hardware del progetto.

Schema delle connessioni per la realizzazione del radar a ultrasuoni. (fonte: Arduino)

Un servomotore funziona normalmente da 4,8 a 6 volt. Il “Gnd” di cui è fornito va collegandolo al “Gnd” di  Arduino. Il tempo totale per un impulso del servomotore è solitamente di 20 ms. Per spostarlo su un’estremità di un angolo, diciamo, di 0 gradi, viene utilizzato un impulso da 1ms e per spostarlo sull’altra estremità, ovvero a 180 gradi, viene applicato un impulso da 2ms.

Quindi, in base a ciò, per spostare l’asse del servomotore al centro, si dovrebbe applicare un impulso di tempo di 1,5 ms. Per questo, il filo degli impulsi del servomotore è collegato al piedino di Arduino che fornisce gli impulsi digitali per la modulazione di ampiezza dell’impulso. Perciò, programmando per avere un particolare intervallo di impulsi, il servomotore può essere controllato facilmente.

La parte software del progetto radar

A differenza di quanto accade solitamente con i progetti Arduino, per realizzare un radar a ultrasuoni con il bel layout di un vero radar, non avrete bisogno solo di Arduino IDE e del relativo sketch – cioè del software che gestisce Arduino e del listato di programma relativo a questo progetto specifico – ma avrete bisogno di installare anche il software Processing, che potete scaricare da qui. Invece, puoi scaricare lo sketch per Arduino IDE ed il listato per il software Processing cliccando qui oppure qui.

Processing (a sinistra) è l’utile software per visualizzare i dati di di Arduino (a destra).

Il software Processing semplifica la scrittura di programmi di elaborazione, che vengono scritti nell’editor di testo e avviati premendo il pulsante “Esegui”. In Processing e in Arduino IDE, un programma per computer è chiamato sketch. Gli sketch sono memorizzati nello Sketchbook, che è una cartella sul tuo computer. Le capacità di elaborazione sono estese con librerie e strumenti. Le librerie consentono agli sketch di eseguire operazioni oltre quelle contenute nel codice di elaborazione principale.

Carica il codice dello sketch su Arduino. Ricordati, naturalmente, di installare prima la libreria richiesta dallo sketch per il suo funzionamento! Controlla sul monitor seriale se il sensore ultrasonico funziona o meno (dovrebbe mostrare il grado di rotazione del servomotore e la distanza misurata dai sensori a ultrasuoni). A questo punto puoi anche chiudere il software Arduino IDE.

Estrai il file .zip del software Processing che hai scaricato e installa il software facendo clic sul file processing.exe. Il listato per Processing crea una divertente visualizzazione della schermata radar per il sensore HC-SR04. In pratica, mappa un’area di ciò che l’HC-SR04 vede dall’alto. Di fatto, prende e visualizza 2 letture, una da sinistra a destra e una da destra a sinistra, e visualizza una media delle 2 letture stesse. Visualizza inoltre un “allarme movimento” se c’è una grande differenza tra i 2 valori.

Esempio di schermata radar ottenibile con il progetto qui descritto.

Copia e incolla il listato per il software Processing che hai scaricato prima nell’IDE di Processing. Seleziona gli strumenti -> “Crea font” nell’IDE di Processing e imposta il nome file come “OCRAExtended-48” e la sua dimensione (size) come 30 e fai clic su “Ok”. Imposta inoltre la porta alla quale la scheda Arduino è collegata (COM1, COM2, o quella che è):

myPort = new Serial(this,”COM7″, 9600); // starts the serial communication

A questo punto esegui il codice. Se non si adatta allo schermo del tuo computer, cambia il segmento di programma seguente in base alla risoluzione dello schermo del tuo computer.

size (1366, 768); // ***CHANGE THIS TO YOUR SCREEN RESOLUTION***

Il lavoro è finito. Se un ostacolo viene posizionato davanti al sensore a ultrasuoni (che, secondo il suo datasheet, ha un angolo di apertura di 30°), verrà mostrato dal radar sullo schermo in modalità bidimensionale. Infatti, il renderer predefinito di Processing serve per disegnare con grafica bidimensionale. Il renderizzatore 3D rende invece possibile disegnare grafica in 3D. Entrambi i renderer 2D e 3D sono accelerati se il tuo computer ha una scheda grafica compatibile OpenGL.

Leave a Reply