Inhoudsopgave:
- Stap 1: Overzicht
- Stap 2: Projectopbouw
- Stap 3: bouw-/bedradingsinstructies
- Stap 4: Het WebIOPi-framework begrijpen
- Stap 5: Het project uitvoeren
Video: Leap Motion gestuurde robot voor zoeken en verwijderen op afstand - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:14
Als onderdeel van mijn inzending voor de Leap Motion #3D Jam, was ik verheugd om deze draadloze, gebarengestuurde zoek-/reddingsrobot te bouwen op basis van de Raspberry Pi. Dit project demonstreert en biedt een minimalistisch voorbeeld van hoe draadloze 3D-handgebaren kunnen worden gebruikt om fysieke dingen te besturen en ermee om te gaan.
Aangezien dit project het populaire WebIOPi IoT-framework op de Raspberry Pi gebruikt, kan het heel eenvoudig worden uitgebreid om elke sensor/hardware/elektronica die kan worden gekoppeld aan de Raspberry Pi te besturen en te koppelen.
Enkele mogelijke scenario's die ik voor ogen heb, kunnen mede-makers dit project gebruiken als hun basisraamwerk om op voort te bouwen:
1. Op afstand bediende bomverwijderingsrobot (misschien met een OWI-arm enz.)
2. Chirurgische operatie op afstand door een arts
3. Gebaargestuurde interactieve kunsttentoonstellingen of educatieve inhoud
4. Oneindige andere mogelijkheden/integraties (ik word beperkt door mijn verbeeldingskracht:))
Stap 1: Overzicht
Met dit project kan een gebruiker een robot interactief besturen met behulp van 3D-handgebaren via een Leap Motion die is aangesloten op een pc.
De Raspberry Pi aan boord van de robot heeft ook een USB-webcam die live video terug naar de gebruiker streamt, die kan worden bekeken in een webbrowser. De LeapMotion JavaScript-bibliotheek die in deze webpagina is ingebed, verwerkt handgebaren en stuurt besturingssignalen terug naar de robot, die vervolgens overeenkomstig beweegt.
De Raspberry Pi op de Robot wordt geconfigureerd als Hotspot (AP-modus) met behulp van de daarop aangesloten USB WiFi-dongle. Hierdoor kunnen onze pc's/apparaten rechtstreeks op de Raspberry Pi worden aangesloten en via een webpagina worden bestuurd. De Raspberry Pi kan ook worden geconfigureerd om in client-modus te werken, waarbij hij draadloos verbinding maakt met het AP van de WiFi-router waarmee de pc/apparaten al zijn verbonden.
Dit project is gebaseerd op WebIOPi (https://webiopi.trouch.com/), een populair IoT-framework voor Raspberry Pi. Door gebruik te maken van de gebundelde Weaved IoT Kit (of via port forwarding op router), kan deze robot op afstand worden bestuurd en/of data ontvangen vanuit elk deel van de wereld.
Voor de bouw van het project zijn de volgende onderdelen gebruikt:
- Raspberry Pi B (100% voorwaarts compatibel met Raspberry Pi B+)
- Logitech USB-webcam (arme 1,3 Megapixel)
- L293D Motor Driver IC en Breakout Shield
- USB WiFi-dongle voor Raspberry Pi
- USB Powerbank voor Raspberry Pi
- Externe 4V/1.5A batterij voor het aandrijven van de robotmotoren
Stap 2: Projectopbouw
WebIOPi installeren, aangepaste code schrijven en webcam configureren:
WebIoPi-installatie-instructies, basisprincipes van het framework en vele voorbeelden zijn beschikbaar op de projectpagina hier:
Om ervoor te zorgen dat de LeapMotion-functies in de webpagina worden ingebed, worden GPIO-acties op de Raspberry Pi geactiveerd. We hebben macro's gebruikt, waarvan de details hier te vinden zijn:
Ik heb ook een aantal aan de slag aan de slag geschreven over het bovenstaande proces dat als bijlage kan worden gevonden.
Webcam installeren en configureren
We gebruiken MJPG-Streamer om de videofeed van de Raspberry Pi terug naar de browser te streamen via de USB-webcam die op de Pi is aangesloten. Volg de installatie- en bouwinstructies die hier worden aangegeven https://blog.miguelgrinberg.com/post/how-to-build-… om MJPG-Streamer op de Raspberry Pi te laten werken.
De Raspberry Pi configureren als AP/Hotspot
Om de Raspberry Pi als Hostpot in te stellen, volgt u de instructies die hier worden gegeven: https://elinux.org/RPI-Wireless-Hotspot. Ik heb het statische IP-adres van de Raspberry Pi geconfigureerd als 192.168.42.1, wat we in de browser zouden typen zodra de Pi opstart in AP-modus.
WebIOPi, MJPG-Streamer en WiFi-hotspotservice zijn geconfigureerd om automatisch te starten bij het opstarten en dit stelt ons in staat om direct een webbrowser te openen en verbinding te maken met de robot nadat deze is opgestart. Het bestand rc.local dat beschikbaar is in de repo wordt gebruikt om de webcam tijdens het opstarten uit te voeren.
Stap 3: bouw-/bedradingsinstructies
4 GPIO's van de Raspberry Pi, namelijk GPIO 9, 11, 23 en 24, zijn verbonden met L293D Motor Driver IC die de motoren dienovereenkomstig aanstuurt na het ontvangen van macroverzoeken van de webpagina die wordt bediend door het Webiopi-framework. De USB WiFi-dongle en de USB Logitech-webcam worden aangesloten op de 2 beschikbare USB-poorten van de Raspberry Pi. Een 5V 4000 Mah Powerbank levert de hoofdstroom aan de Pi. Een 4V 1,5A loodzuuraccu wordt gebruikt om de motoren aan te drijven.
Opmerking: aangezien de maximale uitgangsstroom van de powerbank die ik gebruikte een magere 1000 Mah was, moest ik de externe loodzuurbatterij gebruiken om de motoren aan te drijven. Als je een powerbank hebt die>= 2000Mah geeft, kun je de motoren rechtstreeks vanaf de 5V-rail op de Pi aandrijven (ik zou dit echter niet aanbevelen voor krachtige motoren)
De 3 belangrijkste subsecties van het project LeapMotion Javascript API, WebIOPi en MJPG-Streamer en hun basiswerking/configuratie worden hieronder kort beschreven.
Stap 4: Het WebIOPi-framework begrijpen
De frontend die in de browser wordt weergegeven, is geschreven in HTML (Bestandsnaam:index.html) & Javascript, terwijl de backend die de GPIO's aanstuurt, is geschreven in Python (Bestandsnaam: script.py). Gedetailleerde opmerkingen over het maken van een aangepaste WebApp op basis van het WebIOPi-framework zijn als opmerkingen bijgevoegd in de Bitbucket-repo.
Aangepaste macro's die zijn gedefinieerd in het Python-script kunnen worden geactiveerd vanuit het HTML-bestand.
Bijv.: webiopi().callMacro("go_forward"); Dit is een aangepaste aanroep naar een macro go_forward gedefinieerd in het Python-script dat het proces afhandelt om beide motoren in voorwaartse richting te sturen.
De directoryhiërarchie van waar de bestanden op de Pi zijn opgeslagen, wordt weergegeven in de bijgevoegde afbeelding.
De map Robot bevat deze submappen:
- html: bevat index.html
- python: met script.py
- mjpg-streamer-r63: bevat de buildbestanden en het uitvoerbare bestand om de webcam uit te voeren
MJPG-Streamer: De Live Video-stream van de USB-webcam draait standaard op poort 8080 van de Pi. Om de stream handmatig te bekijken, navigeert u naar RASPBERRYPI_IP:8080 in de browser nadat u de webcam hebt ingeschakeld.
LeapMotion-code:
Codefragmenten uit de voorbeelden in de LeapMotion SDK zijn ingesloten in het index.html-bestand. Het bestand leap.js van LeapMotion moet worden toegevoegd aan de html-map in de projectdirectory op de Raspberry Pi.
De parameter palmPosition die door de LeapMotion wordt verzonden, wordt gebruikt om te bepalen welke macro op de Raspberry Pi moet worden geactiveerd.
Stap 5: Het project uitvoeren
Schakel gewoon de Raspberry Pi in en wacht ongeveer een minuut. Je zult een nieuwe hotpsot RaspberryPi zien verschijnen. Maak verbinding met deze hotspot en open dit statische IP-adres in de browser: 192.168.42.1:8000. 8000 is de standaardpoort van WebIOPi.
De Raspberry Pi kan ook worden geconfigureerd om verbinding te maken met het lokale wifi-netwerk als een in-client in plaats van als een hotspot te verschijnen. Je moet dan het dynamische IP-adres bepalen dat door de router aan de Raspberry Pi is toegewezen en het vervolgens in de browser gebruiken om met de Bot te spelen.
Je kunt een reactie achterlaten als je hulp nodig hebt of vragen hebt over het project. Gelukkig springen!
De volledige broncodes zijn bijgevoegd. U kunt een opmerking achterlaten als u hulp nodig heeft bij een onderdeel van het bouwen van het project. Gelukkig springen!
Aanbevolen:
Leap Motion-controller. (Progetto Arduino): 4 stappen
Leap Motion-controller. (Progetto Arduino): De bedoeling van het programma en de gebruiksfuncties van de Leap Motion per controllare die de kleur van de led-RGB in het relazione al movimento delle mani nello spazio.Referentie: Leap Motion SDK: https:// developer-archive.leapmotion.com/doc
Google Zoeken op ESP32: 7 stappen
Google Zoeken op ESP32: In deze tutorial laat ik je zien hoe je Google-zoekopdrachten uitvoert met een ESP32. Het resultaat zelf is niet erg handig omdat de zoekresultaten in de seriële monitor op de computer staan, maar het is cool om te doen en de kracht van ESP32 te laten zien. De code kan
Automatisch zoeken: 4 stappen
Auto-Searcher: Dus ik was op een dag fanfictie aan het lezen in mijn bed om mijn stress te verlichten. Maar ik had het gevoel dat het een beetje een belemmering was om door de pagina te blijven scrollen om te blijven lezen. Ik moet ook klikken om het volgende hoofdstuk te zien en het hele ding zoeken voordat
Zoeken naar dingen in Google Chrome met behulp van Microsoft Excel-macro's (GEEN CODEERKENNIS VEREIST): 10 stappen
Zoeken naar dingen in Google Chrome met behulp van Microsoft Excel-macro's (GEEN CODEERKENNIS VEREIST): Wist u dat u eenvoudig een zoekfunctie aan uw Excel-spreadsheet kunt toevoegen?! Ik kan u laten zien hoe u dit in een paar eenvoudige stappen doet! Hiervoor heeft u het volgende nodig: Een computer - (CHECK!) Microsoft Excel Google Chrome op u geïnstalleerd
Handig zoeken naar batchbestanden: 6 stappen
Handig zoeken in batchbestanden: Hallo. Dit is mijn eerste instructable. dus als ik een fout heb gemaakt, doe het dan rustig aan. Ik had een eenvoudige batch-bestandszoeker gemaakt om mezelf te helpen de bestanden te vinden die ik nodig heb in mijn HDD-jungle. Deze batch is zoveel sneller dan standaard Windows-zoekopdrachten (windows maar