Search Code

ESP32 Tutorijal 20/55 - Modul za praćenje linije | SunFounder's ESP32 IoT Learning kit

ESP32 Tutorijal 20/55 - Modul za praćenje linije | SunFounder's ESP32 IoT Learning kit

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.

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

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.

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

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
  • 15:18 Demonstracija
  • 18:15 Projekat: Praćenje linije sa zujalicom
  • 19:52 Arduino kod za praćenje linije i zujalicu
  • 20:52 Demonstracija

Images

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

Resources & references

Files📁

No files available.