home - tutorial - TUTORIAL – SENSORE AD ULTRASUONI MAKEBLOCK MBOT

TUTORIAL – SENSORE AD ULTRASUONI MAKEBLOCK MBOT

Il kit mBot fornisce all’utilizzatore il sensore ad ultrasuoni: uno strumento attraverso il quale il robot è capace di individuare ostacoli che si trovano nella sua traiettoria di movimento.

  by Roberto Faloppi
Makeblock mBot

Introduzione

MBot della Makeblock è un robot educativo utilizzato per lo studio e l’apprendimento delle materie STEAM e adatto per tutti i principianti alle prime armi. Il kit è sicuramente uno dei più facili da assemblare e da programmare ed uno dei più adatti all’introduzione della robotica, in quanto ti avvicina a questo mondo in modo intuitivo e divertente e rende l'insegnamento e l'apprendimento della programmazione robotica semplice e piacevole.
Con un cacciavite, le istruzioni passo-passo e un software di programmazione block-based ispirato a Scratch 3.0, puoi costruire un robot da zero e provare le soddisfazioni della creazione pratica. Imparerai a conoscere le parti elettroniche e meccaniche di un robot, come motori e sensori, e i principi base della programmazione basata su blocchi, sviluppando capacità logiche di pensiero e progettazione.

Per la connessione di mBot al computer ti consiglio di leggere il tutorial sui motori; in questo, invece, vedrai come installare ed utilizzare il sensore ad ultrasuoni presente nel set.

Nello specifico, approfondirai:
  • l’installazione del sensore ad ultrasuoni (Me Ultrasonic Sensor) in mBlock v5.2.0
  • la programmazione del sensore ad ultrasuoni
Tecnologie:

Installazione del sensore ad ultrasuoni nel software mBlock v.5.2.0

L’installazione del sensore ad ultrasuoni in mBlock è automatica e non richiede alcun setup: una volta collegato alla scheda mCore e dopo aver collegato mBot al computer attraverso uno dei tre tipi di connessione, il software mBlock rileverà istantaneamente ed automaticamente la presenza del sensore ad ultrasuoni (come di tutti gli altri sensori collegati alla scheda).

Per verificare che l’installazione sia andata a buon fine puoi far comparire in mBlock il valore che il sensore misura quando è presente o meno un oggetto nella sua visuale. Esistono differenti modi per svolgere questa operazione:
  • cliccare, nella categoria “Sensori”, sulla spunta vicino all’istruzione “sensore ultrasuoni distanza (cm)” per far comparire in tempo reale nella schermata il valore misurato (Figura 1)
  • cliccare sull’istruzione “sensore ultrasuoni distanza (cm)” solamente una volta per far visualizzare a schermo il valore tramite una finestra a scomparsa (Figura 1)
  • creare una variabile “distanza” (blocco arancione scuro) che aggiorni e visualizzi il valore misurato dal sensore durante i suoi rilevamenti (Figura 2); anche qui cliccare sulla spunta vicino alla variabile per visualizzarla a schermo

Come programmare l’utilizzo del sensore in mBlock v.5.2.0

Il sensore a ultrasuoni è un modulo elettronico che, emettendo un’onda a ultrasuoni, determina la distanza tra il sensore e un oggetto sulla base del tempo impiegato dall’emissione del segnale alla ricezione dell’eco (figura sottostante). Le sue caratteristiche tecniche sono:
  • raggio di rilevamento da 3 cm a 400 cm: al valore 400 corrisponde un oggetto troppo lontano per poter essere visto (fuori range) o in prossimità del suo limite di visione (400 cm); il valore 3 implica invece un oggetto che ostruisce la visuale del sensore, dunque attaccato ad esso
  • angolo di rilevamento di 30 gradi
Il sensore ad ultrasuoni ha numerose applicazioni, come ad esempio l’assistenza al parcheggio nelle automobili o gli allarmi di prossimità; in mBot è uno strumento importante per dare più indipendenza al robot ed è dunque indispensabile riuscire a capire come funziona, ovviamente con alcuni esempi risulterà più semplice.

Esempio: fermarsi ad un ostacolo

In robotica l’obstacle avoidance, ovvero l'evitamento degli ostacoli, ha il compito di soddisfare alcuni obiettivi di controllo soggetti a vincoli di non intersezione o di non collisione. Il sensore ad ultrasuoni può essere programmato per soddisfare questi vincoli e per far sì che il robot, ad esempio, si fermi appena incontra un oggetto davanti a sé. L’algoritmo risolutivo di questo problema è presentato tramite diagramma di flusso (Flowchart) nella Figura 4.

Per implementarlo in mBlock, inizia inserendo l’istruzione di avanzamento continuo, “vai avanti alla potenza…”, togliendo dal movimento la dipendenza dal tempo perché non puoi sapere per quanto il robot dovrà muoversi prima di incontrare un oggetto. A questo punto devi effettuare l’azione di controllo sulla distanza dall’ostacolo: utilizza l’istruzione condizionale “se… allora” e l’operatore (verde) “minore di…” inserendo come primo parametro l’istruzione sensore (celeste) “sensore ultrasuoni distanza (cm)” e come secondo parametro il valore di soglia, cioè la distanza a cui vuoi che mBot si fermi. Se la condizione si verifica mBlock eseguirà le istruzioni inserite appena dopo la voce “allora”, altrimenti salterà il blocco e procederà con le successive: inserisci quindi l’istruzione “fermare il movimento” e “stop tutti” dopo “allora” e, per verifica, inserisci invece la riproduzione di un suono dopo il blocco condizionale (si sentirà il suono fintantoché non verrà rilevato un ostacolo). Ricorda che il controllo va effettuato per tutta l’esecuzione dello script, quindi inserisci anche l’istruzione ciclica “per sempre” racchiudendo il blocco condizionale (Figura 5). Se il robot non riesce a schivare in tempo l’ostacolo puoi cambiare i valori della distanza.

Esempio: driverless car (auto con guida autonoma)

Per programmare mBot in modo che si comporti come un’auto con guida autonoma devi innanzitutto decidere il comportamento che dovrà adottare il robot una volta che incontrerà un ostacolo: nell’esempio precedente avevi fatto arrestare il robot, in questo caso dovrai decidere se farlo girare verso destra o verso sinistra. Per effettuare l’azione di controllo utilizza stavolta il blocco “se… allora… altrimenti…”: quando la condizione si verifica fai girare il robot per un po’ di tempo (trova tu il valore che preferisci facendo alcune prove), altrimenti il robot dovrà sempre muoversi in avanti con una certa velocità. La logica appena descritta può essere implementata in mBlock con lo script mostrato nella figura seguente (Figura 6). Il ciclo “per sempre” fa sì che la sequenza di istruzioni venga eseguita fino allo spegnimento manuale del robot. Anche in questo caso, se il robot non riesce a schivare in tempo l’ostacolo, puoi sempre cambiare i valori della velocità di sterzata o aumentare il valore di soglia del rilevamento ostacoli.
Prova a posizionare mBot in un ring delimitato da delle pareti e inserisci degli ostacoli casualmente al suo interno. Esegui il programma e osserva il suo comportamento: è quello che desideravi? Bene, ora prova a integrare il sensore in altri modi, fatti ispirare dalla tua fantasia. Enjoy!

Ti è piaciuto il tutorial?

Se vuoi maggiori informazioni, una consulenza o se vuoi far parte della famiglia We Turtle scrivi all'indirizzo e-mail: info@weturtle.org

Per restare sempre aggiornato iscriviti alla Community e segui We TurtleTALENT su Facebook.

Riferimenti e links

Vuoi leggere il tutorial quando vuoi, anche offline?





Hai letto la lezione? Che cosa ne pensi? Lascia un commento qui sotto!