- Potrebné materiály:
- Koncepty sledovača čiary
- Schéma zapojenia a vysvetlenie robota sledovača linky Raspberry Pi:
- Programovanie vášho Raspberry PI:
- Sledovač linky Raspberry Pi v akcii:
Ako všetci vieme, Raspberry Pi je úžasná vývojová platforma založená na mikroprocesore ARM. Vďaka svojej vysokej výpočtovej sile a možnostiam vývoja dokáže v rukách nadšencov alebo študentov elektroniky zázraky. Ak sa chcete dozvedieť viac informácií o Raspberry Pi a o tom, ako to funguje, vyskúšajte si postaviť robota Line Follower Robot pomocou Raspberry Pi.
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. Možno nebude znieť efektívne použiť výkonný mikroprocesor ako Raspberry Pi na výrobu jednoduchého robota. Tento robot vám ale dáva priestor na nekonečný vývoj a napríklad roboty ako Kiva (skladový robot Amazon) sú toho príkladom. 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
Potrebné materiály:
- Raspberry Pi 3 (každý model by mal fungovať)
- 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ť výpočtové zariadenie, ako je Raspberry Pi, ktoré inštruuje 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ľ žiadny zo senzorov nezistí čiernu čiaru, dá PI pokyn motorom, aby sa pohli dopredu, ako je to znázornené nižšie
Ak sa ľavý senzor dostane na čiernu čiaru, PI 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 PI dá robotovi pokyn, aby odbočil vpravo samotným otáčaním ľavého kolesa.
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 robota sledovača linky Raspberry Pi:
Kompletná schéma zapojenia tohto robota Raspberry Pi Line Follower Robot je uvedená nižšie
Ako vidíte, obvod obsahuje dva infračervené senzory a dvojicu motorov pripojených k Raspberry pi. Celý obvod je napájaný bankou Mobile Power (v obvode vyššie predstavuje batéria AAA).
Pretože podrobnosti o kolíkoch nie sú uvedené na Raspberry Pi, musíme si kolíky overiť pomocou nasledujúceho obrázka
Ako je znázornené na obrázku, pin PI v ľavom hornom rohu je pin + 5V, tento pin + 5V používame na napájanie infračervených senzorov, ako je znázornené na schéme zapojenia (červené zapojenie). Potom pomocou čierneho vodiča spojíme uzemňovacie kolíky so zemou IR snímača a modulu ovládača motora. Žltý vodič sa používa na pripojenie výstupného pinu senzora 1 a 2 na GPIO piny a 3, resp.
Na pohon motorov potrebujeme štyri kolíky (A, B, A, B). Tieto štyri piny sú spojené z GPIO14,4,17 a 18, respektíve. Oranžový a biely vodič spolu tvoria spojenie pre jeden motor. Takže máme dva také páry pre dva motory.
Motory sú pripojené k modulu ovládača motora L293D, ako je to znázornené na obrázku, a modul ovládača je napájaný z výkonovej banky. Uistite sa, že uzemnenie powerbanky je spojené so zemou Raspberry Pi, až potom bude vaše pripojenie fungovať.
Programovanie vášho Raspberry PI:
Keď skončíte s montážou a pripojením, váš robot by mal vyzerať asi takto.
Zloženie: 100% bavlna.Teraz je čas naprogramovať nášho robota a uviesť ho do prevádzky. Celý kód tohto robota nájdete v spodnej časti tohto tutoriálu. Viac informácií o programovaní a spúšťaní kódu v Raspberry Pi sa dozviete tu. Dôležité riadky sú vysvetlené nižšie
Chystáme sa importovať súbor GPIO z knižnice, funkcia nižšie nám umožňuje programovať GPIO piny PI. Premenujeme „GPIO“ na „IO“, takže v programe budeme kedykoľvek, keď budeme chcieť odkazovať na piny GPIO, použiť slovo „IO“.
importovať RPi.GPIO ako IO
Niekedy, keď piny GPIO, ktoré sa snažíme používať, môžu robiť nejaké ďalšie funkcie. V takom prípade dostaneme varovania počas vykonávania programu. Príkaz dole povie PI, aby ignoroval varovania a pokračoval v programe.
IO.setwarnings (False)
Môžeme označiť GPIO piny PI, buď číslom kolíka na doske, alebo počtom ich funkcií. Rovnako ako „PIN 29“ na doske je „GPIO5“. Takže tu hovoríme, že tu budeme špendlík reprezentovať číslom „29“ alebo „5“.
IO.setmode (IO.BCM)
Nastavujeme 6 pinov ako vstupné / výstupné piny. Prvé dva kolíky sú vstupné kolíky na čítanie infračerveného senzora. Ďalšie štyri sú výstupné piny, z ktorých prvé dva sa používajú na riadenie pravého motora a ďalšie dva pre ľavý motor.
IO.setup (2, IO.IN) #GPIO 2 -> Left IR out IO.setup (3, IO.IN) #GPIO 3 -> Right IR out IO.setup (4, IO.OUT) #GPIO 4 - > Svorka A motora 1 IO.nastavenie (14, IO.OUT) #GPIO 14 -> Svorka motora 1 B IO.setup (17, IO.OUT) #GPIO 17 -> Ľavá svorka motora A IO.nastavenie (18, IO.OUT) #GPIO 18 -> Ľavá svorka B motora
IR senzor vydáva „True“, ak je na bielom povrchu. Pokiaľ teda obidva snímače hovoria True, môžeme ísť vpred.
if (IO.input (2) == True a IO.input (3) == True): # biela sa posunie dopredu IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.výstup (17, pravda) # 2A + IO. výstup (18, nepravda) # 2B-
Ak prvý IR senzor prekročí čiernu čiaru, musíme urobiť odbočku vpravo. To sa deje načítaním infračerveného senzora a ak je stav splnený, zastavíme pravý motor a otáčame ľavým motorom samostatne, ako je uvedené v nižšie uvedenom kóde.
elif (IO.input (2) == False a IO.input (3) == True): # odbočte vpravo IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, pravda) # 2A + IO. Výstup (18, nepravda) # 2B-
Ak druhý infračervený snímač prekročí čiernu čiaru, musíme urobiť odbočku doľava. To sa deje načítaním infračerveného senzora a ak je splnená podmienka, zastavíme ľavý motor a otočíme pravý motor sám, ako je uvedené v nižšie uvedenom kóde.
elif (IO.input (2) == True a IO.input (3) == False): # turn left IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, pravda) # 2A + IO. Výstup (18, pravda) # 2B-
Ak obidva snímače prechádzajú cez čiernu čiaru, znamená to, že robot musí zastaviť. To je možné dosiahnuť tak, že obidve svorky motora budú pravdivé, ako je uvedené v nižšie uvedenom kóde
else: #stay still IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, True) # 2A + IO.output (18, True) # 2B-
Sledovač linky Raspberry Pi v akcii:
Nahrajte kód pythonu sledovača riadkov na svoje Raspberry Pi a spustite ho. Potrebujeme prenosný zdroj napájania, power banka sa v tomto prípade stane praktickou, preto som ju použil rovnako. Ten, ktorý používam, je dodávaný s dvoma portami USB, takže som použil napájanie PI a ďalších na napájanie motorového ovládača, ako je to znázornené na obrázku nižšie.
Teraz všetko, čo musíte urobiť, je nastaviť si vlastnú čiernu farbu stopy a uvoľniť nad ňou svojho robota. Na vytvorenie stopy som použil čiernu izolačnú pásku, ktorú môžete použiť na akýkoľvek materiál čiernej farby, ale uistite sa, že vaša základná farba nie je tmavá.
Kompletné fungovanie robota nájdete na videu uvedenom nižšie. Dúfam, že ste pochopili projekt a páčilo sa vám jeho zostavenie. Ak máte nejaké otázky, pošlite ich do sekcie komentárov nižšie.