v1.7.0

v1.7.0 bổ sung tính năng phân mảnh và tái hợp bộ đệm khung hình nối tiếp để các khung hình lớn có thể được truyền qua liên kết nối tiếp debug, làm cho ngắt kết nối với reset an toàn hơn bằng cách xả (và trên Windows, đẩy ra) ổ đĩa lưu trữ USB mass-storage của camera, và làm mới bộ ví dụ. Bản phát hành dựa trên Qt Creator 4.0.2 (cùng nền tảng với bản phát hành trước) và thêm hỗ trợ biên dịch cho các mục tiêu Linux nhúng cross-compiled như Raspberry Pi. Không có thay đổi phá vỡ tương thích.

Điểm nổi bật

  • Phân mảnh bộ đệm khung hình nối tiếp — các lần truyền bộ đệm khung hình lớn được chia thành các mảnh kích thước MTU và tái hợp trong pixel buffer, vì vậy các khung hình lớn có thể được truyền qua liên kết nối tiếp debug.

  • Ngắt kết nối với reset an toàn hơn — ổ đĩa USB mass-storage của camera được xả trước khi reset (và force-eject trên Windows) để đồng bộ hệ thống tệp trước.

  • Lưu tệp nguyên tửmain.py và các tệp keypoint được ghi nguyên tử, ngăn ngừa hỏng dữ liệu và sửa lỗi đường dẫn ghi main.py vào vị trí sai.

  • Raspberry Pi / Linux nhúng — hỗ trợ biên dịch cross-compile hiện được bao gồm.

  • Làm mới ví dụ — bộ Servo Shield, các demo Feature-Detection mới, và các ví dụ video Image Reader/Writer.

Tính năng mới

  • Phân mảnh và tái hợp bộ đệm khung hình nối tiếp. Các lần truyền bộ đệm khung hình được chia thành các mảnh kích thước MTU và tái hợp trong pixel buffer, vì vậy các khung hình lớn có thể được truyền qua liên kết nối tiếp debug với MTU mặc định. Một bắt tay tự động thương lượng MTU runtime đã được thêm với cổng phiên bản firmware đặt ở 2.5.0, khớp với firmware 2.5.0 được đóng gói trong cùng commit (96458ccef). Cổng sau đó được nâng lên 9.9.9 để phát hành, mà không có firmware nào được vận chuyển báo cáo, vì vậy các camera sử dụng MTU mặc định và không có thương lượng nào xảy ra (abd1dacb9).

  • Xả/đẩy ra khi ngắt kết nối với reset. Ngắt kết nối với reset hiện xả ổ đĩa USB mass-storage của camera trước khi reset: trên Windows ổ đĩa được force-eject, trong khi trên Linux và macOS hệ thống tệp của ổ đĩa được đồng bộ (syncfs / sync_volume_np). Lỗi Failed to eject được báo cáo khi thất bại trên cả ba nền tảng (243618791, ff6b15aff, 1865ffd31, 4fd4e89cf).

  • Các ví dụ Servo Shield. Đã thêm bộ ví dụ 15-Servo-Shield minh họa servo được điều khiển bởi PCA9685, bao gồm driver pca9685.py và helper servo.py (abd1dacb9).

  • Các ví dụ Feature-Detection mới. Đã thêm find_circles (Hough), find_rects (quad-threshold), find_numbers (nhận dạng chữ số LeNet), và các ví dụ hồi quy tuyến tính nhanh và mạnh dưới 09-Feature-Detection (abd1dacb9).

  • Các ví dụ video và điều khiển bo mạch. Đã thêm các ví dụ Image Reader/Writer để ghi và phát lại các luồng ảnh chụp từ thẻ SD, một ví dụ điều khiển bo mạch RTC, và một trình chạy unit-test trên camera (abd1dacb9).

Các thay đổi và cải tiến khác

  • Đã đổi tên thư mục ví dụ 99-Tests (trước đây là 15-Tests) và thêm trình chạy unittests.py (abd1dacb9).

Sửa lỗi

  • Đã tăng cường lưu tệp main.py và keypoint. Các lần ghi đã được chuyển sang ghi nguyên tử FileSaver (ghi rồi hoàn tất) trong (4fd4e89cf), và một dấu phân cách đường dẫn bị thiếu ghi main.py vào vị trí sai đã được sửa trong (1865ffd31).

  • Cải thiện độ tin cậy nối tiếp bằng cách mở rộng bộ đệm đọc nối tiếp lên 1MB trên tất cả các cổng và tăng timeout tạm dừng đọc, giải quyết vấn đề mất dữ liệu với QSerialPort (7f68368dc).

  • Đã sửa lỗi bố cục thanh chia cửa sổ bằng cách xuất MainWindow và phát tín hiệu show-event để plugin OpenMV có thể khôi phục bố cục khi cửa sổ chính được hiển thị (4895e20b7).

Hỗ trợ nền tảng và công cụ

  • Nền tảng Qt Creator: 4.0.2.

  • Đã thêm hỗ trợ biên dịch cho các mục tiêu Linux nhúng cross-compiled như Raspberry Pi: triển khai font Qt, sửa xử lý chrpath/RPATH, biên dịch các bản dịch với binary host, và thêm dependency qml còn thiếu (73c052fcc, 8f0baa131, 5b9e9e82e, 45011ec2a).

  • Đã cập nhật firmware OpenMV đi kèm từ 2.4.1 lên 2.5.0 (96458ccef).

  • Đã đổi tên các thư mục firmware OMV2/OMV3 thành OPENMV2/OPENMV3 và cung cấp firmware và binary bootloader STM32F427 (OPENMV2) và STM32F765 (OPENMV3) đã được cập nhật và biên dịch lại (abd1dacb9).

Thay đổi phá vỡ tương thích

Không có. Bản phát hành này không có thay đổi quy trình làm việc hay hành vi nào hướng đến người dùng, và các dự án hiện có tiếp tục hoạt động bình thường.