Joystick2 Unit

摇杆是一种用于控制的输入单元,采用 I2C 通信接口,支持三轴控制信号(X/Y 轴位移的模拟输入和 Z 轴按键按下的数字输入)。适用于游戏和机器人控制等应用场景。

支持以下产品:

Joystick2Unit

MicroPython 应用示例

import os, sys, io
import M5
from M5 import *
from unit import Joystick2Unit
from hardware import *
i2c = I2C(1, scl=22, sda=21)
joystick = Joystick2Unit(i2c)
joystick.read_adc_value()
joystick.read_button_status()
joystick.set_rgb_led(255, 0, 0)
joystick.get_rgb_led()
joystick.set_deadzone_position(200, 200)
while True:
    joystick.read_axis_position()

UiFlow2 应用示例

example.png

cores3_joystick_example.m5f2

class Joystick2Unit

Constructors

class Joystick2Unit(i2c, address)

初始化 Joystick Unit。

参数:
  • i2c (I2C) – 使用的 I2C 端口。

  • address (int) – Joystick Unit 的 I2C 地址。

UIFLOW2:

init.png

Methods

Joystick2Unit.set_axis_x_invert(invert)

反转摇杆的 X 轴。

参数:

invert (bool) – 是否反转 X 轴。

UIFLOW2:

set_axis_x_invert.png

Joystick2Unit.set_axis_y_invert(invert)

反转摇杆的 Y 轴。

参数:

invert (bool) – 是否反转 Y 轴。

UIFLOW2:

set_axis_y_invert.png

Joystick2Unit.set_axis_swap(swap)

交换摇杆的 X 轴和 Y 轴。

参数:

swap (bool) – 是否交换 X 轴和 Y 轴。

UIFLOW2:

set_axis_swap.png

Joystick2Unit.get_adc_value()

读取摇杆的 ADC 值。

Return (tuple):

返回一个包含 X 轴和 Y 轴 ADC 值的元组,范围为 0 到 65535

UIFLOW2:

get_adc_value.png

Joystick2Unit.get_button_status()

读取摇杆的按钮状态。

Return (bool):

返回按钮状态。按下为 True,未按下为 False。

UIFLOW2:

get_button_status.png

Joystick2Unit.set_led_brightness(brightness)

设置 RGB LED 的亮度。

参数:

brightness (float) – 亮度值(0-100)。

UIFLOW2:

set_led_brightness.png

Joystick2Unit.fill_color(v)

设置摇杆的 RGB LED 颜色。

参数:

v – RGB 值(0x000000-0xFFFFFF)。

UIFLOW2:

fill_color.png

Joystick2Unit.fill_color_rgb(r, g, b)

设置摇杆的 RGB LED 颜色。

参数:
  • r (int) – 红色的值(0-255)。

  • g (int) – 绿色值(0-255)。

  • b (int) – 蓝色值(0-255)。

Joystick2Unit.set_axis_x_mapping(adc_neg_min, adc_neg_max, adc_pos_min, adc_pos_max)
Set the mapping parameters of the X-axis.

ADC Raw     0                                                    65536
            |------------------------------------------------------|
Mapped    -4096                   0           0                   4096
            |---------------------|-dead zone-|--------------------|
      adc_neg_min        adc_neg_max        adc_pos_min         adc_pos_max
参数:
  • adc_neg_min (int) – 负范围的最小 ADC 值。

  • adc_neg_max (int) – 负范围的最大 ADC 值。

  • adc_pos_min (int) – 正范围的最小 ADC 值。

  • adc_pos_max (int) – 正向范围的最大 ADC 值。

UIFLOW2:

set_axis_x_mapping.png

Joystick2Unit.set_axis_y_mapping(adc_neg_min, adc_neg_max, adc_pos_min, adc_pos_max)
Set the mapping parameters of the Y-axis.

ADC Raw     0                                                    65536
            |------------------------------------------------------|
Mapped    -4096                   0           0                   4096
            |---------------------|-dead zone-|--------------------|
      adc_neg_min        adc_neg_max        adc_pos_min         adc_pos_max
参数:
  • adc_neg_min (int) – 负范围的最小 ADC 值。

  • adc_neg_max (int) – 负范围的最大 ADC 值。

  • adc_pos_min (int) – 正范围的最小 ADC 值。

  • adc_pos_max (int) – 正向范围的最大 ADC 值。

UIFLOW2:

set_axis_y_mapping.png

Joystick2Unit.set_deadzone_adc(x_adc_raw, y_adc_raw)

设置摇杆的死区。

参数:
  • x_adc_raw (int) – X 轴的死区。范围为 0 到 32768。

  • y_adc_raw (int) – Y 轴的死区。范围为 0 到 32768。

UIFLOW2:

set_deadzone_adc.png

Joystick2Unit.set_deadzone_position(x_pos, y_pos)

设置摇杆的死区。

参数:
  • x_pos (int) – X 轴的死区。范围为 0 到 4096。

  • y_pos (int) – Y 轴的死区。范围为 0 到 4096。

UIFLOW2:

set_deadzone_position.png

Joystick2Unit.get_axis_position()

读取摇杆的位置。

Return (tuple):

返回一个包含 X 轴和 Y 轴位置的元组。取值范围为 -4096 到 4096。

UIFLOW2:

get_axis_position.png

Joystick2Unit.set_address(address)

设置 Joystick Unit 的 I2C 地址。

参数:

address (int) – 要设置的 I2C 地址。

Joystick2Unit.get_firmware_version()

读取 Joystick Unit 的固件版本。

Return (int):

Returns the firmware version.

UIFLOW2:

get_firmware_version.png

Joystick2Unit.get_x_raw()

读取摇杆的 X 轴原始值。

Return (int):

返回原始 X 轴数值。

UIFLOW2:

get_x_raw.png

Joystick2Unit.get_y_raw()

读取摇杆的 Y 轴原始值。

Return (int):

返回原始 Y 轴值。

UIFLOW2:

get_y_raw.png

Joystick2Unit.get_x_position()

读取摇杆的 X 轴位置。

Return (int):

Returns

UIFLOW2:

get_x_position.png

Joystick2Unit.get_y_position()

读取摇杆的 Y 轴位置。

Return (int):

返回 Y 轴位置。

UIFLOW2:

get_y_position.png