Talaan ng mga Nilalaman:

Leap Motion Controlled Remote Search and Disposal Robot: 5 Hakbang
Leap Motion Controlled Remote Search and Disposal Robot: 5 Hakbang

Video: Leap Motion Controlled Remote Search and Disposal Robot: 5 Hakbang

Video: Leap Motion Controlled Remote Search and Disposal Robot: 5 Hakbang
Video: Leap Motion SDK 2024, Nobyembre
Anonim
Image
Image

Bilang bahagi ng aking pagpasok para sa Leap Motion # 3D Jam, nasasabik akong buuin ang wireless na kilos na kontrolado ang Search / Rescue Robot batay sa Raspberry Pi. Ang proyektong ito ay nagpapakita at nagbibigay ng isang minimalistic na halimbawa ng kung paano maaaring magamit ang mga wireless 3D na kilos ng kamay upang makontrol at makipag-ugnay sa mga pisikal na bagay.

Dahil ang proyektong ito ay gumagamit ng sikat na balangkas ng WebIOPi IoT sa Raspberry Pi, maaari itong madaling palawakin upang makontrol at mai-interface ang karaniwang anumang Sensor / Hardware / Electronics na maaaring ma-interfaced sa Raspberry Pi.

Ang ilang mga posibleng sitwasyon na naiisip ko ang mga kapwa Gumagawa na maaaring gumamit ng proyektong ito bilang kanilang pangunahing balangkas upang mabuo sa:

1. Remote Gesture Operated Bomb Disposal Robot (gumagamit ng marahil isang OWI Arm atbp)

2. Remote Surgical Operation ng isang Doctor

3. Kinokontrol ng kilos na interactive na Mga Art Exhibit o Nilalaman sa Pang-edukasyon

4. Walang katapusang iba pang mga posibilidad / pagsasama (Limitado ako ng aking imahinasyon:))

Hakbang 1: Pangkalahatang-ideya

Pag-unawa sa WebIOPi Framework
Pag-unawa sa WebIOPi Framework

Pinapayagan ng proyektong ito ang isang gumagamit na interactive na kontrolin ang isang Robot gamit ang mga kilos ng kamay ng 3D sa pamamagitan ng isang Leap Motion na konektado sa isang PC.

Ang Raspberry Pi on-board ng Robot ay mayroon ding isang USB Webcam na nag-stream ng live na video pabalik sa gumagamit na maaaring makita sa isang Web Browser. Ang LeapMotion JavaScript library na naka-embed sa Webpage na ito ay nagpoproseso ng mga kilos ng kamay at nagpapadala ng mga signal ng kontrol pabalik sa Robot, na pagkatapos ay gumagalaw nang naaayon.

Ang Raspberry Pi sa Robot ay naka-configure bilang isang Hotspot (AP mode) sa tulong ng USB WiFi dongle na konektado dito. Pinapayagan ang aming mga PC / Device na direktang kumonekta sa Raspberry Pi at makontrol sa pamamagitan ng isang webpage. Maaari ding mai-configure ang Raspberry Pi upang mapatakbo sa client mode, kung saan wireless itong kumokonekta sa AP ng Router ng WiFi kung saan nakakonekta na ang PC / Mga Device.

Ang proyektong ito ay batay sa WebIOPi (https://webiopi.trouch.com/) na isang tanyag na IoT framework para sa Raspberry Pi. Sa pamamagitan ng paggamit ng na-bundle na Weaved IoT Kit (o sa pamamagitan ng pagpapasa ng port sa Router), ang Robot na ito ay maaaring makontrol nang malayuan at / o makatanggap ng data mula sa anumang bahagi ng mundo.

Ang mga sumusunod na sangkap ay ginamit para sa pagbuo ng proyekto:

  1. Raspberry Pi B (100% pasulong na katugma sa Raspberry Pi B +)
  2. Logitech USB Webcam (paltry 1.3 Megapixel)
  3. L293D Motor Driver IC at Breakout Shield
  4. USB WiFi Dongle para sa Raspberry Pi
  5. USB Power Bank para sa Raspberry Pi
  6. Panlabas na 4V / 1.5A Baterya para sa pagmamaneho ng Robot Motors

Hakbang 2: Bumuo ng Project

Pag-install ng WebIOPi, Pagsulat ng Pasadyang Code at pag-configure ng Webcam:

Ang mga tagubilin sa pag-install ng WebIoPi, mga pangunahing kaalaman sa balangkas at maraming mga halimbawa ay magagamit sa pahina ng proyekto dito:

Upang makuha ang mga pagpapaandar ng LeapMotion na naka-embed sa web page na nagpapalitaw ng mga aksyon ng GPIO sa Raspberry Pi, ginamit namin ang Macros, na ang mga detalye ay matatagpuan dito:

Nagsulat din ako ng ilang pagsisimula ng mga tala tungkol sa proseso sa itaas na maaaring matagpuan na nakakabit.

Pag-install at Pag-configure ng Webcam

Gumagamit kami ng MJPG-Streamer upang mai-stream ang video feed mula sa Raspberry Pi pabalik sa Browser sa pamamagitan ng USB Webcam na konektado sa Pi. Mangyaring sundin ang pag-set up at pagbuo ng mga tagubilin na nakasaad dito https://blog.miguelgrinberg.com/post/how-to- build-… upang makatrabaho ang MJPG-Streamer sa Raspberry Pi.

Ang pag-configure ng Raspberry Pi bilang isang AP / Hotspot

Upang mai-setup ang Raspberry Pi bilang isang Hostpot, mangyaring sundin ang mga tagubiling ibinigay dito: https://elinux.org/RPI-Wireless-Hotspot. Na-configure ko ang static IP ng Raspberry Pi bilang 192.168.42.1 na kung saan ay mai-type namin sa browser sa sandaling ang Pi boots ay nasa AP mode.

Ang serbisyo ng WebIOPi, MJPG-Streamer at WiFi hotspot ay na-configure upang awtomatikong tumakbo sa boot at pinapayagan kaming direktang buksan ang isang Web browser at kumonekta sa Robot pagkatapos nitong mag-boot. Ang rc.local file na magagamit sa repo ay ginagamit upang patakbuhin ang Webcam sa boot.

Hakbang 3: Mga Tagubilin sa Bumuo / Mga Kable

4 GPIO ng Raspberry Pi namely GPIO 9, 11, 23 & 24 ay konektado sa L293D Motor Driver IC na hinihimok ang mga motor alinsunod sa pagtanggap ng mga kahilingan sa macro mula sa Webpage na hinatid ng balangkas ng Webiopi. Ang dongle ng USB WiFi at ang USB Logitech Webcam ay konektado sa 2 USB port na magagamit sa Raspberry Pi. Ang isang 5V 4000 Mah Power bank ay nagbibigay ng pangunahing lakas sa Pi. Ang isang 4V 1.5A Lead Acid na baterya ay ginagamit upang himukin ang mga Motors.

Tandaan: Dahil ang pinakamataas na kasalukuyang output ng power bank na ginamit ko ay isang maliit na 1000 Mah, kinailangan kong gumamit ng panlabas na baterya ng Lead Acid upang magmaneho ng mga motor. Kung mayroon kang isang power bank na nagbibigay> = 2000Mah, maaari mong direktang ihimok ang mga motor mula sa 5V rail sa Pi (hindi ko inirerekumenda ito para sa mga motor na nagugutom ng kuryente)

Ang 3 pangunahing mga subseksyon ng proyekto na LeapMotion Javascript API, WebIOPi at MJPG-Streamer at ang kanilang pangunahing pagtatrabaho / pag-setup ay maikling nakabalangkas sa ibaba.

Hakbang 4: Pag-unawa sa WebIOPi Framework

Ang frontend na ipinapakita sa Browser ay nakakulong sa HTML (Filename: index.html) at Javascript habang ang backend na nagtutulak ng mga GPIO ay nakasulat sa Python (Filename: script.py). Ang mga detalyadong tala sa paglikha ng isang pasadyang WebApp batay sa balangkas ng WebIOPi ay naka-attach bilang mga tala sa Repro ng Bitbucket.

Ang mga pasadyang macros na tinukoy sa script ng Python ay maaaring ma-trigger mula sa HTML file.

Hal: webiopi (). CallMacro ("go_forward"); Ito ay isang pasadyang tawag sa isang macro go_forward na tinukoy sa script ng Python na humahawak sa proseso ng drving parehong Motors sa pasulong na direksyon.

Ang hierarchy ng Directory kung saan nakaimbak ang mga file sa Pi ay ipinapakita sa naka-attach na imahe.

Naglalaman ang folder ng Robot ng mga sub-folder na ito:

  • html: naglalaman ng index.html
  • sawa: naglalaman ng script.py
  • m.jpg-streamer-r63: naglalaman ng mga build file at maipapatupad upang patakbuhin ang Webcam

MJPG-Streamer: Ang Live Video stream mula sa USB Webcam ay tumatakbo sa port 8080 ng Pi bilang default. Upang manu-manong matingnan ang stream, mag-navigate sa RASPBERRYPI_IP: 8080 sa browser pagkatapos i-on ang Webcam.

LeapMotion Code:

Ang mga snippet ng code mula sa mga halimbawang ibinigay sa LeapMotion SDK ay naka-embed sa index.html file. Ang leapMotion's leap.js file ay dapat idagdag sa folder na html sa direktoryo ng proyekto sa Raspberry Pi.

Ang parameter ng palmPosition na ipinadala ng LeapMotion ay ginagamit upang matukoy kung aling macro ang magpapalitaw sa Raspberry Pi.

Hakbang 5: Pagpapatakbo ng Proyekto

Lamang kapangyarihan SA Raspberry Pi at maghintay ng humigit-kumulang sa isang minuto. Makakakita ka ng isang bagong hotpsot na RaspberryPi na lalabas. Kumonekta sa hotspot na ito at buksan ang static na IP address na ito sa browser: 192.168.42.1:8000. Ang 8000 ay ang default port ng WebIOPi.

Maaari ding mai-configure ang Raspberry Pi upang kumonekta sa lokal na network ng WiFi bilang isang sa kliyente sa halip na ipakita bilang isang hotspot. Kakailanganin mong tukuyin ang pabago-bagong IP na nakatalaga sa Raspberry Pi ng Router at pagkatapos ay pindutin ito sa Browser upang maglaro kasama ang Bot.

Maaari kang mag-iwan ng isang komento kung kailangan mo ng anumang tulong o may anumang mga katanungan tungkol sa proyekto. Maligayang Paglundag!

Ang buong mga source code ay na-attach. Maaari kang mag-iwan ng isang komento kung kailangan mo ng anumang tulong sa anumang bahagi ng pagbuo ng proyekto. Maligayang Paglundag!

Inirerekumendang: