Cardputer Adv
支持以下产品:
Cardputer Adv 提供内置 I2C 键盘控制器。在 UiFlow2 MicroPython 中,使用 MatrixKeyboard 作为高级键盘接口。它会自动为 Cardputer 和 Cardputer Adv 选择正确的键盘后端。
MicroPython 示例
轮询键盘输入
该示例每次读取一个按键事件。get_key() 和 get_string() 都会消耗一个待处理按键事件,因此每次读取时二者选择其一即可。
import time
from hardware import MatrixKeyboard
kb = MatrixKeyboard()
while True:
if kb.is_pressed():
text = kb.get_string()
print(text)
time.sleep_ms(20)
回调键盘输入
该示例注册一个回调函数,然后从 MatrixKeyboard 实例读取待处理的按键码。
import time
from hardware import MatrixKeyboard
kb = MatrixKeyboard()
def key_event(_):
key = kb.get_key()
if key is not None:
print(key, chr(key))
kb.set_callback(key_event)
while True:
time.sleep_ms(20)
API
MatrixKeyboard
- class hardware.matrix_keyboard.MatrixKeyboard
创建当前主机的内置键盘接口。在 Cardputer Adv 上,键盘通过内部 I2C 键盘控制器连接。
- MatrixKeyboard.get_key() int | None
返回下一个按下按键的按键码;没有待处理按键事件时返回
None。可打印按键返回 ASCII 按键码。对于不可打印按键和导航按键,请使用此方法。
- MatrixKeyboard.get_string() str | None
将下一个按下的按键作为单字符字符串返回;没有待处理按键事件时返回
None。此方法会用
chr()转换get_key()返回的值。当按键码比字符串更有用时,请改用get_key()。
- MatrixKeyboard.is_key_pressed(keycode: int) bool
当指定按键码当前处于按下状态时返回
True。在 Cardputer Adv 上,
FN+`会报告ESC,可使用0x1B检测。
- MatrixKeyboard.set_callback(handler) None
注册按键按下事件的回调函数。
回调函数会接收当前活动键盘对象作为唯一参数。为了让代码在 Cardputer 和 Cardputer Adv 上保持兼容,请在回调函数中从你的
MatrixKeyboard实例读取待处理事件。
