mirror of
https://github.com/m5stack/m5-docs.git
synced 2026-05-20 10:23:01 -07:00
4.4 KiB
4.4 KiB
Unit JOYSTICK {docsify-ignore-all}
📝描述 :octocat:例程 🔌原理图 🛒购买链接 🎬相关视频
EasyLoader
描述
JOYSTICK, 是一款摇杆控制 Unit.内部集成 MEGA328 芯片,工作原理与一般的摇杆游戏手柄类似,X、Y轴分别对应着两个 10K 的电位器.当摇杆进行动作时,产生相应的模拟信号并向M5Core输入摇杆的偏移值. Z轴方向则为一个按钮应用.
内部电路中,摇杆 X 方向连接至 MEGA328 的 A0 管脚,Y 方向连接至 A1 管脚,Z 方向连接至 A2管脚.
该 Unit 通过GROVE A接口与M5Core进行通信,I2C地址为0x52.
产品特性
- X、Y 方向输出值: 10 ~ 250
- Z 方向输出值 (0: 释放; 1: 按下)
- 开发平台: Arduino, UIFlow(Blockly, Python)
- 2x LEGO 兼容孔
包含
- 1x JOYSTICK Unit
- 1x Grove 线
应用
- 游戏控制器
- 机器人远程控制
相关链接
EasyLoader
1.EasyLoader是一个简洁快速的程序烧录器,每一个产品页面里的EasyLoader都提供了一个与产品相关的案例程序.
2.下载软件后,双击运行应用程序,将M5设备通过数据线连接至电脑,选择端口参数,点击 "Burn" 即可开始烧录
!>3.EasyLoader烧录前需要安装有CP210X(USB驱动程序),点击此处查看驱动安装教程
例程
1. Arduino IDE
以下代码仅为片段,如需获取完整代码, 请点击此处.
#include <M5Stack.h>
#include "Wire.h"
#define JOY_ADDR 0x52
// declaration
uint8_t x_data, y_data, button_data;
char data[100];
// initialization
M5.begin();
M5.Lcd.clear();
dacWrite(25, 0);//disable the speak noise
Wire.begin(21, 22, 400000);
// read data
Wire.requestFrom(JOY_ADDR, 3);
if (Wire.available()) {
x_data = Wire.read();// X(range: 10~250)
y_data = Wire.read();// Y(range: 10~250)
button_data = Wire.read();// Z(0: released 1: pressed)
sprintf(data, "x:%d y:%d button:%d\n", x_data, y_data, button_data);
}
2. UIFlow
以下代码仅为片段,如需获取完整代码, 请点击此处.
原理图
管脚映射
| M5Core(GROVE A) | GPIO22 | GPIO21 | 5V | GND |
| JOYSTICK Unit | SCL | SDA | 5V | GND |
相关视频
Joystick 的演示 - 遥控轮椅
Joystick 的演示 - 菜单界面的翻页与选择

