Pular para o conteúdo principal

Mouse XIAO RA4M1

Materiais Necessários

Seeed Studio XIAO RA4M1Grove Thumb JoystickCabo 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 RA4M1Grove - Thumb Joystick
3.3VVermelho
GNDPreto
A0Branco
A1Amarelo

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.

Loading Comments...