Search Code

Kod Arduino i wideo: Moduł unikania przeszkód na podczerwień

Kod Arduino i wideo: Moduł unikania przeszkód na podczerwień

Ten projekt pokazuje, jak zbudować prosty system unikania przeszkód przy użyciu modułu czujnika podczerwieni i mikrokontrolera Arduino. To świetny projekt dla początkujących uczących się interfejsowania czujników i podstawowego programowania. Zastosowania tej technologii są liczne i można ją dostosować do różnych projektów.

IR osbstacle avoidance module

Na przykład:

  • Nawigacja robotów: Zaprogramuj robota, aby autonomicznie unikał przeszkód.
  • Automatyka domowa: Stwórz system wykrywający obiekty w określonym obszarze i wyzwalający odpowiednie działania.
  • System bezpieczeństwa: Zaprojektuj podstawowy system wykrywania włamań, który ostrzega, gdy coś wejdzie na monitorowany obszar.

Sprzęt/Komponenty

Projekt wykorzystuje łatwo dostępny moduł unikania przeszkód na podczerwień, mikrokontroler Arduino oraz przewody łączące. Sam moduł podczerwieni zawiera nadajnik podczerwieni, odbiornik oraz wzmacniacz operacyjny (op-amp) do przetwarzania sygnału (na filmie w 00:22). Posiada również dwie diody LED: jedną sygnalizującą zasilanie i drugą sygnalizującą wykrycie przeszkody (na filmie w 00:37).

Moduł ma trzy piny: VCC (zasilanie), GND (masa) oraz pin wyjściowy. Potencjometr umożliwia regulację odległości wykrywania, od kilku centymetrów do około 10 centymetrów (na filmie w 00:51).

Schemat podłączenia

Podłączenie jest proste. Podłącz pin VCC modułu podczerwieni do pinu 5V Arduino, pin GND do pinu GND Arduino, a pin wyjściowy do cyfrowego pinu wejściowego Arduino (w przykładowym kodzie użyto pinu 8).

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

Wyjaśnienie kodu

Kod Arduino jest dość prosty. Kluczową częścią jest ustawienie odpowiedniego trybu pinu i odczytanie wyjścia czujnika. Kod używa pinu 8 jako wejścia (pinMode(8, INPUT);) (na filmie w 06:10). Funkcja digitalRead(8) odczytuje stan tego pinu, który jest WYSOKI, gdy nie wykryto przeszkody, i NISKI, gdy przeszkoda jest obecna (na filmie w 06:15). Kod następnie wypisuje „Obstacle on the way” lub „All clear” na monitorze szeregowym (na filmie w 06:29).


void setup() {
  Serial.begin(9600);
  pinMode(8, INPUT); // Ustaw pin 8 jako wejście
}

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

Projekt na żywo/Demonstracja

Film demonstruje działanie systemu unikania przeszkód. Prezenter pokazuje, jak potencjometr reguluje zasięg wykrywania (na filmie w 00:57). Wyjście monitora szeregowego wyraźnie pokazuje komunikaty „Obstacle on the way” i „All clear”, odpowiadające obecności lub brakowi przeszkody (na filmie w 07:07). Maksymalny zasięg wykrywania wynosi około 10 centymetrów (na filmie w 03:30).

Rozdziały

  • [00:06] Wprowadzenie do unikania przeszkód na podczerwień
  • [00:22] Przegląd modułu i komponentów
  • [00:51] Regulacja potencjometru i odległość wykrywania
  • [01:19] Jak działa czujnik podczerwieni
  • [02:29] Demonstracja wykrywania przeszkód
  • [05:57] Wyjaśnienie kodu: Setup i Loop
  • [06:55] Wgrywanie kodu i demonstracja monitora szeregowego
  • [07:35] Dalsze zastosowania i przyszłe projekty

Obrazy

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.
Język: 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);
}

Rzeczy, których możesz potrzebować

Zasoby i odniesienia

Brak zasobów.

Pliki📁

Plik Fritzing

Inne pliki