Un bat-robot?

Un pipistrello per Karel-bot? Ci mancava anche questa, ma non si tratta di vestire Karel-bot con un costume come quello di Bat-man, si tratta di dotarlo di uno speciale senso che hanno i pipistrelli per evitare ostacoli anche al buio: l'emissione di ultrasuoni e l'elaborazione dell'eco prodotto dagli oggetti intorno.

evitare ostacoli come fanno i pipistrelli

Quando va in giro, Karel-bot deve evitare un ostacolo prima di sbatterci contro: se l'ostacolo è a breve distanza, torna un po' indietro, si gira a sinistra, fa qualche passo per spostarsi di lato e riprende la direzione originaria.

Per fare questo il codice deve avere informazioni sulla presenza di un ostacolo lungo il cammino e sulla sua distanza.

Lo pseudo-RADAR di Scratch utilizzato nel gioco della "Karel-bot anfibio " non restituisce la direzione e la posizione dell'oggetto ma del centro del costume dello sprite interrogato rispetto al proprio centro del costume; se l'ostacolo è esteso non serve a nulla.

Ecco perché bisogna dotare il nostro robot di un SONAR (l'organo di senso dei pipistrelli).

Facciamo "sparare" in avanti un impulso sonoro, questo raggiunge l'ostacolo, viene riflesso nella stessa direzione così che il robot lo riceve dopo un po'; in base al tempo impiegato dall'impulso per andare e tornare il robot calcola la distanza e prende decisioni.

Con il progetto "sonar e ostacolo", prememendo [tasto A], si fa avanzare Karel-bot che "spara" una pallina in avanti (ping) che va a rimbalzare sull'oggetto (pong); quando la pallina ha raggiunto il robot, è possibile conoscere la distanza fra i due.

Con i [tasti 1, 2, 3, 4] si cambiano le disposiizone degli ostacoli.

Nota. Le palline partono solo dopo che la precedente è tornata o si è persa oltre lo stage.


Osservazioni

I vari robot didattici che si trovano in commercio sono semoventi, si fatti per muoversi su ruote e andare in giro ad esplorare il territorio.

Andando in giro devono evitare ostacoli e per questo sono dotati di un componente particolare che è un "sensore a ultrasuoni": un SONAR.

Il SONAR dei robot viene utilizzato per scoprire se nella direzione in cui è puntato esiste un ostacolo e quindi misurarne la distanza.

In breve: viene emesso un breve impulso sonoro (ad alta frequenza e quindi non udibile) che viene riflesso dall'ostacolo; l'intervallo di tempo fra emissione e ricezione dell'eco permette di misurare la distanza così che il robot può assumere decisioni sul percorso da seguire.

Scratch ha un un gruppo di istruzioni che permette di fare un'operazione analoga; queste istruzioni hanno permesso di simulare le funzioni di un RADAR nell'articolo "Karel-bot anfibio".

Il RADAR di Scratch però è un po' strano: non permette di individuare un ostacolo esteso per eventualmente evitarlo.

Questo pseudo-RADAR di Scratch restituisce direzione e posizione del centro del costume dello sprite interrogato rispetto al proprio centro del costume; se l'ostacolo è esteso non serve a nulla.

Un RADAR vero restituisce la posizione e la distanza della superficie che riflette l'onda radio.

Anche l'istruzione "sta toccando il colore __ ", che è stata ulizzata nel progetto "Ginkana 1" per costringere il robot a seguire un percorso, può servire allo scopo ma non dà la distanza, bisogna proprio toccare il colore suddetto per produrre effetti sul codice e non è detto che sia una cattiva soluzione..

Il tempo misurato è sempre un conteggio di iterazioni, non deriva dal cronometro.