Taula de continguts:

[Wearable Mouse] Controlador de ratolí portable basat en Bluetooth per a Windows 10 i Linux: 5 passos
[Wearable Mouse] Controlador de ratolí portable basat en Bluetooth per a Windows 10 i Linux: 5 passos

Vídeo: [Wearable Mouse] Controlador de ratolí portable basat en Bluetooth per a Windows 10 i Linux: 5 passos

Vídeo: [Wearable Mouse] Controlador de ratolí portable basat en Bluetooth per a Windows 10 i Linux: 5 passos
Vídeo: LGR Oddware: Twiddler Motion Controlled Keyboard Mouse from 1992 2024, Juliol
Anonim
Image
Image
Acceleròmetre d’interfície amb Raspberry Pi
Acceleròmetre d’interfície amb Raspberry Pi

Vaig fer un controlador de ratolí basat en Bluetooth que es pot utilitzar per controlar el punter del ratolí i realitzar operacions relacionades amb el ratolí de la PC sobre la marxa, sense tocar cap superfície. Els circuits electrònics, que estan incrustats en un guant, es poden utilitzar per fer un seguiment dels gestos de les mans a través d’un acceleròmetre i que es poden traduir en el moviment del punter del ratolí. Aquest dispositiu també té una interfície amb un botó que replica el clic amb el botó esquerre. El dispositiu es pot connectar en sèrie al PC (mitjançant USB) o sense fils mitjançant una connexió Bluetooth. El Bluetooth proporciona una comunicació sense fils robusta i universal entre el dispositiu amfitrió i aquest ratolí portàtil. Com que el Bluetooth és àmpliament disponible i s’incorpora amb gairebé tots els portàtils personals, el cas d’ús d’aquest dispositiu portàtil és ampli. Utilitzar Raspberry Pi, que és una plataforma de desenvolupament d’ús habitual per a diversos projectes, la interfície de diferents sensors i el desenvolupament d’aquest dispositiu és fàcil i escalable. El guant es pot substituir per qualsevol altre usable per fer la seva aplicació més àmplia.

Com a precaució contra el COVID-19, és recomanable evitar tocar superfícies que es puguin compartir entre diferents persones, i un ordinador portàtil amb pantalla tàctil o un ratolí poden estar entre aquestes superfícies habituals. L’ús d’aquest dispositiu portàtil ajuda a mantenir la higiene i a desinfectar les superfícies d’ús comú:)

Subministraments

  • Raspberry Pi 3 Model B V1.2
  • SparkFun Triple Accelerometer Breakout Breakout - MMA8452Q
  • Filferro de pont masculí a femení
  • Un guant
  • Cinta adhesiva
  • Tisores
  • Cable micro-USB
  • Cable HDMI (per depurar mitjançant Raspberry Pi)

Pas 1: Interfície de l’acceleròmetre amb Raspberry Pi

Acceleròmetre d’interfície amb Raspberry Pi
Acceleròmetre d’interfície amb Raspberry Pi

He utilitzat un acceleròmetre de tres eixos MMA8542Q de Sparkfun que utilitza el protocol de comunicació I2C per parlar amb els pins GPIO Raspberry Pi i enviar les dades dels eixos. Aquest sensor proporciona diversos modes de funcionament amb la velocitat de dades configurable, els modes de suspensió, el rang d’acceleració, el mode de filtre, etc. Vaig trobar que el codi de Pibits era molt útil en la meva configuració inicial del sensor i el vaig provar amb els meus gestos de mans. És millor col·locar primer el sensor sobre una superfície plana i fer inclinacions deterministes tot observant els valors bruts del sensor. Això és particularment útil per entendre com reacciona aquest sensor amb diversos gestos de les mans i com podem establir llindars per a la nostra aplicació. Una vegada que l’acceleròmetre s’interfaça correctament, podeu veure les dades dels eixos bruts que apareixen a la pantalla del terminal del Pi.

Pas 2: Interfície del botó amb Raspberry Pi

Polsador d'interfície amb Raspberry Pi
Polsador d'interfície amb Raspberry Pi

En aquest dispositiu usable, he interfaçat un botó que pot funcionar com a botó esquerre del ratolí per poder fer clic a les icones de la pantalla. Els dos extrems del botó es connecten a dos pins GPIO del Pi. Un dels pins genera un màxim lògic i l’altre pin llegeix aquest valor. Quan es prem el botó, el circuit es tanca i el pin d'entrada pot llegir un valor altament lògic, que després es processa amb l'script que he escrit per emular el clic esquerre del ratolí. A causa de la manca de soldador, vaig utilitzar cinta adhesiva per connectar els ponts amb el botó.

Pas 3: desenvolupar Python Script per controlar serialment el punter del ratolí

He utilitzat la biblioteca Pyautogui Python per controlar el punter del ratolí. La raó per utilitzar aquesta biblioteca era que funciona tant en Linux com en la plataforma Windows. Per tal de controlar el punter del ratolí al meu Raspberry Pi, primer he connectat el meu Pi a una pantalla. Després, he utilitzat les següents API proporcionades per la biblioteca per controlar el punter del ratolí:

  1. pyautogui.move (0, 200, 2) # mou el ratolí cap avall 200 píxels durant 2 segons
  2. pyautogui.click () # feu clic al ratolí

Per tal de filtrar les dades d'error provinents d'Accelerometer, he utilitzat la mitjana i altres mètodes de filtratge que es poden entendre fàcilment a través del codi adjunt. L'API pyautogui.move (0, y) s'ha utilitzat de manera que el punter del ratolí pugi cap amunt o cap avall o cap a l'esquerra-dreta alhora. Això es deu al fet que l’acceleròmetre informa d’eixos en la direcció X, Y i Z, però l’API només adopta 2 arguments, els eixos X i Y. Per tant, aquest enfocament era molt adequat per al meu acceleròmetre i per mapear els gestos a la pantalla.

Pas 4: desenvolupar Python Script per controlar el punter del ratolí mitjançant Bluetooth

Desenvolupament de scripts Python per controlar el punter del ratolí mitjançant Bluetooth
Desenvolupament de scripts Python per controlar el punter del ratolí mitjançant Bluetooth

Aquesta part és una aplicació avançada en la qual qualsevol ordinador portàtil que tingui funcions Bluetooth pot comunicar-se amb Raspberry Pi en un model de comunicació servidor-client i transmetre les dades de les coordenades del ratolí sense fils. Per configurar un ordinador portàtil de Windows 10 de 64 bits per permetre la comunicació Bluetooth, hem de seguir els passos següents:

Windows 10:

  1. Creeu un port COM Bluetooth entrant.
  2. Emparegeu el Bluetooth del Pi amb el Bluetooth del portàtil fent que Pi sigui fàcil de descobrir.
  3. Instal·leu Python al Windows.
  4. Instal·leu pip a Windows. Pip s’utilitza per instal·lar biblioteques en una màquina Linux o Windows.
  5. Instal·leu pyautogui al Windows mitjançant: pip install pyautogui
  6. Un cop instal·lat pyautogui al dispositiu, instal·leu Pybluez al Windows mitjançant l'ordre següent al terminal de Windows mitjançant: pip instal·leu PyBluez-win10. PyBluez permet la comunicació Bluetooth tant en ordinadors Windows com Linux.
  7. Per desenvolupar una aplicació en un portàtil amb Windows 10, hem d’instal·lar Microsoft Visual Studio (15-20 GB d’espai necessari) i les seves eines de construcció. Per tant, juntament amb PyBluez, hem de seguir les instruccions següents,

    1. Baixeu i executeu el "Visual Studio Installer":
    2. Instal·leu "Visual Studio Build Tools 2017", marqueu "Visual C ++ build tools" i "Universal Windows Platform build tools"

    3. git clone
    4. cd pybluez
    5. instal·lar python setup.py

  8. Si es segueixen correctament les instruccions anteriors, l'execució de Python al terminal de Windows i la importació de mòduls pyautogui i Bluetooth haurien de funcionar sense errors, segons la imatge anterior.
  9. A la biblioteca pybluez instal·lada a la màquina Windows, aneu a: pybluez-master / examples / simple / rfcomm-server.py i executeu-lo amb python rfcomm-server.py. Si el terminal entra en estat d’espera sense errors, aneu a la secció següent per configurar el Bluetooth a Pi. Si hi ha errors en instal·lar pybluez, consulteu Problemes de GitHub per a la depuració.

Raspbian a Raspberry Pi:

  1. Instal·leu PyBluez a Pi
  2. Executeu l'exemple del servidor a Windows. A continuació, a Pi, aneu a pybluez-master / examples / simple / rfcomm-client.py i executeu. Si els dos dispositius han començat a comunicar-se, el Bluetooth ja està configurat als dos dispositius. Per obtenir més informació sobre com funciona la comunicació de sòcol amb Python, consulteu aquest enllaç del MIT.

Hi haurà una anàlisi de dades addicional necessària per enviar les dades dels eixos de Pi a PC, ja que les dades s’envien en bytes. Consulteu el codi adjunt per obtenir més informació sobre la comunicació de dades del client i del servidor.

Pas 5: incrustar l’acceleròmetre i el botó al guant

Inserir accelerador i botó al guant
Inserir accelerador i botó al guant
Inserir accelerador i botó al guant
Inserir accelerador i botó al guant

Una vegada que l’acceleròmetre està ben interfaçat, el sistema esquelètic sembla la primera imatge d’aquest pas.

Com que la superfície del guant no és plana, he utilitzat una targeta de crèdit fictícia que arriba a la meva bústia de tant en tant. Segons la segona imatge d’aquest pas, he adjuntat la targeta de crèdit fictícia a la superfície superior del guant amb cinta adhesiva. Sobre la targeta, he adjuntat el meu acceleròmetre. Aquesta configuració era prou sòlida per mantenir el meu acceleròmetre estable i capaç de fer un seguiment dels meus gestos amb precisió.

Recomanat: