Search Code

Samouczek ESP32 20/55 - Moduł śledzenia linii | Zestaw do nauki IoT ESP32 od SunFounder

Samouczek ESP32 20/55 - Moduł śledzenia linii | Zestaw do nauki IoT ESP32 od SunFounder

W tym samouczku nauczymy się, jak używać modułu ESP32 wraz z modułem śledzenia linii do wykrywania czarnych linii na białej powierzchni. Ta funkcja jest niezbędna w zastosowaniach takich jak roboty jeżdżące, które muszą podążać wyznaczoną trasą. Dodatkowo zintegrujemy brzęczyk, który aktywuje się, gdy moduł śledzenia linii wykryje czarną linię, zwiększając mechanizm sprzężenia zwrotnego naszego projektu. Aby uzyskać dalsze wyjaśnienia, zapoznaj się z filmem (na filmie o 0:00).

line_track

Objaśnienie sprzętu

Główne elementy tego projektu obejmują moduł ESP32, moduł śledzenia linii oraz brzęczyk. Moduł ESP32 to wydajny mikrokontroler z wbudowaną obsługą Wi-Fi i Bluetooth, umożliwiający szeroki zakres zastosowań IoT. Moduł śledzenia linii wykorzystuje emiter podczerwieni i fotorezystor do wykrywania różnic w kolorze powierzchni na podstawie intensywności odbitego światła podczerwonego.

Moduł śledzenia linii działa poprzez emitowanie światła podczerwonego, które odbija się od powierzchni pod nim. Ciemniejsza powierzchnia, taka jak czarna, pochłania więcej światła, co skutkuje niższą intensywnością odbicia, podczas gdy jaśniejsza powierzchnia, taka jak biała, odbija więcej światła, wytwarzając wyższą intensywność. Ta różnica jest przetwarzana przez wzmacniacz operacyjny w celu określenia stanu powierzchni (czarna lub biała) i wyprowadzenia odpowiedniego sygnału.

Szczegóły z karty katalogowej

Producent SunFounder
Numer części TCRT5000
Napięcie logiczne/IO 3,3 V do 5 V
Prąd wyjściowy (na kanał) 20 mA
Prąd szczytowy (na kanał) 50 mA
Czas odpowiedzi < 10 ms
Zakres wykrywania 1 cm do 5 cm
Obudowa Moduł z pinami nagłówkowymi
Uwagi / warianty Często używany w robotach podążających za linią

 

  • Zapewnij odpowiednie zasilanie (3,3 V lub 5 V).
  • Utrzymuj czujnik w czystości, aby zapewnić dokładne odczyty.
  • Dostosuj czułość za pomocą wbudowanego potencjometru.
  • Sprawdź połączenia, aby uniknąć pływających wejść.
  • W razie potrzeby użyj rezystorów podciągających, aby uzyskać stabilne odczyty.
  • Minimalizuj zakłócenia z otaczających źródeł podczerwieni.

Instrukcje podłączenia

ESP32-20_line-tracking-wiring

Aby podłączyć moduł śledzenia linii do ESP32, zacznij od połączenia pinu masy modułu z pinem masy na ESP32. Następnie podłącz pin V+ modułu śledzenia linii do odpowiedniego źródła zasilania, 3,3 V lub 5 V na ESP32. Pin sygnałowy (oznaczony jako S) należy podłączyć do GPIO 14 na ESP32. Upewnij się, że te połączenia są bezpieczne przed kontynuowaniem.

Jeśli używasz brzęczyka, podłącz jego zacisk ujemny do masy, a zacisk dodatni do GPIO 27 na ESP32. Ta konfiguracja umożliwia aktywację brzęczyka, gdy moduł śledzenia linii wykryje czarną linię. Upewnij się, że wszystkie połączenia odpowiadają określonym pinom w kodzie.

ESP32-20_line-tracking-schemtaic

Przykłady kodu i omówienie

Poniżej znajduje się kluczowy fragment kodu, który konfiguruje moduł śledzenia linii. Zmienna linePin jest zdefiniowana, aby reprezentować pin podłączony do modułu śledzenia linii.

const int linePin = 14;  // Numer pinu modułu śledzenia linii

Ta linia inicjalizuje linePin jako pin 14, który będzie używany do odczytu stanu linii. Zmienna lineState będzie przechowywać wynik z czujnika.

W funkcji setup() konfigurujemy tryb pinu dla linePin jako wejście.

void setup() {
  Serial.begin(115200);  
  pinMode(linePin, INPUT);
}

Zapewnia to, że ESP32 może odczytać stan modułu śledzenia linii. Komunikacja szeregowa jest inicjowana z szybkością transmisji 115200 w celu monitorowania wyjścia.

Na koniec w funkcji loop() ciągle odczytujemy stan modułu śledzenia linii i wypisujemy wykryty kolor.

void loop() {
  lineState = digitalRead(linePin);
  if (lineState == HIGH) {
    Serial.println("Czarny");
    delay(100);
  } else {
    Serial.println("Biały");
    delay(100);
  }
}

Ta pętla sprawdza, czy lineState jest HIGH (wskazując czarny) lub LOW (wskazując biały) i wypisuje wynik do monitora szeregowego. Pełny kod znajduje się poniżej artykułu w celach informacyjnych.

Demonstracja / Czego się spodziewać

Po zakończeniu podłączania i wgraniu kodu powinieneś zaobserwować, że ESP32 wypisuje "Czarny", gdy moduł śledzenia linii znajduje się nad czarną powierzchnią, oraz "Biały", gdy znajduje się nad białą powierzchnią. Dodatkowo brzęczyk wyda dźwięk, gdy moduł wykryje czarną linię, zapewniając sygnał dźwiękowy. Zachowaj ostrożność w ustawieniach potencjometru, ponieważ zbyt czułe ustawienia mogą prowadzić do nieregularnego zachowania (na filmie o 10:00).

Znaczniki czasu w filmie

  • 00:00 Start
  • 2:22 Wprowadzenie do modułu śledzenia linii
  • 5:10 Strona dokumentacji
  • 9:20 Wyjaśnienie podłączenia
  • 10:49 Wyjaśnienie kodu Arduino
  • 13:36 Wybór płytki ESP32 i portu COM w Arduino IDE
  • 15:18 Demonstracja
  • 18:15 Projekt: Śledzenie linii z brzęczykiem
  • 19:52 Kod Arduino dla śledzenia linii i brzęczyka
  • 20:52 Demonstracja

Obrazy

ESP32-20_line-tracking-schemtaic
ESP32-20_line-tracking-schemtaic
ESP32-20_line-tracking-wiring
ESP32-20_line-tracking-wiring
line_track
line_track
819-ESP32 Tutorial 20/55- Arduino code line tracking
Język: C++
// Set pin number
const int linePin = 14;  // The number of the line track module pin

// Variable for storing the line status 
int lineState = 0;

void setup() {
  Serial.begin(115200);  
  // Initialize the line track module pin as an input
  pinMode(linePin, INPUT);
}

void loop() {
  // Read the state of the line track module
  lineState = digitalRead(linePin);

  if (lineState == HIGH) {
    Serial.println("Black");
    delay(100);
  }
  else {
    Serial.println("White");
    delay(100);
  }
}

Zasoby i odniesienia

Pliki📁

Brak dostępnych plików.