Cuprins:

Robot de căutare și eliminare la distanță controlat de mișcare salt: 5 pași
Robot de căutare și eliminare la distanță controlat de mișcare salt: 5 pași

Video: Robot de căutare și eliminare la distanță controlat de mișcare salt: 5 pași

Video: Robot de căutare și eliminare la distanță controlat de mișcare salt: 5 pași
Video: PAȘI PRINTRE STELE | PUTEREA SINELUI SECRET ȘI FORȚA IMAGINAȚIEI (5) 2024, Noiembrie
Anonim
Image
Image

Ca parte a intrării mele pentru Leap Motion # 3D Jam, am fost încântat să construiesc acest robot de căutare / salvare controlat prin gest wireless, bazat pe Raspberry Pi. Acest proiect demonstrează și oferă un exemplu minimalist al modului în care gesturile 3D de mână fără fir pot fi utilizate pentru a controla și interacționa cu lucruri fizice.

Deoarece acest proiect folosește popularul cadru WebIOPi IoT de pe Raspberry Pi, acesta poate fi foarte ușor extins pentru a controla și interfața de obicei orice senzor / hardware / electronică care poate fi interfațat cu Raspberry Pi.

Unele scenarii posibile pe care le presupun colegilor producători ar putea folosi acest proiect ca cadru de bază pentru a construi pe:

1. Robot de eliminare a bombelor cu gesturi de la distanță (folosind poate un braț OWI etc.)

2. Operație chirurgicală la distanță de către un medic

3. Expoziții de artă interactive sau conținut educațional controlat prin gesturi

4. Alte posibilități / integrări infinite (sunt limitat de imaginația mea:))

Pasul 1: Prezentare generală

Înțelegerea cadrului WebIOPi
Înțelegerea cadrului WebIOPi

Acest proiect permite utilizatorului să controleze interactiv un robot folosind gesturi de mână 3D printr-un Leap Motion conectat la un computer.

Raspberry Pi la bordul robotului are, de asemenea, o cameră web USB care transmite video în direct către utilizator, care poate fi văzut pe un browser web. Biblioteca JavaScript LeapMotion încorporată în această pagină web procesează gesturile mâinii și trimite semnale de control înapoi către robot, care apoi se deplasează corespunzător.

Raspberry Pi de pe robot este configurat ca Hotspot (modul AP) cu ajutorul dongle-ului USB WiFi conectat la acesta. Acest lucru permite computerelor / dispozitivelor noastre să se conecteze direct la Raspberry Pi și să controleze printr-o pagină web. Raspberry Pi poate fi, de asemenea, configurat pentru a funcționa în modul client, în care se conectează fără fir la AP-ul routerului WiFi la care sunt deja conectate computerul / dispozitivele.

Acest proiect se bazează pe WebIOPi (https://webiopi.trouch.com/), care este un framework IoT popular pentru Raspberry Pi. Utilizând pachetul Weaved IoT Kit (sau prin redirecționarea porturilor pe router), acest robot poate fi controlat de la distanță și / sau poate primi date din orice parte a lumii.

Următoarele componente au fost utilizate pentru construirea proiectului:

  1. Raspberry Pi B (100% compatibil cu Raspberry Pi B +)
  2. Cameră web USB Logitech (meschin 1,3 Megapixeli)
  3. IC driver L293D motor și scut de rupere
  4. Dongle USB WiFi pentru Raspberry Pi
  5. USB Power Bank pentru Raspberry Pi
  6. Baterie externă de 4V / 1,5A pentru conducerea motoarelor robot

Pasul 2: Construirea proiectului

Instalarea WebIOPi, scrierea codului personalizat și configurarea camerei web:

Instrucțiunile de instalare WebIoPi, elementele de bază ale cadrului și multe exemple sunt disponibile la pagina proiectului aici:

Pentru ca funcțiile LeapMotion să fie încorporate pe pagina web să declanșeze acțiuni GPIO pe Raspberry Pi, am folosit Macros, ale căror detalii se găsesc aici:

De asemenea, am scris câteva note introductive despre procesul de mai sus, care pot fi găsite atașate.

Instalarea și configurarea camerei web

Folosim MJPG-Streamer pentru a transmite fluxul video de la Raspberry Pi înapoi în browser prin intermediul camerei web USB conectată pe Pi. Vă rugăm să urmați instrucțiunile de configurare și construire indicate aici https://blog.miguelgrinberg.com/post/how-to-build-… pentru a face ca MJPG-Streamer să funcționeze pe Raspberry Pi.

Configurarea Raspberry Pi ca AP / Hotspot

Pentru a configura Raspberry Pi ca Hostpot, urmați instrucțiunile oferite aici: https://elinux.org/RPI-Wireless-Hotspot. Am configurat IP-ul static al Raspberry Pi ca 192.168.42.1, ceea ce vom introduce în browser odată ce Pi va porni în modul AP.

Serviciul WebIOPi, MJPG-Streamer și hotspot WiFi au fost configurate pentru a rula automat la pornire și acest lucru ne permite să deschidem direct un browser Web și să ne conectăm la robot după ce acesta pornește. Fișierul rc.local disponibil în repo este utilizat pentru a rula camera web la pornire.

Pasul 3: Instrucțiuni de construcție / cablare

4 GPIO-uri ale Raspberry Pi și anume GPIO 9, 11, 23 și 24 sunt conectate la IC-ul driverului de motor L293D care acționează motoarele în mod corespunzător după primirea cererilor macro de pe pagina web servită de cadrul Webiopi. Dongle-ul USB WiFi și camera Web USB Logitech sunt conectate la cele 2 porturi USB disponibile pe Raspberry Pi. O bancă de putere de 5V 4000 Mah furnizează principala energie către Pi. Pentru acționarea motoarelor se folosește o baterie cu plumb acid de 4V 1,5A.

Notă: Deoarece curentul maxim de ieșire al băncii de putere pe care l-am folosit a fost de 1000 Mah, am fost nevoit să folosesc bateria externă de plumb acid pentru a conduce motoarele. Dacă aveți o bancă de putere care dă> = 2000Mah, puteți conduce direct motoarele de pe șina de 5V de pe Pi (nu aș recomanda acest lucru pentru motoarele înfometate)

Cele 3 subsecțiuni cheie ale proiectului LeapMotion Javascript API, WebIOPi și MJPG-Streamer și funcționarea / configurarea lor de bază sunt prezentate pe scurt mai jos.

Pasul 4: Înțelegerea cadrului WebIOPi

Frontend-ul care este afișat în browser este scris în HTML (Filename: index.html) și Javascript în timp ce backend-ul care conduce GPIO-urile este scris în Python (Filename: script.py). Note detaliate despre crearea unei WebApp personalizate bazate pe cadrul WebIOPi sunt atașate ca note în repo Bitbucket.

Macro-urile personalizate definite în scriptul Python pot fi declanșate din fișierul HTML.

De exemplu: webiopi (). CallMacro ("go_forward"); Acesta este un apel personalizat către o macro go_forward definită în scriptul Python care gestionează procesul de conducere a ambelor motoare în direcția de avansare.

Ierarhia directorului unde sunt stocate fișierele pe Pi este afișată în imaginea atașată.

Dosarul Robot conține aceste sub-foldere:

  • html: conține index.html
  • python: conține script.py
  • mjpg-streamer-r63: conține fișierele de construire și executabile pentru a rula camera web

MJPG-Streamer: Fluxul video live de pe camera web USB rulează în mod implicit pe portul 8080 al dispozitivului Pi. Pentru a vizualiza manual fluxul, navigați la RASPBERRYPI_IP: 8080 pe browser după ce ați activat camera web.

Cod LeapMotion:

Fragmente de cod din exemplele furnizate în LeapMotion SDK au fost încorporate în fișierul index.html. Fișierul leap.js al LeapMotion trebuie adăugat în folderul html din directorul proiectului de pe Raspberry Pi.

Parametrul palmPosition trimis de LeapMotion este utilizat pentru a determina ce macro să declanșeze pe Raspberry Pi.

Pasul 5: Rularea proiectului

Pur și simplu porniți Raspberry Pi și așteptați aproximativ un minut. Veți vedea un nou punct hotspot RaspberryPi. Conectați-vă la acest hotspot și deschideți această adresă IP statică în browser: 192.168.42.1:8000. 8000 este portul implicit al WebIOPi.

Raspberry Pi poate fi, de asemenea, configurat pentru a se conecta la rețeaua WiFi locală în calitate de clienți, în loc să apară ca hotspot. Apoi, va trebui să determinați IP-ul dinamic atribuit Raspberry Pi de către router și apoi să-l atingeți în browser pentru a vă juca cu botul.

Puteți lăsa un comentariu dacă aveți nevoie de ajutor sau aveți întrebări despre proiect. Happy Leaping!

Au fost atașate toate codurile sursă. Puteți lăsa un comentariu dacă aveți nevoie de ajutor cu orice parte a clădirii proiectului. Happy Leaping!

Recomandat: