Il Pianeta rosso è lontano e se vogliamo mandare mBot a scorrazzare sul suolo marziano, dobbiamo avere bene presente che se gli inviamo un comando dalla Terra, lui lo riceverà tra diversi minuti. Marte dista 12.7 minuti luce dal Sole (nel senso che la luce del Sole impiega 12.7 minuti ad arrivare su Marte) e la Terra 8.3 minuti luce. Entrambi i pianeti ruotano intorno al Sole, con velocità diverse. Quindi, a seconda di dove si trovano i due pianeti, l’uno rispetto all’altro, mBot potrebbe dover aspettare parecchio tempo prima di ricevere i nostri comandi.
Con questo programma simuleremo il ritardo nella ricezione dei comandi da parte di mBot, dovuto al fatto che il segnale che “porta” il nostro comando viaggia a una velocità finita – la velocità della luce – e impiega minuti per arrivare su Marte.
Per prima cosa, creiamo una variabile chiamata “ritardo”, e la portiamo (la inizializziamo) a “0” quando si clicca sulla bandierina verde. Il codice è molto simile a quello usato per pilotare mBot, l’unica differenza è che qui attendiamo “ritardo” secondi prima di eseguire il comando. Sperimenterete in questo modo cosa significa, per mBot, ricevere un comando diversi secondi dopo che il comando è stato impartito.
È evidente che non possiamo pilotare il robot stando sulla Terra, perché la nostra guida non sarebbe tempestiva. Il nostro piccolo amico rischierebbe di scontrarsi contro tutti i sassoni che incontra sul suo percorso, perché tra quando noi gli diciamo di spostarsi per evitarli e lui riceve il comando, passa troppo tempo! Il segreto è istruire il robot affinché riesca a capire da solo cosa deve fare quando incontra un ostacolo. E lo deve fare indipendentemente da noi, dal fatto che abbiamo il computer acceso o che tentiamo di interagire con lui. Bisogna che lui impari a cavarsela da solo. Bisogna programmarlo.
Niente paura, in realtà se avete seguito tutti i passi che vi abbiamo indicato nel percorso, sapete già farlo. Il codice infatti è molto simile a quello che avete scritto per far sì che mBot si fermi ad un ostacolo (magari questa volta ditegli di curvare un pochino, invece di fermarsi) solo che questa volta dobbiamo trasferirlo alla sua memoria interna, affinché indipendentemente da noi possa eseguirlo… anche su Marte.
Quindi, basta prendere (o riscrivere) il vecchio codice, sostituire il comando”Quando si clicca sulla bandierina verde” con “Programma mBot”, e poi caricare il programma su mBot.
Come si fa? Se usate mBlock 3, selezionate nel menù “Modifica” la voce “Modalità Arduino”. Apparirà il programma nel linguaggio C++. Cliccate “Carica su Arduino” per trasferirlo. Se invece usate mBlock 5 selezionate la modalità “Carica file” al posto di “Dal vivo” e caricate il programma.