Sadržaj:

Robot za daljinsko pretraživanje i odlaganje s kontroliranim kretanjem: 5 koraka
Robot za daljinsko pretraživanje i odlaganje s kontroliranim kretanjem: 5 koraka

Video: Robot za daljinsko pretraživanje i odlaganje s kontroliranim kretanjem: 5 koraka

Video: Robot za daljinsko pretraživanje i odlaganje s kontroliranim kretanjem: 5 koraka
Video: Удаленный поиск множества игрушек динозавров в земле 2024, Studeni
Anonim
Image
Image

Kao dio moje prijave za Leap Motion #3D Jam, bio sam uzbuđen što sam napravio ovog bežičnog robota za pretraživanje/spašavanje kontroliranog gestama na temelju Raspberry Pi. Ovaj projekt prikazuje i pruža minimalistički primjer kako se bežični 3D pokreti rukama mogu koristiti za kontrolu i interakciju s fizičkim stvarima.

Budući da ovaj projekt koristi popularni WebIOPi IoT okvir na Raspberry Pi, može se vrlo lako proširiti na kontrolu i sučelje tipično sa bilo kojim senzorom/hardverom/elektronikom koji se može povezati s Raspberry Pi.

Neki mogući scenariji koje zamišljam kolege Stvoritelji mogu koristiti ovaj projekt kao svoj osnovni okvir za nadogradnju:

1. Robot za uklanjanje bombi s daljinskim pokretima (možda pomoću OWI ruke itd.)

2. Daljinski kirurški zahvat od strane liječnika

3. Interaktivne umjetničke izložbe ili obrazovni sadržaji kontrolirani pokretima

4. Beskonačne druge mogućnosti/integracije (ograničen sam maštom:))

Korak 1: Pregled

Razumijevanje WebIOPi okvira
Razumijevanje WebIOPi okvira

Ovaj projekt omogućuje korisniku interaktivno upravljanje robotom pomoću 3D pokreta rukama kroz Leap Motion spojen na računalo.

Raspberry Pi na Robotu ima i USB web kameru koja struji video zapis uživo do korisnika koji se može vidjeti u web pregledniku. Knjižnica JavaScripta LeapMotion ugrađena u ovu web stranicu obrađuje geste rukama i šalje upravljačke signale natrag robotu, koji se tada prema tome pomiče.

Raspberry Pi na robotu konfiguriran je kao hotspot (način rada AP) uz pomoć USB WiFi ključa spojenog na njega. To omogućuje našim računalima/uređajima izravno povezivanje s Raspberry Pi i upravljanje putem web stranice. Raspberry Pi se također može konfigurirati za rad u klijentskom načinu rada, pri čemu se bežično povezuje s AP -om WiFi usmjerivača na koji su računalo/uređaji već spojeni.

Ovaj se projekt temelji na WebIOPi (https://webiopi.trouch.com/) koji je popularan IoT okvir za Raspberry Pi. Korištenjem paketa Weaved IoT Kit (ili putem prosljeđivanja priključaka na usmjerivaču), ovim se robotom može daljinski upravljati i/ili primati podatke iz bilo kojeg dijela svijeta.

Za izradu projekta korištene su sljedeće komponente:

  1. Raspberry Pi B (100% naprijed kompatibilan s Raspberry Pi B+)
  2. Logitech USB web kamera (ništavnih 1,3 megapiksela)
  3. L293D IC upravljački program motora i zaštitni štit
  4. USB WiFi ključ za Raspberry Pi
  5. USB Power Bank za Raspberry Pi
  6. Vanjska 4V/1.5A baterija za pogon robotskih motora

Korak 2: Izrada projekta

Instaliranje WebIOPi -a, pisanje prilagođenog koda i konfiguriranje web -kamere:

Upute za instalaciju WebIoPi, osnove okvira i mnogi primjeri dostupni su na stranici projekta ovdje:

Kako bi funkcije LeapMotion ugrađene u web stranicu pokrenule GPIO radnje na Raspberry Pi -u, koristili smo makroe, čije detalje možete pronaći ovdje:

Napisao sam i neke napomene o početku rada o gore navedenom procesu koje se mogu pronaći u privitku.

Instaliranje i konfiguriranje web kamere

Koristimo MJPG-Streamer za strujanje video feedova iz Raspberry Pi natrag u preglednik putem USB web kamere spojene na Pi. Slijedite upute za postavljanje i izradu koje su navedene ovdje https://blog.miguelgrinberg.com/post/how-to-build-… kako biste MJPG-Streamer radili na Raspberry Pi.

Konfiguriranje Raspberry Pi -a kao pristupne točke/pristupne točke

Kako biste postavili Raspberry Pi kao hostpot, slijedite upute navedene ovdje: https://elinux.org/RPI-Wireless-Hotspot. Konfigurirao sam statički IP Raspberry Pi kao 192.168.42.1, što bismo unijeli u preglednik nakon što se Pi podigne u AP način.

WebIOPi, MJPG-Streamer i WiFi hotspot usluga konfigurirane su za automatsko pokretanje pri pokretanju, što nam omogućuje izravno otvaranje web preglednika i povezivanje s robotom nakon pokretanja. Datoteka rc.local dostupna u repo -u koristi se za pokretanje web kamere pri pokretanju.

Korak 3: Upute za izgradnju/ožičenje

4 GPIO -a Raspberry Pi -a, naime GPIO 9, 11, 23 i 24, spojeni su na L293D IC Driver Driver koji pokreće motore u skladu s tim nakon primanja zahtjeva za makro s web stranice koju poslužuje Webiopi okvir. USB WiFi ključ i USB Logitech web kamera spojeni su na 2 USB priključka dostupna na Raspberry Pi. Banka napajanja 5V 4000 Mah snabdijeva Pi glavnom energijom. 4V 1.5A olovna baterija koristi se za pogon motora.

Napomena: S obzirom da je maksimalna izlazna struja banke napajanja koju sam koristio bila jakih 1000 Mah, morao sam koristiti vanjsku bateriju s olovnom kiselinom za pogon motora. Ako imate banku napajanja koja daje> = 2000Mah, možete izravno pokretati motore s 5V tračnice na Pi -u (ipak ovo ne bih preporučio za motore gladne energije)

Tri ključne pododjeljka projekta LeapMotion Javascript API, WebIOPi i MJPG-Streamer i njihov osnovni rad/postavljanje ukratko su opisani u nastavku.

Korak 4: Razumijevanje WebIOPi okvira

Sučelje prikazano u pregledniku napisano je u HTML -u (Naziv datoteke: index.html) & Javascript, dok je pozadina koja pokreće GPIO -ove zapisana u Pythonu (Naziv datoteke: script.py). Detaljne napomene o stvaranju prilagođene WebApp -e temeljene na okviru WebIOPi priložene su kao bilješke u repozitoriju Bitbucket -a.

Prilagođene makronaredbe definirane u Python skripti mogu se pokrenuti iz HTML datoteke.

Npr: webiopi (). CallMacro ("go_forward"); Ovo je prilagođeni poziv makrou go_forward definiranom u Python skripti koji upravlja procesom okretanja oba motora u smjeru naprijed.

Hijerarhija direktorija gdje se datoteke pohranjuju na Pi prikazana je na priloženoj slici.

Mapa Robot sadrži ove podmape:

  • html: sadrži index.html
  • python: sadrži script.py
  • mjpg-streamer-r63: sadrži datoteke za izgradnju i izvršnu datoteku za pokretanje web kamere

MJPG-Streamer: Video stream uživo s USB web-kamere prema zadanim postavkama radi na priključku 8080 Pi. Da biste ručno pogledali stream, prijeđite na RASPBERRYPI_IP: 8080 u pregledniku nakon uključivanja web kamere.

Kod LeapMotion:

Isječci koda iz primjera navedenih u LeapMotion SDK -u ugrađeni su u datoteku index.html. Leap.js datoteku LeapMotion -a potrebno je dodati u mapu html u direktoriju projekta na Raspberry Pi -ju.

Parametar palmPosition koji šalje LeapMotion koristi se za određivanje makroa koji će se pokrenuti na Raspberry Pi.

Korak 5: Pokretanje projekta

Jednostavno uključite Raspberry Pi i pričekajte otprilike minutu. Vidjet ćete da se pojavljuje novi hotpsot RaspberryPi. Povežite se s ovom žarišnom točkom i otvorite ovu statičku IP adresu u pregledniku: 192.168.42.1:8000. 8000 je zadani port za WebIOPi.

Raspberry Pi se također može konfigurirati za povezivanje s lokalnom WiFi mrežom kao klijent umjesto da se prikazuje kao žarišna točka. Tada biste morali odrediti dinamički IP koji je usmjerivaču dodijeljen Raspberry Pi -u, a zatim ga udariti gore u pregledniku da biste se poigrali s Botom.

Možete ostaviti komentar ako trebate pomoć ili imate pitanja o projektu. Sretan skok!

Cijeli izvorni kodovi su priloženi. Možete ostaviti komentar ako vam je potrebna pomoć oko bilo kojeg dijela izgradnje projekta. Sretan skok!

Preporučeni: