Sommario:

Robot di ricerca e smaltimento a distanza controllato dal movimento Leap: 5 passaggi
Robot di ricerca e smaltimento a distanza controllato dal movimento Leap: 5 passaggi

Video: Robot di ricerca e smaltimento a distanza controllato dal movimento Leap: 5 passaggi

Video: Robot di ricerca e smaltimento a distanza controllato dal movimento Leap: 5 passaggi
Video: Fight at the Museum… | Critical Role | Campaign 3, Episode 21 2024, Dicembre
Anonim
Image
Image

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

Comprensione del framework WebIOPi
Comprensione del framework WebIOPi

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:

  1. Raspberry Pi B (compatibile al 100% con Raspberry Pi B+)
  2. Webcam USB Logitech (poco 1.3 Megapixel)
  3. L293D Motor Driver IC e Breakout Shield
  4. Chiavetta USB WiFi per Raspberry Pi
  5. Power Bank USB per Raspberry Pi
  6. 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: