PROGETTI ARDUINO

  • HOME
  • 200 Progetti
  • PROGETTI E TUTORIAL
  • PROGETTI E TUTORIAL 2
  • ELETTRONICA
  • RECENSIONI
  • MANUALE
  • CONTATTI
  • HOME
  • 200 Progetti
  • PROGETTI E TUTORIAL
  • PROGETTI E TUTORIAL 2
  • ELETTRONICA
  • RECENSIONI
  • MANUALE
  • CONTATTI

Progetto 95
​Robot con servo
​(radar intelligente)

🧠 Introduzione

Nel progetto precedente abbiamo realizzato un robot in grado di evitare ostacoli muovendosi in modo automatico. Tuttavia, il sistema prendeva decisioni basate solo su ciò che si trovava direttamente davanti a sé.

In questo progetto facciamo un grande passo avanti: il robot diventa più intelligente grazie all’utilizzo di un servo motore che permette al sensore a ultrasuoni di ruotare e analizzare l’ambiente circostante.

Il robot sarà quindi in grado di “guardare” a destra e a sinistra prima di decidere dove andare, scegliendo la direzione con più spazio libero. Questo comportamento è molto più simile a quello dei robot reali e introduce una logica decisionale più avanzata.
​
Questo tipo di sistema è utilizzato in robot autonomi, veicoli intelligenti e sistemi di navigazione robotica.

🧰 Materiale necessario
​
  • Arduino UNO
  • Sensore ultrasuoni HC-SR04
  • Servo motore SG90
  • Driver motori L298N
  • 2 motori DC
  • Telaio robot (opzionale)
  • Batterie
  • Cavi jumper
🛒 Componenti e risorse consigliate

👉 Kit Arduino consigliato: https://amzn.to/41fmFNK
💡 Con un solo kit puoi realizzare la maggior parte dei progetti presenti nel sito.

📚 I miei libri consigliati
​

👉 Arduino per tutti – Volume 1: https://amzn.to/4rGNxB9
👉 Arduino per tutti – Volume 2: https://amzn.to/4bkfaey
👉 Arduino per tutti – Volume 3: https://amzn.to/4bogjAg

🔌 Schema di collegamento

Sensore HC-SR04
  • VCC → 5V Arduino
  • GND → GND Arduino
  • TRIG → Pin 9 Arduino
  • ECHO → Pin 10 Arduino

Servo motore
  • Rosso → 5V Arduino
  • Marrone → GND Arduino
  • Arancione → Pin 6 Arduino

Driver L298N
  • IN1 → Pin 2 Arduino
  • IN2 → Pin 3 Arduino
  • IN3 → Pin 4 Arduino
  • IN4 → Pin 5 Arduino
  • OUT1 / OUT2 → Motore sinistro
  • OUT3 / OUT4 → Motore destro
  • Alimentazione esterna → Batterie

⚠️ Tutti i GND devono essere collegati insieme.
Foto

📚 Librerie necessarie
​
  • Servo.h (già inclusa nell’IDE Arduino)

​💻 Codice Arduino 
​// ============================================
// Progetto 95 - Robot radar intelligente
// Evita ostacoli guardando a destra e sinistra
// ============================================

#include <Servo.h>

Servo servo;

int trigPin = 9;
int echoPin = 10;

// Motori
int in1 = 2;
int in2 = 3;
int in3 = 4;
int in4 = 5;

long durata;
int distanza;

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);

  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);

  servo.attach(6); // collegamento servo

  Serial.begin(9600);
}

// Funzione misura distanza
int misuraDistanza() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);

  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  long durata = pulseIn(echoPin, HIGH);
  return durata * 0.034 / 2;
}

void loop() {

  servo.write(90); // guarda avanti
  delay(300);

  int front = misuraDistanza();

  if (front > 20) {
    avanti();
  } else {
    ferma();

    // guarda a destra
    servo.write(0);
    delay(400);
    int destra = misuraDistanza();

    // guarda a sinistra
    servo.write(180);
    delay(400);
    int sinistra = misuraDistanza();

    // ritorna al centro
    servo.write(90);
    delay(300);

    // decide dove andare
    if (destra > sinistra) {
      giraDestra();
    } else {
      giraSinistra();
    }

    delay(500);
  }
}

// Movimento avanti
void avanti() {
  digitalWrite(in1, HIGH);
  digitalWrite(in2, LOW);
  digitalWrite(in3, HIGH);
  digitalWrite(in4, LOW);
}

// Stop
void ferma() {
  digitalWrite(in1, LOW);
  digitalWrite(in2, LOW);
  digitalWrite(in3, LOW);
  digitalWrite(in4, LOW);
}

// Rotazione destra
void giraDestra() {
  digitalWrite(in1, HIGH);
  digitalWrite(in2, LOW);
  digitalWrite(in3, LOW);
  digitalWrite(in4, HIGH);
}

// Rotazione sinistra
void giraSinistra() {
  digitalWrite(in1, LOW);
  digitalWrite(in2, HIGH);
  digitalWrite(in3, HIGH);
  digitalWrite(in4, LOW);
}

⚙️ Come funziona

Il servo motore ruota il sensore a ultrasuoni permettendo al robot di analizzare più direzioni.

Quando trova un ostacolo davanti, il robot misura la distanza a destra e a sinistra e sceglie automaticamente la direzione con più spazio.
​
Questo comportamento rende il robot molto più intelligente rispetto a un sistema base.

🔁 Varianti possibili
​
  • Servo più preciso
  • Display con distanza
  • LED direzionali
  • Robot completamente autonomo avanzato

Foto

© ProgettiArduino.com 2026 - Fancello Salvatore
​ Layout, immagini e testi sono di esclusiva proprietà di www.progettiarduino.com 
Privacy Policy