Per riuscire a far sì che mBot si fermi quando incontra un ostacolo, si utilizza il sensore a ultrasuoni, posizionato negli occhi del robot: un occhio è il trasmettitore di ultrasuoni (indicato con la lettera T), l’altro è il ricevitore (indicato con la lettera R).
Il sensore a ultrasuoni permette di fare conoscere a mBot la distanza dell’oggetto che ha davanti, senza toccarlo. Il trasmettitore emette un segnale a ultrasuoni che viene riflesso dall’oggetto e ritorna al ricevitore. Misurando l’intervallo tra l’istante in cui il segnale è partito e quello in cui è stato ricevuto quello riflesso – sapendo che il suono si propaga a una velocità di circa 344 metri al secondo (nell’aria e a temperatura ambiente) – viene calcolata la distanza del robot rispetto all’oggetto.
mBot è in grado di misurare la distanza in centimetri con una precisione di 1 cm e una distanza massima di 400 cm.
Per prima cosa, si definisce una variabile Distanza alla quale verrà assegnato il valore rilevato dal sensore a ultrasuoni.
Nel comando distanza del sensore a ultrasuoni occorre selezionare una porta. Le porte sono indicate sul robot con un numerino che va da 1 a 4: occorre capire il cavo piatto che esce dagli occhi di mBot a quale porta è collegato, e selezionare nel menù a tendina del comando la porta corrispondente.
Per far sì che venga mostrata la distanza in tempo reale, occorre inserire il settaggio della variabile all’interno di un ciclo per sempre.
A questo punto, nel display che è apparso nello stage con la creazione della variabile si leggerà la distanza dell’oggetto di fronte a mBot, se l’ostacolo si trova a meno di 4 metri. Vedrete che compaiono molte cifre dopo la virgola, che cambiano velocemente se il robot si muove. Se preferite, potete inserire il comando distanza del sensore a ultrasuoni all’interno del comando arrotonda, per vedere la distanza come numero intero.
Con il codice che segue, potrete pilotare il robot con le frecce della tastiera e lui si fermerà da solo quando un oggetto gli si para davanti, a meno di 2 centimetri.