V3.0 Me Sensor è un sensore ad ultrasuoni che può essere utilizzato per misurare distanze comprese tra 3cm e 4m.
Esso permette di individuare e evitare ostacoli segnalando la loro presenza. L'ID giallo significa che possiede una singola porta digitale che deve essere collegata alla porla con ID giallo, su mBot di norma è la porta 3.
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.
Aprire il software mBlock (ultima versione V5.3.0), aggiungi dispositivo, nel nostro caso mBot, collega mBot al computer attraverso uno dei tre tipi di connessione (USB, Bluetooth, 2,4G), per finire impostazioni e aggiornare il Firmware.
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
cliccare sull’istruzione “sensore ultrasuoni distanza (cm)” solamente una volta per far visualizzare a schermo il valore tramite una finestra a scomparsa
Evitare ostacoli
In robotica Obstacle avoidance, ovvero evitare degli ostacoli, ha il compito di soddisfare alcuni obiettivi di controllo soggetti a vincoli 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é oppure decidere se girare verso destra o verso sinistra per evitarlo.
Esempio 1 > fermarsi davanti ad un oggetto :
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 (vera) mBlock eseguirà le istruzioni inserite appena dopo la voce “allora”, altrimenti (se falsa) salterà il blocco e procederà con l'istruzione “vai avanti alla potenza…”, inserisci quindi l’istruzione “fermare il movimento” dopo “allora” e, per verifica, inserisci mostra colore verde fino a che non incontra un ostacolo e colore rosso quando incontra 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.
Esempio 2 > evitare ostacolo:
Per implementarlo in mBlock, inizia con creare una variabile "velocità" ed un'altra "distanza", impostare la variabile velocità a 100, quindi nell'istruzione ciclica "per sempre" inserisci l'istruzione imposta la variabile distanza a "sensore ultrasuoni".
A questo punto devi effettuare la prima azione di controllo sulla distanza dall’ostacolo: utilizza l’istruzione condizionale “se… allora altrimenti” e l’operatore (verde) “minore di…” inserendo come primo parametro la variabile distanza (cm)” e come secondo parametro il valore di soglia (25), quando la condizione si verifica passa al blocco successivo, altrimenti al blocco “vai avanti alla potenza…velocità”.
Il blocco successivo l'istruzione “se… allora" e l’operatore (verde) “minore di…” inserendo come primo parametro la variabile distanza (cm)” e come secondo parametro il valore di soglia (15), se la condizione si verifica (vera) mBlock eseguirà le istruzioni inserite appena dopo la voce “allora”, quindi procederà con le successive: utilizza la condizione "se... allora altrimenti" inserendo dentro l’operatore (verde) “minore di…” l'operatore (random) "numero a caso tra 1 e 100", se la condizione si verifica (numero random <50 mBlock eseguirà le istruzioni inserite appena dopo la voce “allora” ruota destra, altrimenti esegui il blocco ruota sinistra.
Comments