v2.4.0

v2.4.0 побудовано на Qt Creator 4.0.2 і зосереджено на новому завантажувачі V3 (запит розмітки QSPI флеш-пам’яті під час завантаження мікропрограми та очищення під час повного стирання вбудованого флеш-накопичувача), живому звітуванні про датчик та плату в рядку стану, а також новому 32-бітному протоколі налагодження USB, що відповідає комплектній мікропрограмі. Також додано посібник зі світлодіодами для першого запуску та великий набір нових прикладів TensorFlow, Modbus і WiFi. Оскільки протокол налагодження змінився, камери повинні мати нову комплектну мікропрограму для підключення.

Основні можливості

  • Підтримка завантажувача V3 запитує розмітку зовнішньої QSPI флеш-пам’яті плати під час завантаження мікропрограми та очищує її під час повного стирання вбудованого флеш-накопичувача (d953df62f).

  • Звітування про датчик та плату запитує модуль датчика підключеної камери при підключенні та відображає його в рядку стану (OV2640, OV5640, OV7690, OV7725, OV9650, MT9V034, LEPTON) поряд з новою міткою типу плати (0ffa82958).

  • Копіювання моделі TensorFlow дозволяє копіювати моделі .tflite на камеру, а не лише файли нейронної мережі .network (ad1aa98f0).

  • Стирання вбудованого флеш-накопичувача — нова команда меню Tools, яка стирає лише вбудовану файлову систему флеш-пам’яті камери після підтвердження без перепрошивки мікропрограми (d953df62f, 98686ac46).

  • Посібник зі світлодіодами для першого запуску — нове діалогове вікно OpenMV Cam LED Colors, яке пояснює стани вбудованого світлодіода та може бути назавжди закрите (c2d00422f).

Нові функції

  • Завантажувач V3 запитує розмітку QSPI флеш-пам’яті під час завантаження мікропрограми та очищує зовнішню QSPI флеш-пам’ять лише під час повного стирання вбудованого флеш-накопичувача; connectClicked завжди виконує bootloaderQSPIFLayout на платах V3, але запускає bootloaderQSPIFErase лише якщо встановлено forceFlashFSErase (команди запису/тестування пам’яті QSPI реалізовано у шарі введення-виведення, але не використовуються завантажувачем) (d953df62f).

  • Стан датчика та плати запитує модуль датчика камери при підключенні та відображає його (OV2640, OV5640, OV7690, OV7725, OV9650, MT9V034, LEPTON) у рядку стану разом із новою міткою типу плати, використовуючи нову карту відповідності ідентифікаторів sensors.txt (0ffa82958).

  • Посібник зі світлодіодами для першого запуску додає нове діалогове вікно OpenMV Cam LED Colors, яке з’являється після короткої затримки, коли helloworld_1.py є відкритим документом при першому запуску, пояснюючи стани вбудованого світлодіода (мигання зеленого = завантажувач запущено, синій = виконується main.py, білий = паніка через апаратний збій); прапорець «Don’t show this message again.» зберігає вибір за допомогою налаштування DONT_SHOW_LED_STATES_AGAIN (c2d00422f).

  • Відкрити папку диска OpenMV Cam — новий пункт меню Tools, що відкриває змонтований диск камери у системному файловому браузері (a49f54305).

  • Стирання вбудованого флеш-накопичувача — нова команда Tools, яка стирає лише вбудовану файлову систему флеш-пам’яті після підтвердження без перепрошивки мікропрограми (d953df62f, 98686ac46).

  • Копіювання моделі TensorFlow дозволяє діалогу копіювання моделей копіювати моделі .tflite на камеру на додаток до файлів нейронної мережі .network; до фільтра діалогу також додано пункти Label Files (*.txt) та All Files (ad1aa98f0, 0ffa82958, c0dbdd9e5).

  • Перемикання версії протоколу налагодження розбиває послідовні команди GetAttribute, SetAttribute, FBEnable та JPEGEnable при взаємодії з мікропрограмою версії 3.5.3+ для підвищення надійності (83b9ca18f).

  • Нові приклади — додано скрипти ковзного вікна TensorFlow Lite mobilenet та виявлення осіб, приклад MNIST для STM32Cube.AI (nn_stm32cubeai.py), нова папка 32-modbus (modbus_rtu_slave.py, modbus_apriltag.py), доповнення для WiFi-щита (http_client_ssl, static_ip, mqtt_pub/mqtt_sub), Arduino UART/SPI-slave та CAN (e26b90d79, 42ba8f5c4).

Інші зміни та покращення

  • Оновлено протокол налагодження USB відповідно до нової мікропрограми: для зчитування атрибутів використовується нова 32-бітна команда ATTR_READ_2 (0xCA), а корисне навантаження атрибутів, значень та дозволу кадрового буфера надсилається як 32-бітні long замість 16-бітних word (55d7cfe70).

  • Перейменовано Save open script to OpenMV Cam на Save open script to OpenMV Cam (as main.py) для уточнення, що записується main.py (a49f54305).

  • Перейменовано Run Bootloader на Run Bootloader (Load Firmware) для уточнення призначення (ad1aa98f0).

  • Меню прикладів тепер відсортовано за числовим префіксом папки/файлу, а провідні цифри NN- видалено з відображуваних назв (ad1aa98f0).

  • Виведення та послідовні термінали тепер відображають табуляцію як пробіли з використанням налаштовуваної ширини табуляції послідовного термінала з налаштувань текстового редактора замість жорстко заданої ширини 8 (98686ac46).

  • Виявлення дисків у Linux тепер також приймає файлові системи, змонтовані через fuseblk (наприклад, томи exFAT/NTFS), під час асоціювання диску камери (c0dbdd9e5).

  • Оновлено комплектну документацію MicroPython у форматі HTML (довідник бібліотеки, посібники esp8266/esp32, згенеровані сторінки та зображення), що відображається у довідці IDE (e69d71f7c, 90b5c6eb5, 97b0f645a).

Виправлення помилок

  • Виправлено числове переповнення у статистиці гістограми (середнє, квартилі, медіана, стандартне відхилення) шляхом розширення акумуляторів з int до 64-бітних, що запобігає неправильній статистиці для великих зображень (55d7cfe70).

  • Переопрацьовано від’єднання/виштовхування у Linux: ненадійне очищення syncfs/closedir було видалено, а диск тепер відмонтовується звичайною командою umount без діалогового вікна прогресу (b86d5c62c, c0dbdd9e5, 30d4a7d2d).

  • USB-диск плати тепер асоціюється лише якщо мікропрограма достатньо нова або присутній файл-маркер .openmv_disk, що запобігає захопленню IDE неправильного знімного диску (e464eaed4).

  • Виправлено логіку повторного підключення: запуск операції завантажувача/стирання під час з’єднання тепер спочатку коректно відключається, а потім повторює спробу, уникаючи зависання у стані роботи (d953df62f).

  • Переписано стриппер коментарів/пробілів, що використовується під час надсилання скриптів на камеру, як машину стану з урахуванням рядків, щоб символи # всередині рядків більше не приймалися за коментарі, а завершальні пробіли та рядки документації оброблялися правильно (24dff1b2f).

  • Виправлено обробку рядків перекладу для кількох повідомлень діалогів підключення/терміналу, щоб вбудовані команди оболонки (sudo adduser, кроки встановлення pydfu) більше не входили до перекладуваного тексту та відображалися правильно (b5705a57e).

Підтримка платформ та інструментів

  • База Qt Creator: 4.0.2.

  • Перейменовано плату/мікропрограму OpenMV Cam H7 Plus з OPENMV4R на OPENMV4P (OMV4P_H7_32768_SDRAM) та включено її мікропрограму під новою назвою (c0dbdd9e5).

  • Виправлено відображувану назву плати H7 Plus: тепер використовуються підкреслення замість пробілів (OpenMV_Cam_H7_Plus_(STM32H743_w/_SDRAM)) (75764132c).

  • Комплектна мікропрограма оновлювалась протягом усього випуску, завершившись версією 3.5.2 для OPENMV2/3/4/4P (фінальне оновлення у 15c07498c; попередні накопичувальні оновлення у 42ba8f5c4 до 3.4.2, a99c2e3e1 до 3.4.3, e26b90d79 до 3.5.0 та 97b0f645a до 3.5.1).

  • Версії комплектної мікропрограми: 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.

  • Версію OpenMV IDE збільшено з 2.2.1 до 2.4.0.

Критичні зміни

Протокол зчитування атрибутів USB налагодження було перемкнуто зі старої 16-бітної команди ATTR_READ (0x8A) на нову 32-бітну команду ATTR_READ_2 (0xCA), а корисне навантаження атрибутів, значень та дозволів тепер надсилається як 32-бітні long; IDE також запитує ідентифікатор датчика камери при підключенні. Це вимагає мікропрограми, що реалізує новий протокол. Комплектна мікропрограма 1.2.15 / 1.4.11 підтримує його, тому старі камери необхідно перепрошити для підключення.