v2.4.0

v2.4.0 được xây dựng trên Qt Creator 4.0.2 và tập trung vào bootloader V3 mới (truy vấn bố cục QSPI flash trong quá trình nạp firmware và xóa trong quá trình xóa toàn bộ dữ liệu flash trên bo mạch), báo cáo trực tiếp cảm biến và bo mạch trên thanh trạng thái, cùng giao thức gỡ lỗi USB 32-bit mới khớp với firmware đi kèm. Phiên bản này cũng thêm hướng dẫn LED lần đầu chạy và nhiều ví dụ mới về TensorFlow, Modbus và WiFi. Do giao thức gỡ lỗi đã thay đổi, camera phải chạy firmware đi kèm mới để kết nối.

Điểm nổi bật

  • Hỗ trợ bootloader V3 truy vấn bố cục QSPI flash ngoài của bo mạch trong quá trình nạp firmware và xóa nó trong quá trình xóa toàn bộ dữ liệu flash trên bo mạch (d953df62f).

  • Báo cáo cảm biến và bo mạch truy vấn mô-đun cảm biến của camera đã kết nối và hiển thị trên thanh trạng thái (OV2640, OV5640, OV7690, OV7725, OV9650, MT9V034, LEPTON) cùng với nhãn loại bo mạch mới (0ffa82958).

  • Sao chép mô hình (ML) TensorFlow cho phép sao chép các mô hình .tflite vào camera, không chỉ các tệp mạng nơ-ron .network (ad1aa98f0).

  • Xóa Data Flash trên bo mạch là lệnh Tools mới cho phép xóa chỉ bộ nhớ flash hệ thống tệp trên bo mạch, sau khi xác nhận, mà không cần nạp lại firmware (d953df62f, 98686ac46).

  • Hướng dẫn LED lần đầu chạy là hộp thoại OpenMV Cam LED Colors mới giải thích các trạng thái LED trên bo mạch và có thể tắt vĩnh viễn (c2d00422f).

Tính năng mới

  • Bootloader V3 truy vấn bố cục QSPI flash trong quá trình nạp firmware và chỉ xóa QSPI flash ngoài trong quá trình xóa toàn bộ dữ liệu flash trên bo mạch; connectClicked luôn chạy bootloaderQSPIFLayout trên bo mạch V3 nhưng chỉ chạy bootloaderQSPIFErase khi forceFlashFSErase được đặt (các lệnh ghi/kiểm tra bộ nhớ QSPI được triển khai ở tầng IO nhưng không được sử dụng bởi bộ nạp) (d953df62f).

  • Trạng thái cảm biến và bo mạch truy vấn mô-đun cảm biến của camera khi kết nối và hiển thị (OV2640, OV5640, OV7690, OV7725, OV9650, MT9V034, LEPTON) trên thanh trạng thái, cùng với nhãn loại bo mạch mới, sử dụng bản đồ id-to-name sensors.txt mới (0ffa82958).

  • Hướng dẫn LED lần đầu chạy thêm hộp thoại OpenMV Cam LED Colors mới xuất hiện sau một khoảng trễ ngắn khi helloworld_1.py là tài liệu đang mở trong lần chạy đầu tiên, giải thích các trạng thái LED trên bo mạch (nhấp nháy xanh lá = bootloader đang chạy, xanh dương = đang chạy main.py, trắng = lỗi phần cứng nghiêm trọng); hộp kiểm "Don't show this message again." lưu lại việc tắt thông báo qua cài đặt DONT_SHOW_LED_STATES_AGAIN (c2d00422f).

  • Mở thư mục ổ đĩa OpenMV Cam là mục menu Tools mới mở ổ đĩa được gắn kết của camera trong trình duyệt tệp hệ thống (a49f54305).

  • Xóa Data Flash trên bo mạch là lệnh Tools mới cho phép xóa chỉ bộ nhớ flash hệ thống tệp trên bo mạch, sau khi xác nhận, mà không cần nạp lại firmware (d953df62f, 98686ac46).

  • Sao chép mô hình (ML) TensorFlow cho phép hộp thoại sao chép mô hình sao chép các tệp .tflite vào camera ngoài các tệp mạng nơ-ron .network; bộ lọc hộp thoại cũng được thêm mục Label Files (*.txt)All Files (ad1aa98f0, 0ffa82958, c0dbdd9e5).

  • Chuyển đổi phiên bản giao thức gỡ lỗi tách lệnh nối tiếp GetAttribute, SetAttribute, FBEnableJPEGEnable khi giao tiếp với firmware 3.5.3+ để tăng độ tin cậy (83b9ca18f).

  • Ví dụ đi kèm mới bổ sung các tập lệnh TensorFlow Lite mobilenet và phát hiện người với cửa sổ trượt, ví dụ STM32Cube.AI (nn_stm32cubeai.py) MNIST, thư mục 32-modbus mới (modbus_rtu_slave.py, modbus_apriltag.py), bổ sung WiFi shield (http_client_ssl, static_ip, mqtt_pub/mqtt_sub), Arduino UART/SPI-slave và CAN (e26b90d79, 42ba8f5c4).

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

  • Đã cập nhật giao thức gỡ lỗi USB theo firmware mới: lệnh đọc thuộc tính sử dụng ATTR_READ_2 (0xCA) 32-bit mới, và các payload thuộc tính, giá trị và bật/tắt bộ đệm khung hình được gửi dưới dạng số nguyên dài 32-bit thay vì từ 16-bit (55d7cfe70).

  • Đổi tên Save open script to OpenMV Cam thành Save open script to OpenMV Cam (as main.py) để làm rõ rằng lệnh này ghi tệp main.py (a49f54305).

  • Đổi tên Run Bootloader thành Run Bootloader (Load Firmware) để làm rõ mục đích của lệnh (ad1aa98f0).

  • Các menu ví dụ hiện được sắp xếp theo tiền tố số của thư mục/tệp, và các chữ số đầu NN- được loại bỏ khỏi tên hiển thị (ad1aa98f0).

  • Các terminal đầu ra và nối tiếp hiện hiển thị tab dưới dạng khoảng trắng sử dụng độ rộng tab terminal nối tiếp có thể cấu hình từ cài đặt trình soạn thảo văn bản thay vì độ rộng cố định là 8 (98686ac46).

  • Phát hiện ổ đĩa trên Linux hiện cũng chấp nhận các hệ thống tệp được gắn kết fuseblk (ví dụ: các ổ đĩa exFAT/NTFS) khi liên kết ổ đĩa camera (c0dbdd9e5).

  • Đã cập nhật bộ tài liệu HTML MicroPython đi kèm (tham chiếu thư viện, hướng dẫn esp8266/esp32, các trang và ảnh được tạo tự động) được hiển thị trong trợ giúp của IDE (e69d71f7c, 90b5c6eb5, 97b0f645a).

Sửa lỗi

  • Đã sửa tràn số trong thống kê biểu đồ tần suất (trung bình, tứ phân vị, trung vị, độ lệch chuẩn) bằng cách mở rộng bộ tích lũy từ int sang 64-bit, ngăn chặn thống kê sai trên các ảnh lớn (55d7cfe70).

  • Đã thiết kế lại logic ngắt kết nối/đẩy ra trên Linux: việc xả syncfs/closedir không đáng tin cậy đã bị loại bỏ và ổ đĩa hiện được ngắt kết nối bằng lệnh umount đơn giản, không có hộp thoại tiến trình (b86d5c62c, c0dbdd9e5, 30d4a7d2d).

  • Ổ đĩa USB của bo mạch hiện chỉ được liên kết khi firmware đủ mới hoặc có tệp đánh dấu .openmv_disk, ngăn IDE lấy nhầm ổ đĩa di động sai (e464eaed4).

  • Đã sửa logic kết nối lại để kích hoạt thao tác bootloader/xóa khi đang kết nối sẽ ngắt kết nối sạch sẽ trước rồi thử lại, tránh trạng thái làm việc bị kẹt (d953df62f).

  • Đã viết lại trình xử lý nhận xét/khoảng trắng được sử dụng khi gửi tập lệnh đến camera dưới dạng máy trạng thái nhận biết chuỗi, để các ký tự # bên trong chuỗi không còn bị nhầm là nhận xét, và khoảng trắng cuối cùng cùng docstring được xử lý đúng (24dff1b2f).

  • Đã sửa xử lý chuỗi dịch cho một số thông báo hộp thoại kết nối/terminal để các lệnh shell nhúng (sudo adduser, các bước cài đặt pydfu) không còn là một phần của văn bản có thể dịch và hiển thị đúng (b5705a57e).

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

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

  • Đổi tên bo mạch/firmware OpenMV Cam H7 Plus từ OPENMV4R sang OPENMV4P (OMV4P_H7_32768_SDRAM) và đóng gói firmware dưới tên mới (c0dbdd9e5).

  • Đã sửa tên hiển thị của bo mạch H7 Plus để sử dụng dấu gạch dưới thay vì khoảng trắng (OpenMV_Cam_H7_Plus_(STM32H743_w/_SDRAM)) (75764132c).

  • Firmware đi kèm đã được cập nhật trong suốt quá trình phát hành, kết thúc ở phiên bản 3.5.2 cho OPENMV2/3/4/4P (lần nâng cấp cuối trong 15c07498c; các lần nâng cấp tích lũy trước đó trong 42ba8f5c4 lên 3.4.2, a99c2e3e1 lên 3.4.3, e26b90d79 lên 3.5.0, và 97b0f645a lên 3.5.1).

  • Phiên bản firmware đi kèm: OPENMV2 (Cam M4) 1.4.11, OPENMV3 (Cam M7) 1.4.11, OPENMV4 (Cam H7) 1.2.15, OPENMV4P (Cam H7 Plus) 1.2.15.

  • Phiên bản OpenMV IDE đã được nâng cấp từ 2.2.1 lên 2.4.0.

Thay đổi không tương thích ngược

Giao thức đọc thuộc tính gỡ lỗi USB đã được chuyển từ lệnh ATTR_READ (0x8A) 16-bit cũ sang lệnh ATTR_READ_2 (0xCA) 32-bit mới, và các payload thuộc tính, giá trị và bật/tắt hiện được gửi dưới dạng số nguyên dài 32-bit; IDE cũng truy vấn ID cảm biến camera khi kết nối. Điều này yêu cầu firmware triển khai giao thức mới. Firmware 1.2.15 / 1.4.11 đi kèm cung cấp khả năng này, vì vậy các camera cũ hơn phải được nạp firmware mới để kết nối.