v4.0.1¶
v4.0.1 là một bản hiện đại hóa toàn diện, nâng cấp nền tảng OpenMV IDE từ Qt Creator 4.0.2 lên Qt Creator 10.0.1. Toàn bộ bộ plugin OpenMV (trình xem bộ đệm khung hình, giao thức/cổng nối tiếp, terminal, biểu đồ tần suất, trình chỉnh sửa ngưỡng và điểm đặc trưng, công cụ video, và các trình bao bọc nạp firmware) được tích hợp lại trên nền tảng mới, kèm theo cặp giao diện Flat Light/Flat Dark được trau chuốt, tô sáng cú pháp Python nhận biết OpenMV, hộp thoại tải firmware hợp nhất, và hỗ trợ phát hiện thiết bị ARM64 Linux và macOS rộng rãi. Việc thay đổi nền tảng Qt Creator là một cải tiến nội bộ lớn nhưng không ảnh hưởng đến các dự án người dùng; một số hành vi mặc định và định nghĩa board có thay đổi (xem Thay đổi không tương thích).
Điểm nổi bật¶
Nâng cấp lên Qt Creator 10.0.1. IDE chuyển từ Qt Creator 4.0.2 lên 10.0.1: Qt Creator thượng nguồn được tinh gọn xuống các thành phần build cơ bản (98b95fd3b) và toàn bộ plugin OpenMV được tích hợp lại trên nền tảng mới (0e8047372).
Giao diện Flat Light và Flat Dark. Cặp giao diện sáng/tối được trau chuốt đi kèm với các kiểu tô sáng cú pháp trình soạn thảo tùy chỉnh phù hợp; bộ chọn Theme được hiển thị lại trong cài đặt Chung, giới hạn chỉ hai giao diện đó, và giao diện mặc định hiện là
flat-dark(21348924b, 13c3849e8).Terminal nối tiếp Raw-REPL. Terminal hiện chạy, ngắt, tải lại và dán tập lệnh thông qua máy trạng thái MicroPython raw-REPL (CTRL-A/CTRL-D) đúng chuẩn, xử lý đáng tin cậy các tập lệnh lớn hơn (a7241079c).
Chỉnh sửa Python nhận biết OpenMV. Các module, lớp, hàm, phương thức và tham số OpenMV được tô sáng cú pháp từ tài liệu đi kèm, với tính năng tự động hoàn thành thông minh hơn và bộ tự động thụt lề nhận biết dấu ngoặc/dấu hai chấm (801eab8a8, 8e9f967e7, 9fdff9c6d).
Hộp thoại tải firmware hợp nhất. Quá trình nạp firmware giờ hiển thị một hộp thoại ngữ cảnh duy nhất (Đang xóa Disk / Đang nạp Firmware / Đang nạp Bootloader) với thanh tiến trình và nhật ký Show/Hide Details có thể thu gọn, ghi nhớ trạng thái (5b51356f8).
Hỗ trợ OpenMV Cam RT1062. Firmware, trình tải DFU/flash, liệt kê SDP/blhost, và bước lập trình ghi eFuse được thêm cho board lớp i.MX RT1060 mới (a6595f5f7), sau đó được bổ sung biến thể board Secure Bootloader (SBL) riêng (d2b11c6c8).
Tính năng mới¶
Cờ tự động hóa. Các cờ
-auto_update(release/development/ đường dẫn),-auto_erasevà-auto_runcho phép IDE tự động nạp bootloader/xóa firmware rồi chạy tập lệnh đang mở khi kết nối; sau khi bootloader kết nối lại, IDE chờ tối đa 10 giây để camera liệt kê lại trước khi tiếp tục (b54affe79, f4e03d978).Cờ ``-disable_stop`` và nút bật/tắt
stop on connect/disconnecttrong menu cho phép người dùng tắt tính năng dừng tập lệnh khi kết nối hoặc ngắt kết nối (02724ca7d).Nút bật/tắt Stop Script on Connect/Disconnect (mặc định bật) tách rời việc kết nối/ngắt kết nối khỏi việc dừng tập lệnh đang chạy; Auto Reconnect giờ mặc định tắt (a0e78057f).
Hộp thoại chọn loại board. Khi board kết nối báo cáo kiến trúc không có trong bảng ánh xạ firmware, IDE nay sẽ nhắc người dùng chọn loại board (ghi nhớ lựa chọn lần cuối) thay vì hủy với lỗi "Unsupported board architecture!" (b7165eb3d).
Tô sáng cú pháp Python OpenMV làm nổi bật các module, lớp, dữ liệu, hàm, phương thức và tham số OpenMV đã biết bằng danh sách từ khóa được lấy từ tài liệu đi kèm (801eab8a8, b4d481bf5).
~300 định nghĩa ngôn ngữ KSyntaxHighlighting được đóng gói kèm trình soạn thảo, giúp các file mã nguồn trong nhiều ngôn ngữ được tô sáng ngay lập tức (39674a4dc).
Tập lệnh ví dụ OpenMV đi kèm (Hello World, ảnh chụp, ghi video, optical flow, camera sự kiện, màn trập toàn cục, FLIR Lepton, và nhiều hơn nữa) hiện được cam kết vào và đóng gói cùng IDE (938ac6bbe).
Trình soạn thảo nhị phân/hex được bật để người dùng có thể mở và kiểm tra các file nhị phân, với thanh công cụ được cắt gọn để phù hợp giao diện OpenMV (675bda966).
So sánh tài liệu trong bộ nhớ. Các file mới và ví dụ chỉ đọc giờ được cấp một file tạm sao lưu để các tài liệu chưa lưu có thể được so sánh, và hộp thoại so sánh file bên ngoài ghi nhớ thư mục được dùng lần cuối (5281e5f6c, 2934d5216).
Plugin trình soạn thảo có tab được tích hợp lại, cung cấp cho IDE thanh tài liệu dạng tab; mã nguồn plugin minimap được thêm lại nhưng để vô hiệu hóa trong bản build này (0e8047372).
Nạp dự phòng DfuSe và pydfu được khôi phục cho các thiết bị DFU không thể xác định bằng số sê-ri, với xử lý xóa tự động không cần hộp thoại khi kết nối (e42a5be7d).
Ghi eFuse cho i.MX RT. Quá trình lập trình firmware nay ghi một eFuse (
efuse-program-once) cho các board lớp RT1060 (8053bb578, a6595f5f7).Trang hướng dẫn cài đặt Root trên Linux cho phép người dùng lựa chọn có hay không tham gia cài đặt thư viện apt nâng cao quyền và cài udev rules, thay vì luôn chạy tự động (6bac80984).
Các thay đổi và cải tiến khác¶
Quét cổng nối tiếp nền. Quá trình liệt kê cổng được chuyển ra khỏi luồng UI vào một worker
ScanSerialPortsThreadriêng biệt để IDE phản hồi tốt trong khi quét (7be4dab26).Phát hiện thiết bị rộng hơn. Quá trình quét cổng được tái cấu trúc thành helper
filterPorts()có thể tái sử dụng, tích hợp các thiết bị picotool và i.MX DFU, và tái phân loại các cổng nối tiếp bootloader Arduino đã biết (NRF/RPI PID cũ và loader) thành thiết bị DFU (25a5d30fd).Thêm phương án dự phòng cho terminal. Khi khởi chạy các công cụ phát video đi kèm (Play Video File / Play RTSP Stream) trên Linux, IDE nay lần lượt thử
lxterminal,konsolevàxfce4-terminalngoàixtermvàgnome-terminal(df54007e0).Báo cáo board-key. Đăng ký camera nay phân tích phản hồi "Remaining N" để thông báo cho người dùng còn bao nhiêu board key, và thêm thông báo lỗi riêng "Invalid Board Key for Board Type" (5759e73eb).
Tải xuống từ GitHub. Kiểm tra phiên bản và tải xuống tài nguyên giờ sử dụng
raw.githubusercontent.com/openmv/openmv-ide-versionvà các bản phát hànhopenmv/openmv-idethay vìupload.openmv.io(994109c28).HTTPS toàn bộ. Tất cả các yêu cầu web OpenMV (kiểm tra phiên bản, đăng ký SWD ID, tải xuống tài nguyên và firmware) nay đều dùng
https://(54347cad0).Tự động hóa thiết lập Linux. Trình cài đặt phát hiện các thư viện và udev rules còn thiếu và, nếu cần, tạo một file
setup.shthực thi với các lệnh apt-get/pip và cài đặt udev rule chính xác (kèmREADMEhướng dẫn người dùng chạy nó) (c6dc705e6).Khoan nhượng board chậm. Terminal nối tiếp tăng thời gian chờ mỗi lần đọc từ 1ms lên 10ms và phát ra xác nhận "OK" khi tập lệnh kết thúc (c935e4489).
Tiến trình nạp mượt hơn. Thanh tiến trình của trình tải firmware nay chuyển từ trạng thái không xác định sang 0-100% ngay lập tức thay vì sau lần tích đầu tiên, áp dụng cho dfu-util, bossac, picotool và nạp i.MX (19d947308, 86d021f92).
Khôi phục bootloader cũ được tích hợp lại thông qua chế độ bootloader không nhanh, gửi lệnh xóa/ghi mà không có phần đệm truy vấn đồng bộ chế độ nhanh (c20112c07).
Console công cụ gọn hơn. Các terminal nạp firmware (bossac, dfu-util, picotool, imx, công cụ video) nay chạy như các tiến trình console độc lập với đầu ra lệnh được định dạng tốt hơn (8053bb578).
Hoàn thiện tự động hoàn thành. Tính năng hoàn thành phân biệt lớp, phương thức và hàm với các gợi ý tham số riêng biệt, dùng biểu tượng mô hình code chính xác, và tôn trọng phạm vi công khai/bảo vệ/riêng tư theo tiền tố gạch dưới; bộ xử lý hoàn thành từ khóa cũng bỏ qua khoảng trắng đầu trước con trỏ khi được gọi tường minh (thủ công) (8e9f967e7, 68b26b5fc).
Hộp thoại hợp nhất. Các hộp thoại "Don't show this again" tùy biến của OpenMV -- bao gồm hộp thoại thông tin
OpenMV Cam LED Colorslúc khởi động và các lời nhắc nâng cấp firmware và ví dụ -- được hợp nhất vào hộp thoạiCheckableMessageBox"Do Not Ask/Show Again", nút "Reset Do Not Ask/Show Again Dialogs" được thêm vào cài đặt Chung, và các dấu gấp code bị tắt theo mặc định (9fdff9c6d).Thương hiệu nhận biết giao diện. Màn hình splash chế độ tối, logo chip ST và NXP sáng/tối trong hộp About, màu tooltip chế độ tối, và màu biểu tượng tự động hoàn thành chính xác đã được thêm vào (d85fdeb19, 9895a8395, f45ceaaea, 7f3e1f383).
Dọn dẹp trình xem ảnh. Các hành động chia sẻ, nền, viền và "set as default" bị ẩn, hành động vừa màn hình được thêm vào, và kích thước ảnh động đã được sửa (b37c55e25).
Dọn dẹp menu ngữ cảnh. Các mục "Show in File System View", "Open Terminal", "File Properties" và "Add/Delete UTF-8 BOM on Save" bị ẩn (5d862c78e).
Terminal nối tiếp tối. Terminal độc lập sử dụng giao diện tối chính thức với thanh cuộn có kiểu dáng, biểu tượng thanh công cụ được cập nhật, và tải lại đúng biểu tượng thanh cuộn high-DPI trên nhiều màn hình (5c3af6880).
Dọn dẹp Find/Search. Bảng kết quả có giao diện tối, bộ chọn công cụ tìm kiếm bị ẩn, nhãn được đơn giản hóa, và Find-in-Files mặc định vào thư mục Documents/OpenMV (20a806550).
Nhận dạng ứng dụng. IDE nay hiển thị biểu tượng OpenMV chính xác trên desktop, thanh tiêu đề và taskbar (xử lý high-DPI trên Windows), và ID của IDE được đổi thành
openmvide(8ad1eed1f).Splash screen High-DPI hiển thị ảnh splash 2x trên màn hình Retina/tỷ lệ 200% (626ff673e).
Sửa thanh action. Thanh action bên trái (New File, Open, Save, Undo, Redo, Cut, Copy, Paste) được sửa và được cấp biểu tượng OpenMV tùy chỉnh (b8479b5d0).
Logo hộp thoại About. Cả logo đối tác Arduino và Edge Impulse đều được hiển thị (Edge Impulse trước đây bị ẩn) với biến thể high-DPI 2x, và ảnh splash đi kèm được cập nhật (
splash-small-2/splash-large-2) (5facd8d9a).Select Word Under Cursor được bật; lệnh Go to Block Start/End (Ctrl+[ / Ctrl+]) và Select Block Up/Down được bật lại tạm thời (36ed5b1a8) nhưng bị vô hiệu hóa trong bản phát hành (626ff673e).
Mục nhập desktop Linux bổ sung danh mục Electronics, Comment mô tả và Keywords tìm kiếm (embedded electronics, microcontroller, micropython, computer/machine vision) (470e5702e).
Di chuyển tài nguyên. Tài nguyên người dùng được chuyển đến vị trí có phiên bản (thư mục qtcreator cũ bị xóa khi khởi động), và các cảnh báo DirectWrite font-face vô hại trên Windows bị ẩn (a04af5351, 70765dc2a).
Ẩn tùy chọn nội bộ. Các tùy chọn Core
-colorvà-themenội bộ bị ẩn khỏi đầu ra help, và chế độ trình bày được bật lại (434c7b4cc).Tái áp dụng tùy chỉnh core cho thanh action ưa thích/widget tab, trình quản lý thông báo/cửa sổ đầu ra, proxy action, bộ tô sáng cú pháp và trình soạn thảo văn bản (0e8047372).
QCustomPlot 2.1.1. Thư viện vẽ đồ thị đi kèm được cập nhật cho khả năng tương thích Qt 6.4 và xử lý đúng DPI màn hình thay đổi động (8801415fe).
Dọn dẹp UI thẩm mỹ cho biểu tượng mũi tên thanh cuộn, thanh trạng thái, nút đóng của thanh tab tài liệu, và chiều rộng scroller trình soạn thảo; chỉ báo "Display File Line Ending" của trình soạn thảo nay mặc định tắt (e0c4d2325, 6a26f4430, e130988fb).
Sửa lỗi¶
Đã sửa lỗi phát hiện VID/PID trên Linux bằng cách đọc
/sys/class/tty/<port>/device/ueventđể lấy VID/PID thiết bị thực, khắc phụcQSerialPortInfotrả về định danh của USB hub, giúp phát hiện đúng camera sau hub (28220b351).Đã sửa lỗi nạp firmware bootloader trên Mac bằng cách nới lỏng các khẳng định kích thước endpoint và chỉ thêm gói truy vấn đồng bộ khi một lần ghi đúng bằng một USB endpoint (86d021f92).
Đã sửa lỗi công cụ phát video trên Linux: Play Video File / Play RTSP Stream nay bị ẩn trên Linux 32-bit và ARM (không có ffplay đi kèm), với dự phòng gnome-terminal khi xterm không khả dụng, và binary ffmpeg trên macOS được khôi phục từ placeholder (d342649cc, d896f4225).
Tăng độ trễ bắt đầu/kết thúc reset bootloader từ 0 lên 5 để tránh lệnh xóa và ghi chồng chéo trong quá trình cập nhật firmware (fabc168b6).
Hợp lý hóa quá trình khôi phục bootloader: buộc bootloader sửa camera bị lỗi bỏ qua các lời nhắc thừa, và sau khi reset bootloader DFU, IDE tự động thử cập nhật lại thay vì yêu cầu người dùng kết nối lại (12b924088).
Cho phép hủy các lệnh dump bộ đệm khung hình/TX nối tiếp giữa chừng (4a4afae1b).
Đã xóa cơ chế workaround đình trệ đọc cổng nối tiếp có thể thêm byte zero vào phản hồi, cải thiện độ tin cậy truyền USB nhanh (0ee1d8e91).
Đã sửa lỗi gỡ lỗi WiFi và tự động kết nối lại: các cổng WiFi làm mới dấu thời gian lần thấy cuối khi phát hiện lại, một số lỗi iterator-after-erase trong quản lý cổng WiFi và phát hiện DFU/bootloader đã được sửa, và tự động kết nối lại nay chờ IDE không bận trước khi kết nối lại (cf0b67dc6).
Đã sửa bộ chuyển đổi video sang MJPEG để phân tích tốc độ khung hình từ đầu ra encoder và ghi đúng delta mili giây mỗi khung hình, giúp video đã chuyển đổi phát lại đúng tốc độ (4a7ad2057).
Đã sửa lỗi nạp firmware và các công cụ dòng lệnh đi kèm không khởi chạy được bằng cách buộc dùng backend QProcess và sửa bộ bảo vệ vòng lặp sự kiện tiến trình chặn (200fe9f3c).
Đã sửa các biểu tượng mở rộng/thu gọn nhánh cây trong dataset-editor để hiển thị đúng trên màn hình HiDPI bằng cách tải lại stylesheet biểu tượng khi tỷ lệ điểm ảnh thiết bị thay đổi (a0e78057f).
Cập nhật gói/tài nguyên nay tự động khởi động lại OpenMV IDE thay vì chỉ thoát sau khi cài đặt (178ee1b8e).
Đã sửa tô sáng kết quả Find/search và cho phép hành động kết quả tìm kiếm/mở file dự phòng về trình soạn thảo hiển thị đầu tiên khi không có trình soạn thảo hiện tại (48c402dfc).
Đã sửa hộp thoại tải firmware để văn bản cảnh báo được xóa và cửa sổ thay đổi kích thước đúng khi thao tác nạp hoàn tất (c505c6ade).
Đã sửa nhiều lỗi UI trên macOS: thanh tab không còn báo lỗi tải biểu tượng liên tục và hiển thị đúng khi mở file (9be8c58de, 5322cf968).
Đã sửa kiểu dáng thanh trạng thái / ngăn đầu ra và căn chỉnh đường cơ sở trên macOS và Linux (4fc4545de, d29b2baa0, a440d5cd8).
Đã sửa lỗi in mã nguồn để header tiêu đề trang có đủ lề trên và bên thay vì chạm cạnh trang (786d6012c).
Hỗ trợ nền tảng và công cụ¶
Nền tảng Qt Creator: 10.0.1 (nâng cấp từ 4.0.2).
OpenMV IDE: 4.0.0 -> 4.0.1.
OpenMV Cam RT1062 (i.MX RT1060): firmware RT1062 ban đầu, trình tải flash, ảnh đã ký, mục
imx.txt, và các khóa cấu hìnhblhostsecure-bootloader/eFuse được thêm vào thư mục firmwareOPENMV5(a6595f5f7); sau đó board được hợp nhất về thư mụcOPENMV_RT1060duy nhất, và biến thể board Secure Bootloader (SBL) riêng biệt (OpenMV_Cam_RT1062_SBL) được thêm vào (d2b11c6c8, 5baf28c6e).Chuỗi công cụ nạp đi kèm (blhost, bossac, dfu-util, dfuse + driver STM32, picotool, sdphost, ffmpeg, driver FTDI/Arduino) được đóng gói lại cho Windows/macOS/Linux, với các binary Linux được đánh dấu thực thi (fbfa4903a, bfb6b32e2, 9551c64da).
DFU ARM64 Linux: một
dfu-utilaarch64 đi kèm cùng phát hiện arm64 trong danh sách thiết bị và tải xuống firmware cho phép nạp DFU trên các host như Raspberry Pi (16bc6fe0f, 470e5702e).Phát hiện thiết bị i.MX nay hoạt động trên Linux (phân tích
lsusb) và macOS (quétioreg), cho phép tải firmware i.MX RT trên các nền tảng đó (e03ccbe71, 7cf505d09).Giới hạn nền tảng: sử dụng i.MX bị giới hạn trong Windows/macOS/Linux-x86_64 với lỗi nghiêm trọng trên các nền tảng khác, và nạp firmware Portenta/Nicla trên Linux ARM/ARM64 hiển thị cảnh báo "DFU Util may not be stable on this platform" (9513f6475).
OpenGL Windows: kết xuất phần mềm được khôi phục bằng cách đóng gói
opengl32sw,Qt6OpenGLvà hỗ trợ OpenGL Qt6Gui trong gói triển khai (aaaa1928f).Đổi tên thư mục/id board Arduino. Các thư mục firmware Portenta, Nicla Vision và Nano 33 BLE Sense và id board
boards.txtđược đổi tên thànhARDUINO_PORTENTA_H7,ARDUINO_NICLA_VISIONvàARDUINO_NANO_33_BLE_SENSE(a70d6562a); thư mục/id board Nano 33 BLE Sense sau đó được viết thường thànharduino_nano_33_ble_senseđể khớp với tên board thiết bị báo cáo (22750d8c7, a801a81de).Trình tải flash bootloader OPENMV_RT1060 (
blhost_flash_loader.bin,sdphost_flash_loader.bin) được cập nhật (5baf28c6e).QCustomPlot: 2.1.1 (thư viện vẽ đồ thị đi kèm) (8801415fe).
Ảnh firmware trên đĩa được đóng gói lại cho tất cả các board OpenMV/Arduino được hỗ trợ (
OPENMV1-4P,OPENMV4_PRO,OPENMVPT,ARDUINO_NICLA_VISION,arduino_nano_33_ble_sense,ARDUINO_PORTENTA_H7,ARDUINO_NANO_RP2040_CONNECT,OPENMV_RT1060,CYW4343, cộng firmware WiFiWINC1500), kèm firmware và, nếu có, ảnh bootloader/uvc (fbfa4903a).
Thay đổi không tương thích¶
Đây là các thay đổi quy trình làm việc và hành vi hiển thị với người dùng; việc nâng cấp nền tảng Qt Creator 10.0.1 không ảnh hưởng đến các dự án hay tập lệnh của người dùng.
Định nghĩa board i.MX RT1060 đã thay đổi. Các mục
EVKBMIMXRT1060vàOPENMV5được thay thế bằng một boardOPENMV_RT1060duy nhất (OpenMV Cam RT1062, cùng biến thể SBL), và các thư mục firmware cũ đã bị xóa (d2b11c6c8).Thời gian chờ phản hồi lệnh mặc định là 10000 ms (trước đây là 5000 ms trong 4.0.0); văn bản help
-override_read_timeoutđược cập nhật để khớp (4a4afae1b).Hành vi kết nối/ngắt kết nối đã thay đổi. Auto Reconnect giờ mặc định TẮT, và kết nối hoặc ngắt kết nối không còn dừng tập lệnh đang chạy theo mặc định trừ khi nút bật/tắt "Stop Script on Connect/Disconnect" mới được bật (mặc định bật) (a0e78057f).
Luồng cập nhật khởi động lại IDE. Cập nhật gói/tài nguyên nay tự động khởi động lại OpenMV IDE thay vì thoát sau khi cài đặt (178ee1b8e).
Đổi tên id board Arduino. Các id board
boards.txtvà thư mục firmware Portenta, Nicla Vision và Nano 33 BLE Sense được đổi tên thànhARDUINO_PORTENTA_H7,ARDUINO_NICLA_VISIONvàARDUINO_NANO_33_BLE_SENSE(cái sau sau đó được viết thường thànharduino_nano_33_ble_sense) (a70d6562a, 22750d8c7, a801a81de).