0

Rilevare i bordi – Robot parte 4

Impariamo ora a programmare il nostro robot in modo tale da non farlo “cadere di sotto”. Facciamo in modo dunque che sia in grado di rilevare i bordi, ad esempio un’area bianca/nera, degli scalini o simili. Nel kit da me segnalato troverete 2 sensori IR adibiti a tale scopo; nel mio progetto però ne utilizzo 3 poichè ho notato che con solo 2 sensori il robot era in grado di rilevare solo il bordo sinistro, il bordo destro ma non quello posteriore (in caso di manovre) e quindi il rischio di cadere era elevato, specie se l’area nella quale si muove il robot ha spigoli ben definiti (ad esempio un tavolo). Per aree circolari o con spigoli meno definiti non sarà necessario ma comunque consigliato.

 

Prima di cominciare si deve sapere che tali sensori rilevano la quantità di luce emessa, se la luce emessa torna al sensore allora viene rilevato il suolo, se non vi fa ritorno allora viene rilevato un bordo. Perciò tali sensori funzionano su superfici riflettenti (non nere o di colore non riflettente). Potrebbe quindi capitare che in situazioni di luce molto intensa la rilevazione potrebbe non essere corretta o mancata.

Il sensore dovrebbe prosentarsi circa come l’immagine sottostante.

SAMSUNG

 

In particolare questo ha un potenziometro (in blu) con il quale si può regolare il sensore, ruotando la parte bianca si potrà calibrare il sensore. Vediamo dopo quando il sensore è calibrato correttamente.
I sensori vanno posizionati in un modo adatto ai nostri scopi. Abbiamo detto che dovranno essere rilevati i bordi, quindi il mio consiglio è di posizionare i sensori anteriori davanti alle due ruote, un po’ distanziati così da rilevare per tempo i bordi evitando che la ruota ci finisca sopra.

Mentre il sensore posteriore andrà posizionato dietro alla ruota caster sempre con le dovute precauzioni.

I sensori devono essere posizionati a non più di circa 10 mm dal suolo (aiutatevi con uno spaziatore per non far entrare in contatto parti del sensore con parti del robot).

Nello schema qui sotto vi mostro la soluzione che ho adottato. Ho realizzato una superficie dove poter alloggiare i sensori, stessa cosa dietro. Ho usato pezzi che si possono trovare tranquillamente in ferramenta e simili ma vi sono molte soluzioni possibile, importante è non realizzare un sostegno troppo pesante che faccia sollevare il robot in avanti.

Questa soluzione è utile anche ad impedire che il robot cada da un lato nelle curve (ho notato che con 3 ruote è facile che accada). Perciò aggiungiamo poco peso davanti.

SAMSUNG

 

Rivolgere la parte di rilevazione del sensore all’esterno ovviamente.

SAMSUNG

 

SAMSUNG

 

Collegare ora i sensori come nello schema qui sotto. Colleghiamoli ai piedini che avevamo saldato sulla Motor Shield come mostrato in figura.

SAMSUNG

 

Se i sensori rilevano il suolo, se presente un led adibito a tale compito, la situazione sarà simile a quella nell’immagine sottostante.

SAMSUNG

 

Ora ecco il codice.

Sketch per permettere al robot di rilevare i bordi e manovrare in spazi stretti senza cadere
4.2 KiB
401 Downloads
Dettagli

 

Una piccola dimostrazione delle funzioni principali del robot è visibile nel video sottostante.

 

Nel mio progetto ho preferito scegliere piccoli spostamenti dopo la rilevazione di un bordo. Ho orientato la mia scelta per favorire la precisione nel movimento a costa di un maggior tempo di manovra.

In questo modo però il progetto si può adattare a qualsiasi area di movimento, con angoli più o meno acuti.

Se nessun sensore rileva il suolo allora il robot si ferma, questo perchè potrebbe accadere che il robot sia sollevato o che si trovi in qualsiasi situazione nella quale qualsiasi movimento lo farebbe cadere.
IMPORTANTE: ogni volta che si fa partire il robot in una nuova posizione o dopo che lo sketch è stato caricato il mio consiglio è di premere il pulsante di reset sopra la Motor Shield così da evitare che il robot si comporti in un determinato modo in risposta ad una precedente rilevazione e quindi non si comporti come dovrebbe.

N.B. E’ necessaria la libreria da me modificata per le funzioni di base del motore. Si può scaricare da qui sotto.

Librerie AFMotor di Motor Shield Adafruit + RobotMotorFunction per le funzioni principali dei motori
13.2 KiB
1738 Downloads
Dettagli

 

Acquista il sensore

Clicca qui.

 

Share This:

Simone

Studente Data di nascita: 12/07/1990 - Parma, IT Hobbies: Informatica, acquariofilia, viaggi, tecnologia, aria aperta, sport, web.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *