mirror of
https://github.com/m5stack/m5-docs.git
synced 2026-05-20 10:23:01 -07:00
3.3 KiB
3.3 KiB
JOYSTICK - ジョイスティック {docsify-ignore-all}
📝概要 :octocat:サンプルコード 🛒購入リンク 🎬関連動画
概要
**JOYSTICK**はFACES用のJOYSTICKモジュールです。使用するためには、他にFACESベースとM5Coreをスタックさせる必要があります。ジョイスティックのX,Y方向の変位量や、Z方向のクリックが取得できます。また円形に配置された12個のフルカラーLEDをコントロールすることができます。
JOYSTICKとM5Coreの間はI2C通信で接続されています。I2Cアドレスは0x5Eです。
特徴
- 12個のフルカラーLED
- I2C通信
- シンプルなプログラミングインターフェース
関数
単独LED制御
/*
Parameter:
indexOfLED: 0 ~ 11
r, g, b: 0 ~ 254
*/
void Led(int indexOfLED, int r, int g, int b){
Wire.beginTransmission(FACE_JOY_ADDR);
Wire.write(indexOfLED);
Wire.write(r);
Wire.write(g);
Wire.write(b);
Wire.endTransmission();
}
各方向のジョイスティック変位量とクリック取得
void get_joystick_offset(void){
Wire.requestFrom(FACE_JOY_ADDR, 5);
if (Wire.available()) {
y_data_L = Wire.read();
y_data_H = Wire.read();
x_data_L = Wire.read();
x_data_H = Wire.read();
button_data = Wire.read();// Z(0: released 1: pressed)
}
パッケージ内容
- 1x JOYSTICKモジュール
関連リンク
サンプルコード
Arduino IDE
完全なソースコードはこちら。
/*
* faces_joystick.ino
*/
#include <M5Stack.h>
#define FACE_JOY_ADDR 0X5E
// declaration
uint8_t x_data_L;
uint8_t x_data_H;
uint8_t y_data_L;
uint8_t y_data_H;
uint8_t button_data;
uint16_t x_data;
uint16_t y_data;
// initialization
M5.begin();
Wire.begin();
// get data from ENCONDER
Wire.requestFrom(FACE_JOY_ADDR, 5);
if (Wire.available()) {
y_data_L = Wire.read();
y_data_H = Wire.read();
x_data_L = Wire.read();
x_data_H = Wire.read();
button_data = Wire.read();// Z(0: released 1: pressed)
x_data = x_data_H << 8 |x_data_L;
y_data = y_data_H << 8 |y_data_L;
}
// I2C send data, 4bytes
Wire.beginTransmission(FACE_JOY_ADDR);
Wire.write(indexOfLED);
Wire.write(r);
Wire.write(g);
Wire.write(b);
Wire.endTransmission();