http://www.mrscuole.net/anxapic/ http://www.mrscuole.net/anxapic/ Corso introduttivo sui microcontrollori A. S. 2009 – 2010 http://www.mrscuole.net/anxapic/ Anxapic18 demo-Board Un semplice esempio d’uso dei sensori (sistema) a ultrasuoni SFR08 Nicola Amoroso [email protected] na_SFR08 1 http://www.mrscuole.net/anxapic/ http://www.mrscuole.net/anxapic/ Un semplice esempio d’uso dei sensori (sistema) a ultrasuoni SFR08 L'SRF08 e' un sensore ad ultrasuoni di grande sensibilità e precisione. Riesce ad individuare ostacoli e oggetti, anche molto piccoli, fino ad una distanza di 6 metri. Grazie alla presenza di un potente microcontrollore, tutte le funzioni di rilevamento e calcolo sono gestite direttamente dal http://www.mrscuole.net/anxapic/ Anxapic18 demo-Board sensore, per ottenere la lettura e' sufficiente fare una interrogazione tramite protocollo I2C e il sensore ci restituirà la distanza direttamente fotoresistivo che consente la lettura, sempre tramite protocollo I2C, dell'intensità luminosa ambientale. [ http://www.robot-italy.com/ <Sensori/Ultrasuoni> ] . Questo semplice esempio è una occasione per conoscere un po’ meglio la nostra demoboard per controllori a 8..20 pin ed è anche utile per conoscere un semplice sistema per il rilevamento di distanze. na_SFR08 2 http://www.mrscuole.net/anxapic/ http://www.mrscuole.net/anxapic/ in microsecondi, millimetri o pollici. L'SRF08 e' anche dotato di un sensore http://www.mrscuole.net/anxapic/ Un semplice esempio d’uso dei sensori (sistema) a ultrasuoni SFR08 La nostra demoBoard ha due connettori a 90° per il collegamento di “device” I2C. Il connettore [1] lo utilizzeremo per il collegamento del display seriale/I2C LCD 4x20 della Devantech Ltd. [ http://www.robotitaly.com/ <Display & Led/LCD Seriali> ] mentre il nostro sensore, mediante opportuno adatta tore lo collegheremo sul connettore [2] [1] [2] na_SFR08 [2] http://www.mrscuole.net/anxapic/ Adattatore collegato sul connettore http://www.mrscuole.net/anxapic/ Anxapic18 demo-Board Il sensore inserito nell’adattatore 3 http://www.mrscuole.net/anxapic/ http://www.mrscuole.net/anxapic/ Un semplice esempio d’uso dei sensori (sistema) a ultrasuoni SFR08 Sulla nostra demoBoard utilizzeromo un microcontrollore a 20 pin, il 16F690; per il nostro semplice esempio potevamo utilizzare un controllore con un numero inferiore di pin e caratteristiche HardWare meno spinte, purchè abbia il modulo HardWare per la gestione del bus I2C, ad esempio anche il Pic16F88 può andar http://www.mrscuole.net/anxapic/ Anxapic18 demo-Board bene. Abbiamo questo controllore a 20 pin disponibile e questo utilizzeremo. Pic16F690. Dopo aver analizzato il Data Sheet del controllore e definito i vari pin di I/O necessari al nostro lavoro, configuriamo opportunamente i Jumpers della demoBoard. Le slides seguenti mostrano le opportune configurazioni da abilitare. na_SFR08 4 http://www.mrscuole.net/anxapic/ http://www.mrscuole.net/anxapic/ La nostra demoBoard beve essere opportunamente configurata per l’utilizzo del http://www.mrscuole.net/anxapic/ Un semplice esempio d’uso dei sensori (sistema) a ultrasuoni SFR08 Consultare anche la documentazione della demoBoard AnxaPic18, sezione Jumpers 1 2 Jumper Led power [J43] Close 2 Jumper set RX [J38], TX [J37] XBEE Wireless Open Jumper set Vcc ON/OFF [J41] XBEE Wireless Open 3 Jumper set Pull-Resistor I2C Bus [J33] [J34] Close 4 Jumper set RA3 [J7] Reset Pin Close 5 Jumper set Ext-interrupt Pin [J18] RA2 Close 7 Jumper set Analog pin input[J13] Open 8 Jumper set Bus 1-Wire [J11] Open 9 Jumper set RB0 ICSPDAT [J12] Close Jumper set RA1ICSPCLK [J20] Close 4 5 10 7 9 3 10 na_SFR08 Jumper set Ext Clk Osc1 [J23] Close Jumper set Ext Clk Osc2 [J24] Close 5 http://www.mrscuole.net/anxapic/ http://www.mrscuole.net/anxapic/ 8 1 http://www.mrscuole.net/anxapic/ Anxapic18 demo-Board http://www.mrscuole.net/anxapic/ Un semplice esempio d’uso dei sensori (sistema) a ultrasuoni SFR08 Consultare anche la documentazione della demoBoard AnxaPic18, sezione dip-switch Set Pin Buzzer RC5 http://www.mrscuole.net/anxapic/ Anxapic18 demo-Board Set Pin System Led RC3 Set Pin I2C SDA RB4 I dip RX e TX non vengono considerati per il nostro esempio na_SFR08 6 http://www.mrscuole.net/anxapic/ http://www.mrscuole.net/anxapic/ Set Pin I2C SCL RB6 http://www.mrscuole.net/anxapic/ Un semplice esempio d’uso dei sensori (sistema) a ultrasuoni SFR08 Il sensore (sistema) a ultrasuoni SFR08 Nello studio degli oggetti in movimento, questo sensore si comporta come uno strumento di misura in grado di campionare la distanza di un oggetto ad intervalli di tempo regolari. Questo sensore è praticamente un piccolo sonar capace di emettere una successione di impulsi ultrasonici e di ricevere http://www.mrscuole.net/anxapic/ Anxapic18 demo-Board gli impulsi riflessi dall’oggetto in movimento. Il tempo intercorso tra l’emissione e la ricezione degli impulsi, viene utilizzato dal sistema di tempo. Il segnale emesso è costituito in genere da un treno di impulsi viaggianti alla velocità del suono nell'aria (340 m/s circa). L'emissione avviene tramite un apposito trasduttore elettroacustico di tipo piezoceramico. L'onda riflessa è rilevata da un analogo trasduttore la cui funzione è quella di riconvertire i segnali acustici in segnali Elettrici. na_SFR08 7 http://www.mrscuole.net/anxapic/ http://www.mrscuole.net/anxapic/ elaborazione dei dati per determinare la posizione dell’oggetto e darne la relativa rappresentazione nel http://www.mrscuole.net/anxapic/ Un semplice esempio d’uso dei sensori (sistema) a ultrasuoni SFR08 Il sensore (sistema) a ultrasuoni SFR08 Per comprendere e utilizzare in modo efficace il nostro sistema si raccomanda di leggere attentamente la documentazione fornita dal costruttore (venditore); suggeriamo di leggere i documenti “SFR08Product Specifications.pdf” e “Sonar-FAQ.pdf” prima di analizzare il nostro esempio. http://www.mrscuole.net/anxapic/ Anxapic18 demo-Board Il nostro sistema è completamente “trasparente”, effettua il rilevamento e il calcolo della posizione dell’oggetto dopo che viene dato un “inizio conversione” (init ranging) dall’operatore; i risultati della vengono opportunamente “puliti” (clear) e poi aggiornati con i risultati della conversione. In modo analogo avviene il rilevamento della luminosità d’ambiente mediante opportuna fotocellula presente nel sistema. Fino a 16 sensori possono essere collegati sullo stesso bus I2C, ogni sensore deve essere “programmato” con un indirizzo I2C diverso (0xE0, 0xE2, 0xE4, …). na_SFR08 8 http://www.mrscuole.net/anxapic/ http://www.mrscuole.net/anxapic/ operazione vengono immagazzinati in opportuni registri. Ad ogni “inizio conversione” questi registri http://www.mrscuole.net/anxapic/ Un semplice esempio d’uso dei sensori (sistema) a ultrasuoni SFR08 Il sensore (sistema) a ultrasuoni SFR08 Nel nostro esempio la distanza massima di rilevamento è stata impostata su 2 metri, il susseguente tempo di conversione è di almeno 12 ms; dopo ogni inizio conversione bisogna attendere almeno 12 ms prima di leggere i risultati negli opportuni registri del nostro sistema (nel nostro esempio il tempo http://www.mrscuole.net/anxapic/ Anxapic18 demo-Board di attesa è di 15 ms). “sistema SFR08” mediante la opportuna documentazione richiamata in precedenza. Sulla nostra demoBoard per la visualizzazione dei risultati utilizziamo un display LCD 4x20 con interfaccia I2C, per le modalità di utilizzo e impiego rimandiamo alla documentazione del costruttore (Devantech_I2C_LCD4x20.pdf) na_SFR08 9 http://www.mrscuole.net/anxapic/ http://www.mrscuole.net/anxapic/ Ricordiamo di analizzare il codice proposto dopo aver opportunamente compreso il funzionamento del http://www.mrscuole.net/anxapic/ http://www.mrscuole.net/anxapic/ Anxapic18 demo-Board Un semplice esempio d’uso dei sensori (sistema) a ultrasuoni SFR08 Esempio => main() function na_SFR08 10 http://www.mrscuole.net/anxapic/ http://www.mrscuole.net/anxapic/ Per una migliore comprensione del codice consultare le documentazioni presenti nella cartella del progetto http://www.mrscuole.net/anxapic/ http://www.mrscuole.net/anxapic/ Anxapic18 demo-Board Un semplice esempio d’uso dei sensori (sistema) a ultrasuoni SFR08 Esempio => na_SFR08() function na_SFR08 11 http://www.mrscuole.net/anxapic/ http://www.mrscuole.net/anxapic/ Per una migliore comprensione del codice consultare le documentazioni presenti nella cartella del progetto http://www.mrscuole.net/anxapic/ Un semplice esempio d’uso dei sensori (sistema) a ultrasuoni SFR08 Esempio => na_LCD03() function P1 na_SFR08 12 http://www.mrscuole.net/anxapic/ http://www.mrscuole.net/anxapic/ Per una migliore comprensione del codice consultare le documentazioni presenti nella cartella del progetto http://www.mrscuole.net/anxapic/ Anxapic18 demo-Board http://www.mrscuole.net/anxapic/ Un semplice esempio d’uso dei sensori (sistema) a ultrasuoni SFR08 Esempio => na_LCD03() function P2 na_SFR08 13 http://www.mrscuole.net/anxapic/ http://www.mrscuole.net/anxapic/ Per una migliore comprensione del codice consultare le documentazioni presenti nella cartella del progetto http://www.mrscuole.net/anxapic/ Anxapic18 demo-Board http://www.mrscuole.net/anxapic/ http://www.mrscuole.net/anxapic/ Anxapic18 demo-Board Un semplice esempio d’uso dei sensori (sistema) a ultrasuoni SFR08 Esempio => na_iodevice() function na_SFR08 14 http://www.mrscuole.net/anxapic/ http://www.mrscuole.net/anxapic/ Per una migliore comprensione del codice consultare le documentazioni presenti nella cartella del progetto