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 上的差異。
NINA / RP2 WiFi API 經過重新設計 (minor)¶
NINA / RP2 WLAN 驅動程式經過重新設計以符合上游 MicroPython / CYW43 network 介面:WLAN(interface) 建構函式(STA/AP 模式)、新的 active([bool]) 方法、config / start_ap 作為 connect 的別名、connect() 的 ssid 引數更名為 essid、新的 channel 關鍵字,以及 nina.fw_version() 現在會傳回 (major, minor, patch) 元組而非原始位元組。NINA 韌體版本不符現在是非致命警告,而非 OSError。
感測器錯誤現在會引發 RuntimeError (behavior)¶
感測器錯誤回報已圍繞統一的錯誤碼表進行標準化:相機故障(擷取逾時、無效的 framesize/pixformat/window/framerate、framebuffer 錯誤、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(感測器錯誤變更)。