Cerca codice

Codice Arduino e video: modulo per l'evitamento degli ostacoli a infrarossi

Codice Arduino e video: modulo per l'evitamento degli ostacoli a infrarossi

Questo progetto dimostra come costruire un semplice sistema di evitamento degli ostacoli utilizzando un modulo sensore a infrarossi e un microcontrollore Arduino. È un ottimo progetto per principianti che vogliono imparare l'interfacciamento dei sensori e la programmazione di base. Le applicazioni di questa tecnologia sono numerose e possono essere adattate a diversi progetti.

IR osbstacle avoidance module

Ad esempio:

  • Navigazione robotica:Programma un robot per evitare autonomamente gli ostacoli.
  • Automazione domestica intelligente:Crea un sistema per rilevare oggetti in un'area specifica e attivare azioni di conseguenza.
  • Sistema di sicurezza:Progetta un sistema di rilevamento delle intrusioni di base che ti avvisi quando qualcosa entra in un'area monitorata.

Hardware/Componenti

Il progetto utilizza un modulo di evitamento ostacoli a infrarossi pronto all'uso, un microcontrollore Arduino e alcuni fili di collegamento. Il modulo a infrarossi contiene a sua volta un emettitore a infrarossi, un ricevitore e un amplificatore operazionale (op-amp) per elaborare il segnale (nel video a :22). Presenta inoltre due LED: uno che indica l'alimentazione e l'altro che segnala il rilevamento di ostacoli (nel video a :37).

Il modulo ha tre pin: VCC (alimentazione), GND (massa) e un pin di uscita. Un potenziometro permette di regolare la distanza di rilevamento, che varia da pochi centimetri fino a circa 10 centimetri (nel video a 00:51).

Guida al cablaggio

Il cablaggio è semplice. Collega il pin VCC del modulo a infrarossi al pin 5V dell'Arduino, il pin GND al pin GND dell'Arduino e il pin di uscita a un pin di ingresso digitale dell'Arduino (nel codice di esempio viene usato il pin 8).

Arduino wiring for IR osbstacle avoidance module
Arduino wiring for IR osbstacle avoidance module

Spiegazione del codice

Il codice Arduino è piuttosto semplice. La parte cruciale è impostare la modalità corretta del pin e leggere l'uscita del sensore. Il codice usa il pin 8 come ingresso (pinMode(8, INPUT);) (nel video alle 06:10). IldigitalRead(8)La funzione legge lo stato di questo pin, che è HIGH quando non viene rilevato alcun ostacolo e LOW quando è presente un ostacolo (nel video a 06:15). Il codice poi stampa "Obstacle on the way" o "All clear" sul monitor seriale di conseguenza (nel video a 06:29).


void setup() {
  Serial.begin(9600);
  pinMode(8, INPUT); // Set pin 8 as input
}

void loop() {
  int detect = digitalRead(8); // Read pin 8
  if (detect == LOW) {
    Serial.println("Obstacle on the way");
  } else {
    Serial.println("All clear");
  }
  delay(300);
}

Progetto/Dimostrazione dal vivo

Il video dimostra la funzionalità del sistema di evitamento degli ostacoli. Il presentatore mostra come il potenziometro regola la portata di rilevamento (nel video a 00:57). L'output del monitor seriale mostra chiaramente i messaggi "Ostacolo sul percorso" e "Nessun ostacolo", corrispondenti alla presenza o all'assenza di un ostacolo (nel video a 07:07). La portata massima di rilevamento è di circa 10 centimetri (nel video a 03:30).

Capitoli

  • [00:06] Introduzione all'evitamento degli ostacoli a infrarossi
  • [00:22] Panoramica del modulo e dei componenti
  • [00:51] Regolazione del potenziometro e distanza di rilevamento
  • [01:19] Come funziona il sensore a infrarossi
  • [02:29] Dimostrazione del rilevamento degli ostacoli
  • [05:57] Spiegazione del codice: configurazione e ciclo
  • [06:55] Demo di caricamento del codice e del monitor seriale
  • [07:35] Ulteriori applicazioni e progetti futuri

Immagini

IR osbstacle avoidance module
IR osbstacle avoidance module
Arduino wiring for IR osbstacle avoidance module
Arduino wiring for IR osbstacle avoidance module
51-This is the Arduino code for an infrared obstacle avoidance module.
Lingua: C++
/*
 * This is the Arduino code for the Infrared Obstacle Avoidance module.
 * Watch the video for details and demo: https://youtu.be/T3Li128GBlM
 * 
 * Written by Ahmad Nejrabi for the Robojax Video channel, www.Robojax.com
 * Date: December 28, 2017, in Ajax, Ontario, Canada
 * Permission granted to share this code, given that this
 * note is kept with the code.
 * Disclaimer: This code is "AS IS" and for educational purposes only.
 * This code has been downloaded from https://robojax.com
 */
void setup() {
 Serial.begin(9600);
 pinMode(8, INPUT);// set pin as input

}

void loop() {
  // Written for Robojax on December 28, 2017
  int detect = digitalRead(8);// read obstacle status and store it into "detect"
  if(detect == LOW){
    
   Serial.println("Obstacle on the way"); 
  }else{
    
   Serial.println("All clear");  
  }
  delay(300);
}

Risorse e riferimenti

Nessuna risorsa ancora.

File📁

File Fritzing