v4.0.0¶
v4.0.0 là bản phát hành v3 → v4 chính. Nó giới thiệu API đệm đa khung hình sensor hiện đại (bộ đệm đôi / bộ đệm ba và FIFO video), hàm gọi lại khi khung hình hoàn chỉnh, module Bluetooth (stack NimBLE) với hỗ trợ Portenta, driver camera MT9M114 ban đầu, chụp ảnh camera được giảm tải qua MDMA, hỗ trợ Bayer/JPEG trong image.draw_image(), và nâng cấp lên MicroPython 1.15. Chế độ streaming cũ đã bị loại bỏ và sensor.set_windowing() đã được cải tiến — hãy đọc phần thay đổi gây mất tương thích bên dưới.
Điểm nổi bật¶
Đệm đa khung hình —
sensorcó thêm bộ đệm đôi, bộ đệm ba, và chế độ FIFO video để đạt tốc độ khung hình cao hơn và mượt mà hơn.Hàm gọi lại khi khung hình hoàn chỉnh — đăng ký hàm gọi lại kích hoạt khi có khung hình mới sẵn sàng, dành cho các pipeline chụp ảnh không chặn.
Bluetooth — module
bluetoothđược xây dựng trên stack NimBLE, được bật trên Arduino Portenta H7 (kèm ví dụ BLE).MT9M114 — driver cảm biến camera ban đầu.
Chụp ảnh nhanh hơn — giảm tải MDMA cho việc chụp dữ liệu camera;
draw_image()hiện chấp nhận nguồn/đích Bayer và JPEG.MicroPython 1.15 — MicroPython được tích hợp sẵn đã được cập nhật từ 1.13 lên 1.15.
Thay đổi gây mất tương thích: chế độ streaming cũ đã bị loại bỏ và
sensor.set_windowing()đã được cải tiến — xem phần thay đổi gây mất tương thích.
Tính năng mới¶
Đệm đa khung hình sensor — thêm
sensor.set_framebuffers()/sensor.get_framebuffers()và các chế độSINGLE_BUFFER/DOUBLE_BUFFER/TRIPLE_BUFFER/VIDEO_FIFO, cùngsensor.get_frame_available()cho việc chụp bộ đệm đôi, bộ đệm ba, và FIFO video.Hàm gọi lại khi khung hình hoàn chỉnh — thêm
sensor.set_frame_callback()để một hàm gọi lại Python chạy khi mỗi khung hình mới hoàn thành.Bluetooth — thêm module
bluetoothđược hỗ trợ bởi stack NimBLE (submodule NimBLE, driver CYW-BT), được bật trên Arduino Portenta H7 kèm ví dụ BLE.MT9M114 — thêm driver cảm biến camera MT9M114 ban đầu.
draw_image — thêm hỗ trợ khử nhiễu và sao chép JPEG để
image.draw_image()chấp nhận ảnh nguồn/đích Bayer và JPEG.Giảm tải chụp ảnh MDMA — việc chụp dữ liệu camera được giảm tải sang MDMA để đạt thông lượng cao hơn.
Đối số color-palette giờ đây có thể bị vô hiệu hóa bằng cách truyền
-1(vìNoneđược giữ lại như một đối số hợp lệ).
Các thay đổi và cải tiến khác¶
Chuyển sang triển khai I2C phần mềm mới; căn chỉnh với MicroPython upstream; cấu hình ulab theo từng bo mạch; các module tích hợp cơ bản được bật cho OpenMV 2; khóa đọc bộ đệm khung hình công bằng hơn; hỗ trợ mutex được mở rộng sang Cortex-M0/M0+ với thời gian chờ khóa.
Sửa lỗi¶
Camera và xử lý ảnh:
Đã sửa độ tin cậy khởi tạo FLIR Lepton trên bo mạch Pure Thermal, xử lý bộ đệm JPEG / tạm dừng của ImageIO, cài đặt vflip/hmirror của HM01B0, việc xóa bộ đệm JPEG khi ảnh bị vô hiệu, và cờ
croppedbị đặt sai khi kích thước khung hình không hợp lệ.
Hệ thống và kết nối:
Đã sửa lỗi thoát lệnh USB và lệnh đặt lại về bootloader, khởi tạo mutex, nguồn xung nhịp UART, định nghĩa code-page FatFS, xử lý ACK out-of-band WINC1500, gỡ lỗi WiFi, và USB PID của Nano33; cô lập các chân analog chuyên dụng.
Phần cứng và hỗ trợ bo mạch¶
Cảm biến camera MT9M114 (driver ban đầu).
Arduino Portenta H7 — Bluetooth được bật (NimBLE) kèm ví dụ BLE.
Arduino Nano RP2040 Connect / Nano 33 BLE Sense — cờ gỡ lỗi WiFi bị tắt ở những nơi không hỗ trợ; thêm ví dụ blinky; sửa USB PID.
Thay đổi API gây mất tương thích¶
Các thay đổi API hiển thị với người dùng giữa v3.9.4 và v4.0.0. Phạm vi: các C-module Python trong modules/ và các thư viện Python trong scripts/libraries/.
Mỗi thay đổi được gắn thẻ theo mức độ ảnh hưởng:
major — ảnh hưởng đến hầu hết các tập lệnh; bạn hầu như chắc chắn cần phải chuyển đổi code.
minor — API hạn hẹp; chỉ ảnh hưởng đến các tập lệnh đã sử dụng nó.
behavior — cùng API, kết quả khác nhau; kiểm tra lại các tập lệnh đã được tinh chỉnh.
Các thay đổi được nhóm theo mức độ ảnh hưởng theo thứ tự đó. Nếu bạn chỉ muốn chuyển đổi code, hãy chuyển đến danh sách kiểm tra chuyển đổi ở cuối. Mỗi mã hash commit liên kết đến diff của nó trên GitHub.
Chế độ streaming bị loại bỏ (major)¶
Chế độ streaming sensor cũ đã bị loại bỏ để ưu tiên API đệm đa khung hình mới. Code đã bật chế độ streaming phải chuyển sang sensor.set_framebuffers() với DOUBLE_BUFFER / TRIPLE_BUFFER / VIDEO_FIFO và điều khiển việc chụp ảnh bằng sensor.snapshot() / sensor.get_frame_available() thay thế.
Commits: a42f3a647
sensor.set_windowing() được cải tiến (behavior)¶
sensor.set_windowing() đã được làm linh hoạt hơn nhiều: bây giờ chấp nhận nhiều dạng đối số (một tuple vùng, hoặc chiều rộng/chiều cao ở giữa, hoặc x, y, w, h) và giải quyết cửa sổ tương đối với độ phân giải hiện tại. Các tập lệnh đã truyền đối số windowing theo dạng cố định cũ có thể chọn một vùng khác và cần được kiểm tra lại.
Commits: 3e9c43554
MicroPython 1.13 → 1.15 (behavior)¶
Lõi MicroPython được tích hợp sẵn đã được cập nhật từ 1.13 lên 1.15 (thông qua 1.14). Hành vi của thư viện chuẩn và ngôn ngữ tuân theo MicroPython upstream 1.15; kiểm tra lại các tập lệnh phụ thuộc vào hành vi micropython / module chuẩn theo từng phiên bản.
Đối số update_jpeg_buffer của ImageIO bị loại bỏ (minor)¶
Việc cập nhật bộ đệm JPEG của ImageIO đã được cải tiến để lấy bộ đệm từ đối số nguồn ảnh, và đối số update_jpeg_buffer tường minh đã bị loại bỏ. Các tập lệnh đã truyền update_jpeg_buffer cho ImageIO phải bỏ đối số đó.
Commits: 5c6937bd1
Danh sách kiểm tra chuyển đổi¶
Để chuyển đổi sạch sang v4.0.0, công việc thông thường là:
Thay thế bất kỳ việc sử dụng chế độ streaming đã bị loại bỏ bằng API đệm đa khung hình
sensor.set_framebuffers()mới (chế độ streaming bị loại bỏ).Kiểm tra lại các lệnh gọi
sensor.set_windowing()theo cách xử lý đối số linh hoạt hơn đã được cải tiến (thay đổi windowing).Kiểm tra lại các tập lệnh phụ thuộc vào hành vi MicroPython theo từng phiên bản với MicroPython 1.15 (nâng cấp MicroPython).
Bỏ đối số
update_jpeg_bufferkhỏi các lệnh gọi ImageIO (thay đổi ImageIO).
Tất cả các tập lệnh khác chạy không thay đổi.