Robot evita ostacoli con hc-sr04

Share

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.