Sommario:
- Forniture
- Passaggio 1: interfacciamento dell'accelerometro con Raspberry Pi
- Passaggio 2: interfaccia a pulsante con Raspberry Pi
- Passaggio 3: sviluppo di script Python per controllare in serie il puntatore del mouse
- Passaggio 4: sviluppo di script Python per controllare il puntatore del mouse tramite Bluetooth
- Passaggio 5: incorporare l'accelerometro e il pulsante sul guanto
Video: [Mouse indossabile] Controller per mouse indossabile basato su Bluetooth per Windows 10 e Linux: 5 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
Ho realizzato un controller per mouse basato su Bluetooth che può essere utilizzato per controllare il puntatore del mouse ed eseguire operazioni relative al mouse del PC al volo, senza toccare alcuna superficie. I circuiti elettronici, incorporati in un guanto, possono essere utilizzati per tracciare i gesti delle mani tramite un accelerometro e possono essere tradotti nel movimento del puntatore del mouse. Questo dispositivo è inoltre interfacciato con un pulsante che replica il clic del pulsante sinistro. Il dispositivo può essere collegato in serie al PC (tramite USB) o in modalità wireless tramite una connessione Bluetooth. Il Bluetooth fornisce una comunicazione wireless robusta e universale tra il dispositivo host e questo mouse indossabile. Poiché il Bluetooth è ampiamente disponibile e viene integrato con quasi tutti i laptop personali, il caso d'uso di un tale dispositivo indossabile è ampio. L'utilizzo di Raspberry Pi, che è una piattaforma di sviluppo comunemente utilizzata per vari progetti, l'interfacciamento di diversi sensori e lo sviluppo di un tale dispositivo è facile e scalabile. Il guanto può essere sostituito con qualsiasi altro indossabile per rendere più ampia la sua applicazione.
Come precauzione contro il COVID-19, è consigliabile evitare di toccare superfici che possono essere condivise tra persone diverse e un laptop touch-screen o un mouse possono essere tra quelle superfici comuni. L'utilizzo di un dispositivo così indossabile aiuta a mantenere l'igiene e a mantenere igienizzate le superfici di uso comune:)
Forniture
- Raspberry Pi 3 Modello B V1.2
- Accelerometro a triplo asse SparkFun Breakout - MMA8452Q
- Cavo ponticello maschio-femmina
- Un guanto
- Nastro adesivo
- Forbici
- Cavo micro USB
- Cavo HDMI (per il debug tramite Raspberry Pi)
Passaggio 1: interfacciamento dell'accelerometro con Raspberry Pi
Ho usato un accelerometro a tre assi MMA8542Q di Sparkfun che utilizza il protocollo di comunicazione I2C per comunicare con i pin GPIO del Raspberry Pi e inviare i dati degli assi. Questo sensore offre varie modalità di funzionamento con velocità dati configurabile, modalità di sospensione, intervallo di accelerazione, modalità filtro, ecc. Ho trovato il codice di Pibits molto utile nella configurazione iniziale del sensore e durante il test con i gesti delle mani. È meglio posizionare prima il sensore su una superficie piana e fare inclinazioni deterministiche osservando i valori grezzi del sensore. Ciò è particolarmente utile per capire come reagisce questo sensore con i vari gesti delle mani e come possiamo impostare le soglie per la nostra applicazione. Una volta che l'accelerometro è interfacciato con successo, puoi vedere i dati grezzi degli assi che arrivano sullo schermo del terminale del Pi.
Passaggio 2: interfaccia a pulsante con Raspberry Pi
In questo dispositivo indossabile, ho interfacciato un pulsante che può funzionare come pulsante sinistro del mouse in modo da poter fare clic sulle icone sullo schermo. Le 2 estremità del pulsante vengono quindi collegate a 2 pin GPIO del Pi. Uno dei pin emette un valore logico alto e l'altro pin legge quel valore. Quando viene premuto il pulsante, il circuito si chiude e il pin di input è in grado di leggere un valore logico alto, che viene quindi elaborato dallo script che ho scritto per emulare il clic con il tasto sinistro del mouse. A causa della mancanza di saldatore, ho usato del nastro adesivo per collegare i ponticelli con il pulsante.
Passaggio 3: sviluppo di script Python per controllare in serie il puntatore del mouse
Ho usato la libreria Python Pyautogui per controllare il puntatore del mouse. Il motivo per utilizzare questa libreria è che funziona sia su Linux che sulla piattaforma Windows. Per controllare il puntatore del mouse sul mio Raspberry Pi, prima ho collegato il mio Pi a un display. Quindi, ho utilizzato le seguenti API fornite dalla libreria per controllare il puntatore del mio mouse:
- pyautogui.move(0, 200, 2) # sposta il mouse in basso di 200 pixel in 2 secondi
- pyautogui.click() # fai clic con il mouse
Per filtrare i dati di errore provenienti dall'accelerometro, ho utilizzato la media e altri metodi di filtraggio facilmente comprensibili tramite il codice allegato. L'API pyautogui.move(0, y) è stata utilizzata in modo tale che il puntatore del mouse possa andare su-giù o sinistra-destra alla volta. Questo perché l'accelerometro riporta gli assi nelle direzioni X, Y e Z, ma l'API accetta solo 2 argomenti, gli assi X e Y. Quindi, questo approccio era molto adatto per il mio accelerometro e per mappare i gesti sullo schermo.
Passaggio 4: sviluppo di script Python per controllare il puntatore del mouse tramite Bluetooth
Questa parte è un'applicazione avanzata in cui qualsiasi laptop con funzionalità Bluetooth può comunicare con Raspberry Pi in un modello di comunicazione server-client e trasmettere i dati delle coordinate del mouse in modalità wireless. Per configurare un laptop Windows 10 a 64 bit per consentire la comunicazione Bluetooth, è necessario seguire i passaggi seguenti:
Windows 10:
- Crea una porta COM Bluetooth in entrata.
- Accoppia il Bluetooth del Pi con il Bluetooth del laptop rendendo Pi rilevabile.
- Installa Python su Windows.
- Installa pip su Windows. Pip viene utilizzato per installare librerie su una macchina Linux o Windows.
- Installa pyautogui su Windows usando: pip install pyautogui
- Una volta installato pyautogui sul dispositivo, installa Pybluez su Windows utilizzando il seguente comando sul terminale Windows utilizzando: pip install PyBluez-win10. PyBluez consente la comunicazione Bluetooth su PC Windows e Linux.
-
Per sviluppare un'applicazione su un laptop Windows 10, è necessario installare Microsoft Visual Studio (15-20 GB di spazio richiesto) e i suoi strumenti di compilazione. Pertanto, insieme a PyBluez, dobbiamo seguire le istruzioni seguenti,
- Scarica ed esegui "Visual Studio Installer":
-
Installa "Visual Studio Build Tools 2017", seleziona "Visual C++ build tools" e "Universal Windows Platform build tools"
- git clone
- cd pybluez
python setup.py installa
- Se le istruzioni di cui sopra vengono seguite correttamente, l'esecuzione di Python sul terminale Windows e l'importazione di pyautogui e del modulo Bluetooth dovrebbero funzionare senza errori, come da immagine sopra.
- Nella libreria pybluez installata sulla macchina Windows, vai a: pybluez-master\examples\simple\rfcomm-server.py ed esegui utilizzando python rfcomm-server.py. Se il terminale entra in uno stato di attesa senza errori, vai alla sezione seguente per configurare il Bluetooth su Pi. Se si verificano errori nell'installazione di pybluez, fare riferimento a Problemi di GitHub per il debug.
Raspbian su Raspberry Pi:
- Installa PyBluez su Pi
- Esegui l'esempio del server su Windows. Quindi, su Pi, vai a pybluez-master\examples\simple\rfcomm-client.py ed esegui. Se i due dispositivi hanno iniziato a comunicare, il Bluetooth è ora configurato su entrambi i dispositivi. Per capire di più su come funziona la comunicazione socket con Python, fare riferimento a questo collegamento dal MIT.
Ci sarà un'ulteriore analisi dei dati necessaria per inviare i dati degli assi da Pi al PC, poiché i dati vengono inviati in byte. Fare riferimento al codice allegato per maggiori informazioni sulla comunicazione dati client e server.
Passaggio 5: incorporare l'accelerometro e il pulsante sul guanto
Una volta che l'accelerometro è ben interfacciato, lo scheletro del sistema appare come la prima immagine di questo passaggio.
Poiché la superficie del guanto non è piatta, ho usato una carta di credito fittizia che ogni tanto arriva nella mia cassetta della posta. Come per la seconda immagine di questo passaggio, ho attaccato la carta di credito fittizia sulla superficie superiore del mio guanto con del nastro adesivo. Sulla scheda, ho attaccato il mio accelerometro. Questa configurazione era abbastanza robusta da mantenere stabile il mio accelerometro e in grado di tracciare accuratamente i miei gesti.
Consigliato:
Telecomando IR automatico basato su Arduino basato sulla temperatura: 7 passaggi
Telecomando IR automatico basato su Arduino basato sulla temperatura: Ehi, come va, ragazzi! Akarsh qui da CETech. Stanco di svegliarti nel bel mezzo di un sonno profondo solo perché la temperatura della tua stanza è troppo bassa o troppo alta a causa del tuo stupido condizionatore. Allora questo progetto è per te. In questo progetto, faremo il nostro
Controller di gioco fai-da-te basato su Arduino - Controller di gioco Arduino PS2 - Giocare a Tekken con il gamepad Arduino fai da te: 7 passaggi
Controller di gioco fai-da-te basato su Arduino | Controller di gioco Arduino PS2 | Giocare a Tekken con il gamepad Arduino fai da te: Ciao ragazzi, giocare è sempre divertente, ma giocare con il tuo controller di gioco personalizzato fai-da-te è più divertente. Quindi creeremo un controller di gioco usando arduino pro micro in queste istruzioni
Controller di avviamento DOL basato su IOT per pompa di irrigazione: 6 passaggi
Controller di avviamento DOL basato su IOT per set di pompe per irrigazione: Hello Friends Storia: Nella mia fattoria ricevo energia dalla rete locale solo per circa 6 ore al giorno. Gli orari non sono regolari, disponibilità di po
Generatore musicale basato sulle condizioni meteorologiche (generatore MIDI basato su ESP8266): 4 passaggi (con immagini)
Generatore di musica basato sul tempo (Generatore MIDI basato su ESP8266): Ciao, oggi spiegherò come creare il tuo piccolo generatore di musica basato sul tempo. È basato su un ESP8266, che è un po' come un Arduino, e risponde alla temperatura, alla pioggia e l'intensità della luce. Non aspettarti che produca intere canzoni o programmi di accordi
Tutorial Bluetooth RYB080l per dispositivo indossabile: 8 passaggi
Tutorial Bluetooth RYB080l per dispositivo indossabile: Ehi, come va, ragazzi! Akarsh qui da CETech. Questo mio progetto è più di una curva di apprendimento per capire il funzionamento del piccolo modulo Bluetooth di Reyax. Per prima cosa, capiremo il modulo da solo e proveremo a usarlo direttamente, poi lo co