Tab5 Keyboard
Keyboard 类通过 I2C 控制 Tab5 键盘控制器。它支持字符输入回调、原始按键矩阵事件、键盘模式配置、背光亮度、RGB LED 设置和 I2C 地址管理。
UiFlow2 应用示例
键盘输入
在 UiFlow2 中打开 tab5_keyboard_example.m5f2 项目。
该示例演示从 Tab5 键盘读取字符输入,并将其追加到文本区域。
UiFlow2 代码块:
示例输出:
None
MicroPython 应用示例
键盘输入
该示例演示从 Tab5 键盘读取字符输入,并将其追加到文本区域。
MicroPython 代码块:
1# SPDX-FileCopyrightText: 2026 M5Stack Technology CO LTD 2# 3# SPDX-License-Identifier: MIT 4 5import os, sys, io 6import M5 7from M5 import * 8import m5ui 9import lvgl as lv 10from tab5 import Keyboard 11from hardware import Pin 12from hardware import SoftI2C 13 14 15page0 = None 16textarea0 = None 17tab5_keyboard_0 = None 18 19 20key_char = None 21 22 23def tab5_keyboard_0_char_pressed_event(kb): 24 global page0, textarea0, tab5_keyboard_0, key_char 25 key_char = kb 26 textarea0.add_text(str(key_char)) 27 28 29def setup(): 30 global page0, textarea0, tab5_keyboard_0, key_char 31 32 M5.begin() 33 Widgets.setRotation(3) 34 m5ui.init() 35 page0 = m5ui.M5Page(bg_c=0xFFFFFF) 36 textarea0 = m5ui.M5TextArea( 37 text="textarea0", 38 placeholder="Placeholder...", 39 x=0, 40 y=0, 41 w=1280, 42 h=720, 43 font=lv.font_montserrat_24, 44 bg_c=0xFFFFFF, 45 border_c=0xE0E0E0, 46 text_c=0x212121, 47 parent=page0, 48 ) 49 50 softi2c_0 = SoftI2C(scl=Pin(1), sda=Pin(0), freq=100000) 51 tab5_keyboard_0 = Keyboard(softi2c_0, 0x6D) 52 tab5_keyboard_0.set_callback(tab5_keyboard_0_char_pressed_event) 53 tab5_keyboard_0.set_keyboard_mode(tab5_keyboard_0.MODE_CHAR) 54 page0.screen_load() 55 textarea0.set_text("") 56 57 58def loop(): 59 global page0, textarea0, tab5_keyboard_0, key_char 60 M5.update() 61 tab5_keyboard_0.tick() 62 63 64if __name__ == "__main__": 65 try: 66 setup() 67 while True: 68 loop() 69 except (Exception, KeyboardInterrupt) as e: 70 try: 71 m5ui.deinit() 72 from utility import print_error_msg 73 74 print_error_msg(e) 75 except ImportError: 76 print("please update to latest firmware")
示例输出:
None
API参考
Keyboard
- class tab5.keyboard.Keyboard(i2c, address=109)
基类:
object创建 Tab5 键盘控制器对象。
- 参数:
i2c (I2C) – Tab5 键盘连接到的 I2C 总线。
address (int) – 键盘控制器的 I2C 地址。默认值为
0x6D。
UiFlow2 代码块:

MicroPython 代码块:
from tab5 import Keyboard from hardware import Pin, SoftI2C softi2c_0 = SoftI2C(scl=Pin(1), sda=Pin(0), freq=100000) keyboard = Keyboard(softi2c_0, 0x6D)
- clear_int()
清除当前键盘中断状态。
- 返回类型:
None
- set_brightness(brightness)
设置键盘背光亮度。
- 参数:
brightness (int) – 亮度值范围为
0到255。- 返回类型:
None
UiFlow2 代码块:

MicroPython 代码块:
keyboard.set_brightness(20)
- get_brightness()
获取键盘背光亮度。
- 返回:
当前亮度值。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
keyboard.get_brightness()
- set_keyboard_mode(mode)
设置键盘事件模式。
- 参数:
mode (int) – 事件模式,例如
MODE_NORMAL或MODE_CHAR。- 返回类型:
None
UiFlow2 代码块:

MicroPython 代码块:
keyboard.set_keyboard_mode(keyboard.MODE_CHAR)
- set_rgb_mode(mode)
设置 RGB LED 控制模式。
- 参数:
mode (int) – RGB 模式,例如
RGB_MODE_BOUND或RGB_MODE_CUSTOM。- 返回类型:
None
UiFlow2 代码块:

MicroPython 代码块:
keyboard.set_rgb_mode(keyboard.RGB_MODE_BOUND)
- set_callback(handler)
注册由
tick()使用的回调函数。- 参数:
handler (callable) – 接收键盘事件载荷的回调函数。
MicroPython 代码块:
def on_keyboard(data): print(data) keyboard.set_callback(on_keyboard)
- tick()
将一个待处理键盘事件分发给已注册的回调函数。
- set_rgb_color(led_num, color)
设置键盘 RGB LED 的颜色。
UiFlow2 代码块:

MicroPython 代码块:
keyboard.set_rgb_color(0, 0x6600CC)
- get_rgb_color(led_num)
获取键盘 RGB LED 的颜色。
UiFlow2 代码块:

MicroPython 代码块:
keyboard.get_rgb_color(0)
- get_firmware_version()
获取键盘控制器的固件版本。
- 返回:
固件版本字节。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
keyboard.get_firmware_version()
- set_i2c_address(addr)
为键盘控制器设置新的 I2C 地址。
UiFlow2 代码块:

MicroPython 代码块:
keyboard.set_i2c_address(0x6D)

