Mouse con XIAO RA4M1
Materiales requeridos
Seeed Studio XIAO RA4M1 | Grove Thumb Joystick | Grove 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 RA4M1 | Grove - Thumb Joystick |
---|---|
3.3V | Rojo |
GND | Negro |
A0 | Blanco |
A1 | Amarillo |
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.