Raspberry e Scratch: misurare le distanze con il sensore ad ultrasuoni (lezione 22)
di Alfonso D’Ambrosio alfonsodambrosio@yahoo.it -In questa lezione impareremo a misura le distanze degli oggetti da noi utilizzando il sensore ad ultrasuoni (nello specifico il modello HC SR04). Nella successiva lezione vedremo alcune applicazioni didattiche con il sensore ad ultrasuoni, facendo parlare, in particolar modo, alcune relazioni svolte dai miei studenti nel corso degli ultimi 2 anni. Cosa occorre Raspberry resistenze da 1 e 2.2 Kohm Sensore ad ultrasuini Cavi M/M M/F Funzionamento e Fisica del sensore ad ultrasuoni Il funzionamento del sensore ad ultrasuoni è relativamente semplice. In sostanza si invia un impulso sonoro (non udibile dall’orecchio umano), lo stesso sensore rileva il segnale ricevuto e attraverso il tempo di ritardo misura la distanza dell’oggetto (esempio sapendo che la velocità del suono in aria a 20 gradi centigradi è 340m/s, se il tempo tra il segnale inviato ed il segnale Eco ricevuto è 1 secondo, allora la distanza dell’oggetto dal sensore è di 170 metri!). Un trigger invia un segnale sonoro da 40Khz per una durata di 8-10 microsecondi. Le onde sonore verranno riflesse da un ostacolo ed alcune ritorneranno al sensore. Un elemento del sensore, detto echo, è sensibili ai segnali della frequenza inviata, appena la percepisce invia un segnale elettrico al GPIO di Raspberry. Per il collegamento occorre prestare un pò di attenzione. L’alimentazione del sensore è a 5V, ma il Pin può reggere al massimo 3.3 V. Per evitare che cada una tensione elevata sul pin, possiamo utilizzare un partitore di tensione (in sostanza delle resistenze collegate opportunamente): La sensibilità del nostro sensore è di 0.3 cm (ampiezza angolo apertura 15 gradi), portata massima 400cm. Il sensore ha quattro uscite: Vcc su 5V, Gnd , echo e trigger che vanno sui GPIO. Lo schema di ricezione e trasmissione è il seguente: Il problema di lavorare con Scratch è che è molto difficile poter gestire la trasmissione e ricezione su due pin ed a meno di non avere dei blocchi pronti (librerie incluse), l’unica soluzione che abbiamo è affidarci ancra alla fisica. Possiamo connettere Trigger ed Echo sullo stesso Pin, ma entrambi ci arrivano con in serie due resistenze diverse, in questo modo i segnali vengono distinti da due correnti diverse. E’ una soluzione comoda , una sorta di partitore di tensione che permette di discriminare i due segnali. Nello specifico il collegamento a Raspberry che ho utilizzato è : Per leggere le distanze dal sensore ad ultrasuni occorre utilizzare due comandi equivalenti Sonar15 se utilizzo la modalità GPIO Ultra10 se utilizzo la modalità PIN SI noti che GPIO15 e Pin10 sono la stessa cosa. Ecco i collegamenti ed i codici: Ho programmato il sensore e Scratch in maniera tale che venga rappresentata la distanza in funzione del tempo trascorso, perc questo occorre attivare (dopo averlo azzerato) il cronometro/timer. Una attenzione particolare merita il passo sull’asse x ed y. Sull’asse y ad esempio abbiamo 360 pixel e se vogliamo leggere fino a 360cm allora ogni pixel sarà un centimetro. Ecco il video di quanto si ottiene: Nella prossima lezione vedremo alcune attività con il sensore ad ultrasuoni, da quelle di tipo ludico fino a vere e proprie attività di sperimentazione scientifica.
Copia e incolla questo URL nel tuo sito WordPress per farne l'embed
Copia e incolla questo codice nel tuo sito per farne l'embed