Innehållsförteckning:
- Steg 1: Översikt
- Steg 2: Projektbygge
- Steg 3: Instruktioner för byggning/anslutning
- Steg 4: Förstå WebIOPi Framework
- Steg 5: Kör projektet
Video: Leap Motion Controlled Remote Search and Disposal Robot: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:37
Som en del av min anmälan till Leap Motion #3D Jam var jag upphetsad att bygga denna trådlösa geststyrda sök-/räddningsrobot baserad på Raspberry Pi. Detta projekt demonstrerar och ger ett minimalistiskt exempel på hur trådlösa 3D -handrörelser kan användas för att styra och interagera med fysiska saker.
Eftersom detta projekt använder det populära WebIOPi IoT -ramverket på Raspberry Pi kan det mycket enkelt byggas ut för att styra och koppla in typiskt alla sensorer/hårdvara/elektronik som kan kopplas till Raspberry Pi.
Några möjliga scenarier som jag föreställer mig andra tillverkare kan använda detta projekt som basram för att bygga vidare på:
1. Fjärrstyrd bombbortskaffningsrobot (med kanske en OWI -arm etc)
2. Fjärrkirurgisk operation av en läkare
3. Gestkontrollerade interaktiva konstutställningar eller utbildningsinnehåll
4. Oändliga andra möjligheter/integrationer (jag är begränsad av min fantasi:))
Steg 1: Översikt
Detta projekt låter en användare interaktivt styra en robot med hjälp av 3D -handrörelser genom en språngrörelse ansluten till en dator.
Raspberry Pi ombord på roboten har också en USB-webbkamera som strömmar livevideo tillbaka till användaren som kan ses i en webbläsare. LeapMotion JavaScript -bibliotek inbäddat i denna webbsida behandlar handgester och skickar styrsignaler tillbaka till roboten, som sedan rör sig därefter.
Raspberry Pi på roboten är konfigurerad som en hotspot (AP -läge) med hjälp av USB WiFi -dongeln ansluten till den. Detta gör att våra datorer/enheter kan ansluta direkt till Raspberry Pi och styra via en webbsida. Raspberry Pi kan också konfigureras för att fungera i klientläge, där den trådlöst ansluter till WiFi -routerns AP som datorn/enheterna redan är anslutna till.
Detta projekt är baserat på WebIOPi (https://webiopi.trouch.com/) som är ett populärt IoT -ramverk för Raspberry Pi. Genom att använda det medföljande Weaved IoT -kit (eller genom portvidarebefordran på routern) kan denna robot fjärrstyras och/eller ta emot data från någon del av världen.
Följande komponenter användes för att bygga projektet:
- Raspberry Pi B (100% framåtkompatibel med Raspberry Pi B+)
- Logitech USB -webbkamera (usla 1,3 megapixel)
- L293D motorförar -IC och breakout -sköld
- USB WiFi -dongel för Raspberry Pi
- USB Power Bank för Raspberry Pi
- Externt 4V/1,5A batteri för att driva robotmotorerna
Steg 2: Projektbygge
Installera WebIOPi, skriva anpassad kod och konfigurera webbkamera:
WebIoPi -installationsanvisningar, grundläggande ramverk och många exempel finns på projektsidan här:
För att få LeapMotion -funktionerna inbäddade på webbsidan utlöser GPIO -åtgärder på Raspberry Pi, vi har använt makron, detaljerna finns här:
Jag har också skrivit några startkommentarer om ovanstående process som finns bifogade.
Installera och konfigurera webbkamera
Vi använder MJPG-Streamer för att strömma videoflöden från Raspberry Pi tillbaka till webbläsaren via USB-webbkameran som är ansluten till Pi. Följ installations- och bygginstruktionerna som anges här https://blog.miguelgrinberg.com/post/how-to-build-… för att få MJPG-Streamer att arbeta med Raspberry Pi.
Konfigurera Raspberry Pi som en AP/Hotspot
För att konfigurera Raspberry Pi som en Hostpot, följ instruktionerna här: https://elinux.org/RPI-Wireless-Hotspot. Jag konfigurerade den statiska IP -adressen för Raspberry Pi som 192.168.42.1 vilket är vad vi skulle skriva i webbläsaren när Pi startar upp i AP -läge.
WebIOPi, MJPG-Streamer och WiFi-hotspot-tjänsten har konfigurerats för att köras automatiskt vid start och det gör att vi direkt kan öppna en webbläsare och ansluta till roboten när den startar. Den rc.local -fil som finns i repo används för att köra webbkameran vid start.
Steg 3: Instruktioner för byggning/anslutning
4 GPIO på Raspberry Pi, nämligen GPIO 9, 11, 23 & 24 är anslutna till L293D Motor Driver IC som driver motorerna i enlighet därmed efter att ha mottagit makroförfrågningar från webbsidan som betjänas av Webiopi -ramverket. USB WiFi -dongeln och USB Logitech -webbkameran är anslutna till de 2 USB -portarna som finns på Raspberry Pi. En 5V 4000 Mah Power bank levererar huvudströmmen till Pi. Ett 4V 1.5A blybatteri används för att driva motorerna.
Obs: Eftersom den maximala utströmmen för powerbanken jag använde var en blygsam 1000 Mah, var jag tvungen att använda det externa blybatteriet för att driva motorerna. Om du har en powerbank som ger> = 2000Mah kan du direkt driva motorerna från 5V -skenan på Pi (jag skulle dock inte rekommendera detta för motorhungriga motorer)
De tre viktiga underavsnitten i projektet LeapMotion Javascript API, WebIOPi och MJPG-Streamer och deras grundläggande arbete/installation beskrivs kort nedan.
Steg 4: Förstå WebIOPi Framework
Frontänden som visas i webbläsaren är skriven i HTML (filnamn: index.html) & Javascript medan backend som driver GPIO: erna skrivs i Python (filnamn: script.py). Detaljerade anteckningar om hur du skapar en anpassad WebApp baserad på WebIOPi -ramverket bifogas som anteckningar i Bitbucket -repo.
Anpassade makron som definieras i Python -skriptet kan utlösas från HTML -filen.
Exempel: webiopi (). CallMacro ("go_forward"); Detta är ett anpassat anrop till ett makro go_forward som definieras i Python -skriptet som hanterar processen med att driva båda motorerna i riktning framåt.
Kataloghierarkin där filerna är lagrade på Pi visas i den bifogade bilden.
Robotmappen innehåller följande undermappar:
- html: innehållande index.html
- python: innehåller script.py
- mjpg-streamer-r63: innehåller byggfilerna och körbara för att köra webbkameran
MJPG-Streamer: Live-videoströmmen från USB-webbkameran körs som standard på port 8080 på Pi. För att se strömmen manuellt, navigerar du till RASPBERRYPI_IP: 8080 i webbläsaren efter att du har startat webbkameran.
LeapMotion -kod:
Kodavsnitt från exemplen i LeapMotion SDK inbäddades i filen index.html. LeapMotion's leap.js -fil måste läggas till i html -mappen i projektkatalogen på Raspberry Pi.
PalmPosition -parametern som skickas av LeapMotion används för att bestämma vilket makro som ska aktiveras på Raspberry Pi.
Steg 5: Kör projektet
Slå bara på Raspberry Pi och vänta ungefär i en minut. Du kommer att se en ny hotpsot RaspberryPi dyka upp. Anslut till denna hotspot och öppna den statiska IP -adressen i webbläsaren: 192.168.42.1:8000. 8000 är standardporten för WebIOPi.
Raspberry Pi kan också konfigureras för att ansluta till det lokala WiFi -nätverket som en in clien istället för att visas som en hotspot. Du måste sedan bestämma den dynamiska IP -adressen som tilldelas Raspberry Pi av routern och sedan slå upp den i webbläsaren för att leka med Bot.
Du kan lämna en kommentar om du behöver hjälp eller har frågor om projektet. Glad hoppning!
Hela källkoderna har bifogats. Du kan lämna en kommentar om du behöver hjälp med någon del av byggandet av projektet. Glad hoppning!
Rekommenderad:
Leap Motion Controller. (Progetto Arduino): 4 steg
Leap Motion Controller. (Progetto Arduino): L'intento di questo progetto è quello di utilizzare il Leap Motion per controllare l'intensità di luce ei colori di un led RGB in relazione al movimento delle mani nello spazio.Reference: Leap Motion SDK: https: // developer-archive.leapmotion.com/doc
ESP8266 - Timed och Remote Controlled Socket (äldre säkerhet): 6 steg
ESP8266 - Tidsstyrt och fjärrstyrt uttag (äldre säkerhet): INFORMATION: Denna enhet är en kontroll mot överhettning, brand och olyckor om du glömmer anslutna apparater (främst av äldre med Alzheimers). Efter att knappen har aktiverats får uttaget 110/220 VAC i 5 minuter (ytterligare
Switch-Adapt Toys: Egg Remote Controlled Snake Made Accessible !: 7 steg (med bilder)
Switch-Adapt Toys: Egg Remote Controlled Snake Made Accessible !: Leksaksanpassning öppnar nya vägar och skräddarsydda lösningar för att låta barn med begränsade motoriska förmågor eller utvecklingsstörningar interagera med leksaker självständigt. I många fall kan barnen som behöver anpassade leksaker inte
[Arduino Robot] Hur man gör en Motion Capture Robot - Tummen Robot - Servomotor - Källkod: 26 steg (med bilder)
[Arduino Robot] Hur man gör en Motion Capture Robot | Tummen Robot | Servomotor | Källkod: Thumbs Robot. Använd en potentiometer för MG90S servomotor. Det är väldigt roligt och enkelt! Koden är väldigt enkel. Det är bara runt 30 rader. Det ser ut som en rörelseinspelning. Lämna gärna frågor eller feedback! [Instruktion] Källkod https: //github.c
Installera Instructables Search Plug-in för Firefox: 4 steg
Installera Instructables Search Plug-in för Firefox: Detta är en enkel guide som berättar hur du installerar Instructables Search plug-in för Firefox. På det sättet kommer du att kunna söka i instruktioner direkt från din webbläsare även om du inte är på instruktionssidan