v1.7.0

v1.7.0 新增了序列影格緩衝區的分塊與重組功能,使大型影格能透過除錯序列連結傳輸;它透過清空(並在 Windows 上退出)相機的 USB 大量儲存裝置磁碟機,讓「中斷連線並重設」更為安全,並更新了範例集。本版本以 Qt Creator 4.0.2 為基礎(與前一版相同的基礎),並新增了對交叉編譯之嵌入式 Linux 目標(例如 Raspberry Pi)的建置支援。本版本沒有破壞性變更。

重點摘要

  • 序列影格緩衝區分塊 — 大型影格緩衝區傳輸會被切分為 MTU 大小的區塊並在像素緩衝區中重組,使大型影格能透過除錯序列連結傳送。

  • 更安全的「中斷連線並重設」 — 相機的 USB 大量儲存裝置磁碟機會在重設前被清空(並在 Windows 上強制退出),以便先同步檔案系統。

  • 原子式檔案儲存main.py 與關鍵點檔案會以原子方式寫入,可防止損毀,並修正了一項將 main.py 寫入錯誤位置的路徑錯誤。

  • Raspberry Pi/嵌入式 Linux — 現已包含交叉編譯建置支援。

  • 更新的範例 — 一組伺服馬達擴充板(Servo Shield)範例、新的特徵偵測示範,以及 Image Reader/Writer 影片範例。

新功能

  • 序列影格緩衝區分塊與重組。 影格緩衝區傳輸會被切分為 MTU 大小的區塊並在像素緩衝區中重組,使大型影格能使用預設 MTU 透過除錯序列連結傳送。新增了一項執行階段 MTU 自動協商交握,其韌體版本閘值設為 2.5.0,與同一次提交中隨附的 2.5.0 韌體相符(96458ccef)。發行時該閘值被提高至 9.9.9,由於沒有任何出貨韌體會回報此版本,因此相機會使用預設 MTU 且不會發生協商(abd1dacb9)。

  • 「中斷連線並重設」時的清空/退出。 帶重設的中斷連線現在會在重設前清空相機的 USB 大量儲存裝置磁碟機:在 Windows 上磁碟機會被強制退出,而在 Linux 與 macOS 上磁碟機的檔案系統會被同步(syncfs / sync_volume_np)。失敗時三個平台上都會回報 Failed to eject 錯誤(243618791ff6b15aff1865ffd314fd4e89cf)。

  • 伺服馬達擴充板範例。 新增了一組 15-Servo-Shield 範例,示範 PCA9685 驅動的伺服馬達,包含一個 pca9685.py 驅動程式與一個 servo.py 輔助程式(abd1dacb9)。

  • 新的特徵偵測範例。09-Feature-Detection 之下新增了 find_circles(Hough)、find_rects(四邊形閾值)、find_numbers(LeNet 數字辨識),以及快速且穩健的線性迴歸範例(abd1dacb9)。

  • 影片與主板控制範例。 新增了用於從 SD 卡錄製與重播快照串流的 Image Reader/Writer 範例、一個 RTC 主板控制範例,以及一個在相機上執行的單元測試執行器(abd1dacb9)。

其他變更與改進

  • 99-Tests 範例資料夾(原為 15-Tests)重新命名,並新增了 unittests.py 執行器(abd1dacb9)。

錯誤修正

  • 強化了 main.py 與關鍵點檔案的儲存。寫入已切換為原子式 FileSaver 寫入(先寫入再最終化)(4fd4e89cf),並修正了一項導致 main.py 被寫入錯誤位置的缺漏路徑分隔符(1865ffd31)。

  • 改善了序列可靠性,將所有連接埠的序列讀取緩衝區擴大至 1MB 並增加讀取停滯逾時時間,以解決 QSerialPort 的資料遺失問題(7f68368dc)。

  • 透過匯出 MainWindow 並發出顯示事件訊號,修正了一項視窗分割器的版面異常,使 OpenMV 外掛能在主視窗顯示時還原版面(4895e20b7)。

平台與工具支援

  • Qt Creator 基礎版本: 4.0.2。

  • 新增了對交叉編譯之嵌入式 Linux 目標(例如 Raspberry Pi)的建置支援:部署 Qt 字型、修正 chrpath/RPATH 處理、使用主機二進位檔建置翻譯,並加入一個缺少的 qml 相依套件(73c052fcc8f0baa1315b9e9e82e45011ec2a)。

  • 將隨附的 OpenMV 韌體從 2.4.1 更新至 2.5.0(96458ccef)。

  • 將韌體資料夾 OMV2/OMV3 更名為 OPENMV2/OPENMV3,並出貨了更新、重新建置的 STM32F427(OPENMV2)與 STM32F765(OPENMV3)韌體及開機載入程式二進位檔(abd1dacb9)。

破壞性變更

無。本版本未引入任何使用者可見的工作流程或行為破壞,既有專案可繼續正常運作。