Mouse XIAO RA4M1
Materiais Necessários
| Seeed Studio XIAO RA4M1 | Grove Thumb Joystick | Cabo Grove |
|---|---|---|
![]() | ![]() | |
Preparação Preliminar
Acender o LED integrado do XIAO RA4M1
Se você nunca usou o XIAO RA4M1 antes, clique aqui para aprender como acender o LED integrado, o que garante que seu ambiente de desenvolvimento está funcionando bem.
Ler os dados dos eixos X e Y do Grove Joystick
Passo 1. Conectar o dispositivo
Antes de tudo, você precisa conectar o XIAO RA4M1 e o Joystick pelos pinos conforme a tabela a seguir.
| XIAO RA4M1 | Grove - Thumb Joystick |
|---|---|
| 3.3V | Vermelho |
| GND | Preto |
| A0 | Branco |
| A1 | Amarelo |
Agora use o cabo Grove para conectá-los como na imagem a seguir.

Passo 2. Fazer upload do programa de teste
Copie o seguinte código, cole no Arduino IDE e depois faça o upload para o XIAO RA4M1
void setup()
{
Serial.begin(9600);
}
void loop()
{
int sensorValue1 = analogRead(A0);
int sensorValue2 = analogRead(A1);
Serial.print("The X and Y coordinate is:");
Serial.print(sensorValue1, DEC);
Serial.print(",");
Serial.println(sensorValue2, DEC);
Serial.println(" ");
delay(200);
}

Agora, quando você mover o Joystick, os dados dos eixos mudarão ao mesmo tempo. Isso significa que o XIAO RA4M1 e o Joystick estão funcionando perfeitamente.
Monte um mouse com o XIAO RA4M1
Passo 3. Fazer upload do programa de controle do mouse
#include <Mouse.h>
const int xaxis = A0;
const int yaxis = A1;
const int sensitivity = 5;//adjust the mouse sensetive
void setup()
{
Mouse.begin();
delay(1000);//at least 1000ms to initilize
Serial.begin(9600);
}
void loop()
{
int xValue = analogRead(xaxis);
int yValue = analogRead(yaxis);
/*
when you click the central button of Grove joystick, xValue will equal to 1023,
so when xValue < 1000, we move the mouse; when xValue>1000, we click the mouse
*/
if(xValue<1000){
//define mouse move distance
int xDistance;
int yDistance;
/*
The joystick reads the x and y values with 500 as the center of the coordinate axis,
so we need to process the data by subtracting 500, while also eliminating some minor vibrations.
*/
//Eliminate X minor vibrations.
if(abs(xValue-500)<10){
xDistance = 0;
}else{
xDistance = (xValue - 500);
}
//Eliminate X minor vibrations.
if(abs(yValue-500)<10){
yDistance = 0;
}else{
yDistance = (yValue - 500);
}
//read value from joystick
Serial.print("value: ");
Serial.print(xValue);
Serial.print(",");
Serial.println(yValue);
Serial.println(" ");
//read distance the mouse will move
Serial.print("distance: ");
Serial.print(xDistance);
Serial.print(",");
Serial.println(yDistance);
Serial.println(" ");
//make the mouse not so sensetive
Mouse.move(xDistance/sensitivity,-yDistance/sensitivity,0);
}else{
//when xValue>1000, mouse click
Mouse.click();
}
delay(100);
}

Agora você verá o cursor se movendo quando controlar o Joystick ~
Parabéns! Você montou com sucesso este pequeno e simples mouse. Há mais funções HID (Human Interface Device) interessantes esperando para você explorar por meio do XIAO RA4M1. Quer saber mais? Clique aqui para acessar ~
Suporte Técnico e Discussão de Produto
Obrigado por escolher nossos produtos! Estamos aqui para lhe fornecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

