Skip to main content

XIAO RA4M1 鼠标

note

本文档由 AI 翻译。如您发现内容有误或有改进建议,欢迎通过页面下方的评论区,或在以下 Issue 页面中告诉我们:https://github.com/Seeed-Studio/wiki-documents/issues

所需材料

Seeed Studio XIAO RA4M1Grove 拇指摇杆Grove 电缆

初步准备

点亮 XIAO RA4M1 的内置 LED

如果您之前从未使用过 XIAO RA4M1,请点击这里了解如何点亮内置 LED,以确保您的开发环境正常。

读取 Grove 摇杆的 X 和 Y 轴数据

第一步:连接设备

首先,您需要通过以下表格中的引脚将 XIAO RA4M1 和摇杆连接起来。

XIAO RA4M1Grove - 拇指摇杆
3.3V红色
GND黑色
A0白色
A1黄色

现在使用 Grove 电缆将它们连接起来,如下图所示。

第二步:上传测试程序

将以下代码复制并粘贴到 Arduino IDE 中,然后上传到 XIAO RA4M1。

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

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

Serial.print("X 和 Y 坐标是:");
Serial.print(sensorValue1, DEC);
Serial.print(",");
Serial.println(sensorValue2, DEC);
Serial.println(" ");
delay(200);
}

现在移动摇杆,轴数据会同时发生变化。这意味着 XIAO RA4M1 和摇杆工作正常。

使用 XIAO RA4M1 构建鼠标

第三步:上传鼠标控制程序

#include <Mouse.h>

const int xaxis = A0;
const int yaxis = A1;
const int sensitivity = 5; // 调整鼠标灵敏度

void setup()
{
Mouse.begin();
delay(1000); // 至少需要 1000ms 初始化
Serial.begin(9600);
}

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

/*
当您点击 Grove 摇杆的中央按钮时,xValue 将等于 1023,
因此当 xValue < 1000 时,我们移动鼠标;当 xValue > 1000 时,我们点击鼠标。
*/
if(xValue < 1000){

// 定义鼠标移动距离
int xDistance;
int yDistance;

/*
摇杆读取的 x 和 y 值以 500 为坐标轴中心,
因此我们需要通过减去 500 来处理数据,同时消除一些轻微的振动。
*/
// 消除 X 轴轻微振动
if(abs(xValue - 500) < 10){
xDistance = 0;
}else{
xDistance = (xValue - 500);
}
// 消除 Y 轴轻微振动
if(abs(yValue - 500) < 10){
yDistance = 0;
}else{
yDistance = (yValue - 500);
}
// 从摇杆读取值
Serial.print("值: ");
Serial.print(xValue);
Serial.print(",");
Serial.println(yValue);
Serial.println(" ");
// 读取鼠标将移动的距离
Serial.print("距离: ");
Serial.print(xDistance);
Serial.print(",");
Serial.println(yDistance);
Serial.println(" ");

// 使鼠标不那么灵敏
Mouse.move(xDistance / sensitivity, -yDistance / sensitivity, 0);
}else{
// 当 xValue > 1000 时,鼠标点击
Mouse.click();
}
delay(100);
}

现在您会看到,当您控制摇杆时,光标正在移动~

恭喜!您成功构建了这个简单的小鼠标。还有更多有趣的 HID(人机接口设备)功能等待您通过 XIAO RA4M1 探索。想了解更多?请点击这里跳转~

技术支持与产品讨论

感谢您选择我们的产品!我们致力于为您提供多种支持,以确保您使用我们的产品时体验顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。

Loading Comments...