v4.2.2¶
v4.2.2 新增了 PNG 图像支持(通过 lodepng 进行解码/编码)、表驱动的内置模型加载器、Portenta OV5640 支持、Edge-Impulse TensorFlow 更新以及 ulab 4.0。RPC CAN 配置 API 发生了变更——请阅读下方的破坏性变更说明。
亮点¶
PNG 支持 ——
Image.to_png()、image.PNG以及 PNG 文件的读/写。tf.load_builtin_model()—— 表驱动的内置模型,可在构建时进行替换或添加。Portenta H7 —— OV5640 摄像头支持(含自动对焦)。
MicroPython/ulab —— ulab 已更新至 4.0.0。
破坏性变更: RPC CAN 配置 API 发生了变更——参见破坏性变更说明。
新功能¶
PNG 图像格式 —— 新增
Image.to_png()方法、image.PNG/PIXFORMAT_PNG常量、PNG 文件加载/保存(读/写.png),以及通过集成的 lodepng 编解码器在image.to()转换中输出 PNG。tf.load_builtin_model(path)—— 加载固件内置模型并返回(labels, net)元组;内置模型现已改为表驱动,因此可在构建时进行替换或添加。
其他变更与改进¶
TensorFlow / Edge Impulse —— 捆绑的推理库已更新至 Edge Impulse ei-V2.5.0,
person_detection模型被移入内置模型表,并在所有 Cortex-M0+/M4/M7/M55 构建中补齐了缺失的 TensorFlow 算子,以便运行更多 Edge Impulse 模型。ulab 已更新至 4.0.0。
现在以 1200 bps 打开 USB 虚拟串口会触发类似 Arduino 的 touch 复位,进入引导加载程序。
WINC1500 WiFi 模块固件已更新至 19.7.6(含更新脚本),并且现在会报告实际的主机驱动版本。
RP2 端口现在会打印 "MPY: soft reboot",并新增了 UART 的初始化/反初始化。
错误修复¶
修复了 Arduino Nano RP2040 Connect 的原始帧缓冲区大小以及 Arduino Nicla Vision 的 USB 产品 ID(确保正确的 USB 枚举)。
硬件与开发板支持¶
Arduino Portenta H7 —— OV5640 摄像头支持(含自动对焦);GC2145 在 Portenta 上被禁用。
Arduino Nano RP2040 Connect —— 内存配置以及全新文件系统模板。
WiFi Shield (WINC1500) —— 固件已更新至 19.7.6。
破坏性 API 变更¶
v4.2.1 与 v4.2.2 之间面向用户可见的 API 破坏性变更。范围:modules/ 中的 Python C 模块以及 scripts/libraries/ 中的 Python 库。
每项变更都标注了其影响:
minor —— 范围狭窄的 API;仅影响使用了它的脚本。
behavior —— API 相同,但结果不同;请重新检查经过调优的脚本。
变更按影响顺序分组。每个提交哈希都链接到其在 GitHub 上的 diff。
RPC CAN 配置 API (minor)¶
在 rpc 库中,rpc_can_master / rpc_can_slave 的 CAN 关键字参数 sampling_point 被重命名为 sample_point(以与上游 MicroPython 保持一致),并移除了手动 CAN 位定时辅助函数——CAN 总线现在通过 CAN(..., baudrate=, sample_point=) 进行配置。传入 sampling_point 或依赖旧位定时计算的脚本必须更新。
image.format() 与压缩图像 (behavior)¶
随着为 PNG 添加的统一压缩图像路径,image.format() 现在对未知格式返回 PIXFORMAT_INVALID,并且压缩图像的索引 / 迭代 / 打印现在同时涵盖 PNG 与 JPEG。曾检查未知格式旧返回值的代码应重新检查。
提交: f12a4659c
迁移清单¶
若要顺利移植到 v4.2.2:将 RPC CAN 的 sampling_point 重命名为 sample_point 并删除任何手动 CAN 位定时设置(RPC CAN 变更),并重新检查任何曾针对未知格式检查 image.format() 的代码(format() 变更)。