Sommario:
- Passaggio 1: Panoramica
- Passaggio 2: creazione del progetto
- Passaggio 3: istruzioni di costruzione/cablaggio
- Passaggio 4: comprensione del framework WebIOPi
- Passaggio 5: esecuzione del progetto
Video: Robot di ricerca e smaltimento a distanza controllato dal movimento Leap: 5 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:00
Come parte della mia partecipazione al Leap Motion #3D Jam, ero entusiasta di costruire questo robot di ricerca/salvataggio controllato da gesti wireless basato sul Raspberry Pi. Questo progetto dimostra e fornisce un esempio minimalista di come i gesti delle mani 3D wireless possono essere utilizzati per controllare e interagire con cose fisiche.
Poiché questo progetto utilizza il popolare framework IoT WebIOPi sul Raspberry Pi, può essere facilmente ampliato per controllare e interfacciare in genere qualsiasi sensore/hardware/elettronica che può essere interfacciato con il Raspberry Pi.
Alcuni possibili scenari che immagino che altri Maker possano utilizzare questo progetto come framework di base su cui basarsi:
1. Robot per lo smaltimento delle bombe azionato da gesti a distanza (utilizzando forse un braccio OWI ecc.)
2. Operazione chirurgica a distanza da parte di un medico
3. Mostre d'arte interattive controllate da gesti o contenuti educativi
4. Infinite altre possibilità/integrazioni (sono limitato dalla mia immaginazione:))
Passaggio 1: Panoramica
Questo progetto consente a un utente di controllare in modo interattivo un robot utilizzando gesti delle mani 3D attraverso un Leap Motion collegato a un PC.
Il Raspberry Pi a bordo del Robot ha anche una webcam USB che trasmette in streaming video in diretta all'utente che può essere visto su un browser web. La libreria JavaScript LeapMotion incorporata in questa pagina Web elabora i gesti delle mani e invia i segnali di controllo al robot, che si muove di conseguenza.
Il Raspberry Pi sul Robot è configurato come Hotspot (modalità AP) con l'aiuto del dongle WiFi USB ad esso collegato. Ciò consente ai nostri PC/dispositivi di connettersi direttamente al Raspberry Pi e controllare tramite una pagina web. Il Raspberry Pi può anche essere configurato per funzionare in modalità client, in cui si connette in modalità wireless all'AP del router WiFi a cui il PC/i dispositivi sono già collegati.
Questo progetto è basato su WebIOPi (https://webiopi.trouch.com/) che è un popolare framework IoT per Raspberry Pi. Utilizzando il kit Weaved IoT in dotazione (o tramite il port forwarding sul router), questo Robot può essere controllato da remoto e/o ricevere dati da qualsiasi parte del mondo.
Per la realizzazione del progetto sono stati utilizzati i seguenti componenti:
- Raspberry Pi B (compatibile al 100% con Raspberry Pi B+)
- Webcam USB Logitech (poco 1.3 Megapixel)
- L293D Motor Driver IC e Breakout Shield
- Chiavetta USB WiFi per Raspberry Pi
- Power Bank USB per Raspberry Pi
- Batteria esterna da 4 V/1,5 A per azionare i motori del robot
Passaggio 2: creazione del progetto
Installazione di WebIOPi, scrittura di codice personalizzato e configurazione della webcam:
Le istruzioni per l'installazione di WebIoPi, le basi del framework e molti esempi sono disponibili nella pagina del progetto qui:
Per fare in modo che le funzioni LeapMotion incorporate nella pagina Web attivino le azioni GPIO sul Raspberry Pi, abbiamo utilizzato le macro, i cui dettagli si trovano qui:
Ho anche scritto alcune note introduttive sul processo di cui sopra che possono essere trovate in allegato.
Installazione e configurazione della webcam
Stiamo utilizzando MJPG-Streamer per trasmettere il feed video dal Raspberry Pi al browser tramite la webcam USB collegata al Pi. Si prega di seguire le istruzioni di configurazione e costruzione indicate qui https://blog.miguelgrinberg.com/post/how-to-build-… per far funzionare MJPG-Streamer sul Raspberry Pi.
Configurazione del Raspberry Pi come AP/Hotspot
Per configurare il Raspberry Pi come Hostpot, seguire le istruzioni fornite qui: https://elinux.org/RPI-Wireless-Hotspot. Ho configurato l'IP statico del Raspberry Pi come 192.168.42.1, che è quello che digiteremo nel browser una volta che il Pi si avvia in modalità AP.
WebIOPi, MJPG-Streamer e il servizio hotspot WiFi sono stati configurati per l'esecuzione automatica all'avvio e questo ci consente di aprire direttamente un browser Web e connetterci al Robot dopo l'avvio. Il file rc.local disponibile nel repository viene utilizzato per eseguire la webcam all'avvio.
Passaggio 3: istruzioni di costruzione/cablaggio
4 GPIO del Raspberry Pi, ovvero GPIO 9, 11, 23 e 24, sono collegati a L293D Motor Driver IC che aziona i motori di conseguenza dopo aver ricevuto richieste macro dalla pagina Web servita dal framework Webiopi. Il dongle USB WiFi e la webcam USB Logitech sono collegati alle 2 porte USB disponibili sul Raspberry Pi. Un Power bank da 5V 4000 Mah fornisce l'alimentazione principale al Pi. Per azionare i motori viene utilizzata una batteria al piombo acido da 4 V 1,5 A.
Nota: poiché la corrente di uscita massima del power bank che ho usato era di un misero 1000 Mah, ho dovuto usare la batteria esterna al piombo per azionare i motori. Se hai un power bank che fornisce>= 2000Mah, puoi guidare direttamente i motori dalla guida 5V sul Pi (non lo consiglierei però per motori affamati di potenza)
Le 3 sottosezioni chiave del progetto LeapMotion Javascript API, WebIOPi e MJPG-Streamer e il loro funzionamento/configurazione di base sono brevemente descritte di seguito.
Passaggio 4: comprensione del framework WebIOPi
Il frontend che viene mostrato sul Browser è scritto in HTML (Filename:index.html) e Javascript mentre il backend che guida i GPIO è scritto in Python (Filename: script.py). Note dettagliate sulla creazione di una WebApp personalizzata basata sul framework WebIOPi sono allegate come note nel repository Bitbucket.
Le macro personalizzate definite nello script Python possono essere attivate dal file HTML.
Es: webiopi().callMacro("go_forward"); Questa è una chiamata personalizzata a una macro go_forward definita nello script Python che gestisce il processo di guida di entrambi i motori in avanti.
La gerarchia delle directory in cui sono archiviati i file sul Pi è mostrata nell'immagine allegata.
La cartella Robot contiene queste sottocartelle:
- html: contenente index.html
- python: contenente script.py
- mjpg-streamer-r63: contenente i file di build ed eseguibile per eseguire la webcam
MJPG-Streamer: il flusso video in diretta dalla webcam USB viene eseguito sulla porta 8080 del Pi per impostazione predefinita. Per visualizzare manualmente lo stream, accedere a RASPBERRYPI_IP:8080 sul browser dopo aver acceso la webcam.
Codice LeapMotion:
I frammenti di codice degli esempi forniti nell'SDK LeapMotion sono stati incorporati nel file index.html. Il file leap.js di LeapMotion deve essere aggiunto nella cartella html nella directory del progetto sul Raspberry Pi.
Il parametro palmPosition inviato da LeapMotion viene utilizzato per determinare quale macro attivare sul Raspberry Pi.
Passaggio 5: esecuzione del progetto
Accendi semplicemente il Raspberry Pi e attendi circa un minuto. Vedrai apparire un nuovo hotpsot RaspberryPi. Connettiti a questo hotspot e apri questo indirizzo IP statico nel browser: 192.168.42.1:8000. 8000 è la porta predefinita di WebIOPi.
Il Raspberry Pi può anche essere configurato per connettersi alla rete WiFi locale come client invece di presentarsi come hotspot. Avresti quindi bisogno di determinare l'IP dinamico assegnato al Raspberry Pi dal router e quindi di utilizzarlo nel browser per giocare con il Bot.
Puoi lasciare un commento se hai bisogno di aiuto o hai domande sul progetto. Buon salto!
I codici sorgente completi sono stati allegati. Puoi lasciare un commento se hai bisogno di aiuto con qualsiasi parte della costruzione del progetto. Buon salto!
Consigliato:
Come creare un robot autobilanciante stampato in 3D controllato a distanza: 9 passaggi (con immagini)
Come creare un robot autobilanciante stampato in 3D controllato da remoto: questa è un'evoluzione della versione precedente di B-robot. 100% OPEN SOURCE / Robot Arduino. Il CODICE, le parti 3D e l'elettronica sono aperti, quindi sentiti libero di modificarlo o creare una versione enorme del robot. Se hai dubbi, idee o hai bisogno di assistenza fai
Robot Arduino con distanza, direzione e grado di rotazione (est, ovest, nord, sud) controllato dalla voce tramite modulo Bluetooth e movimento autonomo del robot.: 6 passaggi
Robot Arduino con distanza, direzione e grado di rotazione (est, ovest, nord, sud) controllato dalla voce utilizzando il modulo Bluetooth e il movimento autonomo del robot.: Questo Instructable spiega come realizzare un robot Arduino che può essere spostato nella direzione richiesta (avanti, indietro , Sinistra, Destra, Est, Ovest, Nord, Sud) distanza richiesta in centimetri utilizzando il comando vocale. Il robot può essere spostato anche in autonomia
Timelapse controllato dal movimento: 7 passaggi (con immagini)
Timelapse controllato dal movimento: i timelapse sono fantastici! Ci aiutano a dare uno sguardo al mondo lento di cui potremmo dimenticare per apprezzarne la bellezza. Ma a volte un video time-lapse costante può essere noioso o ci sono così tante cose che accadono intorno che un solo angolo è
Videogioco fai-da-te controllato dal movimento della testa (realtà aumentata): 4 passaggi
Videogioco fai-da-te controllato dal movimento della testa (realtà aumentata): voglio mostrarti quanto sia facile oggigiorno creare un gioco che può essere controllato muovendo il tuo corpo. Avrai bisogno solo di un laptop con web cam e alcune abilità di programmazione. Se non hai un laptop e una web cam o se non sai come programmare, Yo
Presa controllata dal movimento - Da una luce di rilevamento del movimento: 6 passaggi
Presa controllata dal movimento - Da una luce di rilevamento del movimento: Immagina di essere un dolcetto o scherzetto che va nella casa più spaventosa del quartiere. Dopo aver superato tutti i ghoul, i fantasmi e i cimiteri, arrivi finalmente all'ultimo percorso. Puoi vedere le caramelle in una ciotola davanti a te! Ma poi improvvisamente un gho