XIAO RA4M1 マウス
必要な材料
Seeed Studio XIAO RA4M1 | Grove サムジョイスティック | Grove ケーブル |
---|---|---|
![]() | ![]() | ![]() |
事前準備
XIAO RA4M1の内蔵LEDを点灯させる
XIAO RA4M1を使用したことがない場合は、こちらをクリックして内蔵LEDの点灯方法を学習してください。これにより、開発環境が正常に動作することを確認できます。
Grove ジョイスティックのXおよびY軸データを読み取る
ステップ1.デバイスの接続
まず、以下の表に従ってXIAO RA4M1とジョイスティックをピン経由で接続する必要があります。
XIAO RA4M1 | Grove - Thumb Joystick |
---|---|
3.3V | Red |
GND | Black |
A0 | White |
A1 | Yellow |
次に、以下の画像のようにGroveケーブルを使用して接続します。

ステップ2.テストプログラムのアップロード
以下のコードをコピーし、Arduino IDEに貼り付けてから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);
}

ジョイスティックを動かすと、軸データが同時に変化します。これは XIAO RA4M1 とジョイスティックが完璧に動作していることを意味します。
XIAO RA4M1 でマウスを作る
ステップ 3. マウスコントローラープログラムをアップロード
#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);
}

ジョイスティックを操作すると、カーソルが動いているのが確認できます~
おめでとうございます!この小さなシンプルなマウスの構築に成功しました。XIAO RA4M1を通じて、より多くの興味深いHID(Human Interface Device)機能があなたの探求を待っています。もっと学びたいですか?こちらをクリックしてジャンプしてください~
技術サポート & 製品ディスカッション
私たちの製品をお選びいただき、ありがとうございます!私たちは、お客様の製品体験が可能な限りスムーズになるよう、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、複数のコミュニケーションチャンネルを提供しています。