U ovom tutorijalu naučit ćemo kako koristiti ESP32 modul zajedno s modulom za praćenje linije kako bismo detektovali crne linije na bijeloj površini. Ova sposobnost je neophodna za aplikacije poput robotskih automobila koji trebaju pratiti zadatu putanju. Dodatno, integrisat ćemo zujalicu koja se aktivira kada modul za praćenje linije detektuje crnu liniju, poboljšavajući mehanizam povratne informacije našeg projekta. Za dodatna pojašnjenja, molimo pogledajte video (u videu na 0:00).
line_track
Objašnjenje hardvera
Primarne komponente ovog projekta uključuju ESP32 modul, modul za praćenje linije i zujalicu. ESP32 modul je moćan mikrokontroler s ugrađenim Wi-Fi i Bluetooth mogućnostima, što omogućava širok spektar IoT aplikacija. Modul za praćenje linije koristi infracrveni emiter i fotootpornik za detekciju razlika u boji površine na osnovu intenziteta reflektovanog infracrvenog svjetla.
Modul za praćenje linije radi tako što emituje infracrveno svjetlo koje se reflektuje od površine ispod njega. Tamnija površina, poput crne, apsorbuje više svjetla, što rezultira nižim reflektovanim intenzitetom, dok svjetlija površina, poput bijele, reflektuje više svjetla, proizvodeći veći intenzitet. Ova razlika se obrađuje operacionim pojačalom kako bi se odredilo stanje površine (crna ili bijela) i izlazni odgovarajući signal.
Detalji iz tehničke dokumentacije
Proizvođač
SunFounder
Broj dijela
TCRT5000
Logički/IO napon
3.3 V do 5 V
Izlazna struja (po kanalu)
20 mA
Maksimalna struja (po kanalu)
50 mA
Vrijeme odziva
< 10 ms
Raspon detekcije
1 cm do 5 cm
Pakovanje
Modul s header pinovima
Napomene / varijante
Često se koristi u robotima za praćenje linije
Osigurajte odgovarajuće napajanje (3.3 V ili 5 V).
Održavajte senzor čistim za tačna očitavanja.
Podesite osjetljivost pomoću ugrađenog potenciometra.
Provjerite veze kako biste izbjegli plutajuće ulaze.
Koristite pull-up otpornike ako je potrebno za stabilna očitavanja.
Minimizirajte smetnje od ambijentalnih infracrvenih izvora.
Upute za povezivanje
ESP32-20_line-tracking-wiring
Da biste povezali modul za praćenje linije s ESP32, počnite spajanjem uzemljenog pina modula na uzemljeni pin na ESP32. Zatim spojite V+ pin modula za praćenje linije na odgovarajući izvor napajanja, bilo 3.3 V ili 5 V na ESP32. Signalni pin (označen kao S) treba spojiti na GPIO 14 na ESP32. Osigurajte da su ove veze sigurne prije nastavka.
Ako koristite zujalicu, spojite njen negativni terminal na uzemljenje, a pozitivni terminal na GPIO 27 na ESP32. Ova postavka omogućava zujalici da se aktivira kada modul za praćenje linije detektuje crnu liniju. Provjerite sve veze kako biste osigurali da odgovaraju navedenim pinovima u kodu.
ESP32-20_line-tracking-schemtaic
Primjeri koda i objašnjenje
Ispod je ključni izvod iz koda koji postavlja modul za praćenje linije. Varijabla linePin je definirana da predstavlja pin spojen na modul za praćenje linije.
const int linePin = 14; // Broj pina modula za praćenje linije
Ova linija inicijalizira linePin kao pin 14, koji će se koristiti za čitanje statusa linije. Varijabla lineState će sadržavati rezultat sa senzora.
U funkciji setup(), konfigurišemo način rada pina za linePin kao ulaz.
Ovo osigurava da ESP32 može čitati stanje modula za praćenje linije. Serijska komunikacija se pokreće pri brzini prijenosa od 115200 za praćenje izlaza.
Konačno, u funkciji loop(), kontinuirano čitamo stanje modula za praćenje linije i ispisujemo detektovanu boju.
Ova petlja provjerava da li je lineState HIGH (što označava crnu) ili LOW (što označava bijelu) i ispisuje rezultat na serijski monitor. Kompletan kod se učitava ispod članka za vašu referencu.
Demonstracija / Šta očekivati
Nakon što je povezivanje završeno i kod učitan, trebali biste primijetiti da ESP32 ispisuje "Black" kada je modul za praćenje linije iznad crne površine, a "White" kada je iznad bijele površine. Dodatno, zujalica će se oglasiti kada modul detektuje crnu liniju, pružajući zvučno upozorenje. Budite oprezni s postavkama potenciometra, jer previše osjetljive postavke mogu dovesti do nestabilnog ponašanja (u videu na 10:00).
Vremenske oznake videa
00:00 Početak
2:22 Uvod u modul za praćenje linije
5:10 Stranica dokumentacije
9:20 Objašnjeno povezivanje žica
10:49 Objašnjen Arduino kod
13:36 Odabir ESP32 ploče i COM porta u Arduino IDE
819-ESP32 Tutorial 20/55- Arduino code line tracking
Language: 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);
}
}