fisertek_300
 
 
 
MISURA DI DISTANZA TRAMITE ULTRASUONI. 
di Marco Selmi 
 
 
barra rossa2 
 
Questo vuol essere un tentativo MOLTO semplice di realizzare un sistema a basso costo per misurare una distanza tramite ultrasuoni. 
Gli utilizzi sui bot sono molteplici, dal semplice antiurto fino ad arrivare alla misura della distanza che intercorre fra il sensore e l'ostacolo. 
Come si puo' vedere dallo schema, il PIC genera un treno di impulsi piu' o meno a 40Khz sulla porta RB2, tali impulsi tramite il transistor pilotano la capsula TX. 
Tale treno di impulsi viaggia nello spazio fino a che incontra un ostacolo da cui viene riflesso. 
La capsula RX riceve appunto il segnale riflesso e tramite un'opportuna e forte amplificazione  porta a 0 logico l'ingresso RA3 del nostro PIC. Misurando tramite un semplice ciclo il "tempo di volo", cioe' il tempo impiegato dal treno di impulsi a colpire l'ostacolo e tornare indietro, si puo' avere un'indicazione approssimativa della distanza. 
Per migliorare la precisione di lettura sarebbe necessario prima di tutto usare il timer interno del PIC che e' certo piu' preciso di un semplice ciclo FOR-NEXT, inoltre sarebbe necessario compensare la temperatura e credo anche la pressione ambiente in quanto influenzano di molto il tempo di propagazione del suono...vediamo che possiamo fare in seguito, altrimenti a che servono le versioni due?? 
Tenete conto che la riflessione e quindi la portata utile e' fortemente influenzata dalle dimensioni e dal materiale con cui e' composto l'ostacolo, per esempio un ostacolo metallico o plastico rigido riflette molto segnale, un ostacolo di gomma o peggio di stoffa non riflette praticamente niente. 
 
Il software allegato scritto ovviamente in C Hitech fa una semplice misura del tempo di volo, la lunghezza del treno di impulsi e la frequenza giusta e' stata raggiunta sperimentalmente misurando con l'oscilloscopio quando si riusciva ad avere un'emissione piu' forte dalla capsula TX. 
Ovviamente questo codice e' una primissima release con cui fare esperimenti, sono graditissimi consigli e modifiche specialmente per quanto riguarda la parte HW... 
 
Mi sembra MOLTO doveroso precisare che la parte ricezione non e' farina del mio sacco, ma un semplicissimo taglia e incolla di un progetto di NE, speriamo che nessuno si arrabbi...io comunque ho citato la fonte. 
 
Eliminando un po' di "accessori", vedi LED, dovrebbe essere possibile realizzare il tutto con un 12C508, contenendo ancora di piu' le dimensioni e credo anche il costo. 
 
Le prestazioni sarebbero migliorabili e di molto aumentando la tensione di pilotaggio della capsula TX, ho visto in rete usare i MAX232 per ricavare tensioni di 16V dal +5V, ma sono soluzioni che devo ancora sperimentare. Da tenere conto che io ho usato una pila transistor da 9V invece che i 12V e funziona tutto perfettamente, ovviamente la portata e' un po' piu' limitata. 
Con la versione attuale e 9V di alimentazione sono arrivato a circa 50cm per un ostacolo 10x10cm di plastica rigida. 
Altra raccomandazione importante, a cui sono giunto per caso e' di separare le capsule TX e RX almeno di una decina di centimetri, sul PCB per ragioni di spazio sono a circa 3cm. Io attualmente le ho messe a 8cm una dall'altra e la sensibilita' e' migliorata notevolmente, penso perche' cosi' il cono di US riesce ad aprirsi maggiormente migliorandone la riflessione. 
 
 
File allegati: 
Metro ultrasuoni.brd PCB in formato Eagle 
Metro ultrasuoni.sch Schema in formato Eagle 
Metro_US.c  Sorgente di esempio in C Hitech (Funziona!!) 
Metro_US.hex  Compilato per 16F84A 
m_i2c_1.c  Routine I2C di Michael Pearce 
delay.h                 File include necessario (Hitech) 
 
 
 
Miglioramenti, suggerimenti, insulti, minacce, ecc..indirizzarle direttamente a mselmi@italway.it saranno molto graditi/e. 
 
 
 
barra rossa2 
 
b_home2_baloon 
 
© 2002-2006 by Sergio Fiocco -Tutti i diritti riservati- Vietata la riproduzione, anche parziale del presente sito