Nota
Ciao, benvenuto nella community di appassionati di SunFounder Raspberry Pi & Arduino & ESP32 su Facebook! Approfondisci Raspberry Pi, Arduino ed ESP32 insieme a noi.
Perché unirsi a noi?
Supporto tecnico: Risolvi i problemi post-vendita e le sfide tecniche con l’aiuto della nostra community e del nostro team.
Impara e Condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime Esclusive: Accedi in anteprima ai nuovi annunci sui prodotti.
Sconti speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni e Giveaway Festivi: Partecipa a promozioni festive e concorsi a premi.
👉 Pronto per esplorare e creare con noi? Clicca [Qui] e unisciti oggi!
Lezione 6: Esplorare il Modulo di Evitamento Ostacoli
Stiamo per esplorare il mondo del Modulo a Infrarossi per l’Evitamento degli Ostacoli. Montati ai lati del nostro Mars Rover, questi sensori agiscono come gli «occhi» del rover, aiutandolo a evitare ostacoli laterali e a navigare in sicurezza sul suolo marziano.
Impareremo come integrare questi moduli con il nostro rover, scopriremo il funzionamento che c’è dietro e svilupperemo del codice per far sì che il nostro rover eviti in modo intelligente qualsiasi ostacolo incontri.
Preparati a dotare il nostro rover di una straordinaria intelligenza per evitare ostacoli marziani! Cominciamo!
Nota
Se stai seguendo questo corso dopo aver assemblato completamente il GalaxyRVR, devi spostare questo interruttore verso destra prima di caricare il codice.

Obiettivi di Apprendimento
Comprendere il principio di funzionamento e l’applicazione del modulo a infrarossi per l’evitamento degli ostacoli.
Imparare a usare Arduino per controllare il modulo a infrarossi.
Progettare e costruire un sistema di evitamento automatico degli ostacoli basato su infrarossi.
Materiali necessari
Moduli di evitamento ostacoli
Strumenti e accessori di base (es. cacciavite, viti, fili, ecc.)
Modello Mars Rover (con sistema rocker-bogie, schede principali, motori)
Cavo USB
Arduino IDE
Computer
Passaggi
Passo 1: Installare il Modulo di Evitamento Ostacoli
Ora installeremo i due moduli di evitamento ostacoli sul rover.
I passaggi per l’assemblaggio sono stati semplici, vero? Nei passaggi successivi, apprenderemo il principio di funzionamento di questi moduli e come aiutano il nostro Mars Rover a evitare ostacoli. Resta sintonizzato!
Passo 2: Scoprire il Modulo
Incontriamo il Modulo a Infrarossi per l’Evitamento degli Ostacoli: il nostro piccolo assistente intelligente. Questo dispositivo è pieno di meraviglie. Facciamo un tour:

Ecco i pin del modulo:
GND: È come l’ancora del modulo, collegandolo a terra o al punto comune nel circuito.
+: Qui il modulo riceve energia, con un’alimentazione da 3,3 a 5V DC.
Out: Questo è il comunicatore del modulo. Di default, resta alto e scende a basso solo quando rileva un ostacolo.
EN: Questo è il controllore del modulo. Il pin enable decide quando il modulo deve funzionare. Di default, è collegato a GND, il che significa che il modulo è sempre in funzione.
Ti incuriosisce come funziona questo piccolo modulo? È piuttosto interessante! Utilizza una coppia di componenti a infrarossi: un trasmettitore e un ricevitore. Il trasmettitore è come una torcia che emette luce a infrarossi. Quando appare un ostacolo, la luce infrarossa viene riflessa e catturata dal ricevitore. Il modulo quindi invia un segnale basso, avvisando il rover dell’ostacolo.

Il nostro piccolo modulo è piuttosto robusto, rilevando ostacoli entro un raggio di 2-40 cm e vantando eccellenti capacità anti-interferenza. Tuttavia, il colore degli oggetti influisce sulla sua capacità di rilevamento. Oggetti più scuri, soprattutto neri, vengono rilevati a una distanza più breve. Contro un muro bianco, il sensore è più efficiente, rilevando entro una distanza di 2-30 cm.
Il pin EN attiva il modulo quando è in stato basso, con il ponticello che collega il pin EN al GND. Se desideri controllare il pin EN tramite codice, il ponticello deve essere rimosso.

Ci sono due potenziometri sul modulo, uno per regolare la potenza di trasmissione e uno per regolare la frequenza di trasmissione, e regolando questi due potenziometri è possibile regolare la distanza di rilevamento.

Abbiamo scoperto molto su questo piccolo modulo. Nel prossimo passaggio impareremo come integrarlo con il nostro rover e controllarlo usando Arduino. Resta sintonizzato!
Passo 3: Leggere dai 2 Moduli
Come curiosi esploratori spaziali, tuffiamoci nell’universo dei codici e dei sensori!
Il nostro Mars Rover è dotato di due speciali sensori, posizionati sui pin 7 (destra) e 8 (sinistra). Questi sensori a infrarossi evitano costantemente «rocce spaziali» (ostacoli) nel viaggio interstellare del nostro Rover!
Successivamente, comunicheremo con il nostro Rover utilizzando il linguaggio universale del codice Arduino.
Per prima cosa, diamo un nome a ciascun «occhio» del Rover. Chiamiamoli
IR_RIGHT
eIR_LEFT
, così non li confonderemo.#define IR_RIGHT 7 #define IR_LEFT 8
Ora, facciamo sapere al nostro Rover che questi sono i suoi occhi speciali, che forniranno informazioni dal mondo esterno al cervello elettronico del Rover.
pinMode(IR_RIGHT, INPUT); pinMode(IR_LEFT, INPUT);
Per assicurarci che il Rover condivida le sue scoperte con noi, avviamo una comunicazione seriale alla velocità di 9600 bit al secondo: un dialogo ultra veloce!
Serial.begin(9600);
Ora, il nostro Rover scandaglia l’ambiente circostante con i suoi «occhi alieni» e ci comunica le sue scoperte. Se rileva un ostacolo, il valore sarà 0; se il percorso è libero, sarà 1. Continua a inviarci questi messaggi, tenendoci aggiornati.
int rightValue = digitalRead(IR_RIGHT); int leftValue = digitalRead(IR_LEFT); Serial.print("Right IR: "); Serial.println(rightValue); Serial.print("Left IR: "); Serial.println(leftValue);
Infine, il Rover si prende una pausa di 200 millisecondi tra ogni trasmissione, permettendoci di interpretare i suoi messaggi prima che ne invii un altro.
delay(200);
Ecco il codice completo:
Una volta pronto il codice, seleziona la scheda corretta e la porta, e carica il codice sul tuo Mars Rover. Poi, sintonizzati sulla comunicazione segreta (il Monitor Seriale) cliccando sull’icona in alto a destra.
Prima di ricevere i messaggi del Rover, assicurati che la linea di comunicazione sia sintonizzata alla stessa velocità (9600 baud) del Rover. Ed ecco che arrivano gli aggiornamenti in diretta!
Per testare il sistema, fai passare una «roccia spaziale» (la tua mano) davanti a uno dei sensori. Vedrai il valore cambiare a 0 e il LED corrispondente sul modulo si accenderà. È il Rover che dice: «Attenzione, roccia spaziale alla mia destra!»
Right IR: 0 Left IR: 1 Right IR: 0 Left IR: 1 Right IR: 0 Left IR: 1
Ora, non solo abbiamo viaggiato nello spazio, ma abbiamo anche decifrato il linguaggio marziano! Non vedo l’ora di scoprire i segreti interstellari nella nostra prossima missione!**Passo 4: Regolare la Distanza di Rilevamento**
Passo 4: Regolazione della Distanza di Rilevamento
Siamo arrivati a un passaggio cruciale: regolare la distanza di rilevamento dei nostri sensori in base all’ambiente circostante. Le impostazioni di fabbrica potrebbero non essere ottimali.
Se la distanza di rilevamento dei due moduli a infrarossi è troppo breve, il Mars Rover potrebbe urtare contro gli ostacoli. Se invece è troppo lunga, il Rover potrebbe iniziare a sterzare troppo presto, mentre è ancora a una notevole distanza dall’ostacolo, influenzando il suo movimento.
Ecco come puoi fare le regolazioni:
Inizia regolando il modulo di evitamento ostacoli destro. Durante il trasporto, gli urti potrebbero far inclinare il trasmettitore e il ricevitore del modulo a infrarossi. Pertanto, sarà necessario raddrizzarli manualmente.
Posiziona un ostacolo a circa 20 cm direttamente davanti al modulo destro. La scatola del nostro kit Rover è una buona scelta per questo! Ora, ruota il potenziometro sul modulo fino a quando la spia sul modulo si accende. Poi, continua a muovere l’ostacolo avanti e indietro per controllare se la spia si accende alla distanza desiderata. Se la luce non si accende alla distanza corretta o rimane accesa senza spegnersi, dovrai regolare l’altro potenziometro.
Ripeti lo stesso processo per l’altro modulo.
Ora che i nostri sensori sono completamente regolati, siamo pronti per intraprendere la prossima avventura!
Passo 5: Progettare un Sistema di Evitamento Ostacoli Automatico
Ora facciamo un grande passo nella nostra esplorazione spaziale e utilizziamo questi segnali dal Rover. Creeremo un sistema automatico di evitamento ostacoli!
Ecco il nostro piano: se il sensore destro rileva un ostacolo, il Rover si girerà all’indietro verso destra. Se il sensore sinistro rileva un ostacolo, il Rover si girerà all’indietro verso sinistra. Se entrambi i sensori rilevano un ostacolo, il Rover si muoverà all’indietro. Se non vengono rilevati ostacoli, il Rover continuerà a muoversi in avanti.
- Visualizziamo questo piano in un diagramma di flusso per renderlo ancora più chiaro.
I diagrammi di flusso sono un ottimo modo per delineare logicamente un piano, soprattutto quando si tratta di programmazione!

Comunichiamo questo piano al nostro Rover nel suo linguaggio (codice Arduino):
In questo codice, stiamo utilizzando l’istruzione if...else
nella funzione loop()
.
L’istruzione
if...else
viene utilizzata per eseguire un blocco di codice tra due alternative. Tuttavia, quando dobbiamo scegliere tra più di due alternative, usiamo l’istruzioneif...else if...else
.La sintassi dell’istruzione
if...else if...else
è la seguente:if (condizione1) { // blocco di codice 1 } else if (condizione2){ // blocco di codice 2 } else if (condizione3){ // blocco di codice 3 } else { // blocco di codice 4 }Here,
If condition1 is true, code block 1 is executed.
If condition1 is false, then condition2 is evaluated.
If condition2 is true, code block 2 is executed.
If condition2 is false, then condition3 is evaluated.
If condition3 is true, code block 3 is executed.
If condition3 is false, code block 4 is executed.
Ora che abbiamo progettato il nostro sistema automatico di evitamento ostacoli, è tempo della parte più emozionante: metterlo alla prova!
Puoi osservare se il Rover si muove come ti aspettavi.
Oppure, posizionalo in diverse condizioni di illuminazione per vedere come cambiano i suoi movimenti.
Integrando la scienza nel nostro progetto ingegneristico, stiamo diventando detective spaziali, risolvendo i misteri del comportamento del nostro Rover. Non si tratta solo di correggere errori, ma di ottimizzare le prestazioni, rendendo il nostro Rover il migliore possibile! Continua così, detective spaziali!
Passo 6: Riflessione e Sintesi
Nella fase di test, potresti aver notato un comportamento interessante del nostro Mars Rover: mentre evita ostacoli a sinistra e a destra con maestria, potrebbe avere difficoltà a rilevare piccoli ostacoli direttamente davanti.
Come possiamo risolvere questa sfida?
Resta sintonizzato per la prossima lezione, dove continueremo la nostra esplorazione nel mondo affascinante della programmazione, dei sensori e del rilevamento degli ostacoli.
Ricorda, ogni sfida è un’opportunità per imparare e innovare. E mentre continuiamo il nostro viaggio di esplorazione spaziale, c’è ancora tanto da scoprire e imparare!