- Potrebni materijali:
- Koncepti linijskog sljedbenika
- Kružni dijagram i objašnjenje:
- Programiranje PIC mikrokontrolera:
- PIC-ov sljedbenik na djelu:
Line Follower Robot jednostavan je, ali fascinantan robot za izgradnju većine učenika / hobista. U ovom uputstvu naučit ćemo kako funkcionira robot sljedbenika linija i kako ga možemo izraditi pomoću PIC mikrokontrolera PIC16F877A. PIC16F877A je 40-pinski višenamjenski MCU tvrtke Microchip, a mi smo koristili ovaj IC u našoj cjelovitoj seriji PIC tutorijala. Ako ste novi, ovdje ćete možda htjeti pogledati ove PIC vodiče kako biste naučili osnove ovog IC-a i kako prenijeti programe na mikrokontroler. Budući da smo ove podatke već pokrili u našim vodičima, preskočit ćemo ih u objašnjenju u nastavku.
Ako ste zainteresirani za robotiku, trebali biste biti dobro upoznati s nazivom " Line Follower Robot ". Ovaj robot može slijediti liniju, samo koristeći par senzora i motora. Ovaj vam robot daje prostor za beskonačni razvoj, a roboti poput Kive (Amazonov skladišni robot) primjer su za to. Također možete provjeriti i druge naše robotske sljedbenike:
- Robot za sljedbenike linija pomoću mikrokontrolera 8051
- Robot sljedbenik crte koji koristi Arduino
- Robot sljedbenik linija koji koristi Raspberry Pi
Potrebni materijali:
- PIC16F877A
- IR senzor (2Nos)
- Istosmjerni motor (2Nos)
- L293D vozač motora
- Ležaljke (možete i sami izraditi pomoću kartona)
- Banka napajanja (bilo koji dostupan izvor napajanja)
Koncepti linijskog sljedbenika
Line Follower Robot je u mogućnosti pratiti liniju uz pomoć IR senzora. Ovaj senzor ima IR odašiljač i IR prijemnik. IR odašiljač (IR LED) prenosi svjetlost, a prijemnik (fotodioda) čeka da se vraćena svjetlost vrati. IR svjetlo vratit će se nazad samo ako ga reflektira površina. Dok sve površine ne odražavaju IR svjetlost, samo ih bijela površina boje može u potpunosti odbiti, a površina crne boje u potpunosti će ih promatrati kako je prikazano na donjoj slici. Ovdje saznajte više o modulu IR senzora.



Sada ćemo upotrijebiti dva IR senzora da provjerimo je li robot u tragu s linijom i dva motora za ispravljanje robota ako se pomakne s kolosijeka. Ovi motori zahtijevaju veliku struju i trebali bi biti dvosmjerni; stoga koristimo modul motornog pogona poput L293D. Trebat će nam i mikrokontroler poput PIC-a za podučavanje motora na temelju vrijednosti iz IR senzora. Pojednostavljeni blok dijagram istog prikazan je u nastavku.

Ova dva IR senzora bit će postavljena jedan s obje strane crte. Ako niti jedan senzor ne prepozna crnu crtu, PIC mikrokontroler upućuje motore da se pomaknu naprijed kako je prikazano dolje

Ako lijevi senzor dolazi na crnu crtu, tada mikrokontroler nalaže robotu da skrene ulijevo okrećući samo desni kotačić.

Ako desni senzor dolazi na crnu crtu, tada mikrokontroler upućuje robota da skrene udesno okrećući samo lijevi kotačić.

Ako oba senzora dođu na crnu liniju, robot se zaustavlja.

Na taj će način Robot moći pratiti liniju bez izlaska iz staze. Sada da vidimo kako izgledaju sklop i kod.
Kružni dijagram i objašnjenje:
Kompletna shema sklopa za ovaj PIC-ov robot zasnovan na PIC-u prikazana je u nastavku

Krug zapošljava dva IR senzora i par istosmjernih motora sa zupčanicima, zajedno s modulom pogonskog motora, kao što je prikazano gore. Modul pogonskog sklopa motora koji se koristi u ovom projektu je L293D, trebat će nam pokretač motora jer izlazni zatik PIC mikrokontrolera ne može proizvesti dovoljno struje za pogon motora. Ovaj se modul napaja izravno iz izvora napajanja (5V) kako je prikazano u krugu. Modul ima četiri zatiča (dva za svaki motor) koji su povezani s PIC-om za kontrolu smjera motora. Također imamo dva IR senzora koji djeluju kao ulaz u PIC mikrokontroler. Ti će senzori ići visoko (1) ako su iznad bijele površine, a ići će nisko (0) kad su preko crne površine. Kompletni pin priključci prikazani su u donjoj tablici.
|
S.Br |
Povezano iz |
Spojen na |
|
1 |
IR senzor Lijevi vanjski klin |
RD2 (pin 21) |
|
2 |
IR senzor Desni vanjski pin |
RD3 (pin 22) |
|
4 |
Priključak motora 1 kanala A |
RC4 (iglica 23) |
|
5 |
Motor 1 Kanal B pin |
RC5 (iglica 25) |
|
6 |
Priključak motora 2 kanala A |
RC6 (iglica 26) |
|
7 |
Priključak motora 2 kanala B |
RC7 (pin 27) |
U stvarnom hardveru koristio sam banku napajanja koja će dati izlaz od + 5V izravno kroz svoj USB priključak; stoga sam zaobišao regulator napona 7805 i napajao PIC, senzore i motore koristeći isti. Možete isto učiniti ako koristite bateriju od 12 V zajedno s regulatorom kao što je prikazano u krugu.


Programiranje PIC mikrokontrolera:
Kad ste spremni sa svojim hardverom, vrijeme je da započnete s programiranjem. Kompletan program ovog PIC-Line sljedbenika Robot Projekt je dano na kraju ove stranice. Međutim, važni dijelovi su objašnjeni u nastavku.
Inicijalizirajte I / O iglice sljedećim redovima. 2 iglice osjetnika IR djeluju kao ulaz, a četiri iglice motora djeluju kao izlazne iglice.
TRISD2 = 1; TRISD3 = 1; // Okupajte pinove IR senzora deklarirani kao ulaz TRISC4 = 0; TRISC5 = 0; // Igle motora 1 deklarirane kao izlaz TRISC6 = 0; TRISC7 = 0; // Motor 2 pinova prijavljeni kao izlazni
Sada moramo očitati status i IR senzora i prema tome upravljati motorom. Na primjer, ako su oba senzora visoka (ne dolaze ispod crne crte), tada pomičemo oba motora prema naprijed, kao što je prikazano u donjem programu.
if (RD2 == 1 && RD3 == 1) // Oba senzora nisu preko zaporne crte {RC4 = 0; RC5 = 1; // Motor 1 prema naprijed RC6 = 1; RC7 = 0; // Motor 2 prema naprijed}
Ako lijevi senzor prelazi crnu crtu, mi skrećemo udesno držeći motor 1 mirno i rotirajući motor 2 u smjeru naprijed. Ova vrsta okretanja naziva se diferencijalno okretanje.
inače ako (RD2 == 0 && RD3 == 1) // Lijevi senzor je preko crne crte {RC4 = 1; RC5 = 1; // Motor 1 zaustavljanje RC6 = 1; RC7 = 0; // Motor 2 prema naprijed}
Slično tome, ako desni senzor prelazi preko crne crte , bot je napravljen da skrene ulijevo držeći drugi motor mirno i rotirajući prvi motor sam u smjeru naprijed, kao što je prikazano dolje.
inače ako (RD2 == 1 && RD3 == 0) // Desni senzor je preko crne crte {RC4 = 0; RC5 = 1; // Motor 1 prema naprijed RC6 = 1; RC7 = 1; // zaustavljanje motora 2}
Napokon, ako oba senzora dođu ispod crne crte, vrijeme je da zaustavite bota. To se može učiniti tako da se sve pinove oba motora podignu visoko. Kôd za isto je prikazan u nastavku
else // Oba senzora preko crne crte {RC4 = 1; RC5 = 1; // Motor 1 zaustavljanje RC6 = 1; RC7 = 1; // zaustavljanje motora 2}
To je to što je program spreman i može se prenijeti na PIC pomoću bilo kojeg programera poput PicKita.
PIC-ov sljedbenik na djelu:
Kad su hardver i kod spremni, vrijeme je za neke radnje. Kao što je ranije rečeno, za napajanje bota koristio sam Power Bank, pa sve što moram učiniti je jednostavno povezati Power Bank s botom na kojem je postavljen hardver i kôd je već postavljen.
PIC Perf ploča napravljena je za našu seriju PIC tutoriala, u kojoj smo naučili kako koristiti PIC mikrokontroler. Možda se želite vratiti na te upute za PIC mikrokontroler pomoću MPLABX-a i XC8 ako ne znate kako snimiti program pomoću Pickita 3, jer ću preskočiti sve te osnovne informacije.

Sada jednostavno pokrenite bota preko crne crte i trebali biste ga gledati slijedeći liniju.
U početku biste se mogli suočiti s nekim poteškoćama, u tom slučaju pročitajte dalje. Ako se kotači okreću u suprotnom smjestu, jednostavno promijenite polaritet motora koji se kotačić okreće u suprotnom smjeru. Ako bot odstupa od linije, zamijenite IR senzor i sve bi trebalo biti dobro.
Kompletan rad bota možete pronaći na video ispod. Nadam se da vam se svidio projekt i uživali ste u izgradnji nečeg sličnog. Ako imate problema s postizanjem ovog rezultata, možete ih objaviti u odjeljku za komentare u nastavku da biste to riješili ili na forumima foruma razgovarajte o tehničkom sadržaju.
