Skip to main content

XIAO RA4M1 マウス

必要な材料

Seeed Studio XIAO RA4M1Grove サムジョイスティックGrove ケーブル

事前準備

XIAO RA4M1の内蔵LEDを点灯させる

XIAO RA4M1を使用したことがない場合は、こちらをクリックして内蔵LEDの点灯方法を学習してください。これにより、開発環境が正常に動作することを確認できます。

Grove ジョイスティックのXおよびY軸データを読み取る

ステップ1.デバイスの接続

まず、以下の表に従ってXIAO RA4M1とジョイスティックをピン経由で接続する必要があります。

XIAO RA4M1Grove - Thumb Joystick
3.3VRed
GNDBlack
A0White
A1Yellow

次に、以下の画像のように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)機能があなたの探求を待っています。もっと学びたいですか?こちらをクリックしてジャンプしてください~

技術サポート & 製品ディスカッション

私たちの製品をお選びいただき、ありがとうございます!私たちは、お客様の製品体験が可能な限りスムーズになるよう、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、複数のコミュニケーションチャンネルを提供しています。

Loading Comments...