1. 文档中心
  2. 比卜创造 Micro:bit
  3. API 参考
  4. 电源

电源管理

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

双 MCU 电源示意
双 MCU 电源示意

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 功能,如 MICROBIT USB 驱动器与 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 事件。