Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
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
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:
- Raspberry Pi B (100% naprej združljiv z Raspberry Pi B+)
- Spletna kamera USB Logitech (majhnih 1,3 milijona slikovnih pik)
- L293D Gonilnik motorja IC in prelomni ščit
- USB WiFi ključ za Raspberry Pi
- USB Power Bank za Raspberry Pi
- 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!