Turinys:

Šuolio judesiu valdomas nuotolinės paieškos ir šalinimo robotas: 5 žingsniai
Šuolio judesiu valdomas nuotolinės paieškos ir šalinimo robotas: 5 žingsniai

Video: Šuolio judesiu valdomas nuotolinės paieškos ir šalinimo robotas: 5 žingsniai

Video: Šuolio judesiu valdomas nuotolinės paieškos ir šalinimo robotas: 5 žingsniai
Video: Sveikatos ir fizinio ugdymo bendrųjų programų atnaujinimo darbai ir nuotolinio mokymo aktualijos 2024, Lapkritis
Anonim
Image
Image

Dalyvaudamas „Leap Motion #3D Jam“įraše, džiaugiausi galėdamas sukurti šį belaidžiu gestu valdomą paieškos/gelbėjimo robotą, pagrįstą „Raspberry Pi“. Šis projektas demonstruoja ir pateikia minimalistinį pavyzdį, kaip belaidžiai 3D rankų gestai gali būti naudojami fiziniams daiktams valdyti ir su jais bendrauti.

Kadangi šiame projekte naudojama populiari „WebIOPi IoT“sistema „Raspberry Pi“, ją galima labai lengvai išplėsti, kad būtų galima valdyti ir sąsaja paprastai su bet kokiu jutikliu/aparatine įranga/elektronika, kurią galima sujungti su „Raspberry Pi“.

Kai kurie galimi scenarijai, kuriuos įsivaizduoju kolegos kūrėjai, gali naudoti šį projektą kaip pagrindą, kad galėtų remtis:

1. Nuotoliniu gestais valdomas bombų šalinimo robotas (naudojant galbūt OWI ranką ir pan.)

2. Nuotolinė chirurginė gydytojo operacija

3. Gestais valdomos interaktyvios meno parodos ar edukacinis turinys

4. Begalės kitų galimybių/integracijų (mane riboja mano vaizduotė:))

1 žingsnis: apžvalga

„WebIOPi“sistemos supratimas
„WebIOPi“sistemos supratimas

Šis projektas leidžia vartotojui interaktyviai valdyti robotą naudojant 3D rankų gestus per šuolio judesį, prijungtą prie kompiuterio.

„Raspberry Pi“, esantis robote, taip pat turi USB internetinę kamerą, kuri perduoda tiesioginį vaizdo įrašą vartotojui, kurį galima pamatyti žiniatinklio naršyklėje. Į šį tinklalapį įdėta „LeapMotion JavaScript“biblioteka apdoroja rankų gestus ir siunčia valdymo signalus robotui, kuris atitinkamai juda.

„Raspberry Pi“ant roboto sukonfigūruotas kaip viešosios interneto prieigos taškas (AP režimas) naudojant prie jo prijungtą USB „WiFi“raktą. Tai leidžia mūsų kompiuteriams/įrenginiams tiesiogiai prisijungti prie „Raspberry Pi“ir valdyti per tinklalapį. „Raspberry Pi“taip pat gali būti sukonfigūruotas veikti kliento režimu, kai jis belaidžiu ryšiu prisijungia prie „WiFi“maršrutizatoriaus prieigos taško, prie kurio kompiuteris/įrenginiai jau yra prijungti.

Šis projektas pagrįstas „WebIOPi“(https://webiopi.trouch.com/), kuris yra populiarus „Raspberry Pi“daiktų interneto pagrindas. Naudojant pridedamą „Weaved IoT“rinkinį (arba per maršrutizatoriaus prievadų persiuntimą), šį robotą galima valdyti nuotoliniu būdu ir (arba) gauti duomenis iš bet kurios pasaulio vietos.

Kuriant projektą buvo naudojami šie komponentai:

  1. Raspberry Pi B (100% suderinamas į priekį su Raspberry Pi B+)
  2. „Logitech“USB internetinė kamera (menka 1,3 megapikselio)
  3. L293D variklio vairuotojo IC ir „Breakout Shield“
  4. USB „WiFi“raktas „Raspberry Pi“
  5. USB maitinimo bankas „Raspberry Pi“
  6. Išorinė 4V/1.5A baterija, skirta vairuoti robotų variklius

2 žingsnis: projekto kūrimas

„WebIOPi“diegimas, tinkinto kodo rašymas ir kameros konfigūravimas:

„WebIoPi“diegimo instrukcijos, pagrindai ir daug pavyzdžių pateikiami projekto puslapyje čia:

Norėdami, kad „LeapMotion“funkcijos būtų įterptos į tinklalapį, suaktyvintų GPIO veiksmus „Raspberry Pi“, mes naudojome makrokomandas, kurių išsamią informaciją rasite čia:

Aš taip pat parašiau keletą darbo pradžios pastabų apie aukščiau aprašytą procesą, kurį galima rasti pridedamame.

„Webcam“diegimas ir konfigūravimas

Mes naudojame „MJPG-Streamer“, norėdami perduoti vaizdo įrašą iš „Raspberry Pi“atgal į naršyklę per „USB“prijungtą internetinę kamerą. Sekite sąrankos ir kūrimo instrukcijas, nurodytas čia https://blog.miguelgrinberg.com/post/how-to-build-…, kad „MJPG-Streamer“pradėtų dirbti su „Raspberry Pi“.

„Raspberry Pi“konfigūravimas kaip AP/viešosios interneto prieigos taškas

Norėdami nustatyti „Raspberry Pi“kaip „Hostpot“, vadovaukitės čia pateiktomis instrukcijomis: https://elinux.org/RPI-Wireless-Hotspot. Aš sukonfigūravau statinį „Raspberry Pi“IP kaip 192.168.42.1, tai mes įvesime į naršyklę, kai „Pi“įsijungs į AP režimą.

„WebIOPi“, „MJPG-Streamer“ir „WiFi“viešosios interneto prieigos taškų paslauga buvo sukonfigūruota automatiškai paleisti paleidžiant, ir tai leidžia mums tiesiogiai atidaryti žiniatinklio naršyklę ir prisijungti prie roboto, kai jis paleidžiamas. Repo turimas rc.local failas naudojamas paleisti žiniatinklio kamerą.

3 žingsnis: Sukūrimo/prijungimo instrukcijos

4 „Raspberry Pi“GPIO, būtent GPIO 9, 11, 23 ir 24, yra prijungti prie „L293D“variklio tvarkyklės IC, kuri atitinkamai varo variklius, gavus makro užklausas iš „Webiopi“sistemos aptarnaujamo tinklalapio. USB „WiFi“raktas ir „USB Logitech“internetinė kamera yra prijungti prie 2 „Raspberry Pi“esančių USB prievadų. 5 V 4000 Mah galios bankas tiekia pagrindinę energiją „Pi“. Varikliams varyti naudojama 4V 1,5A švino rūgšties baterija.

Pastaba: kadangi didžiausia mano naudojamo maitinimo bloko išėjimo srovė buvo milžiniška 1000 Mah, varikliams valdyti turėjau naudoti išorinę švino rūgšties bateriją. Jei turite maitinimo banką, kuris suteikia> = 2000Mah, galite tiesiogiai varyti variklius iš 5V bėgio ant Pi (vis dėlto aš to nerekomenduočiau varikliams alkaniems varikliams)

Žemiau trumpai aprašyti 3 pagrindiniai projekto „LeapMotion Javascript“API, „WebIOPi“ir „MJPG-Streamer“poskyriai ir jų pagrindiniai darbai/sąranka.

4 veiksmas: „WebIOPi Framework“supratimas

Naršyklėje rodoma priekinė sąsaja yra parašyta HTML (failo pavadinimas: index.html) ir „JavaScript“, o galinė dalis, kuri varo GPIO, parašyta „Python“(failo pavadinimas: script.py). Išsamios pastabos apie pasirinktinio „WebApp“kūrimą remiantis „WebIOPi“sistema yra pridėtos kaip pastabos „Bitbucket“repo.

Tinkintos makrokomandos, apibrėžtos „Python“scenarijuje, gali būti suaktyvintos iš HTML failo.

Pvz.: webiopi (). CallMacro ("go_forward"); Tai yra pasirinktinis skambutis makrokomandai „go_forward“, apibrėžtai „Python“scenarijuje, kuris tvarko abiejų variklių sukimąsi į priekį.

Pridėtame paveikslėlyje rodoma katalogų hierarchija, kurioje failai saugomi Pi.

Aplanke „Robot“yra šie poaplankiai:

  • html: yra index.html
  • python: yra scenarijus.py
  • „mjpg-streamer-r63“: sudėtiniai failai ir vykdomasis failas, skirtas paleisti internetinę kamerą

„MJPG-Streamer“: tiesioginis vaizdo įrašo srautas iš USB žiniatinklio kameros pagal numatytuosius nustatymus veikia „Pi“8080 prievade. Jei norite rankiniu būdu peržiūrėti srautą, naršyklėje eikite į RASPBERRYPI_IP: 8080, įjungę internetinę kamerą.

„LeapMotion“kodas:

Kodo fragmentai iš „LeapMotion SDK“pateiktų pavyzdžių buvo įterpti į failą index.html. „LeapMotion“failas leap.js turi būti įtrauktas į „Raspberry Pi“projekto katalogo html aplanką.

„LeapMotion“atsiųstas „palmPosition“parametras naudojamas nustatyti, kurią makrokomandą suaktyvinti „Raspberry Pi“.

5 žingsnis: vykdykite projektą

Tiesiog įjunkite Raspberry Pi ir palaukite maždaug minutę. Pamatysite naują „RaspberryPi“karštą vietą. Prisijunkite prie šio viešosios interneto prieigos taško ir naršyklėje atidarykite šį statinį IP adresą: 192.168.42.1:8000. 8000 yra numatytasis „WebIOPi“prievadas.

„Raspberry Pi“taip pat gali būti sukonfigūruotas prisijungti prie vietinio „Wi -Fi“tinklo kaip klientas, o ne rodyti kaip viešosios interneto prieigos taškas. Tada turėsite nustatyti dinaminį IP, kurį maršrutizatorius priskyrė „Raspberry Pi“, ir paspauskite jį naršyklėje, kad galėtumėte žaisti su „Bot“.

Jei reikia pagalbos ar turite klausimų apie projektą, galite palikti komentarą. Laimingas šuolis!

Pridėti visi šaltinio kodai. Jei reikia pagalbos dėl bet kurios pastato dalies, galite palikti komentarą. Laimingas šuolis!

Rekomenduojamas: