Skip to main content

Mouse con XIAO RA4M1

Materiales requeridos

Seeed Studio XIAO RA4M1Grove Thumb JoystickGrove Cable

Preparación preliminar

Encender el LED integrado del XIAO RA4M1

Si nunca has utilizado el XIAO RA4M1 antes, haz clic aquí para aprender a encender el LED integrado, lo que asegurará que tu entorno de desarrollo esté correctamente configurado.

Leer los datos de los ejes X e Y del Joystick Grove

Paso 1. Conectar el dispositivo

Primero, conecta el XIAO RA4M1 y el joystick según la siguiente tabla:

XIAO RA4M1Grove - Thumb Joystick
3.3VRojo
GNDNegro
A0Blanco
A1Amarillo

Ahora, usa un cable Grove para conectarlos según la siguiente imagen.

Paso 2. Subir el programa de prueba

Copia el siguiente código, pégalo en el Arduino IDE y súbelo al XIAO RA4M1.

void setup()
{
Serial.begin(9600);
}

void loop()
{
int sensorValue1 = analogRead(A0);
int sensorValue2 = analogRead(A1);

Serial.print("Las coordenadas X y Y son:");
Serial.print(sensorValue1, DEC);
Serial.print(",");
Serial.println(sensorValue2, DEC);
Serial.println(" ");
delay(200);
}

Ahora, cuando muevas el Joystick, los datos de los ejes cambiarán al mismo tiempo. Esto significa que el XIAO RA4M1 y el Joystick están funcionando perfectamente.

Construir un ratón con XIAO RA4M1

Paso 3. Subir el programa controlador del ratón

#include <Mouse.h>

const int xaxis = A0;
const int yaxis = A1;
const int sensitivity = 5; //ajustar la sensibilidad del ratón

void setup()
{
Mouse.begin();
delay(1000); // al menos 1000ms para inicializar
Serial.begin(9600);
}

void loop()
{
int xValue = analogRead(xaxis);
int yValue = analogRead(yaxis);

/*
cuando presionas el botón central del joystick Grove, xValue será igual a 1023,
así que cuando xValue < 1000, movemos el ratón; cuando xValue > 1000, hacemos clic con el ratón
*/
if(xValue < 1000){

//definir la distancia de movimiento del ratón
int xDistance;
int yDistance;

/*
El joystick lee los valores de x y y con 500 como el centro del eje de coordenadas,
así que necesitamos procesar los datos restando 500, al mismo tiempo eliminando algunas pequeñas vibraciones.
*/
//Eliminar las pequeñas vibraciones en X.
if(abs(xValue - 500) < 10){
xDistance = 0;
}else{
xDistance = (xValue - 500);
}
//Eliminar las pequeñas vibraciones en Y.
if(abs(yValue - 500) < 10){
yDistance = 0;
}else{
yDistance = (yValue - 500);
}
//leer el valor del joystick
Serial.print("valor: ");
Serial.print(xValue);
Serial.print(",");
Serial.println(yValue);
Serial.println(" ");
//leer la distancia que se moverá el ratón
Serial.print("distancia: ");
Serial.print(xDistance);
Serial.print(",");
Serial.println(yDistance);
Serial.println(" ");

//hacer que el ratón no sea tan sensible
Mouse.move(xDistance / sensitivity, -yDistance / sensitivity, 0);
}else{
//cuando xValue > 1000, hacer clic con el ratón
Mouse.click();
}
delay(100);
}

Ahora verás que el cursor se mueve cuando controlas el Joystick ~

¡Felicidades! Has creado con éxito este pequeño ratón. Hay muchas más funciones interesantes de HID (Dispositivo de Interfaz Humana) esperando a ser exploradas con el XIAO RA4M1. ¿Quieres aprender más? Haz clic aquí para continuar~

Soporte técnico y discusión de productos

¡Gracias por elegir nuestros productos! Estamos aquí para ofrecerte diferentes tipos de soporte y asegurarnos de que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para adaptarnos a diferentes preferencias y necesidades.

Loading Comments...