Sadržaj:

Robot za daljinsko pretraživanje i uklanjanje s kontroliranim pokretom: 5 koraka
Robot za daljinsko pretraživanje i uklanjanje s kontroliranim pokretom: 5 koraka

Video: Robot za daljinsko pretraživanje i uklanjanje s kontroliranim pokretom: 5 koraka

Video: Robot za daljinsko pretraživanje i uklanjanje s kontroliranim pokretom: 5 koraka
Video: Стеки технологий – информатика для руководителей бизнеса 2016 2024, Novembar
Anonim
Image
Image

Kao dio mog ulaska u Leap Motion #3D Jam, bio sam uzbuđen što sam napravio ovog bežičnog robota za pretraživanje/spašavanje kontroliranog pokretima zasnovanog na Raspberry Pi. Ovaj projekt demonstrira 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 sa daljinskim pokretima (možda pomoću OWI ruke itd.)

2. Daljinski hirurški zahvat od strane doktora

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 povezan s računalom.

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. JavaScript biblioteka LeapMotion ugrađena u ovu web stranicu obrađuje pokrete rukama i šalje kontrolne signale natrag robotu, koji se zatim pomiče u skladu s tim.

Raspberry Pi na robotu konfiguriran je kao hotspot (način rada AP) uz pomoć USB WiFi ključa spojenog na njega. Ovo omogućava našim računarima/uređajima da se direktno povežu sa Raspberry Pi i kontrolišu putem veb 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ć povezani.

Ovaj projekat je zasnovan na WebIOPi (https://webiopi.trouch.com/) koji je popularan IoT okvir za Raspberry Pi. Korištenjem paketa Weaved IoT Kit (ili putem prosljeđivanja porta na usmjerivaču), ovim robotom se 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% unapred kompatibilan sa 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 -a, osnove okvira i mnogi primjeri dostupni su na stranici projekta ovdje:

Da bi funkcije LeapMotion ugrađene u web stranicu pokrenule GPIO akcije 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 naći u prilogu.

Instaliranje i konfiguriranje web kamere

Koristimo MJPG-Streamer za prijenos video zapisa iz Raspberry Pi natrag u Preglednik putem USB web kamere povezane na Pi. Slijedite upute za postavljanje i izgradnju koje su ovdje navedene https://blog.miguelgrinberg.com/post/how-to-build-… kako biste MJPG-Streamer radili na Raspberry Pi.

Konfiguriranje Raspberry Pi kao AP/Hotspot

Da 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 pokrene u AP načinu.

WebIOPi, MJPG-Streamer i WiFi hotspot servis konfigurirani su za automatsko pokretanje pri pokretanju, što nam omogućuje da direktno otvorimo web preglednik i povežemo se 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 framework. USB WiFi ključ i USB Logitech web kamera povezani su na 2 USB priključka dostupna na Raspberry Pi -u. Banka napajanja 5V 4000 Mah snabdijeva Pi glavnom energijom. 4V 1.5A olovna baterija koristi se za pogon motora.

Napomena: Budući da je maksimalna izlazna struja banke napajanja koju sam koristio bila neznatnih 1000 Mah, morao sam koristiti vanjsku olovnu bateriju za pogon motora. Ako imate banku napajanja koja daje> = 2000Mah, možete direktno pogoniti motore sa 5V šine 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

Frontend koji je prikazan u Browseru napisan 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 zasnovane na WebIOPi okviru priložene su kao bilješke u repozitoriju Bitbucket -a.

Prilagođeni makroi definirani 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 prijenos uživo s USB web kamere prema zadanim postavkama radi na portu 8080 Pi. Da biste ručno vidjeli stream, prijeđite na RASPBERRYPI_IP: 8080 u pregledniku nakon uključivanja web kamere.

LeapMotion kôd:

Isječci koda iz primjera navedenih u LeapMotion SDK -u ugrađeni su u datoteku index.html. Leap.js datoteka LeapMotion -a mora se dodati u html fasciklu u direktoriju projekta na Raspberry Pi -u.

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 hotspotom 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 trebali 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 vam je potrebna 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čuje se: