Sommario:

[Mouse indossabile] Controller per mouse indossabile basato su Bluetooth per Windows 10 e Linux: 5 passaggi
[Mouse indossabile] Controller per mouse indossabile basato su Bluetooth per Windows 10 e Linux: 5 passaggi

Video: [Mouse indossabile] Controller per mouse indossabile basato su Bluetooth per Windows 10 e Linux: 5 passaggi

Video: [Mouse indossabile] Controller per mouse indossabile basato su Bluetooth per Windows 10 e Linux: 5 passaggi
Video: Wearable Mood Controller -- Mind Blow #96 2024, Dicembre
Anonim
Image
Image
Accelerometro di interfaccia con Raspberry Pi
Accelerometro di interfaccia con Raspberry Pi

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

Accelerometro di interfaccia con Raspberry Pi
Accelerometro di interfaccia 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

Pulsante di interfacciamento con Raspberry Pi
Pulsante di interfacciamento 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:

  1. pyautogui.move(0, 200, 2) # sposta il mouse in basso di 200 pixel in 2 secondi
  2. 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

Sviluppo di script Python per controllare il puntatore del mouse tramite Bluetooth
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:

  1. Crea una porta COM Bluetooth in entrata.
  2. Accoppia il Bluetooth del Pi con il Bluetooth del laptop rendendo Pi rilevabile.
  3. Installa Python su Windows.
  4. Installa pip su Windows. Pip viene utilizzato per installare librerie su una macchina Linux o Windows.
  5. Installa pyautogui su Windows usando: pip install pyautogui
  6. 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.
  7. 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,

    1. Scarica ed esegui "Visual Studio Installer":
    2. Installa "Visual Studio Build Tools 2017", seleziona "Visual C++ build tools" e "Universal Windows Platform build tools"

    3. git clone
    4. cd pybluez
    5. python setup.py installa

  8. 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.
  9. 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:

  1. Installa PyBluez su Pi
  2. 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

Incorporamento dell'accelerometro e del pulsante sul guanto
Incorporamento dell'accelerometro e del pulsante sul guanto
Incorporamento dell'accelerometro e del pulsante sul guanto
Incorporamento dell'accelerometro e del 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: