v1.7.0

v1.7.0 引入了 cpufreq 模組(CPU 頻率/超頻控制)、MicroPython 的 os 模組、MLX 熱感測器更新率/解析度控制,以及初步的 OpenMV Cam M7(STM32F7)開發板支援。fir.init() 的簽章、超大影格的處理方式,以及預設 JPEG 品質都有變更——請閱讀下方的破壞性變更。

重點摘要

  • cpufreq 模組——查詢/設定 CPU 頻率,並附有超頻範例。

  • os 模組——現已可使用 MicroPython 的 os 模組。

  • MLX 熱感測器——fir.init() 可接受更新率與 ADC 解析度。

  • OpenMV Cam M7——初步的 STM32F7 開發板支援。

  • 破壞性變更: fir.init() 現在僅接受關鍵字引數、超大影格會自動裁切,且預設 JPEG 品質已降低——請參閱破壞性變更。

新功能

  • cpufreq——新增 cpufreq 模組,提供 cpufreq.get_frequency()cpufreq.set_frequency() 以及 CPUFREQ_120MHZ144168192216MHZ 常數,並附有 overclocking.py 範例。

  • os——啟用 MicroPython 的 os 模組。

  • MLX / FIR——fir.init() 現在可接受更新率與 ADC 解析度,並為 MLX 熱感測器提供對應的 refreshresolution 控制。

其他變更與改進

  • 調整了 OV7725 的 AGC/AEC 區域(減少動態模糊)、為 OV7725 啟用了 DSP 純色彩條,並修正了 IDE 的影格緩衝區串流(不再有過期/重複的影格)。

錯誤修正

  • 修正了 sensor.snapshot() 中的 DCMI/DMA 傳輸大小溢位、整理了 JPEG 壓縮的緩衝區溢位處理、改善了 OV7725 的 AEC/AGC 運作區域以獲得更佳的自動曝光/增益,並修正了 OV7725 的彩色條/自我測試指令碼。

硬體與開發板支援

  • OpenMV Cam M7(STM32F7 / OPENMV7)——初步的開發板與開機載入程式支援。

  • OpenMV 2——感測器時脈改由 MCO 輸出驅動。

破壞性 API 變更

v1.6.0 與 v1.7.0 之間使用者可見的 API 破壞性變更。範圍:modules/ 中的 Python C 模組與 scripts/libraries/ 中的 Python 函式庫。

每項變更都標註了其影響程度:

  • minor——影響範圍狹窄的 API;只影響有使用到它的指令碼。

  • behavior——API 相同,但結果不同;請重新檢查已調校的指令碼。

各項變更依影響程度依序分組。如果你只是想移植程式碼,請直接跳到結尾的 遷移檢查清單。每個提交雜湊都連結到其在 GitHub 上的差異。

fir.init() 現在僅接受關鍵字引數 (minor)

fir.init() 經過重新設計,改為接受關鍵字引數(type=refresh=resolution=refresh 預設 64 Hz、最大 512 Hz),不再使用位置引數。請將位置引數形式的 fir.init(...) 呼叫改為關鍵字形式。

Commits: 958c5b7f7

超大影格自動裁切為 QVGA (behavior)

sensor.snapshot() 在原始影格超過開發板最大原始影格大小時不再拋出例外——超大原始影格現在會改為以視窗裁切為 QVGA(只有 JPEG 模式的原始影格仍會被拒絕)。如果你原本依賴先前的錯誤行為,請改選一個支援的影格大小。

Commits: b655a5488, abace9e4f

OpenMV 2 的最大影格大小降為 QVGA (behavior)

在 OpenMV 2 上,最大積分影像/原始/色塊影格大小已從 VGA 降為 QVGA。在 OpenMV 2 上對灰階/RGB565/色塊/積分影像運算要求 VGA 時,現在會裁切為 QVGA——請重新設計在該開發板上依賴 VGA 處理的指令碼。

Commits: 7499062bd

預設 JPEG 品質降低 (behavior)

預設 JPEG 品質已降低(預設由 50 → 35,並降低了 IDE 的子取樣閾值)以獲得更穩定的串流。預設情況下擷取/串流的 JPEG 畫質明顯較低——如果你需要先前的品質,請對 image.compress() 傳入明確的 quality

Commits: d9c8b1535

遷移檢查清單

要乾淨地移植到 v1.7.0,通常需要做的工作是:

  1. 將位置引數形式的 fir.init(...) 呼叫轉換為關鍵字形式(fir.init 變更)。

  2. 改用支援的影格大小,而非依賴舊有的超大影格錯誤(超大影格變更),並重新設計 OpenMV 2 上的 VGA 處理(OpenMV 2 影格大小變更)。

  3. 如果你需要先前的 JPEG 品質,請對 image.compress() 傳入明確的 qualityJPEG 品質變更)。

所有其他指令碼皆可不經修改執行。