Sensore a ultrasuoni
HC-SR04.
|
Per la misura di distanze, gli ultrasuoni sono una buona idea,
tanto che esistono sensori low cost.
Il principale ha la sigla HC-SR04 e si trova ampiamente in rete
a costi veramente minimi.
Se ne trovano da numerose fonti, con i costi più disparati, ma
sostanzialmente i prodotto è identico.
Si tratta di un circuito stampato a doppia faccia, solitamente finito in
blu, che porta da un lato i due trasduttori ultrasonici piezo e dall'altro i
componenti necessari alla gestione.
Sul lato frontale sono ben visibili le due capsule ultrasoniche
(l'emettitore a sinistra, il ricevitore a destra). Sul retro si
vede un certo numero di componenti SMD. Il componente centrale
è un microcontroller OTP, EM78P153S
della Elan Microelctronics, con un clock di 4MHz e che ha la
funzione di interfaccia con l'esterno e di gestione degli impulsi.
Il componente a sinistra è un LM324 che ha la funzione di
amplificatore, filtro e discriminatore per il segnale di ritorno.
Per comandare la capsula piezo trasmittente, un integrato simil-MAX232 (quello
a destra) genera
una una tensione di picco di una
ventina di volt con la pompa di carico interna.
Il funzionamento è semplice: inviando al pin 2-Trig
un impulso alto di almeno 10us, si ottiene dall'emettitore un
treno di 8 impulsi a 40KHz. Il ricevitore cattura l'eco
riflesso dall'oggetto più vicino e al pin 3-Echo si
rileva un impulso la cui durata è proporzionale alla
distanza tra sensore e oggetto.
L'impulso sul pin echo inizia alla fine dell'emissione del
treno di impulsi ultrasonici e cessa quando il sensore individua un echo di
ritorno.
Per utilizzare il sensore occorre, quindi:
Inviare sul pin Trig un
impulso a livello alto per almeno 10µs. Questo avvia un
ciclo del sensore. Senza questo impulso, il sensore è
in modalità inattiva.
8 impulsi da 40kHz saranno
trasmessi dal trasduttore piezo del sensore
Il pin Echo va a livello
alto.
L'onda sonora a 40kHz rimbalza
sull'oggetto più vicino e ritorna al sensore.
Quando la capsula ricevitrice rileva l'onda
sonora riflessa, il pin Echo andrà a livello basso.
La distanza tra il sensore e
l'oggetto rilevato può essere calcolato in base alla
lunghezza del tempo dell'impulso.
Se non viene rilevato alcun oggetto, il pin Echo
rimarrà a livello alto per 38ms e quindi ritorna a
livello basso.
Le caratteristiche elettriche sono:
Tensione di alimentazione
|
5V
|
Corrente in stand by
|
max 2mA
|
Corrente operativa
|
15mA typ.
|
Angolo di copertura
|
50°
|
Distanza coperta
|
2 - 450cm circa
|
Definizione
|
3mm
|
Frequenza
|
40KHz
|
Impulso di trigger
|
10us minimo
|
Ripetizione impulso
|
>50us
|
Pinout
|
1 - Vcc 2 - Trigger 3 - Echo 4 - GND
|
L'ampiezza dell'impulso al pin Echo varia tra 150us
e 25ms, 38ms se non sono rilevati ostacoli.
In pratica, la propagazione del segnale ultrasonico
nell'aria fornisce la seguente relazione:
distanza = durata impulso * velocità
/ 2 D = T * V / 2
Diviso 2 perchè si deve tener conto che
l'impulso ultrasonico è andato e l'eco è tornato,
coprendo una distanza doppia.
Temperatura [°C]
|
Velocità [m/s]
|
-10
|
325.4
|
-5
|
328.5
|
0
|
331.5
|
+5
|
334.5
|
+10
|
337.5
|
+15
|
340.5
|
+20
|
343.4
|
+25
|
346.3
|
+30
|
349.2
|
|
La velocità del suono nell'aria dipende da
vari fattori, uno dei quali è la temperatura.
La tabella a lato riporta alcuni valori: vediamo
che c'è una sensibile variazione nel range di
temperature comuni.
Possiamo considerare la velocità alla
temperatura standard di 20°C, ovvero pari a 343.4m/s,
ovvero 34340cm/s.
Quindi:
34340 = D / T/2 -> 17170 = D
/ T
da cui:
D = T / 1/17170 = T / 58.24
|
Si può allora approssimare con queste
formule:
distanza in cm = durataimpulso in us / 58 distanza
in pollici = durata impulso in us / 148
Volendo leggere la distanza con un microcontroller,
dobbiamo considerare il clock: con Fosc=4MHz, il Tcyc è
1us. Quindi abbiamo 1cm = 58Tcyc. Così , un impulso da
200us corrisponderà a:
200 / 58.240 = 3.434cm
o, approssimato:
200 / 58 = 3.44cm
Se il clock diventa 20MHz, il Tcyc è uguale a
200ns, per cui abbiamo 1cm = 293 Tcyc.
Nel caso in cui sia richiesta una maggiore precisione,
si dovrà calibrare i calcoli almeno in funzione della temperatura
ambiente.
Nelle prove fatte, il sensore ha reso quanto promesso sul foglio
dati.
|
Immagine oscilloscopica dell'impulso di echo:
- tempo = 4.12ms
- distanza target
4120 / 58 = 71cm circa
|
|
Immagine oscilloscopica dell'impulso di echo:
- tempo = 11.9ms
- distanza target
11900 / 58 = 201cm circa
|
Alcune note:
Con i dati forniti,
la ripetizione dell' impulso di trigger dovrebbe non essere
inferiore a 40ms per evitare di avere una sovrapposizione di
echo.
Per essere
correttamente individuato, la superficie del bersaglio alla
massima distanza, deve essere
di circa 0.5m2 o più.
La precisione dipende da molti fattori, tra cui
le condizioni dell'aria, principalmente al temperatura, (che
influiscono sulla velocità del suono) e le caratteristiche
dell'oggetto, compresa la complanarità con il sensore, il
movimento del sensore o dell'oggetto, la presenza di più
oggetti con echi sovrapposti, la densità dell'oggetto e la
sua capacità di assorbire o riflettere gli ultrasuoni,
ecc. Un ambiente rumoroso in cui siano presenti impulsi di
disturbo a frequenza analoga a quella della emissione potrà
creare problemi nella determinazione delle distanze
Il sensore è sufficientemente preciso, ma, data la natura degli
ultrasuoni, non si tratta di un sistema di elevatissima
precisione, a meno di una calibrazione.
Però è un sensore
funzionale, con un costo minimo.
|