- Potrebné materiály:
- Koncepty sledovača čiary
- Schéma zapojenia a vysvetlenie:
- Programovanie mikrokontroléra PIC:
- Sledovač linky PIC v akcii:
Robot sledovača čiary je jednoduchý, ale fascinujúci robot, ktorý je možné zostaviť pre väčšinu študentov / nadšencov. V tomto tutoriáli sa dozvieme, ako pracuje robot Line Follower a ako ho môžeme zostaviť pomocou mikrokontroléra PIC PIC16F877A. PIC16F877A je 40-pólový viacúčelový MCU od spoločnosti Microchip, tento integrovaný obvod sme použili v našej kompletnej sérii výukových programov PIC. Ak ste nový, môžete si tu pozrieť tieto výukové programy PIC, v ktorých sa dozviete základné informácie o tomto IC a o tom, ako nahrávať programy do mikrokontroléra. Pretože sme sa týmto informáciám už venovali v našich tutoriáloch, v nasledujúcom vysvetlení ich preskočíme.
Ak sa zaujímate o robotiku, mali by ste veľmi dobre poznať názov „ Line Follower Robot “. Tento robot je schopný sledovať líniu iba pomocou dvojice senzorov a motorov. Tento robot vám dáva priestor na nekonečný vývoj a príkladom sú roboty ako Kiva (skladový robot Amazon). Môžete tiež skontrolovať naše ďalšie roboty na sledovanie liniek:
- Robot sledovača liniek pomocou mikrokontroléra 8051
- Line Follower Robot pomocou Arduina
- Robot sledovača liniek pomocou Raspberry Pi
Potrebné materiály:
- PIC16F877A
- IR senzor (2Nos)
- DC prevodový motor (2Nos)
- Ovládač motora L293D
- Lehátka (Môžete si tiež vytvoriť vlastné pomocou lepeniek)
- Napájacia banka (akýkoľvek dostupný zdroj napájania)
Koncepty sledovača čiary
Robot sledovača linky je schopný sledovať linku pomocou infračerveného senzora. Tento snímač má IR vysielač a IR prijímač. IR vysielač (IR LED) prenáša svetlo a prijímač (fotodióda) čaká na návrat preneseného svetla. IR svetlo sa vráti späť, iba ak je odrážané povrchom. Zatiaľ čo všetky povrchy neodrážajú IR svetlo, iba biely farebný povrch ich môže úplne odrážať a čierny farebný povrch ich bude úplne pozorovať, ako je to znázornené na obrázku nižšie. Viac informácií o module IR senzora sa dozviete tu.
Teraz pomocou dvoch infračervených senzorov skontrolujeme, či je robot v stope s linkou, a pomocou dvoch motorov opravíme robota, ak sa pohybuje mimo koľaje. Tieto motory vyžadujú vysoký prúd a mali by byť obojsmerné; preto používame modul ovládača motora ako L293D. Budeme tiež potrebovať mikrokontrolér ako PIC, ktorý bude inštruovať motory na základe hodnôt z IR snímača. Zjednodušený blokový diagram je uvedený nižšie.
Tieto dva infračervené snímače budú umiestnené po jednom na oboch stranách vedenia. Pokiaľ žiaden zo senzorov nezistí čiernu čiaru, dá PIC mikrokontrolér pokyn motorom, aby sa pohli dopredu, ako je to znázornené nižšie
Ak sa ľavý senzor dostane na čiernu čiaru, mikrokontrolér dá robotovi pokyn, aby odbočil doľava samotným otáčaním pravého kolieska.
Ak sa pravý senzor dostane na čiernu čiaru, potom mikrokontrolér dá robotovi pokyn, aby odbočil vpravo otáčaním ľavého kolesa samotného.
Ak sa oba snímače dostanú na čiernu čiaru, robot sa zastaví.
Týmto spôsobom bude robot schopný sledovať čiaru bez toho, aby sa dostal mimo trať. Teraz sa pozrime, ako vyzerá obvod a kód.
Schéma zapojenia a vysvetlenie:
Kompletná schéma zapojenia tohto robota riadiaceho sledovača založeného na PIC je uvedená nižšie
Obvod využíva dva infračervené snímače a pár jednosmerných prevodových motorov spolu s modulom budiča motora, ako je to znázornené vyššie. Modul budiča motora použitý v tomto projekte je L293D, budeme potrebovať budič motora, pretože výstupný kolík mikrokontroléra PIC nemôže získavať dostatok prúdu na pohon motorov. Tento modul bude napájaný priamo zo zdroja energie (5 V), ako je to znázornené v obvode. Modul má štyri piny (dva pre každý motor), ktoré sú pripojené k PIC na riadenie smeru motorov. Máme tiež dva IR senzory, ktoré fungujú ako vstup do mikrokontroléra PIC. Tieto snímače idú vysoko (1), ak sú na bielom povrchu, a idú nízko (0), ak sú na čiernom povrchu. Kompletné kolíkové pripojenia sú zobrazené v nasledujúcej tabuľke.
S.No |
Pripojené z |
Pripojený k |
1 |
IR snímač Vynechaný kolík |
RD2 (kolík 21) |
2 |
Infračervený snímač Kolík vpravo |
RD3 (kolík 22) |
4 |
Motor 1 kanál A kolík |
RC4 (kolík 23) |
5 |
Motor 1 kanál B kolík |
RC5 (kolík 25) |
6 |
Motor 2 kanál A pin |
RC6 (kolík 26) |
7 |
Motor 2 kanálový B kolík |
RC7 (kolík 27) |
V skutočnom hardvéri som použil powerbanku, ktorá bude dávať výstup + 5 V priamo cez jej USB port; teda som obišiel regulátor napätia 7805 a napájal som na to PIC, snímače a motory. To isté môžete urobiť pri použití 12V batérie spolu s regulátorom, ako je to znázornené na obvode.
Programovanie mikrokontroléra PIC:
Keď ste pripravení na hardvér, je čas začať programovať. Kompletný program tohto PIC línie Follower Robot projektu je uvedený na konci tejto stránky. Dôležité časti sú však vysvetlené nižšie.
Inicializujte I / O piny podľa nasledujúcich riadkov. 2 piny infračerveného snímača fungujú ako vstupné a štyri piny motora pôsobia ako výstupné piny.
TRISD2 = 1; TRISD3 = 1; // Vane IR kolíky senzora sú deklarované ako vstup TRISC4 = 0; TRISC5 = 0; // piny motora 1 deklarované ako výstup TRISC6 = 0; TRISC7 = 0; // Motor 2 piny deklarované ako výstup
Teraz musíme prečítať stav infračerveného snímača a podľa toho riadiť motor. Napríklad, ak sú obidva snímače vysoké (nepresahuje čiernu čiaru), posunieme obidva motory dopredu, ako je to znázornené v nasledujúcom programe.
if (RD2 == 1 && RD3 == 1) // Obidva senzory nie sú nad príťažovou čiarou {RC4 = 0; RC5 = 1; // Motor 1 vpred RC6 = 1; RC7 = 0; // Motor 2 vpred}
Ak ľavý snímač prejde cez čiernu čiaru, urobíme otáčanie doprava tak, že držíme motor 1 pokojný a motor 2 otáčame dopredu. Tento typ sústruženia sa nazýva diferenciálne sústruženie.
else if (RD2 == 0 && RD3 == 1) // Ľavý senzor je nad čiernou čiarou {RC4 = 1; RC5 = 1; // Motor 1 zastavenie RC6 = 1; RC7 = 0; // Motor 2 vpred}
Podobne, ak pravý senzor prejde cez čiernu čiaru, potom je robot schopný urobiť ľavú zákrutu podržaním druhého motora v kľude a otáčaním prvého motora samotného v smere dopredu, ako je to znázornené nižšie.
else if (RD2 == 1 && RD3 == 0) // Pravý snímač je nad čiernou čiarou {RC4 = 0; RC5 = 1; // Motor 1 vpred RC6 = 1; RC7 = 1; // Motor 2 zastavenie}
Nakoniec, ak sa oba senzory dostanú pod čiernu čiaru, je čas zastaviť robota. To sa dá dosiahnuť tak, že všetky piny oboch motorov budú vysoké. Kód, ktorý urobí to isté, je uvedený nižšie
else // Oba snímače nad čiernou čiarou {RC4 = 1; RC5 = 1; // Motor 1 zastavenie RC6 = 1; RC7 = 1; // Motor 2 zastavenie}
To znamená, že program je pripravený a dá sa nahrať na PIC pomocou ľubovoľného programátora, ako je PicKit.
Sledovač linky PIC v akcii:
Keď je hardvér a kód pripravený, je čas na nejaké kroky. Ako už bolo povedané, na napájanie robota som použil powerbanku, takže musím len jednoducho pripojiť powerbanku k botu, ktorý má nastavený hardvér a kód už bol nahraný.
Doska PIC Perf bola vyrobená pre našu sériu tutoriálov PIC, v ktorej sme sa naučili používať mikrokontrolér PIC. Možno sa budete chcieť vrátiť k týmto výučbám mikrokontroléra PIC pomocou programov MPLABX a XC8, ak neviete, ako napáliť program pomocou programu Pickit 3, pretože všetky tieto základné informácie preskočím.
Teraz jednoducho spustite robota cez čiernu čiaru a mali by ste ho sledovať, ako sleduje danú čiaru.
Na začiatku by ste sa mohli stretnúť s ťažkosťami, v takom prípade si prečítajte ďalej. Ak sa kolesá otáčajú opačne, jednoducho vymeňte polaritu motora, ktorého koleso sa otáča opačným smerom. Ak sa robot odchyľuje od čiary, vymeňte infračervený snímač a všetko by malo byť dobré.
Kompletné fungovanie robota nájdete na videu uvedenom nižšie. Dúfam, že sa vám projekt páčil a páčilo sa vám budovanie niečoho podobného. Ak máte problém s tým, aby to fungovalo, môžete ich uverejniť v sekcii komentárov nižšie, aby ste ich vyriešili, alebo použiť naše fóra na prediskutovanie technického obsahu.