Tabla de contenido:

Una aplicación de un botón extensible con respuesta de vibración: 7 pasos (con imágenes)
Una aplicación de un botón extensible con respuesta de vibración: 7 pasos (con imágenes)

Video: Una aplicación de un botón extensible con respuesta de vibración: 7 pasos (con imágenes)

Video: Una aplicación de un botón extensible con respuesta de vibración: 7 pasos (con imágenes)
Video: TRUCO de Huawei Band 7 - función oculta de Huawei Band 2024, Mes de julio
Anonim
Una aplicación de un botón extensible con retroalimentación de vibración
Una aplicación de un botón extensible con retroalimentación de vibración
Una aplicación de un botón extensible con retroalimentación de vibración
Una aplicación de un botón extensible con retroalimentación de vibración

En este tutorial, primero le mostraremos cómo usar un Arduino Uno para controlar un motor de vibración a través de un botón extendido. La mayoría de los tutoriales sobre botones pulsadores involucran el botón en la placa física, mientras que en este tutorial, el botón se ha modificado para conectarse a la placa mediante cables de puente. Este botón le permitirá controlar la fuerza y el patrón de vibración del motor. A continuación, mostraremos un posible prototipo de tecnología portátil haciendo uso de esta configuración. Este wearable es un guante con yemas de los dedos extensibles con botones adjuntos al extremo, programados para brindar una retroalimentación de vibración única al usuario en función del botón específico que se presiona.

Paso 1: Componentes necesarios para la configuración del botón al motor de vibración

Componentes necesarios para la configuración del botón al motor de vibración
Componentes necesarios para la configuración del botón al motor de vibración
  • Arduino Uno
  • Tablero de circuitos
  • Motor de vibración de vibrador de monedas
  • Botón Grove
  • Cables de puente macho a macho (x10)
  • Cable de puente de 4 pines
  • Controlador de motor háptico
  • Conector de borde macho a hembra
  • Soldador

Paso 2: Esquemas para la configuración del botón al motor de vibración

Esquemas de configuración de botón a motor de vibración
Esquemas de configuración de botón a motor de vibración

El diagrama anterior se creó con Fritzing.org.

Paso 3: Configuración del botón para configurar el motor de vibración

Paso 1: Suelde el conector de borde al controlador del motor de vibración. Suelde los cables del vibrador de monedas en los terminales del controlador del motor de vibración.

Paso 2: Conecte el cable de puente de 4 pines a la ruptura del botón.

Paso 3: Usando uno de los cables de puente, conecte el pin GRD en el Arduino a una fila en la placa de pruebas.

Paso 4: Con otro cable de puente, conecte el pin Volt 3.3 en el Arduino a una fila diferente en la placa.

Paso 5: Ahora conectaremos el controlador del motor de vibración al Arduino. Con un tercer cable de puente, conecte el pin GND en el controlador del motor de vibración a la misma fila en la placa de pruebas que el pin GRD del Arduino. Haga lo mismo con otro cable para VCC (voltios) en el controlador del motor de vibración, a la fila de voltios de la placa de pruebas.

Paso 6: Use otro cable para conectar el pin SDA en el controlador del motor de vibración al pin SDA directamente en el Arduino. Nuevamente, haga lo mismo con los pines SCL en ambos. Alternativamente, siga un enfoque similar al paso 5 y conecte los pines SDA y SCL en el Arduino a sus propias filas en la placa a través de cables de puente. Luego, ejecute un cable desde la fila donde el pin SDA está conectado en la placa de pruebas al pin SDA en el controlador del motor. Haga lo mismo para la fila SCL en la placa de pruebas con el pin SCL en el controlador del motor.

Paso 7: Ahora terminaremos conectando el botón al controlador del motor de vibración y Arduino. Utilice otro cable de puente para conectar el GRD del cable de puente de 4 pines conectado a la ruptura del botón a la misma fila que los otros cables de GRD en la placa de pruebas. Haga lo mismo con voltios una vez más (VCC).

Paso 8: Conecte una escritura final de SIG en la ruptura del botón a un pin en el Arduino (para los propósitos de nuestro código, usamos el pin 7).

Paso 9: conecte el Arduino y cargue el código, ¡y observe cómo funciona!

Paso 4: el código

Botón-Vibración-Motor.c

/ * Código adaptado de https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide?_ga=2.227031901.1514248658.1513372975-1149214600.1512613196 * /
#incluir// Biblioteca de controladores de motores hápticos SparkFun
#incluir// biblioteca I2C
SFE_HMD_DRV2605L HMD; // Crear objeto de controlador de motor háptico
botón int = 7; // elija el pin de entrada 7 para el pulsador
int button_val = 0; // variable para leer el estado del pin
voidsetup ()
{
/ * Inicializar objeto de controlador de motor háptico * /
HMD.begin ();
Serial.begin (9600);
HMD. Mode (0); // Modo de entrada de disparo interno: debe utilizar la función GO () para activar la reproducción.
HMD. MotorSelect (0x36); // Motor ERM, frenado 4x, ganancia de bucle medio, ganancia EMF trasera 1.365x
HMD. Library (2); // 1-5 y 7 para motores ERM, 6 para motores LRA
}
voidloop ()
{
/ * Arranque el motor de vibración * /
HMD.go ();
button_val = digitalRead (botón);
if (button_val == HIGH) {
/ * Esta salida para registrar que el botón ha sido presionado, se usa para depurar * /
Serial.println ("Botón presionado");
/ * La biblioteca de formas de onda tiene 0-122 tipos diferentes de ondas * /
HMD. Waveform (0, 69);}
demás{
/ * Si no se presiona el botón, detenga el motor de vibración * /
HMD.stop ();
}
}

ver rawButton-Vibration-Motor.c alojado con ❤ por GitHub

Paso 5: Video de la configuración del botón al motor de vibración

Image
Image

Paso 6: Prototipo de guante extensible

Prototipo de guante extensible
Prototipo de guante extensible
Prototipo de guante extensible
Prototipo de guante extensible

Una posible aplicación del botón al motor de vibración es el guante que se muestra arriba. Hemos modificado materiales accesibles y baratos, como jeringas, para hacerlos "yemas de los dedos" extensibles. Adjuntamos los botones de arboleda al extremo de las jeringas modificadas con velcro, cortamos agujeros en las yemas de los dedos de un guante y colocamos cada jeringa a través de los agujeros. Los cables de puente de 4 clavijas de los botones pasan a través de las jeringas y son lo suficientemente largos como para que pueda extender las jeringas en toda su longitud. El Arduino y la placa de pruebas se unen mediante velcro a la parte superior del guante, lo que permite que los cables de los botones se conecten fácilmente a través de una pequeña hendidura en la base de cada dedo. El impulsor del motor está unido a la parte inferior del guante por la abertura, para pegar el motor de vibración al interior del guante. Cuando el usuario tiene puesto el guante, el motor de vibración se encuentra en la parte inferior de la muñeca del usuario. Cuando el usuario toca una superficie y presiona uno de los botones, se produce una vibración de retroalimentación única a través del motor.

El proceso de pensamiento detrás de un guante de este tipo sería permitir que alguien que lo use "toque" cosas más allá del alcance de sus dedos habituales, y recibir retroalimentación de que está tocando estas superficies. La retroalimentación de vibración cambia dependiendo de qué dedo está tocando la superficie, de modo que es posible que el usuario sepa qué dedo está tocando la superficie según el patrón de vibración.

Hay muchas formas de llevar el prototipo más allá, como hacer que los dedos sean más extensibles o hacer que la retroalimentación cambie según el tipo de superficie que se toca. Idealmente, los dedos extensibles se crearían mediante impresión 3D, para obtener mejores opciones de telescopio. Se podría usar un sensor de temperatura en lugar de los botones, para permitir la retroalimentación sobre qué tan caliente está la superficie que está tocando el usuario, o un sensor de humedad para propósitos similares. Se podría implementar una forma de sentir qué tan lejos se ha extendido el "dedo", para permitir al usuario saber qué tan lejos está el objeto que está tocando. Estas son solo algunas opciones posibles para llevar este prototipo más lejos.

Este guante se puede fabricar con materiales comunes como una manera fácil de extender sus sentidos y generar retroalimentación que el usuario pueda sentir y comprender.

Paso 7: código para varios botones con salida de vibración única

mutliple_buttons_to_vibmotor.ino

/ * Código adaptado de SparkFun https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide * /
#incluir// Biblioteca de controladores de motores hápticos SparkFun
#incluir// biblioteca I2C
SFE_HMD_DRV2605L HMD; // Crear objeto de controlador de motor háptico
int button_middle = 7;
int button_index = 5; // elige el pin de entrada para el pulsador
int button_ring = 9;
int button_pinky = 3;
voidsetup ()
{
HMD.begin ();
Serial.begin (9600);
HMD. Mode (0); // Modo de entrada de disparo interno: debe utilizar la función GO () para activar la reproducción.
HMD. MotorSelect (0x36); // Motor ERM, frenado 4x, ganancia de bucle medio, ganancia EMF trasera 1.365x
HMD. Library (2); // 1-5 y 7 para motores ERM, 6 para motores LRA
}
voidloop ()
{
HMD.go (); // arranca el motor de vibración
/ * Compruebe qué botón está pulsado y la forma de onda de salida 0-122 * /
if (digitalRead (button_middle) == HIGH) {
Serial.println ("Botón presionado");
HMD. Waveform (0, 112);}
elseif (digitalRead (button_index) == HIGH) {
HMD. Waveform (0, 20);
}
elseif (digitalRead (button_ring) == HIGH) {
HMD. Waveform (0, 80);
}
elseif (digitalRead (button_pinky) == HIGH) {
HMD. Waveform (0, 100);
}
/ * Si no se presiona ningún botón, deténgase * /
demás{
HMD.stop ();
}
}

ver rawmutliple_buttons_to_vibmotor.ino alojado con ❤ por GitHub

Recomendado: