Obsah:

Robot na diaľkové vyhľadávanie a likvidáciu ovládaný skokom: 5 krokov
Robot na diaľkové vyhľadávanie a likvidáciu ovládaný skokom: 5 krokov

Video: Robot na diaľkové vyhľadávanie a likvidáciu ovládaný skokom: 5 krokov

Video: Robot na diaľkové vyhľadávanie a likvidáciu ovládaný skokom: 5 krokov
Video: История Теда Фаро: злодея Horizon Zero Dawn? | История Horizon Zero Dawn | На русском 2024, November
Anonim
Image
Image

V rámci svojho vstupu do hry Leap Motion #3D Jam som bol nadšený z toho, že som mohol postaviť tohto bezdrôtového pátracieho/záchranného robota ovládaného gestami na základe Raspberry Pi. Tento projekt demonštruje a poskytuje minimalistický príklad toho, ako je možné bezdrôtové 3D gestá rúk použiť na ovládanie fyzických vecí a interakciu s nimi.

Pretože tento projekt používa populárny rámec WebIOPi IoT na Raspberry Pi, dá sa veľmi ľahko rozšíriť o ovládanie a rozhranie, spravidla akéhokoľvek senzora/hardvéru/elektroniky, ktoré je možné prepojiť s Raspberry Pi.

Niektoré možné scenáre, ktoré si predstavujem, kolegovia Tvorcovia môžu použiť tento projekt ako svoj základný rámec na stavanie na:

1. Robot na likvidáciu bomby ovládaný gestami (možno pomocou ramena OWI atď.)

2. Operácia na diaľku lekárom

3. Interaktívne výstavy umenia alebo vzdelávací obsah ovládané gestami

4. Nekonečné ďalšie možnosti/integrácie (som obmedzený svojou predstavivosťou:))

Krok 1: Prehľad

Pochopenie rámca WebIOPi
Pochopenie rámca WebIOPi

Tento projekt umožňuje používateľovi interaktívne ovládať robota pomocou 3D ručných gest pomocou funkcie Leap Motion pripojenej k počítaču.

Integrovaný robot Raspberry Pi má tiež webovú kameru USB, ktorá streamuje živé video späť k používateľovi, ktoré je možné vidieť vo webovom prehliadači. Knižnica JavaScript LeapMotion vložená do tejto webovej stránky spracováva gestá rúk a vysiela riadiace signály späť do robota, ktorý sa podľa toho pohybuje.

Raspberry Pi na robote je nakonfigurovaný ako Hotspot (režim AP) pomocou pripojeného USB WiFi kľúča. To umožňuje našim počítačom/zariadeniam pripojiť sa priamo k Raspberry Pi a ovládať ich prostredníctvom webovej stránky. Raspberry Pi je možné nakonfigurovať aj na prevádzku v klientskom režime, pričom sa bezdrôtovo pripája k prístupovému bodu WiFi smerovača, ku ktorému sú už pripojené počítače/zariadenia.

Tento projekt je založený na WebIOPi (https://webiopi.trouch.com/), čo je populárny rámec IoT pre Raspberry Pi. Pomocou pribalenej súpravy Weaved IoT Kit (alebo prostredníctvom presmerovania portov na smerovači) je možné tohto robota diaľkovo ovládať a/alebo prijímať údaje z ktorejkoľvek časti sveta.

Na stavbu projektu boli použité tieto komponenty:

  1. Raspberry Pi B (100% dopredu kompatibilný s Raspberry Pi B+)
  2. Webová kamera Logitech USB (mizerných 1,3 megapixelov)
  3. L293D Integrovaný obvod ovládača motora a Breakout Shield
  4. USB WiFi kľúč pre Raspberry Pi
  5. USB power banka pre Raspberry Pi
  6. Externá batéria 4V/1,5A na pohon robotických motorov

Krok 2: Zostavenie projektu

Inštalácia WebIOPi, písanie vlastného kódu a konfigurácia webovej kamery:

Pokyny na inštaláciu WebIoPi, základy rámca a mnoho príkladov sú k dispozícii na stránke projektu tu:

Aby funkcie LeapMotion vložené na webovú stránku mohli spúšťať akcie GPIO na Raspberry Pi, použili sme makrá, ktorých podrobnosti nájdete tu:

Tiež som napísal niekoľko úvodných poznámok o vyššie uvedenom procese, ktoré nájdete v prílohe.

Inštalácia a konfigurácia webovej kamery

Na streamovanie videa z Raspberry Pi späť do prehliadača používame webovú kameru USB pripojenú k Pi, používame MJPG-Streamer. Ak chcete, aby MJPG-Streamer fungoval na Raspberry Pi, postupujte podľa pokynov tu uvedených na

Konfigurácia Raspberry Pi ako AP/Hotspot

Ak chcete Raspberry Pi nastaviť ako hostpot, postupujte podľa týchto pokynov: https://elinux.org/RPI-Wireless-Hotspot. Statickú IP adresu Raspberry Pi som nakonfiguroval ako 192.168.42.1, čo by sme zadali do prehliadača, keď sa Pi spustí v režime AP.

Služba WebIOPi, MJPG-Streamer a WiFi hotspot boli nakonfigurované tak, aby sa pri spustení automaticky spúšťali, a to nám umožňuje priamo otvoriť webový prehliadač a pripojiť sa k robotovi po jeho spustení. Na spustenie webovej kamery sa používa súbor rc.local dostupný v repo.

Krok 3: Pokyny k zostaveniu/zapojeniu

4 GPIO Raspberry Pi, konkrétne GPIO 9, 11, 23 a 24, sú pripojené k IC ovládača motora L293D, ktorý riadi motory zodpovedajúcim spôsobom po prijatí požiadaviek na makro z webovej stránky obsluhovanej rámcom Webiopi. USB WiFi kľúč a webová kamera USB Logitech sú pripojené k 2 portom USB, ktoré sú k dispozícii na Raspberry Pi. Napájacia banka Pi 5 V 4 000 mAh dodáva hlavnú energiu. Na pohon motorov sa používa olovená batéria 4V 1,5A.

Poznámka: Pretože maximálny výstupný prúd napájacej banky, ktorú som použil, bol neuveriteľných 1 000 Mah, musel som na pohon motorov použiť externú olovenú batériu. Ak máte energetickú banku, ktorá dáva> = 2000 mAh, môžete motory priamo poháňať z 5V koľajnice na Pi (toto by som však neodporúčal pre motory hladné po energii)

3 kľúčové podsekcie projektu LeapMotion Javascript API, WebIOPi a MJPG-Streamer a ich základné fungovanie/nastavenie sú stručne načrtnuté nižšie.

Krok 4: Pochopenie rámca WebIOPi

Frontend, ktorý je zobrazený v prehliadači, je napísaný v HTML (názov súboru: index.html) a Javascript, zatiaľ čo backend, ktorý poháňa GPIO, je napísaný v Pythone (názov súboru: script.py). Podrobné poznámky k vytvoreniu vlastnej aplikácie WebApp na základe rámca WebIOPi sú priložené ako poznámky v repo Bitbucket.

Vlastné makrá definované v skripte Python je možné spustiť zo súboru HTML.

Napr: webiopi (). CallMacro ("go_forward"); Toto je vlastné volanie makra go_forward definovaného v skripte Python, ktoré spracováva proces otáčania oboch motorov vpred.

Hierarchia adresárov, kde sú súbory uložené na Pi, je zobrazená na priloženom obrázku.

Priečinok Robot obsahuje tieto podpriečinky:

  • html: obsahujúci index.html
  • python: obsahujúci script.py
  • mjpg-streamer-r63: obsahujúci súbory zostavy a spustiteľný súbor na spustenie webovej kamery

MJPG-Streamer: Živý prenos videa z webovej kamery USB štandardne beží na porte 8080 portu Pi. Ak chcete stream zobrazovať ručne, v prehliadači po zapnutí webovej kamery prejdite na stránku RASPBERRYPI_IP: 8080.

Kód LeapMotion:

Útržky kódu z príkladov uvedených v súprave LeapMotion SDK boli vložené do súboru index.html. Súbor leap.js LeapMotion je potrebné pridať do priečinka html v adresári projektu na Raspberry Pi.

Parameter palmPosition odoslaný LeapMotion sa používa na určenie, ktoré makro má byť spustené na Raspberry Pi.

Krok 5: Spustenie projektu

Jednoducho zapnite Raspberry Pi a počkajte približne minútu. Uvidíte nový hotpsot RaspberryPi. Pripojte sa k tomuto hotspotu a v prehliadači otvorte túto statickú adresu IP: 192.168.42.1:8000. 8000 je predvolený port WebIOPi.

Raspberry Pi je možné nakonfigurovať aj tak, aby sa namiesto zobrazenia ako hotspot pripájalo k lokálnej sieti WiFi ako k internetu. Potom budete musieť určiť dynamickú IP priradenú smerovaču Raspberry Pi a potom ho zadať v prehliadači, aby ste sa mohli hrať s robotom.

Ak potrebujete pomoc alebo otázky týkajúce sa projektu, môžete zanechať komentár. Šťastný skok!

Všetky zdrojové kódy sú priložené. Ak potrebujete pomoc s ktoroukoľvek časťou stavby projektu, môžete zanechať komentár. Šťastný skok!

Odporúča: