新买了个迷你主机(Beelink Ser5), 用 U 盘安装系统时(强烈推荐ventoy)需要用到 usb 键盘。家里没有 usb 键盘。在犹豫是否淘宝下单买一个, 想到平时用不着(家里有蓝牙键盘),买来估计只用这一次。犹豫之际,想到或许可以用 MicroBlocks 对 树莓派 Pico 板子编程,临时做一个 usb 键盘!

我用的是恩孚之前送给我的 Pico 板子(Pico:ed),板子上一共有两个按键。 我将板子左边的键制(A 键)作为键盘的下方向键, 右边的键(B 键)作为上方向键。还需要回车键来确定选项,当他们一起按下时,模仿键盘发出回车信号。这还不够,为了开机进入 U 盘,还得按下 F7 键(大部分电脑是 F12,但 Beelink Ser5 是 F7), 我将"板子启动"事件映射为 F7 按键。这样,就将个两个按键的板子,打造成了有四个按键的键盘。最终启动了新系统:

临时制造的键盘, 用到的所有 MicroBlocks 代码:

前边说到, 板子左边的键制(A 键)作为键盘的下方向键, 代码中为何是217键,这是因为 ⬇️ 方向键对应的键码是 217(0xDA), 参考Keyboard.h。其他按键同理。

你不需要记忆这些键码,只需要从积木的下拉菜单选择即可,MicroBlocks 会自动转化:

还有一处需要解释一下,前边说到: 我将"板子启动"事件映射为 F7 按键(对应键码 200) 。 代码中为何在板子启动后多次按下 F7 键? 这类似于用键盘安装系统时,为了进入 U 盘安装界面,会多次按下相应按键,因为不知道什么时候是合适的时机。

项目代码

后来我发现,这个临时键盘的作用可不是一次性的。我在这个迷你主机里安装了双系统( Windows + Ubuntu) ,启动时选择操作系统需要用到 USB 键盘。我在 Ubuntu 中安装了 Folk Computer ,有时需要出门携带它做演示,而我的临时键盘是如此地便携!

MicroBlocks 将我的板子成了一个易用的通用图灵机,可以临时模拟各种我需要的设备,让我不必为了偶尔一次的需求囤积东西。

参考