Skip to main content

Macchine a guida autonoma – Gli ostacoli

Obbiettivo: Capire il come funzionano il sensore di linea e il sensore ad ultrasuoni. Utilizzarli nei progetti attraverso i relativi blocchetti di mBlock. 

Problema
Negli ultimi anni tutte le case produttrici di automobili si sono concentrate nel rendere le vetture intelligenti, ovvero in grado assistere il conducente durante la guida segnalandogli ostacoli o persone nelle vicinanze.
Prova anche tu a rendere intelligente mBot per fargli rilevare in autonomia un ostacolo e farlo muovere senza dargli istruzioni specifiche. mBot dovrà arrestarsi se dovesse rilevare un ostacolo di fronte al sensore e in alternativa se il percorso fosse libero procedere.

A cura di Davide Emanuele Betto.

Materiali

Materiali necessari

  • Pc
  • mBot

Materiali aggiuntivi non obbligatori:

  • Percorso fornito da mBot
  • Scotch nero o nastro isolante
  • Foglio di carta grande
  • Pennarello

Progettazione & implementazione
Per progettare un software così complesso devi sapere come funzionano il sensore di linea, il sensore ultrasuoni (per rilevare gli ostacoli) e dove sono posizionati sul robot.
Il sensore di linea

figura 1

Il sensore di linea permette al robot di percepire i colori bianco e nero. mBot è equipaggiato di due sensori e si trovano sotto al suo musetto. Sono stati montati due sensori e non uno per facilitare la programmazione del robot.

figura 2

Essendo presenti 2 sensori possono verificarsi quattro condizioni.

  1. Entrambi i sensori si trovano sulla linea nera
  2. Il sensore di sinistra si trova sulla linea nera, mentre quello di destra no
  3. Il sensore di destra si trova sulla linea nera, mentre quello di sinistra no
  4. Entrambi i sensori non si trovano sulla linea nera

Come vedi dal disegno ogni volta che un sensore rileva un colore diverso dal nero avverte l’utente illuminando un led presente sul sensore.

Il sensore ad ultrasuoni

figura 3

Anche il sensore ad ultrasuoni è posto nella parte anteriore del robot e permette di rilevare ostacoli se posti di fonte. Il funzionamento è abbastanza semplice. Con un occhietto il sensore emette un’onda e con l’altro la riceve. Puoi capire qual è il trasmettitore e il ricevitore leggendo sotto gli occhietti i valori:
T: trasmettitore e R: ricevitore.
Immagina di tirare una pallina. Se davanti a te si trovasse un muro la pallina rimbalzerà indietro, altrimenti la pallina non tornerà più.
Il sensore funziona allo stesso modo. Se presente un ostacolo R riceverà indietro l’onda di T. Altrimenti non riceverà nulla.
Inoltre, se l’onda tornasse indietro velocemente l’ostacolo sarebbe vicino. Al contrario se tornasse molto lenta si troverebbe lontano.

gif 1 - Sensore ad ultrasuoni

Adesso, hai tutti gli elementi per progettare il sistema.
Prima di tutto pensa all’ostacolo.
mBot dovrà muoversi soltanto se di fronte a lui non sono presenti ostacoli, ovviamente l’ostacolo dovrà essere più alto dei suoi occhietti altrimenti l’onda emessa da T ci passerà sopra!
Quindi controlla che non ci sia nulla davanti e se la condizione risultasse vera prosegui con lo sviluppo. Se la condizione fosse falsa, ovvero se trovassi un ostacolo davanti allora arresta mBot.

gif 2 - Implementazione sensore ultrasuoni (scarica il file ad alta risoluzione)

Se non ci fossero ostacoli davanti allora dovrai controllare il sensore di linea. Crea due variabili: velocità e sensore.
Definisci velocità uguale a 100 mentre, quando non ci sono ostacoli poni sensore uguale al valore restituito dal sensore di linea, ricordando che può assumere valori 0,1,2,3 a seconda della situazione riportata nell’immagine precedente.
Tralasciando il caso 3, ovvero che il robot sia completamente fuori dal percorso, devi definire le situazioni 0,1,2. Hai bisogno di 3 costrutti “SE-ALTRIMENTI”.
Nel primo caso se il sensore fosse uguale a zero, il robot si troverebbe sulla linea e quindi procederebbe in direzione frontale. Altrimenti se il sensore fosse uguale a 1 il sensore di destra si troverebbe fuori dal percorso e quindi dovrai ruotare il robot verso sinistra per farlo rientrare.
Stessa cosa per il caso uguale a 2, ma verso destra.
Altrimenti se nessuna delle precedenti condizioni risultasse verificata, il robot dovrà marciare in retromarcia.

gif 3 - Implementazione sensore ultrasuoni (scarica il file ad alta risoluzione)

Infine, carica il programma sulla scheda mCore per eliminare i ritardi di comunicazione. Appoggia mBot sul percorso e testa il tuo programma.

Download

Qui invece, puoi scaricare i file contenenti la soluzione.

A cura di Filippo Lapide

06 Febbraio 2019
Categoria: Robotica

L' autore

I contenuti sono a cura di Davide Emanuele Betto.
Laureato in Architettura presso l’Università di Reggio Calabria, ha conseguito il dottorato di ricerca in Metodi di Valutazione presso l’Università di Napoli. Si è abilitato all’insegnamento nella classe di concorso “A033 – Educazione Tecnica nella scuola media” nel 2004 e dal 2007 è docente di ruolo. Insegna a Catania presso la Scuola secondaria di primo grado "Rapisardi-Alighieri".
Appassionato di informatica, che insegna nelle classi 2.0 e 3.0, webmaster per diletto e utilizzatore avanzato di programmi C.A.D., grafica e video produzione è autore del sito didattico di Tecnologia educazionetecnicaonline.com
Per Lattes è autore di Infinito Tecnologico, il corso di Educazione Tecnica per la Scuola secondaria di primo grado.

La Casa editrice

Lattes Editori pubblica libri di testo per la scuola secondaria di primo e secondo grado. Il catalogo offre agli insegnanti e agli studenti titoli sempre aggiornati sull’attività didattica e sulle nuove piattaforme multimediali per la scuola.
Un impegno costante per la scuola digitale con particolare attenzione alla didattica inclusiva!

S. LATTES & C. EDITORI S.p.A.
Via Confienza, 6 - 10121 Torino

Codice Fiscale e Partita Iva: 04320600010
Iscrizione Registro Imprese di Torino n. 04320600010

Capitale Sociale Euro 1.430.000 interamente versato

E-mail: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.
Copyright S. Lattes & C. Editori S.p.A.



Engineered by Sernicola Labs