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.
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.
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
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);
}
}