v1.3.0¶
v1.3.0 viết lại tầng giao tiếp camera xung quanh một giao thức lệnh/phản hồi có cấu trúc và bổ sung tính năng tự động cập nhật trong IDE cho cả IDE lẫn các tài nguyên đi kèm. Phiên bản này được xây dựng trên Qt Creator 4.0.2 và đi kèm firmware camera OpenMV 2.0.0. Trên macOS và Linux, việc nạp firmware qua DFU hiện yêu cầu cài đặt một lần Python cùng libusb và pyusb; xem phần Thay đổi không tương thích.
Điểm nổi bật¶
Tầng giao tiếp được viết lại. Mã serial/USB-debug đã được xây dựng lại xung quanh một giao thức lệnh/phản hồi có cấu trúc với độ dài phản hồi theo từng lệnh và độ trễ chờ bắt đầu/kết thúc, giúp các thao tác kết nối, chạy tập lệnh, bộ đệm khung hình và bootloader đáng tin cậy hơn.
Bộ tự động cập nhật trong IDE. IDE hiện kiểm tra
openmv.iođể tìm phiên bản mới hơn và hiển thị nút Download, đồng thời tải xuống và cài đặt các gói tài nguyên cập nhật (ví dụ, firmware, tài liệu) rồi nhắc khởi động lại.Cập nhật firmware một nhấp. Phiên bản firmware trên thanh trạng thái hiện là nút có thể nhấp để so sánh camera đang kết nối với firmware đi kèm và đề xuất cập nhật một nhấp khi có phiên bản mới hơn.
Nạp firmware qua DFU trên mọi nền tảng. Firmware hiện có thể được nạp qua DFU trên Windows, macOS, Linux x86 và Linux x86_64, và bộ chọn firmware chấp nhận tệp
.dfungoài.bin.Tự động chuyển sang DFU khi thất bại. Khi bootloader serial không thể khởi động trong quá trình cập nhật firmware, IDE hiện đề xuất nâng cấp qua bootloader DFU của camera, hướng dẫn bạn thêm jumper
BOOT/RST.
Tính năng mới¶
Bộ cập nhật trong IDE. Kiểm tra
openmv.iođể tìm phiên bản IDE mới hơn và hiển thị nút Download mởopenmv.io/download, tải xuống, giải nén và cài đặt các gói tài nguyênopenmv-ide-resources-X.Y.Z.ziptrực tiếp vào IDE trước khi nhắc khởi động lại (8a1f92bb1, 194acd828, b0be97e3e).Nút phiên bản firmware có thể nhấp. Nhãn phiên bản trên thanh trạng thái đã trở thành
QToolButtonkết nối với luồngupdateCam()đọcfirmware/firmware.txtđi kèm, so sánh với camera đang kết nối và đề xuất Firmware Update với tùy chọn xóa hệ thống tệp nội bộ khi có phiên bản mới hơn (b2ac8defe).Hỗ trợ tệp DFU. Hộp thoại bootloader/nạp-firmware hiện chấp nhận tệp
.dfungoài.binvà buộc xóa toàn bộ hệ thống tệp nội bộ khi nạp.dfu. Bộ lọc chọn firmware được mở rộng thànhFirmware Binary (*.bin *.dfu)và luồng bắt buộc xóa khi dùng.dfuđược giới thiệu trong4ad2be5f9, cùng với ô kiểm xóa luôn được chọn nhưng vô hiệu hóa tự động chuyển đổi theo phần mở rộng tệp được chọn, thêm vào trongb2ac8defe(4ad2be5f9, b2ac8defe).Tự động chuyển sang DFU khi bootloader thất bại. Khi cập nhật firmware
.binkhông thể khởi động bootloader serial, IDE báoUnable to connect to the bootloader!rồi đề xuất nâng cấp qua bootloader DFU của camera, cảnh báo rằng DFU xóa hệ thống tệp flash nội bộ và hướng dẫn bạn thêm dây jumperBOOT/RSTrồi kết nối lại trước khi chạyDfuSeCommand.exe(Windows) (4ad2be5f9).Ví dụ HoG. Đã thêm ví dụ trực quan hóa Histogram of Oriented Gradients (
09-Feature-Detection/hog.py) sử dụngimg.find_hog()(b03a707f7).
Các thay đổi và cải tiến khác¶
Thay thế mã tốc độ baud/gói cũ theo cách thủ công bằng các lớp
OpenMVPluginSerialPortCommand/Result, mã opcode__USBDBG_*và__BOOTLDR_*cùng các hàm trợ giúpcommand()/commandResult()thay chowrite()/readAll()/isOpen()(b03a707f7, 141122e21, b2ac8defe, 1d72fe4bf, b4cf2fe43, c60936d5f).Quá trình cài đặt driver cổng serial Windows hiện chạy tự động/không giám sát, chuyển các tập lệnh driver
openmv.cmd/pybcdc.cmdsang trình cài đặt dựa trêndpinstthay vìInfDefaultInstalltương tác, và trình cài đặt Visual C++ Redistributable (vcr.cmd, chạyvcredist_x86.exevàvcredist_x64.exeở chế độ im lặng) đã được thêm và sửa (a5a6e0590, 754d0776d, b0be97e3e, 452a29f0d, c051c6e30, ad1b674ef, 565f1eccd).
Sửa lỗi¶
Đã sửa lỗi nạp firmware và giao tiếp bị hỏng bên trong máy ảo, và nới lỏng các thời gian chờ lệnh cũng như vòng lặp thăm dò bộ đệm khung hình/tx-buffer để kết nối và chạy ổn định hơn. Hộp thoại nạp lại firmware hiện ghi chú "may take up to 5 minutes" và thời gian chờ tiến trình DFU đã được tăng từ 240 giây lên 300 giây trong
324f243f9(c051c6e30, b0be97e3e, 1d72fe4bf, b4cf2fe43, 324f243f9, c60936d5f).Đã sửa phép so sánh kiểm tra cập nhật firmware/IDE để phiên bản phụ hoặc bản vá mới hơn không còn kích hoạt sai khi trường cao hơn bằng nhau, và yêu cầu hộp thoại bootloader phải có tệp được chọn hợp lệ trước khi nạp (4ad2be5f9).
Đóng các handle tệp (danh sách board, tệp firmware/phiên bản) sau khi đọc và sửa phần đệm khối nạp firmware để đệm đến
FLASH_WRITE_CHUNK_SIZE, ngăn rò rỉ handle và khối cuối bị đệm sai trong quá trình cập nhật firmware (4ad2be5f9).Đã sửa menu
Helpvà các ngăn đầu ra của OpenMV: mục About OpenMV Cam không còn xung đột với vai trò About của nền tảng (AboutRole→ApplicationSpecificRole), và các ngăn đầu ra không còn chiếm phím tắtAlt/Cmd+ số (a0694eac7).Mở các liên kết web OpenMV bên ngoài (diễn đàn, tải xuống, hỗ trợ) hiện báo hộp thoại lỗi "Failed to open" khi URL không thể khởi chạy thay vì im lặng không làm gì (b0be97e3e).
Hỗ trợ nền tảng và công cụ¶
Nền tảng Qt Creator: 4.0.2.
Firmware camera đi kèm: cập nhật lên 2.0.0, với
firmware.bin/openmv.binmới và bổ sung thêmfirmware.dfu/bootloader.dfu/firmware.elf/bootloader.elfcho OMV2 và OMV7.Nạp firmware DFU trên Windows được thêm bằng cách sử dụng
DfuSeCommand.execủa ST đi kèm, gói driver USB DfuSe của ST (DfuSe v3.0.4.0 trên Win7/Win8, v3.0.5.0 trên Win8.1) và trình cài đặt driverdfuse.cmd(4ad2be5f9).Nạp firmware DFU trên macOS và Linux chuyển từ các tệp nhị phân
dfu-utildựng sẵn sang bộ nạppydfu.pyđi kèm, với IDE hiển thị các lệnh cài đặt libusb/pyusb cần thiết.ac248c0ecđã thêm tạm các tệp nhị phândfu-util/dfu-prefix/dfu-suffixcho Linux x86_64, nhưng324f243f9sau đó đã xóa tất cả để ưu tiênpydfu.py. Không có tệp nhị phândfu-utilnào được đóng gói trong bản phát hành cuối cùng;static.prođóng gói thư mục dữ liệupydfucho tất cả các máy chủ không phải Windows trong khi Windows sử dụng luồng DfuSe đi kèm (ac248c0ec, 324f243f9, 7837a07da).Quy tắc udev Linux được cập nhật để sử dụng khớp
SUBSYSTEM(VID camera 1209/PID abd1 tty và STM DFU 0483/df11) để liên kết thiết bị và DFU hoạt động trên Linux 32-bit, và các yêu cầu mạng có theo dõi chuyển hướng được bảo vệ cho Qt cũ hơn (194acd828).
Thay đổi không tương thích¶
Các tệp nhị phân dfu-util độc lập đi kèm cho macOS và Linux đã bị xóa và thay thế bằng bộ nạp Python pydfu.py. Trên macOS và Linux, nạp firmware DFU hiện yêu cầu cài đặt một lần Python cùng libusb và pyusb (IDE hiển thị các lệnh MacPorts/HomeBrew/apt-get chính xác). Windows tiếp tục sử dụng luồng dựa trên DfuSe đi kèm. Không có thay đổi không tương thích nào đối với API scripting, và nền tảng Qt Creator 4.0.2 không thay đổi.