Во ова упатство, ќе научиме како да го користиме ESP32 модулот заедно со модулот за следење линија за да детектираме црни линии на бела површина. Оваа способност е од суштинско значење за апликации како што се роботски автомобили кои треба да следат одредена патека. Дополнително, ќе интегрираме зумер кој се активира кога модулот за следење линија ќе ја детектира црната линија, подобрувајќи го механизмот за повратна информација на нашиот проект. За дополнително појаснување, ве молиме погледнете го видеото (во видеото на 0:00).
line_track
Објаснување на хардверот
Примарните компоненти на овој проект го вклучуваат ESP32 модулот, модулот за следење линија и зумерот. ESP32 модулот е моќен микроконтролер со вградени Wi-Fi и Bluetooth можности, што овозможува широк опсег на IoT апликации. Модулот за следење линија користи инфрацрвен емитер и фотоотпорник за да детектира разлики во бојата на површината врз основа на интензитетот на рефлектираната инфрацрвена светлина.
Модулот за следење линија работи така што емитира инфрацрвена светлина која се рефлектира од површината под него. Потемна површина, како црна, апсорбира повеќе светлина, што резултира со помал рефлектиран интензитет, додека посветла површина, како бела, рефлектира повеќе светлина, произведувајќи поголем интензитет. Оваа разлика се обработува од оперативен засилувач за да се одреди состојбата на површината (црна или бела) и да се излезе со соодветен сигнал.
Детали од табелата со податоци
Производител
SunFounder
Број на дел
TCRT5000
Логички/IO напон
3.3 V до 5 V
Излезна струја (по канал)
20 mA
Врвна струја (по канал)
50 mA
Време на одговор
< 10 ms
Опсег на детекција
1 cm до 5 cm
Пакет
Модул со иглички за поврзување
Белешки / варијанти
Најчесто се користи во роботи кои следат линија
Обезбедете соодветно напојување (3.3 V или 5 V).
Чувајте го сензорот чист за точни читања.
Прилагодете ја чувствителноста користејќи го вградениот потенциометар.
Проверете ги врските за да избегнете лебдечки влезови.
Користете pull-up отпорници ако е потребно за стабилни читања.
Минимизирајте ги пречките од амбиентални инфрацрвени извори.
Инструкции за поврзување
ESP32-20_line-tracking-wiring
За да го поврзете модулот за следење линија со ESP32, започнете со поврзување на пин за заземјување на модулот со пин за заземјување на ESP32. Потоа, поврзете го V+ пинот на модулот за следење линија со соодветен извор на напојување, или 3.3 V или 5 V на ESP32. Сигналниот пин (означен како S) треба да се поврзе на GPIO 14 на ESP32. Осигурете се дека овие врски се безбедни пред да продолжите.
Ако користите зумер, поврзете го неговиот негативен терминал со заземјување, а позитивниот терминал со GPIO 27 на ESP32. Оваа поставка овозможува зумерот да се активира кога модулот за следење линија ќе детектира црна линија. Проверете ги сите врски за да се осигурате дека одговараат на наведените пинови во кодот.
ESP32-20_line-tracking-schemtaic
Примери на код и објаснување
Подолу е клучен извадок од кодот што го поставува модулот за следење линија. Променливата linePin е дефинирана да го претставува пинот поврзан со модулот за следење линија.
const int linePin = 14; // Бројот на пинот на модулот за следење линија
Оваа линија го иницијализира linePin како пин 14, кој ќе се користи за читање на статусот на линијата. Променливата lineState ќе го држи резултатот од сензорот.
Во функцијата setup(), го конфигурираме режимот на пинот за linePin како влез.
Ова осигурува дека ESP32 може да ја чита состојбата на модулот за следење линија. Сериската комуникација е иницијализирана со брзина на пренос од 115200 за следење на излезот.
Конечно, во функцијата loop(), континуирано ја читаме состојбата на модулот за следење линија и ја печатиме детектираната боја.
Оваа јамка проверува дали lineState е HIGH (што означува црна) или LOW (што означува бела) и го печати резултатот на серискиот монитор. Целосниот код се вчитува под статијата за ваша референца.
Демонстрација / Што да очекувате
Откако ќе заврши поврзувањето и кодот ќе се постави, треба да забележите дека ESP32 печати "Black" кога модулот за следење линија е над црна површина, и "White" кога е над бела површина. Дополнително, зумерот ќе звучи кога модулот ќе ја детектира црната линија, обезбедувајќи звучно предупредување. Бидете внимателни со поставките на потенциометарот, бидејќи премногу чувствителни поставки може да доведат до непредвидливо однесување (во видеото на 10:00).
Временски ознаки на видеото
00:00 Почеток
2:22 Вовед во модулот за следење линија
5:10 Страница со документација
9:20 Објаснување на жиците
10:49 Објаснување на Arduino кодот
13:36 Избор на ESP32 плоча и COM порта во Arduino IDE
819-ESP32 Tutorial 20/55- Arduino code line tracking
Јазик: 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);
}
}