- Potřebné materiály:
- Koncepty sledovače čáry
- Schéma zapojení a vysvětlení:
- Programování mikrokontroléru PIC:
- Sledovač linky PIC v akci:
Line Follower Robot je jednoduchý, ale fascinující robot pro stavění většiny studentů / fandů. V tomto tutoriálu se naučíme, jak funguje robot sledující linku a jak jej můžeme sestavit pomocí mikrokontroléru PIC PIC16F877A. PIC16F877A je 40kolíkový víceúčelový MCU od společnosti Microchip, tento IC jsme použili v naší kompletní sérii výukových programů PIC. Pokud jste noví, možná budete chtít podívat na tyto výukové programy PIC, abyste se naučili základy tohoto IC a jak nahrávat programy do mikrokontroléru. Vzhledem k tomu, že jsme tuto informaci již zahrnuli do našich výukových programů, přeskočíme je v níže uvedeném vysvětlení.
Pokud vás zajímá robotika, měli byste znát název „ Line Follower Robot “. Tento robot je schopen sledovat linii, pouze pomocí dvojice senzorů a motorů. Tento robot vám dává prostor pro nekonečný vývoj a příkladem jsou roboty jako Kiva (skladový robot Amazon). Můžete také zkontrolovat naše další roboty pro sledování linek:
- Robot sledovače linek pomocí mikrokontroléru 8051
- Line Follower Robot pomocí Arduina
- Line Follower Robot pomocí Raspberry Pi
Potřebné materiály:
- PIC16F877A
- IR senzor (2Nos)
- Stejnosměrný převodový motor (2Nos)
- Ovladač motoru L293D
- Lehátka (Můžete si také vytvořit vlastní pomocí lepenek)
- Power bank (jakýkoli dostupný zdroj energie)
Koncepty sledovače čáry
Line Follower Robot je schopen sledovat linku pomocí infračerveného senzoru. Tento snímač má IR vysílač a IR přijímač. IR vysílač (IR LED) přenáší světlo a přijímač (fotodioda) čeká na návrat vysílaného světla. IR světlo se vrátí zpět, pouze pokud je odrazeno povrchem. Zatímco všechny povrchy neodrážejí infračervené světlo, pouze bílý barevný povrch je může zcela odrážet a černý barevný povrch je bude zcela pozorovat, jak je znázorněno na obrázku níže. Další informace o modulu infračerveného senzoru naleznete zde.
Nyní použijeme dva infračervené senzory ke kontrole, zda je robot ve stopě s linkou, a dva motory k opravě robota, pokud se pohybuje mimo stopu. Tyto motory vyžadují vysoký proud a měly by být obousměrné; proto používáme modul ovladače motoru jako L293D. Budeme také potřebovat mikrokontrolér, jako je PIC, abychom instruovali motory na základě hodnot z IR senzoru. Níže je znázorněno zjednodušené blokové schéma.
Tyto dva infračervené senzory budou umístěny po jednom na obou stranách linky. Pokud žádný ze senzorů nedetekuje černou čáru, dá mikrokontrolér PIC pokyn motorům k pohybu vpřed, jak je znázorněno níže
Pokud se levý senzor dostane na černou čáru, mikrokontrolér dá robotovi pokyn, aby se otočil doleva samotným otáčením pravého kola.
Pokud se pravý senzor dostane na černou čáru, mikrokontrolér dá robotovi pokyn, aby se otočil doprava otáčením samotného levého kola.
Pokud jsou oba senzory černé, robot se zastaví.
Tímto způsobem bude robot schopen sledovat čáru, aniž by se dostal mimo trať. Nyní se podívejme, jak vypadá obvod a kód.
Schéma zapojení a vysvětlení:
Kompletní schéma zapojení tohoto robota Line Follower Robot založeného na PIC je uvedeno níže
Obvod využívá dva infračervené senzory a dvojici stejnosměrných převodových motorů spolu s modulem budiče motoru, jak je uvedeno výše. Modul ovladače motoru použitý v tomto projektu je L293D, budeme potřebovat ovladač motoru, protože výstupní kolík mikrokontroléru PIC nemůže dodávat dostatek proudu pro pohon motorů. Tento modul bude napájen přímo ze zdroje napájení (5 V), jak je znázorněno v obvodu. Modul má čtyři piny (dva pro každý motor), které jsou připojeny k PIC pro řízení směru motorů. Máme také dva infračervené senzory, které fungují jako vstup do mikrokontroléru PIC. Tyto senzory klesnou vysoko (1), pokud jsou nad bílým povrchem, a klesnou nízko (0), pokud jsou přes černý povrch. Kompletní konektory jsou znázorněny v tabulce níže.
S.No |
Připojeno od |
Připojen k |
1 |
IR senzor Vynechaný kolík |
RD2 (vývod 21) |
2 |
IR senzor Přímý kolík |
RD3 (vývod 22) |
4 |
Motor 1 kanál A pin |
RC4 (vývod 23) |
5 |
Motor 1 kanál B kolík |
RC5 (kolík 25) |
6 |
Motor 2kanálový A kolík |
RC6 (vývod 26) |
7 |
Motor 2kanálový B kolík |
RC7 (vývod 27) |
Ve skutečném hardwaru jsem použil powerbanku, která bude poskytovat výstup + 5 V přímo přes jeho USB port; proto jsem obešel regulátor napětí 7805 a pomocí stejného napájel PIC, senzory a motory. Totéž můžete udělat s použitím 12V baterie spolu s regulátorem, jak je znázorněno v obvodu.
Programování mikrokontroléru PIC:
Jakmile jste připraveni na hardware, je čas začít programovat. Kompletní program tohoto PIC linie Follower Robot projektu je uveden na konci této stránky. Níže jsou však vysvětleny důležité části.
Inicializujte I / O piny podle následujících řádků. 2 piny infračerveného senzoru fungují jako vstup a čtyři piny motoru slouží jako výstupní piny.
TRISD2 = 1; TRISD3 = 1; // Koupení kolíků infračerveného senzoru je deklarováno jako vstup TRISC4 = 0; TRISC5 = 0; // Piny motoru 1 deklarované jako výstup TRISC6 = 0; TRISC7 = 0; // Motor 2 piny deklarovány jako výstup
Nyní musíme přečíst stav infračerveného senzoru a podle toho řídit motor. Například pokud jsou oba senzory vysoké (nepřesahují černou čáru), posuneme oba motory dopředu, jak je znázorněno v níže uvedeném programu.
if (RD2 == 1 && RD3 == 1) // Obě čidla nepřesahují liniovou linii {RC4 = 0; RC5 = 1; // Motor 1 vpřed RC6 = 1; RC7 = 0; // Motor 2 vpřed}
Pokud levý senzor překročí černou čáru , uděláme zatáčku doprava tak, že motor 1 zastavíme a motor 2 otočíme dopředu. Tento typ soustružení se nazývá diferenciální soustružení.
else if (RD2 == 0 && RD3 == 1) // Levý senzor je nad černou čarou {RC4 = 1; RC5 = 1; // Motor 1 stop RC6 = 1; RC7 = 0; // Motor 2 vpřed}
Podobně, pokud pravý senzor přijde přes černou čáru, pak je bot proveden otočením doleva podržením druhého motoru v klidu a otáčením samotného prvního motoru dopředu, jak je znázorněno níže.
else if (RD2 == 1 && RD3 == 0) // Pravý senzor je přes černou čáru {RC4 = 0; RC5 = 1; // Motor 1 vpřed RC6 = 1; RC7 = 1; // Motor 2 stop}
Nakonec, pokud se oba senzory dostanou pod černou čáru, je čas zastavit robota. Toho lze dosáhnout tak, že všechny piny obou motorů jsou vysoké. Níže uvedený kód je stejný
else // Oba snímače přes černou čáru {RC4 = 1; RC5 = 1; // Motor 1 stop RC6 = 1; RC7 = 1; // Motor 2 stop}
To znamená, že program je připraven a lze jej nahrát na PIC pomocí libovolného programátoru, jako je PicKit.
Sledovač linky PIC v akci:
Jakmile je hardware a kód připraven, je čas na nějakou akci. Jak již bylo řečeno, k napájení robota jsem použil powerbanku, takže vše, co musím udělat, je jednoduše připojit powerbanku k botu, který má nastavený hardware a kód již byl nahrán.
Deska PIC Perf byla vytvořena pro naši výukovou sérii PIC, ve které jsme se naučili používat mikrokontrolér PIC. Možná se budete chtít vrátit k těm tutoriálům PIC Microcontroller pomocí MPLABX a XC8, pokud nevíte, jak vypálit program pomocí Pickit 3, protože budu všechny tyto základní informace přeskakovat.
Nyní jednoduše spusťte robota přes černou čáru a měli byste ji sledovat po ní.
Na začátku se můžete setkat s určitými obtížemi, v takovém případě si přečtěte dále. Pokud se kola otáčejí opačně, jednoduše vyměňte polaritu motoru, jehož kolo se otáčí opačným směrem. Pokud se robot odchýlí od linie, vyměňte IR senzor a vše by mělo být dobré.
Kompletní fungování robota najdete na videu níže. Doufám, že se vám projekt líbil a užili jste si budování něčeho podobného. Pokud máte problém s tím, aby to fungovalo, můžete je zveřejnit v sekci komentářů níže, abyste to vyřešili, nebo použít naše fóra k projednání technického obsahu.