I2C Joystick Unit (MEGA328P)
Description
JOYSTICK, we have two types of JOYSTICKs one is build on a panle compatible with FACES Kit, this is the M5Unit version of JOYSTICK
JOYSTICK is very similar to the 'analog' joystick on PS2 (PlayStation 2) controllers. The X and Y axes are two 10k potentiometers which control 2D movement by generating analog signals. The joystick also has a push button that could be used for special applications. Therefore, the entire Unit can output X-Y motion signals in both directions and Z direction.
As designed in the schematic, the Joystick X dimension is connected to pin A0 of MEGA328, the Joystick Y dimension is connected to pin A1 on MEGA328, the Joystick Z dimension is connected to pin A2 on MEGA328.
This Unit communicates with the M5Core via the GROVE A interface. It's I2C address is 0x52. By reading the data transferred from JOSTICK, you can obtain the motion information of JOYSTICK.
Product Features
- Output value of X, Y direction: 10 ~ 250
- Output value of Z direction is (0: released; 1: pressed)
- Software Development Platform : Arduino, UIFlow(Blockly, Python)
- Two Lego-compatible holes
Kit includes
- 1x JOYSTICK Unit
- 1x Grove Cable
Application
- Game Controller
- Robot remote control
Learn
Example
1. Arduino IDE
The code below is incomplete(just for usage). To get complete code, please click here.
#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
To get complete code, please click here.
More information
Schematic
PinMap
M5Core(GROVE A)GPIO22GPIO215VGNDJOYSTICK UnitSCLSDA5VGNDThe I2C Joystick Unit (MEGA328P) appears in the following collections: