JoystickI2C通信インターフェースを採用し、3軸の制御信号入力(X/Y軸オフセットアナログ入力、Z軸キーデジタル入力)に対応したジョイスティック制御入力ユニットです。ゲームやロボット制御などのアプリケーションシーンに適しています。
仕様 | パラメータ |
---|---|
MCU | メガ8A |
通信プロトコル | I2C: 0x52 |
X,Y軸オフセット出力値 | 0~255 |
Z軸ボタン出力値 | 0/1 |
製品重量 | 11g |
梱包重量 | 27g |
製品サイズ | 48×24×32mm |
梱包サイズ | 75×45×30mm |
EasyLoaderはシンプルで高速なプログラムバーナーで、製品関連のケースプログラムを内蔵しており、簡単な手順でメインコントロールに焼き付け、一連の機能検証を行うことができます。
M5CORE - PORT A | G21 | G22 | 5V | GND |
---|---|---|---|---|
JOYSTICK | SDA | SCL | VCC | GND |
ジョイスティックREG 0x52
REG | len | description | return values |
---|---|---|---|
0x52 | 3 | Read joystick status | [0] X VALUE [1] Y VALUE [2] BTN STATUS |
#include <M5Stack.h>
#define JOY_ADDR 0x52 //define Joystick I2C address
void setup() {
M5.begin();
M5.Power.begin();
M5.Lcd.setCursor(70, 0, 4);
M5.Lcd.println(("Joystick Test"));
dacWrite(25, 0); //disable the speak noise.
Wire.begin(21, 22, 400000);
}
char data[100];
void loop() {
static uint8_t x_data,y_data,button_data;
Wire.requestFrom(JOY_ADDR, 3); //Request 3 bytes from the slave device.
if (Wire.available()) { //If data is received.
x_data = Wire.read();
y_data = Wire.read();
button_data = Wire.read();
sprintf(data, "x:%d y:%d button:%d\n", x_data, y_data, button_data);
Serial.print(data);
M5.Lcd.setCursor(100, 50, 4);
M5.Lcd.printf("X:%d ",x_data);
M5.Lcd.setCursor(100, 80, 4);
M5.Lcd.printf("Y:%d ",y_data);
M5.Lcd.setCursor(100, 110, 4);
M5.Lcd.printf("B:%d ",button_data);
}
delay(200);
}
Get X X 軸のデータを返す
Get Y Y 軸のデータを返す
Get is pressed キーの値を返す
Get Reverse X X 軸のリバースデータを返す
Get Reverse Y Y 軸の反転データを返す