v4.3.3

v4.3.3 新增了 OpenMV Cam H7 Pro 开发板、立体视差成像、网络服务器库(ping / FTP / Telnet)、Nicla Vision 蓝牙和 MicroSpeech,以及若干新传感器。捆绑的内置 TensorFlow 模型被替换——请阅读下方的破坏性变更说明。

亮点

  • OpenMV Cam H7 Pro 开发板支持。

  • 立体视差 —— Arduino Portenta 上的 Image.stereo_disparity()

  • 网络服务器 —— 新的 uping / uftpd / utelnet 库。

  • Arduino Nicla Vision —— 蓝牙、SPI5、MicroSpeech 以及完整的开发板包。

  • 破坏性变更: 内置 TensorFlow 模型被替换,部分开发板的 LED 引脚被重命名——参见破坏性变更说明。

新功能

  • 立体视差 —— 新的 Image.stereo_disparity(reversed=False, max_disparity=64, threshold=...) 方法,可在 Arduino Portenta 上生成立体深度图。

  • 网络库 —— 新增 uping(ping)、uftpd(FTP 服务器)和 utelnet(Telnet 服务器)。

  • 基于 SPI/I2C 的 IMU —— LSM6DSOX 驱动新增了 SPI 总线模式(并捆绑在 Nicla Vision 上);新增了通过 I2C 以及 SPI 的 LSM6DS3 IMU 支持。

  • 传感器掉电 —— sensor.sleep() 现在会真正使 GC2145 掉电。

其他变更与改进

  • 通过 MicroPython 子模块更新,为 Arduino Nicla Vision / Portenta 进行了开发板配置更新(引脚别名、UART 修复)。

  • HIMAX HM0360 现在使用其内部振荡器运行(当请求的 xclk 频率为 0 时,STM32 端口停止驱动外部时钟)。

错误修复

  • USB 调试器现在会在阻塞等待命令时处理 USB IRQ,因此在 USB IRQ 被禁用时调试命令不再挂起。

  • 修复了脚本在未被中断的情况下结束时出现的未处理异常(STM32)、一个伪 VSYNC-IRQ 处理错误(现在会检查 EXTI GPIO 源)、SD 卡 DMA_BUFFER 路径,以及引导加载程序的 USB 大容量存储(文件系统)模式。

硬件与开发板支持

  • OpenMV Cam H7 Pro —— 新开发板。

  • Arduino Nicla Vision —— 蓝牙、SPI5、MicroSpeech、完整的开发板包及示例。

  • 新传感器 —— 彩色 MT9V0xx 变体以及 HIMAX HM0360。

  • 引导加载程序 —— USB 高速支持(可按开发板配置)以及早期引脚配置。

破坏性 API 变更

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

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

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

  • behavior —— API 相同,但结果不同;请重新检查经过调优的脚本。

变更按影响顺序分组。每个提交哈希都链接到其在 GitHub 上的 diff。

Nicla Vision / Portenta LED 引脚重命名 (minor)

Arduino Nicla Vision 和 Arduino Portenta 上的 LED 引脚名称被重命名。在这些开发板上引用旧 LED 引脚名称的脚本必须更新为新名称。

提交: b7a253e570aaf296e7

内置模型被替换;ToF 改用专用 I2C 总线 (behavior)

捆绑的内置 TensorFlow 模型从 person_detection 改为更小得多的 FOMO fomo_face_detection 模型(标签 "face")。曾加载内置人体检测模型的脚本必须改为提供自己的模型。另外,ToF 传感器现在使用专用的 I2C 总线(TOF_I2C_ID)而非共享 FIR I2C 总线,这会改变同时使用两者的开发板上的底层总线。

提交: 53b5b07867d79afac5

迁移清单

若要顺利移植到 v4.3.3:更新旧的 Nicla Vision / Portenta LED 引脚名称(LED 引脚重命名),并将任何对内置人体检测模型的使用替换为你自己的模型(模型/ToF 变更)。所有其他脚本均可原样运行。