Per creare un robot con Arduino che eviti gli ostacoli utilizzando il sensore HC-SR04, ti fornirò un semplice sketch di esempio. Assicurati di aver collegato correttamente il sensore HC-SR04 al tuo Arduino prima di caricare il codice.
// Include la libreria per il sensore HC-SR04
#include <NewPing.h>
// Definisce i pin di collegamento per il sensore HC-SR04
#define TRIGGER_PIN 9
#define ECHO_PIN 10
// Definisce la distanza massima a cui il robot può rilevare un ostacolo (in cm)
#define MAX_DISTANCE 200
// Definisce la velocità di movimento del robot
#define MOTOR_SPEED 150
// Crea un oggetto NewPing con i pin del sensore
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
void setup() {
// Inizializza la comunicazione seriale per il debug
Serial.begin(9600);
}
void loop() {
// Effettua una misurazione della distanza
unsigned int distance = sonar.ping_cm();
// Stampa la distanza rilevata sulla porta seriale per il debug
Serial.print("Distanza: ");
Serial.print(distance);
Serial.println(" cm");
// Controlla se la distanza è inferiore a un certo valore (quando è vicino a un ostacolo)
if (distance > 0 && distance < 20) {
// Se la distanza è inferiore a 20 cm, fai girare il robot all'indietro per evitare l'ostacolo
moveBackward();
delay(500);
// Fai girare il robot a sinistra per cambiare direzione
turnLeft();
delay(1000);
} else {
// Se non ci sono ostacoli vicini, il robot va avanti
moveForward();
}
}
// Funzione per far muovere il robot in avanti
void moveForward() {
// Inserisci qui il codice per far muovere il robot in avanti
}
// Funzione per far muovere il robot all'indietro
void moveBackward() {
// Inserisci qui il codice per far muovere il robot all'indietro
}
// Funzione per far girare il robot a sinistra
void turnLeft() {
// Inserisci qui il codice per far girare il robot a sinistra
}
// Funzione per far girare il robot a destra
void turnRight() {
// Inserisci qui il codice per far girare il robot a destra
}
Nell’esempio sopra, viene utilizzata la libreria “NewPing” per semplificare l’uso del sensore HC-SR04. Assicurati di aver installato questa libreria nella tua IDE di Arduino prima di compilare il codice. I pin TRIGGER_PIN e ECHO_PIN vengono definiti per il sensore HC-SR04, e la distanza massima di rilevamento degli ostacoli è impostata a 200 cm (2 metri).
Nella funzione ‘loop()
‘, viene effettuata una misurazione della distanza rilevata dal sensore. Se la distanza è inferiore a 20 cm, il robot si muoverà all’indietro per evitare l’ostacolo e quindi girerà a sinistra per cambiare direzione. Se non ci sono ostacoli nelle vicinanze, il robot andrà avanti.
Le funzioni ‘moveForward()
‘, ‘moveBackward()
‘, ‘turnLeft()
‘ e ‘turnRight()
‘ sono create come segnaposto per far muovere il robot. Dovrai inserire il codice adeguato per controllare i motori del tuo robot in queste funzioni, a seconda del tuo hardware specifico.
Ricorda di adattare il codice alle tue esigenze specifiche, incluso il controllo dei motori, e assicurati che il robot sia costruito e collegato correttamente. Il sensore HC-SR04 è abbastanza semplice da utilizzare e ti permetterà di ottenere dati sulla distanza dagli oggetti circostanti.