v4.4.0

v4.4.0 新增了 tf.regression() API、OpenMV Cam H7 Pro 上的 FLIR Lepton 支持、Arduino Nicla Vision 上的 Cortex-M4 协处理器支持,以及 MicroPython 1.19。部分板级专用模块以及 WiFi/LCD 行为有所变化——请阅读下方的破坏性变更。

亮点

  • tf.regression() —— 运行一维输入/一维输出的 TensorFlow Lite 回归模型。

  • 在 OpenMV Cam H7 Pro 上支持 FLIR Lepton 热成像传感器。

  • Arduino Nicla Vision —— Cortex-M4 协处理器支持、可用的 MicroSpeech、LPUART1。

  • MicroPython 更新至 1.19;ulab 更新至 5.1.1。

  • 破坏性变更: Nicla Vision 的 lcd/tv 模块已被禁用,RP2040 Connect 的 WiFi 驱动也已变更——请参阅破坏性变更。

新功能

  • tf.regression(model, input_array) —— 用于一维输入/输出 TensorFlow Lite 回归模型的新函数,返回一个浮点数输出列表。

  • GC2145 控制 —— sensor.set_auto_exposure()sensor.set_auto_whitebal() 现在在 GC2145 上可用(可禁用自动曝光/白平衡;尚不支持显式设置曝光/增益)。

  • Arduino Nicla Vision —— 启用了 Cortex-M4 (CM4) 协处理器支持和 LPUART1 外设。

  • machine.Pin —— USB_VBUS 引脚现已向用户脚本开放。

其他变更与改进

  • MicroPython 更新至 1.19;ulab 更新至 5.1.1;捆绑的 cyw43 WiFi 驱动也已更新。

  • RP2(Arduino Nano RP2040 Connect)和 nRF(Arduino Nano 33 BLE Sense)端口已切换为基于 TinyUSB 的新调试器,用于 IDE/主机连接。

  • OV7670 的 XCLK 从 12 MHz 提高到了 24 MHz(更新了寄存器配置)。

错误修复

摄像头与传感器:

  • OpenMV Pure Thermal 的色块温度统计现在使用 IR 图像而非彩色图像,因此每个色块的平均温度才是正确的。

  • 修复了 draw_image() 的 ROI 处理和面积缩放,使缩放输出更准确。

  • 软复位后会重新初始化 IMU,使其在 IMU SPI 总线启用时仍能正常工作。

系统:

  • 修复了 FAST/AGAST 特征检测、色块检测、CLAHE 以及 LCD/TV 驱动中的有符号/无符号比较问题;修复了 STM32 摄像头 GPIO / SPI / DAC 的反初始化、H7 LPUART 引脚映射,以及 STM32Cube.AI nn 模块的注册。

Arduino Nicla Vision:

  • MicroSpeech 现已可用(PDM 缓冲区翻倍,并新增了示例),同时修复了低功耗待机模式。

硬件与板级支持

  • OpenMV Cam H7 Pro —— 支持 FLIR Lepton 热成像传感器。

  • Arduino Nicla Vision —— CM4 协处理器、LPUART1、MicroSpeech、低功耗待机。

破坏性 API 变更

v4.3.3 与 v4.4.0 之间用户可见的 API 破坏性变更。范围:modules/ 中的 Python C 模块和 scripts/libraries/ 中的 Python 库。

每项变更都标注了其影响:

  • minor(次要)—— 窄范围 API;仅影响特定开发板上的脚本。

  • behavior(行为)—— API 相同但结果不同;请重新检查已调优的脚本。

变更按上述影响顺序分组。如果你只想移植代码,可直接跳到末尾的 迁移检查清单。每个提交哈希都链接到其在 GitHub 上的 diff。

Nicla Vision 模块与 RP2040 WiFi (minor)

在 Arduino Nicla Vision 上,lcdtv 模块已被禁用,以便为 CM4 协处理器支持腾出内存——在 Nicla Vision 上使用这些模块的脚本将再也找不到它们。Arduino Nano RP2040 Connect 已从 OpenMV 自定义的 WiFi/nina 实现切换到上游 MicroPython 的 NINA-W10 驱动/模块,其 API 有所不同。

提交: f78d191e3ddf01cb09

WiFi 套接字超时与 LCD 垂直翻转 (behavior)

WINC1500 套接字超时现在返回非阻塞错误(EWOULDBLOCK)而非 ETIMEDOUT,因此超时的套接字不再被意外关闭——捕获 ETIMEDOUT 的代码必须更新。SPI LCD 扩展板的 display 现在会在请求负的 y_scale 而未启用三重缓冲时抛出 ValueError("Vertical flip requires triple buffering!")。

提交: 1dc4bea887e52cf751

迁移检查清单

若要顺利移植到 v4.4.0,通常需要做的工作是:

  1. 在 Nicla Vision 上,停止使用 lcd/tv;在 Nano RP2040 Connect 上,将 WiFi 代码移植到上游 NINA-W10 驱动(板级模块变更)。

  2. 更新 WINC1500 套接字代码以预期超时时返回 EWOULDBLOCK,并为垂直翻转的 LCD 输出启用三重缓冲(行为变更)。