Kazalo:

Robot za daljinsko iskanje in odstranjevanje z nadzorom gibanja: 5 korakov
Robot za daljinsko iskanje in odstranjevanje z nadzorom gibanja: 5 korakov

Video: Robot za daljinsko iskanje in odstranjevanje z nadzorom gibanja: 5 korakov

Video: Robot za daljinsko iskanje in odstranjevanje z nadzorom gibanja: 5 korakov
Video: Дэниел Шмахтенбергер: Уничтожат ли нас технологии? 2024, November
Anonim
Image
Image

Kot del moje prijave za Leap Motion #3D Jam sem bil navdušen nad izdelavo tega brezžičnega robota za iskanje/reševanje s kretnjami, ki temelji na Raspberry Pi. Ta projekt prikazuje in ponuja minimalističen primer, kako se lahko brezžične 3D ročne kretnje uporabljajo za nadzor in interakcijo s fizičnimi stvarmi.

Ker ta projekt uporablja priljubljen okvir WebIOPi IoT na Raspberry Pi, ga je mogoče zelo enostavno razširiti na nadzor in vmesnik običajno s katerim koli senzorjem/strojno opremo/elektroniko, ki ga je mogoče povezati z Raspberry Pi.

Nekateri možni scenariji, ki si jih zamislim, so ustvarjalci lahko uporabili ta projekt kot svoj osnovni okvir za nadgradnjo:

1. Robot za odstranjevanje bomb z oddaljenimi gestami (morda z roko OWI itd.)

2. Operacija na daljavo pri zdravniku

3. Interaktivne umetniške razstave ali izobraževalne vsebine z gestami

4. Neskončne druge možnosti/integracije (omejen sem z domišljijo:))

1. korak: Pregled

Razumevanje ogrodja WebIOPi
Razumevanje ogrodja WebIOPi

Ta projekt uporabniku omogoča interaktivno upravljanje robota z uporabo 3D ročnih kretenj prek Leap Motion -a, povezanega z osebnim računalnikom.

Raspberry Pi na krovu Robota ima tudi spletno kamero USB, ki pretaka videoposnetke v živo nazaj do uporabnika, kar je mogoče videti v spletnem brskalniku. Knjižnica JavaScripta LeapMotion, vdelana v to spletno stran, obdeluje kretnje rok in pošilja nadzorne signale nazaj robotu, ki se nato ustrezno premika.

Raspberry Pi na robotu je konfiguriran kot vroča točka (način AP) s pomočjo priključenega ključa USB WiFi. To našim računalnikom/napravam omogoča neposredno povezavo z Raspberry Pi in nadzor preko spletne strani. Raspberry Pi je mogoče konfigurirati tudi za delovanje v odjemalčevem načinu, kjer se brezžično poveže z dostopno točko usmerjevalnika WiFi, na katero je računalnik/naprave že povezan.

Ta projekt temelji na WebIOPi (https://webiopi.trouch.com/), ki je priljubljen okvir IoT za Raspberry Pi. Z uporabo priloženega Weaved IoT kompleta (ali prek posredovanja vrat na usmerjevalniku) je mogoče tega robota upravljati na daljavo in/ali prejemati podatke iz katerega koli dela sveta.

Za izdelavo projekta so bile uporabljene naslednje komponente:

  1. Raspberry Pi B (100% naprej združljiv z Raspberry Pi B+)
  2. Spletna kamera USB Logitech (majhnih 1,3 milijona slikovnih pik)
  3. L293D Gonilnik motorja IC in prelomni ščit
  4. USB WiFi ključ za Raspberry Pi
  5. USB Power Bank za Raspberry Pi
  6. Zunanja baterija 4V/1.5A za pogon robotskih motorjev

2. korak: izdelava projekta

Namestitev WebIOPi, pisanje kode po meri in konfiguracija spletne kamere:

Navodila za namestitev WebIoPi, osnove okvira in številni primeri so na voljo na strani projekta tukaj:

Da bi funkcije LeapMotion, vgrajene v spletno stran, sprožile dejanja GPIO na Raspberry Pi, smo uporabili makre, podrobnosti o katerih najdete tukaj:

Napisal sem tudi nekaj uvodnih opomb o zgornjem postopku, ki jih najdete v priponki.

Namestitev in konfiguracija spletne kamere

Uporabljamo MJPG-Streamer za pretakanje video vira iz Raspberry Pi nazaj v brskalnik prek spletne kamere USB, povezane na Pi. Sledite navodilom za namestitev in izdelavo, navedenim tukaj https://blog.miguelgrinberg.com/post/how-to-build-…, da MJPG-Streamer začne delovati na Raspberry Pi.

Konfiguriranje Raspberry Pi kot dostopne točke/dostopne točke

Če želite Raspberry Pi nastaviti kot gostiteljsko točko, sledite spodnjim navodilom: https://elinux.org/RPI-Wireless-Hotspot. Statični IP Raspberry Pi sem konfiguriral kot 192.168.42.1, kar bi vnesli v brskalnik, ko se Pi zažene v načinu AP.

Storitve WebIOPi, MJPG-Streamer in dostopne točke WiFi so bile konfigurirane za samodejno zagon ob zagonu, kar nam omogoča, da neposredno odpremo spletni brskalnik in se po zagonu povežemo z robotom. Datoteka rc.local, ki je na voljo v repoju, se uporablja za zagon spletne kamere ob zagonu.

3. korak: Navodila za izdelavo/ožičenje

4 GPIO -ji Raspberry Pi, in sicer GPIO 9, 11, 23 in 24, so povezani z IC -jem gonilnika motorja L293D, ki ustrezno poganja motorje po prejemu zahtev za makro s spletne strani, ki jo uporablja okvir Webiopi. Ključ USB WiFi in spletna kamera USB Logitech sta povezana z dvema vhodoma USB, ki sta na voljo na Raspberry Pi. Banka Power 5V 4000 Mah oskrbuje Pi z glavno energijo. Za pogon motorjev se uporablja 4V 1.5A svinčevo -kislinska baterija.

Opomba: Ker je bil največji izhodni tok napajalnika, ki sem ga uporabil, slabih 1000 Mah, sem za pogon motorjev moral uporabiti zunanjo svinčevo baterijo. Če imate power bank, ki daje> = 2000Mah, lahko motorje neposredno poganjate s 5V tirnice na Pi (tega pa za motorje z nizko porabo energije ne priporočam)

Spodaj so na kratko opisani trije ključni pododdelki projekta LeapMotion Javascript API, WebIOPi in MJPG-Streamer ter njihovo osnovno delo/nastavitev.

4. korak: Razumevanje ogrodja WebIOPi

Vmesnik, ki je prikazan v brskalniku, je zapisan v HTML (ime datoteke: index.html) in Javascript, medtem ko je zaledje, ki poganja GPIO, zapisano v Pythonu (ime datoteke: script.py). Podrobne opombe o ustvarjanju spletne aplikacije po meri, ki temelji na ogrodju WebIOPi, so priložene kot opombe v repo Bitbucket.

Makre po meri, določene v skriptu Python, lahko sprožite iz datoteke HTML.

Npr.: webiopi (). CallMacro ("go_forward"); To je klic po meri do makra go_forward, določenega v skriptu Python, ki upravlja postopek vrtenja obeh motorjev v smeri naprej.

Na priloženi sliki je prikazana hierarhija imenika, kjer so datoteke shranjene na Pi.

Mapa Robot vsebuje te podmape:

  • html: vsebuje index.html
  • python: vsebuje script.py
  • mjpg-streamer-r63: vsebuje datoteke za sestavljanje in izvedljivo datoteko za zagon spletne kamere

MJPG-Streamer: Pretok videa v živo s spletne kamere USB deluje privzeto na vratih 8080 Pi. Če si želite ročno ogledati tok, se po vklopu spletne kamere pomaknite do RASPBERRYPI_IP: 8080 v brskalniku.

Koda LeapMotion:

Odlomki kode iz primerov, navedenih v SDK -ju LeapMotion, so bili vdelani v datoteko index.html. Datoteko leap.js LeapMotion je treba dodati v mapo html v imeniku projekta na Raspberry Pi.

Parameter palmPosition, ki ga pošlje LeapMotion, se uporablja za določitev, kateri makro naj se sproži na Raspberry Pi.

5. korak: Zagon projekta

Preprosto vklopite Raspberry Pi in počakajte približno minuto. Videli boste nov hotpsot RaspberryPi. Povežite se s to vročo točko in v brskalniku odprite ta statični naslov IP: 192.168.42.1:8000. 8000 je privzeta vrata za WebIOPi.

Raspberry Pi je mogoče konfigurirati tudi tako, da se poveže z lokalnim omrežjem WiFi kot stranko, namesto da se prikaže kot vroča točka. Nato bi morali določiti dinamični IP, ki ga usmerjevalniku dodeli Raspberry Pi, in ga nato pritisniti v brskalniku, da se poigrate z Botom.

Če potrebujete pomoč ali imate kakršna koli vprašanja o projektu, lahko pustite komentar. Vesel skok!

Priložene so celotne izvorne kode. Če potrebujete pomoč pri katerem koli delu pri gradnji projekta, lahko pustite komentar. Vesel skok!

Priporočena: