电源管理
power 模块用于管理 micro:bit 的电源模式。

BiBoPython 可请求两种 micro:bit 板级低功耗模式:
- 深度睡眠(Deep Sleep):低功耗模式,可通过多种来源唤醒(引脚、按钮、UART 数据或定时器)并恢复运行。
- 关闭(Off):功耗最低的模式,仅能通过复位按钮唤醒,或在电池供电时插入 USB 线唤醒。唤醒后micro:bit会重启,程序从头开始执行。
有关这些低功耗模式工作原理的更多信息,见详细信息一节。
函数
off()
将micro:bit降至尽可能低的功耗模式。
效果相当于长按复位按钮数秒,进入「关闭模式」。
micro:bit 仅在按下复位按钮时唤醒;若使用电池供电,插入 USB 线时也会唤醒。
唤醒后micro:bit从复位状态启动,程序从头开始运行。
deep_sleep(ms=None, wake_on=None, run_every=True)
将 micro:bit 设为低功耗模式,可唤醒并继续运行。
程序状态会被保留,唤醒后从暂停处继续执行。
深度睡眠比关闭模式消耗更多电量。
通过参数配置唤醒源。
收到 UART 数据、按下复位按钮(会复位micro:bit)时,或在电池供电下插入 USB 线时,micro:bit总会唤醒。
当 run_every 为 True(默认)时,通过 bibo.run_every 调度的函数会短暂唤醒micro:bit运行,完成后再次进入睡眠。
参数:
ms:唤醒前等待的毫秒数。wake_on:单个或元组形式的引脚和/或按钮,用于唤醒,例如deep_sleep(wake_on=button_a)或deep_sleep(wake_on=(pin0, pin2, button_b))。run_every:布尔值,配置bibo.run_every调度的函数在睡眠期间是否继续运行。
详细信息
micro:bit 板载两颗微控制器(MCU),可独立睡眠或唤醒:
- 目标 MCU(Target MCU) — 运行 BiBoPython 与你的代码。
- 接口 MCU(Interface MCU) — 提供 USB 功能,如
MICROBITUSB 驱动器与 USB 串口。
每颗 MCU 可处于以下「MCU 电源模式」之一:
- 唤醒(Awake):正常运行。
- 睡眠(Sleep):低功耗模式,可从不同来源唤醒并继续运行。
- 掉电(Power Down):单颗 MCU 的最低功耗模式,唤醒后从复位状态启动。
Python 代码可请求「板级电源模式」——深度睡眠或关闭——这会将目标 MCU 设为特定「MCU 电源模式」,而接口 MCU 的模式取决于 micro:bit 的供电方式(USB 或电池)。
本质上,电池供电时接口 MCU 可进入低功耗模式;通过 USB 连接电脑时,为维持 USB 连接,接口 MCU 会保持唤醒。
USB 供电(接口 MCU 始终唤醒)
| 板级电源模式 | 目标 MCU 模式 | 接口 MCU 模式 |
|---|---|---|
| 深度睡眠 | 睡眠 | 唤醒 |
| 关闭 | 掉电 | 唤醒(红灯闪烁) |
电池供电
| 板级电源模式 | 目标 MCU 模式 | 接口 MCU 模式 |
|---|---|---|
| 深度睡眠 | 睡眠 | 睡眠 |
| 关闭 | 掉电 | 掉电 |
深度睡眠与 run_every
为确保 bibo.run_every 函数在「深度睡眠」期间继续运行,micro:bit 会在正确时间唤醒以执行下一次调度的 run_every,该 run_every 完成后立即回到「深度睡眠」模式。此过程会持续,直到 ms 超时到达或发生 wake_on 事件。