- Potřebné materiály:
- Koncepty sledovače čáry
- Schéma a vysvětlení robotického sledovače linky Raspberry Pi:
- Programování Raspberry PI:
- Sledovač linky Raspberry Pi v akci:
Jak všichni víme, Raspberry Pi je skvělá vývojová platforma založená na mikroprocesoru ARM. Díky své vysoké výpočetní síle a možnostem vývoje dokáže v divácích nebo studentech elektroniky dělat zázraky. Chcete-li se dozvědět více o Raspberry Pi a o tom, jak to funguje, zkuste si postavit robota pro sledování linek pomocí Raspberry Pi.
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ů. Možná nebude znít efektivně použít výkonný mikroprocesor, jako je Raspberry Pi, k vytvoření jednoduchého robota. Tento robot vám ale 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
Potřebné materiály:
- Raspberry Pi 3 (každý model by měl fungovat)
- 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 výpočetní zařízení, jako je Raspberry Pi, 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á PI pokyn motorům k pohybu vpřed, jak je znázorněno níže
Pokud se levý senzor dostane na černou čáru, pak PI dá robotovi pokyn, aby se otočil doleva samotným otáčením pravého kola.
Pokud se pravý senzor dostane na černou čáru, pak PI 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 a vysvětlení robotického sledovače linky Raspberry Pi:
Kompletní schéma zapojení tohoto robota Raspberry Pi Line Follower Robot je uvedeno níže
Jak vidíte, obvod zahrnuje dva infračervené senzory a pár motorů připojených k Raspberry pi. Celý obvod je napájen bankou Mobile Power (v obvodu výše představovanou baterií AAA).
Vzhledem k tomu, že podrobnosti o pinech nejsou na Raspberry Pi zmíněny, musíme je ověřit pomocí níže uvedeného obrázku
Jak je znázorněno na obrázku, pin PI v levém horním rohu je pin + 5V, tento pin + 5V používáme k napájení infračervených senzorů, jak je znázorněno na schématu zapojení (červené zapojení). Poté pomocí černého vodiče připojíme zemnicí kolíky k zemi infračerveného senzoru a modulu ovladače motoru. Žlutý vodič se používá pro připojení výstupního pinu senzoru 1 a 2 na GPIO piny a 3, resp.
K pohonu motorů potřebujeme čtyři kolíky (A, B, A, B). Tyto čtyři piny jsou připojeny z GPIO14,4,17 a 18. Oranžový a bílý vodič tvoří spojení pro jeden motor. Takže máme dva takové páry pro dva motory.
Motory jsou připojeny k modulu ovladače motoru L293D, jak je znázorněno na obrázku, a modul ovladače je napájen z napájecí banky. Ujistěte se, že uzemnění powerbanky je připojeno k uzemnění Raspberry Pi, teprve potom bude vaše připojení fungovat.
Programování Raspberry PI:
Jakmile skončíte s montáží a připojením, měl by váš robot vypadat nějak takto.
Zloženie: 100% bavlna.Nyní je čas naprogramovat našeho robota a spustit jej. Celý kód tohoto robota najdete ve spodní části tohoto tutoriálu. Další informace o Programování a spouštění kódu v Raspberry Pi najdete zde. Důležité řádky jsou vysvětleny níže
Chystáme se importovat soubor GPIO z knihovny, níže uvedená funkce nám umožňuje programovat GPIO piny PI. Přejmenováváme také „GPIO“ na „IO“, takže v programu, kdykoli budeme chtít odkazovat na piny GPIO, použijeme slovo „IO“.
importovat RPi.GPIO jako IO
Někdy, když piny GPIO, které se snažíme použít, mohou dělat nějaké další funkce. V takovém případě obdržíme varování při provádění programu. Níže uvedený příkaz říká PI, aby ignoroval varování a pokračoval v programu.
IO.setwarnings (False)
Můžeme označit GPIO piny PI, buď číslem kolíku na desce, nebo jejich číslem funkce. Jako „PIN 29“ na desce je „GPIO5“. Řekneme tedy, že zde buď budeme reprezentovat špendlík číslem '29' nebo '5'.
IO.setmode (IO.BCM)
Nastavujeme 6 pinů jako vstupní / výstupní piny. První dva kolíky jsou vstupní kolíky pro čtení infračerveného senzoru. Další čtyři jsou výstupní piny, z nichž první dva se používají k ovládání pravého motoru a další dva pro levý 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 motoru 1 IO.nastavení (14, IO.OUT) #GPIO 14 -> Svorka motoru 1 B IO.nastavení (17, IO.OUT) #GPIO 17 -> Svorka levého motoru A IO.nastavení (18, IO.OUT) #GPIO 18 -> Svorka B motoru vlevo
IR senzor vydává „True“, pokud je na bílém povrchu. Dokud oba senzory řeknou True, můžeme jít kupředu.
if (IO.input (2) == True and IO.input (3) == True): #bob white move forward IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.výstup (17, True) # 2A + IO. výstup (18, False) # 2B-
Pokud první IR senzor překročí černou čáru, musíme zatočit doprava. To se provádí načtením infračerveného senzoru a pokud je podmínka splněna, zastavíme pravý motor a otáčíme levým motorem samostatně, jak je znázorněno v níže uvedeném kódu
elif (IO.input (2) == False a IO.input (3) == True): # odbočit vpravo IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, True) # 2A + IO. Výstup (18, False) # 2B-
Pokud druhý IR senzor překročí černou čáru, musíme zatočit doleva. To se provádí načtením infračerveného senzoru a pokud je podmínka splněna, zastavíme levý motor a otočíme pravý motor samostatně, jak je znázorněno v níže uvedeném kódu
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, True) # 2A + IO. Výstup (18, True) # 2B-
Pokud oba snímače překročí černou čáru, znamená to, že robot musí zastavit. Toho lze dosáhnout provedením obou svorek motoru, jak je uvedeno v níže uvedeném kódu
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 akci:
Nahrajte kód pythonu pro sledovač linek na svůj Raspberry Pi a spusťte jej. Potřebujeme přenosný napájecí zdroj, powerbanka se v tomto případě stane užitečnou, proto jsem ji použil stejně. Ten, který používám, je dodáván se dvěma porty USB, takže jsem použil k napájení PI a další k ovladači motoru, jak je znázorněno na obrázku níže.
Nyní vše, co musíte udělat, je nastavit si vlastní stopu černé barvy a uvolnit nad ní svého robota. K vytvoření stopy jsem použil izolační pásku černé barvy, můžete použít jakýkoli materiál černé barvy, ale ujistěte se, že základní barva není tmavá.
Kompletní fungování robota najdete na videu níže. Doufám, že jste pochopili projekt a užili jste si jeho stavbu. Pokud máte nějaké dotazy, pošlete je do sekce komentářů níže.