Obsah:

Robot pro dálkové vyhledávání a likvidaci skoku pohybem: 5 kroků
Robot pro dálkové vyhledávání a likvidaci skoku pohybem: 5 kroků

Video: Robot pro dálkové vyhledávání a likvidaci skoku pohybem: 5 kroků

Video: Robot pro dálkové vyhledávání a likvidaci skoku pohybem: 5 kroků
Video: Humanoidní roboti se učí ovládat svoje tělo 2024, Listopad
Anonim
Image
Image

V rámci svého vstupu do hry Leap Motion #3D Jam jsem byl nadšený, že jsem mohl postavit tento bezdrátový vyhledávací/záchranný robot ovládaný gesty na základě Raspberry Pi. Tento projekt ukazuje a poskytuje minimalistický příklad toho, jak lze bezdrátová 3D gesta rukou použít k ovládání a interakci s fyzickými věcmi.

Vzhledem k tomu, že tento projekt využívá populární rámec WebIOPi IoT na Raspberry Pi, lze jej velmi snadno rozšířit o ovládání a rozhraní obvykle jakéhokoli senzoru/hardwaru/elektroniky, které lze propojit s Raspberry Pi.

Některé možné scénáře, které si představuji, kolegové Tvůrci mohou použít tento projekt jako svůj základní rámec, na kterém mohou stavět:

1. Robot na likvidaci bomb na dálku ovládaný gesty (možná pomocí OWI paže atd.)

2. Dálková chirurgická operace u lékaře

3. Interaktivní výstavy umění nebo vzdělávací obsah ovládané gesty

4. Nekonečné další možnosti/integrace (jsem omezen svou představivostí:))

Krok 1: Přehled

Pochopení rámce WebIOPi
Pochopení rámce WebIOPi

Tento projekt umožňuje uživateli interaktivně ovládat robota pomocí 3D ručních gest pomocí funkce Leap Motion připojené k počítači.

Raspberry Pi na palubě robota má také webovou kameru USB, která streamuje živé video zpět k uživateli, které lze vidět ve webovém prohlížeči. Knihovna JavaScript LeapMotion vložená do této webové stránky zpracovává gesta rukou a odesílá řídicí signály zpět do robota, který se podle toho pohybuje.

Raspberry Pi na robotu je nakonfigurován jako hotspot (režim AP) pomocí USB WiFi dongle, který je k němu připojen. To umožňuje našim počítačům/zařízením přímo se připojit k Raspberry Pi a ovládat je prostřednictvím webové stránky. Raspberry Pi lze také nakonfigurovat tak, aby fungovalo v klientském režimu, přičemž se bezdrátově připojuje k AP routeru WiFi, ke kterému jsou již připojeny počítače/zařízení.

Tento projekt je založen na WebIOPi (https://webiopi.trouch.com/), což je populární rámec IoT pro Raspberry Pi. Pomocí přiložené sady Weaved IoT Kit (nebo přesměrování portů na routeru) lze tento robot dálkově ovládat a/nebo přijímat data z jakékoli části světa.

Pro stavbu projektu byly použity následující komponenty:

  1. Raspberry Pi B (100% dopředu kompatibilní s Raspberry Pi B+)
  2. Webová kamera Logitech USB (mizivá 1,3 megapixelu)
  3. L293D IC ovladače motoru a Breakout Shield
  4. USB WiFi dongle pro Raspberry Pi
  5. USB power banka pro Raspberry Pi
  6. Externí 4V/1,5A baterie pro pohon robotických motorů

Krok 2: Sestavení projektu

Instalace WebIOPi, psaní vlastního kódu a konfigurace webové kamery:

Pokyny k instalaci WebIoPi, základy rámce a mnoho příkladů jsou k dispozici na stránce projektu zde:

Aby funkce LeapMotion integrované na webové stránce mohly spouštět akce GPIO na Raspberry Pi, použili jsme makra, jejichž podrobnosti naleznete zde:

Také jsem napsal několik poznámek pro začátek o výše uvedeném procesu, které lze nalézt v příloze.

Instalace a konfigurace webové kamery

Používáme MJPG-Streamer, abychom mohli streamovat video z Raspberry Pi zpět do Prohlížeče prostřednictvím webové kamery USB připojené k Pi. Chcete-li, aby MJPG-Streamer fungoval na Raspberry Pi, postupujte podle pokynů uvedených zde a

Konfigurace Raspberry Pi jako AP/Hotspot

Chcete-li nastavit Raspberry Pi jako Hostpot, postupujte podle zde uvedených pokynů: https://elinux.org/RPI-Wireless-Hotspot. Statickou IP adresu Raspberry Pi jsem nakonfiguroval jako 192.168.42.1, což bychom zadali do prohlížeče, jakmile se Pi spustí do režimu AP.

Služba WebIOPi, MJPG-Streamer a WiFi hotspot byly nakonfigurovány tak, aby se při spuštění automaticky spouštěly, což nám umožňuje přímo otevřít webový prohlížeč a připojit se k robotu po jeho spuštění. Soubor rc.local dostupný v repo se používá ke spuštění webové kamery při spuštění.

Krok 3: Pokyny k sestavení/zapojení

4 GPIO Raspberry Pi, konkrétně GPIO 9, 11, 23 a 24, jsou připojeny k IC ovladače ovladače L293D, který pohání motory odpovídajícím způsobem po přijetí požadavků na makro z webové stránky obsluhované rámcem Webiopi. USB WiFi dongle a USB Logitech Webcam jsou připojeny ke 2 USB portům dostupným na Raspberry Pi. Power Power 5V 4000 Mah napájí Pi. K pohonu motorů slouží olověná baterie 4V 1,5A.

Poznámka: Protože maximální výstupní proud powerbanky, který jsem použil, byl neuvěřitelně 1000 Mah, musel jsem k pohonu motorů použít externí olověnou baterii. Pokud máte energetickou banku, která dává> = 2000 mAh, můžete přímo pohánět motory z 5V kolejnice na Pi (nedoporučoval bych to však pro motory hladové po energii)

Níže jsou stručně popsány 3 klíčové podsekce projektu LeapMotion Javascript API, WebIOPi a MJPG-Streamer a jejich základní fungování/nastavení.

Krok 4: Porozumění rozhraní WebIOPi Framework

Frontend, který je zobrazen v prohlížeči, je napsán v HTML (Filename: index.html) & Javascript, zatímco backend, který pohání GPIO, je napsán v Pythonu (Filename: script.py). Podrobné poznámky k vytvoření vlastní aplikace WebApp na základě rámce WebIOPi jsou připojeny jako poznámky v úložišti Bitbucket.

Vlastní makra definovaná ve skriptu Pythonu lze spustit ze souboru HTML.

Např: webiopi (). CallMacro ("go_forward"); Toto je vlastní volání makra go_forward definovaného ve skriptu Pythonu, které zpracovává proces převádění obou motorů vpřed.

Hierarchie adresářů, kde jsou soubory uloženy na Pi, je zobrazena na přiloženém obrázku.

Složka Robot obsahuje tyto podsložky:

  • html: obsahující index.html
  • python: obsahující script.py
  • mjpg-streamer-r63: obsahující soubory sestavení a spustitelný soubor pro spuštění webové kamery

MJPG-Streamer: Živý stream videa z webové kamery USB běží ve výchozím nastavení na portu 8080 Pi. Chcete -li stream zobrazit ručně, po zapnutí webové kamery přejděte v prohlížeči na stránku RASPBERRYPI_IP: 8080.

Kód LeapMotion:

Fragmenty kódu z příkladů uvedených v sadě LeapMotion SDK byly vloženy do souboru index.html. Soubor LeapMotion leap.js musí být přidán do složky html v adresáři projektu na Raspberry Pi.

Parametr palmPosition odeslaný LeapMotion se používá k určení, které makro se spustí na Raspberry Pi.

Krok 5: Spuštění projektu

Jednoduše zapněte Raspberry Pi a počkejte přibližně minutu. Uvidíte nový hotpsot RaspberryPi. Připojte se k tomuto hotspotu a otevřete v prohlížeči tuto statickou IP adresu: 192.168.42.1:8000. 8000 je výchozí port WebIOPi.

Raspberry Pi lze také nakonfigurovat tak, aby se připojovalo k místní WiFi síti jako in clien, místo aby se zobrazovalo jako hotspot. Poté byste měli určit dynamickou IP přiřazenou routeru Raspberry Pi a poté ji v prohlížeči spustit, abyste si mohli hrát s robotem.

Pokud potřebujete pomoc nebo dotazy ohledně projektu, můžete zanechat komentář. Šťastný skok!

Byly připojeny celé zdrojové kódy. Pokud potřebujete pomoc s jakoukoli částí stavby projektu, můžete zanechat komentář. Šťastný skok!

Doporučuje: