14

Rileva ostacoli con Ultrasonic HC-SR04 – Robot parte 6

Impariamo ora a far riconoscere al nostro robot gli ostacoli di fronte a sè. Con questo sketch il robot è in grado di riconoscere da solo gli ostacoli che ha di fronte, nella prossima lezione aggiungeremo i servo motori per far decidere al robot dove girarsi..

 

 

Per questo sketch usiamo il sensore Ultrasonic HC-SR04:

hc-sr04_ultrasonic_sensor_distance_measuring_module_1_

 

Il robot procederà dritto fino a che non “vedrà” un ostacolo di fronte a sè. Una volta rilevato inizierà a rallentare e quando molto vicino effettuerà le dovute manovre (in quest sketch va semplicemente indietro e dopo essersi fermato ruota a sinistra).

 

Vi sono due versioni.

  1.  Una semplice che si scarica cliccando qui sotto.
    Sketch per permettere al robot di rilevare gli ostacoli di fronte a sè rallentando avvicinandovisi
    2.8 KiB
    838 Downloads
    Dettagli
  2.   Una con l’aggiunta di 3 led colorati (uno verde, uno giallo ed uno rosso) che si accendono a seconda della distanza dell’ostacolo, si scarica cliccando qui sotto.

 

In entrambi gli sketch il robot rallenta se l’ostacolo si avvicina ma se vi sono ostacoli improvvisi il robot effettua subito le manovre senza rallentare gradualmente.

Ho aggiunto poi un controllo che eviti manovre impreviste anche senza ostacoli frontali dovuti ad errori di rilevazione del segnale. Ho notato infatti che a volte il robot cambiava direzione senza motivo.

Con questa piccola correzione questo non avviene.

Qui sotto le foto con anche gli schemi con i collegamenti elettrici. Ho collegato il tutto alla motor shield ma si possono usare altri pin (se si possiedono versioni di Arduino con dei pin liberi, ad esempio io li avrei con Arduino Mega ADK).

SAMSUNG

 

 

Lo schema per collegare i 3 led (le 3 resistenze sono da 220 ohm):

 

SAMSUNG

SAMSUNG

 

 

Ed ora lo schema per collegare il sensore Ultrasonic HC-SR04

SAMSUNG

 

 

Librerie

Occorrono le librerie di Adafruit e da me modificate. Vanno inserite nella cartella libraries e si possono scaricare da qui.

Librerie AFMotor di Motor Shield Adafruit + RobotMotorFunction per le funzioni principali dei motori
13.2 KiB
1851 Downloads
Dettagli

 

Video dimostrativo

 

 

Acquista il sensore

Clicca qui.

 

Share This:

Simone

Studente Data di nascita: 12/07/1990 - Parma, IT Hobbies: Informatica, acquariofilia, viaggi, tecnologia, aria aperta, sport, web.

14 Comments

  1. salve sto avendo questo problema con il skecht robotMotor.begin(); //Inizializzo i motori grazie

  2. ciao simone, qualche mese fa ho deciso di iniziare a capire arduino e tutto ciò che gli ruota intorno. mi piacerebbe costruire un rover evita ostacoli tipo quello che hai realizzato tu. Rimasto colpito dal tuo progetto ho pensato di realizzarne uno simile ma con 4 ruote motrici. Che possono anche funzionare come due ruote motrici, facendo girare le dx e le sx come se fossero cingolate. Ora la mia richiesta è possibile avere il tuo schema dei collegamenti tra arduino, motori e sensore?

    Grazie in anticipo e tutti i miei COMPLIMENTI per il tuo progetto.
    Saluti
    Stefano Ges

    • Ciao Stefano, grazie dei complimenti.
      Se vai nell’archivio con tag “robot” trovi tutti gli schemi e gli sketch di ogni progetto, partendo dalle basi come collegare la motor shield (adattabile al tuo caso dei 4 motori) fino ad arrivare a cose più complicate. L’ultimo è un rover completo a due ruote motrici con varie modalità di funzionamento e sensori, diciamo un mix di tutto quello visto nelle “lezioni” precedenti.
      Qui trovi l’archivio del quale ti parlavo http://www.dallaf.it/simo/wp/tag/robot/
      “ArduBot” è il rover completo con tutti gli schemi e lo sketch nel file zip che si scarica.

      Simone

  3. Ciao Simone,
    sono Stefano (non quello di prima)
    anche io ho trovato problemi sulla riga:

    robotMotorBegin(); //Inizializzo i motori

    ide mi da questo errore:

    robotMotorBegin was not declared in this scope

    HELPPP

    ps ho già inserito le librerie tue modificate

      • Si ho fatto tutto bene.
        Ho inserito in cartella libreries di arduino e poi ho riavviato il pc.

        • Per quanto riguarda lo sketch, hai posizionato tutti e 3 i file nella stessa cartella? In sostanza devi decomprimere l’intero file zip così com’è. In questo modo ti troverai una cartella con lo stesso nome dello sketch principale nella quale c’è lo sketch composto da due file .ino (due schede per suddividere le funzioni) e un file header .H.
          In particolare la funzione che non trova è definita in robotMotori.ino, una di queste due schede

          • estraggo intero file così com’è in libreries di arduino?

          • No, lì solitamente ci vanno solo le librerie. Estrai dove ci sono tutti gli sketch. Ma in ogni caso puoi estrarre dove vuoi. Tanto l’IDE dovrebbe recuperare le librerie in ogni caso.
            Importante è che questi 3 file si trovino nella stessa cartella

  4. Perdonami ma proprio non riesco in nessun modo. Eppure ho fatto tanti tentativi.

    Ti chiedo un’ultima cortesia. Potresti descrivere quello che bisogna fare, per dirla all’americana zombie Proof?
    Cioè fai conto che io sia uno zombi e descrivimi con estrema precisione quello che devo fare passo per passo dallo sketch alle librerie.

    Grazie mille anticipatamente.

    ps io sono un Chimico e questa nn è chiaramente materia mia 😉

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.