Tabla de contenido:
- Suministros
- Paso 1: Acelerómetro de interfaz con Raspberry Pi
- Paso 2: Interfaz del pulsador con Raspberry Pi
- Paso 3: desarrollo de la secuencia de comandos de Python para controlar en serie el puntero del mouse
- Paso 4: desarrollo de la secuencia de comandos de Python para controlar el puntero del mouse a través de Bluetooth
- Paso 5: Incrustación del acelerómetro y el botón en el guante
Video: [Ratón portátil] Controlador de ratón portátil basado en Bluetooth para Windows 10 y Linux: 5 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
Hice un controlador de mouse basado en Bluetooth que se puede usar para controlar el puntero del mouse y realizar operaciones relacionadas con el mouse de PC sobre la marcha, sin tocar ninguna superficie. El circuito electrónico, que está incrustado en un guante, se puede usar para rastrear los gestos de las manos a través de un acelerómetro y eso se puede traducir en el movimiento del puntero del mouse. Este dispositivo también está interconectado con un botón que replica el clic del botón izquierdo. El dispositivo se puede conectar en serie a la PC (a través de USB) o de forma inalámbrica a través de una conexión Bluetooth. Bluetooth proporciona una comunicación inalámbrica robusta y universal entre el dispositivo anfitrión y este mouse portátil. Como Bluetooth está ampliamente disponible y viene integrado con casi todas las computadoras portátiles personales, el caso de uso de un dispositivo portátil de este tipo es amplio. El uso de Raspberry Pi, que es una plataforma de desarrollo de uso común para varios proyectos, la interconexión de diferentes sensores y el desarrollo de dicho dispositivo es fácil y escalable. El guante se puede sustituir por cualquier otro wearable para que su aplicación sea más amplia.
Como precaución contra el COVID-19, es aconsejable evitar tocar superficies que puedan ser compartidas entre diferentes personas, y una computadora portátil con pantalla táctil o un mouse pueden estar entre esas superficies comunes. El uso de un dispositivo portátil de este tipo ayuda a mantener la higiene y a mantener desinfectadas las superficies de uso común:)
Suministros
- Raspberry Pi 3 Modelo B V1.2
- Desglose del acelerómetro de triple eje SparkFun - MMA8452Q
- Cable de puente macho a hembra
- Un guante
- Cinta adhesiva
- Tijeras
- Cable micro-USB
- Cable HDMI (para depurar a través de Raspberry Pi)
Paso 1: Acelerómetro de interfaz con Raspberry Pi
Usé un acelerómetro de triple eje MMA8542Q de Sparkfun que usa el protocolo de comunicación I2C para hablar con los pines GPIO de Raspberry Pi y enviar los datos de los ejes. Este sensor proporciona varios modos de operación con velocidad de datos configurable, modos de suspensión, rango de aceleración, modo de filtro, etc. Encontré que el código de Pibits fue muy útil en mi configuración inicial del sensor y lo probé con mis gestos con las manos. Es mejor colocar primero el sensor en una superficie plana y realizar inclinaciones deterministas mientras se observan los valores brutos del sensor. Esto es particularmente útil para comprender cómo reacciona este sensor con varios gestos con las manos y cómo podemos configurar umbrales para nuestra aplicación. Una vez que el acelerómetro se interconecta con éxito, puede ver los datos de los ejes sin procesar en la pantalla del terminal de Pi.
Paso 2: Interfaz del pulsador con Raspberry Pi
En este dispositivo portátil, conecté un botón que puede funcionar como el botón izquierdo del mouse para poder hacer clic en los íconos de la pantalla. Los 2 extremos del botón se conectan a 2 pines GPIO del Pi. Uno de los pines emite un alto lógico y el otro pin lee ese valor. Cuando se presiona el botón, el circuito se cierra y el pin de entrada puede leer un valor lógico alto, que luego es procesado por el script que escribí para emular el clic izquierdo del mouse. Debido a la falta de soldador, utilicé cinta adhesiva para conectar los puentes con el botón.
Paso 3: desarrollo de la secuencia de comandos de Python para controlar en serie el puntero del mouse
Usé la biblioteca Python de Pyautogui para controlar el puntero del mouse. La razón para usar esta biblioteca es que funciona tanto en Linux como en la plataforma Windows. Para controlar el puntero del mouse en mi Raspberry Pi, primero conecté mi Pi a una pantalla. Luego, utilicé las siguientes API proporcionadas por la biblioteca para controlar el puntero del mouse:
- pyautogui.move (0, 200, 2) # mueve el mouse hacia abajo 200 píxeles durante 2 segundos
- pyautogui.click () # haga clic con el mouse
Para filtrar los datos de error provenientes del acelerómetro, utilicé promedios y otros métodos de filtrado que se pueden entender fácilmente a través del código adjunto. La API pyautogui.move (0, y) se usó de tal manera que el puntero del mouse puede ir de arriba a abajo o de izquierda a derecha a la vez. Esto se debe a que el acelerómetro informa ejes en la dirección X, Y y Z, pero la API solo toma 2 argumentos, los ejes X e Y. Por lo tanto, este enfoque fue muy adecuado para mi acelerómetro y para mapear los gestos en la pantalla.
Paso 4: desarrollo de la secuencia de comandos de Python para controlar el puntero del mouse a través de Bluetooth
Esta parte es una aplicación avanzada en la que cualquier computadora portátil con capacidad Bluetooth puede comunicarse con Raspberry Pi en un modelo de comunicación servidor-cliente y transmitir datos de coordenadas del mouse de forma inalámbrica. Para configurar una computadora portátil con Windows 10 de 64 bits para permitir la comunicación Bluetooth, debemos seguir los pasos a continuación:
Windows 10:
- Cree un puerto COM de Bluetooth entrante.
- Empareje el Bluetooth de Pi con el Bluetooth de la computadora portátil haciendo que Pi sea reconocible.
- Instale Python en Windows.
- Instale pip en Windows. Pip se usa para instalar bibliotecas en una máquina Linux o Windows.
- Instale pyautogui en Windows usando: pip install pyautogui
- Una vez que pyautogui esté instalado en el dispositivo, instale Pybluez en Windows usando el siguiente comando en la terminal de Windows usando: pip install PyBluez-win10. PyBluez habilita la comunicación Bluetooth en PC con Windows y Linux.
-
Para desarrollar una aplicación en una computadora portátil con Windows 10, necesitamos instalar Microsoft Visual Studio (se requieren 15-20 GB de espacio) y sus herramientas de compilación. Por lo tanto, junto con PyBluez, debemos seguir las instrucciones a continuación,
-
Descargue y ejecute "Visual Studio Installer":
- Instale "Visual Studio Build Tools 2017", marque "Herramientas de compilación de Visual C ++" y "Herramientas de compilación de la Plataforma universal de Windows".
- clon de git
- cd pybluez
instalación de python setup.py
-
- Si se siguen correctamente las instrucciones anteriores, ejecutar Python en la terminal de Windows e importar pyautogui y el módulo Bluetooth deberían funcionar sin errores, como se muestra en la imagen de arriba.
- En la biblioteca pybluez instalada en la máquina con Windows, navegue hasta: pybluez-master / examples / simple / rfcomm-server.py y ejecute usando python rfcomm-server.py. Si el terminal entra en un estado de espera sin errores, vaya a la siguiente sección para configurar Bluetooth en Pi. Si hay errores al instalar pybluez, consulte Problemas de GitHub para la depuración.
Raspbian en Raspberry Pi:
- Instalar PyBluez en Pi
- Ejecute el ejemplo del servidor en Windows. Luego, en Pi, navegue hasta pybluez-master / examples / simple / rfcomm-client.py y ejecute. Si los dos dispositivos han comenzado a comunicarse, Bluetooth ahora está configurado en ambos dispositivos. Para comprender más sobre cómo funciona la comunicación de socket con Python, consulte este enlace del MIT.
Se requerirá un análisis de datos adicional para enviar datos de ejes desde Pi a la PC, ya que los datos se envían en bytes. Consulte el código adjunto para obtener más información sobre la comunicación de datos entre el cliente y el servidor.
Paso 5: Incrustación del acelerómetro y el botón en el guante
Una vez que el acelerómetro está bien interconectado, el sistema de esqueleto se ve como la primera imagen en este paso.
Como la superficie del guante no es plana, utilicé una tarjeta de crédito falsa que llega a mi buzón de vez en cuando. Según la segunda imagen de este paso, adjunté la tarjeta de crédito ficticia en la superficie superior de mi guante con cinta adhesiva. Sobre la tarjeta, adjunté mi acelerómetro. Esta configuración fue lo suficientemente robusta como para mantener estable mi acelerómetro y poder rastrear mis gestos con precisión.
Recomendado:
Controlador de juegos de bricolaje basado en Arduino - Controlador de juegos Arduino PS2 - Jugar a Tekken con el gamepad DIY Arduino: 7 pasos
Controlador de juegos de bricolaje basado en Arduino | Controlador de juegos Arduino PS2 | Jugar a Tekken con DIY Arduino Gamepad: Hola chicos, jugar juegos siempre es divertido, pero jugar con su propio controlador de juego personalizado DIY es más divertido. Así que haremos un controlador de juego usando arduino pro micro en este instructivo
Termómetro infrarrojo sin contacto basado en Arduino - Termómetro basado en infrarrojos con Arduino: 4 pasos
Termómetro infrarrojo sin contacto basado en Arduino | Termómetro basado en infrarrojos con Arduino: Hola chicos, en este instructivo, haremos un termómetro sin contacto con arduino, ya que a veces la temperatura del líquido / sólido es demasiado alta o demasiado baja y luego es difícil hacer contacto con él y leer su temperatura entonces en ese escenario
Controlador de arranque DOL basado en IOT para bomba de riego: 6 pasos
Controlador de arranque DOL basado en IOT para bombas de riego: Hola amigos Este instructivo trata sobre cómo monitorear y controlar remotamente una bomba de riego a través de Internet. Historia: En mi granja obtengo suministro de energía de la red local solo durante aproximadamente 6 horas al día. Los horarios no son regulares, la disponibilidad de po
Generador de música basado en el clima (generador Midi basado en ESP8266): 4 pasos (con imágenes)
Generador de música basado en el clima (Generador Midi basado en ESP8266): Hola, hoy explicaré cómo hacer tu propio generador de música basado en el clima. Está basado en un ESP8266, que es como un Arduino, y responde a la temperatura, la lluvia y la intensidad de la luz. No espere que haga canciones completas o programas de acordes
Cómo actualizar una CPU PORTÁTIL (y otras cosas interesantes) para convertir una computadora portátil LENTA / MUERTA en una computadora portátil RÁPIDA: 4 pasos
Cómo actualizar una CPU PORTÁTIL (y otras cosas interesantes) para convertir una computadora portátil LENTA / MUERTA en una computadora portátil RÁPIDA!: ¡Hola a todos! Recientemente adquirí una computadora portátil Packard Bell Easynote TM89, que tenía especificaciones demasiado bajas para mi gusto, básicamente muy desactualizado … La pantalla LCD se rompió y el disco duro principal se había bloqueado, por lo que la computadora portátil estaba prácticamente muerta … Ver la foto y