v4.1.0¶
v4.1.0 带来了对 Arduino Nano RP2040 Connect / Raspberry Pi Pico 的完整支持(WiFi、蓝牙、摄像头捕获、跳转至引导加载程序)、直接的 JPEG 图像解码、冻结的 urequests HTTP 客户端、OV7670 传感器支持以及标准化的传感器错误报告。WiFi API 和传感器异常发生了变化——请阅读下方的重大变更。
亮点¶
RP2 开发板——Arduino Nano RP2040 Connect / Pico 获得了 WiFi(NINA-W10)、蓝牙(NimBLE)、摄像头/DCMI 捕获以及跳转至引导加载程序的能力。
JPEG 解码——图像操作现在可以直接接受压缩的 JPEG 图像。
urequestsHTTP 客户端被冻结进固件。OV7670 摄像头传感器支持。
重大变更: NINA/RP2 WiFi API 经过了重构,多个传感器错误现在会抛出
RuntimeError——参见重大变更。
新功能¶
Arduino Nano RP2040 Connect / Raspberry Pi Pico——通过 NINA-W10
network驱动实现 WiFi、蓝牙/NimBLE、摄像头捕获(DCMI PIO 程序)以及跳转至引导加载程序命令。JPEG 图像解码——
find_apriltags()、lcd.display()、tv.display()及相关图像操作现在可以直接接受压缩的 JPEG 图像(解码为二进制/灰度/RGB565)。urequests——HTTP 客户端(GET/POST/PUT/...)现在被冻结进 OpenMV 4 / 4 Plus / Portenta / Nicla,并附带一个http_post.py示例。ble_advertising辅助库,被冻结进 Nano RP2040 Connect。主机/调试——
pyopenmv.reset_to_bl()以及一个新的USBDBG_SYS_RESET_TO_BL(0x0E)命令,用于复位进入引导加载程序;在 Arduino Nano 33 BLE Sense 上跳转至引导加载程序。OV7670——新增 OV7670 摄像头传感器支持,可在 OpenMV 4 上选用。
其他变更与改进¶
RP2 UDP 套接字在未绑定使用时会自动绑定到一个临时端口;捆绑的 MicroPython 子模块已更新。
错误修复¶
网络:
修复了 NINA WiFi 套接字的 accept/close/send/recv/bind 处理及操作超时问题,以及一个可能损坏 IDE 输出的 RP2 调试文本缓冲区竞态问题。
摄像头与系统:
修复了 HM01B0 复位、OpenMV H7 上传感器扫描失败后摄像头 I2C 总线卡死、H7 ULPI 在 USB 断开时进入低功耗、H7 ADC 引脚生成,以及 Portenta 摄像头引脚分布 / 扩展板 SPI-CS 等问题。
硬件与开发板支持¶
Arduino Nano RP2040 Connect / Raspberry Pi Pico——WiFi、蓝牙、摄像头、更大的闪存文件系统、MSC 引导加载程序。
OV7670 摄像头传感器(OpenMV 4)。
Arduino Portenta H7——扩展接口 I2C4、额外的 PWM/时钟引脚、OV7725 / MT9V034 传感器。
重大 API 变更¶
v4.0.2 与 v4.1.0 之间面向用户可见的 API 变更。范围:modules/ 中的 Python C 模块和 scripts/libraries/ 中的 Python 库。
每项变更都标注了其影响:
minor——影响范围窄的 API;仅影响使用过它的脚本。
behavior——API 相同但结果不同;请重新检查已调优的脚本。
变更按影响程度依次分组。如果你只想移植代码,可直接跳到末尾的 迁移检查清单。每个提交哈希都链接到其在 GitHub 上的 diff。
NINA / RP2 WiFi API 重构 (minor)¶
NINA / RP2 WLAN 驱动经过重构,以匹配上游 MicroPython / CYW43 的 network 接口:新增 WLAN(interface) 构造函数(STA/AP 模式)、新的 active([bool]) 方法、作为 connect 别名的 config / start_ap,connect() 的 ssid 参数被重命名为 essid,新增 channel 关键字参数,且 nina.fw_version() 现在返回 (major, minor, patch) 元组而非原始字节。NINA 固件版本不匹配现在是一个非致命警告,而不再是 OSError。
传感器错误现在抛出 RuntimeError (behavior)¶
传感器错误报告围绕一张统一的错误码表进行了标准化:摄像头故障(捕获超时、无效的 framesize/pixformat/window/framerate、帧缓冲区错误、JPEG 溢出、未检测到传感器等)现在会抛出一致且具描述性的消息,且若干之前抛出 ValueError 的情形现在改为抛出 RuntimeError(包括 sensor.reset())。对于这些情形捕获 ValueError 的代码必须改为捕获 RuntimeError。
迁移检查清单¶
要干净地移植到 v4.1.0,通常的工作是:
将 NINA/RP2 WiFi 代码移植到标准的
network.WLAN接口(WLAN(interface)、active()、essid=),并预期nina.fw_version()返回一个元组(WiFi API 变更)。在摄像头 /
sensor.reset()错误处理中,将except ValueError改为except RuntimeError(传感器错误变更)。