v2.4.0¶
v2.4.0 построен на Qt Creator 4.0.2 и сосредоточен на новом загрузчике V3 (запрос разметки QSPI flash во время загрузки прошивки и её стирание при полном стирании встроенной data-flash), на отображении датчика и платы в реальном времени в строке состояния, а также на новом 32-битном протоколе USB-отладки, соответствующем входящей в комплект прошивке. Также добавлены руководство по светодиоду при первом запуске и большой набор новых примеров для TensorFlow, Modbus и WiFi. Поскольку протокол отладки изменился, для подключения камеры должны работать на новой входящей в комплект прошивке.
Основные изменения¶
Поддержка загрузчика V3 запрашивает разметку внешней QSPI flash платы во время загрузки прошивки и стирает её при полном стирании встроенной data-flash (d953df62f).
Отображение датчика и платы запрашивает модуль датчика подключённой камеры при подключении и показывает его в строке состояния (OV2640, OV5640, OV7690, OV7725, OV9650, MT9V034, LEPTON) рядом с новой меткой типа платы (0ffa82958).
Копирование модели TensorFlow позволяет копировать на камеру модели
.tflite, а не только файлы нейронных сетей.network(ad1aa98f0).Erase Onboard Data Flash — новая команда меню
Tools, которая после запроса подтверждения стирает только встроенную flash-память файловой системы камеры, не перепрошивая прошивку (d953df62f, 98686ac46).Руководство по светодиоду при первом запуске — новый диалог
OpenMV Cam LED Colors, который объясняет состояния встроенного светодиода и может быть отключён навсегда (c2d00422f).
Новые возможности¶
Загрузчик V3 запрашивает разметку QSPI flash во время загрузки прошивки и стирает внешнюю QSPI flash только при полном стирании встроенной data-flash;
connectClickedвсегда вызываетbootloaderQSPIFLayoutна платах V3, но запускаетbootloaderQSPIFEraseтолько при установленномforceFlashFSErase(команды записи/memtest для QSPI реализованы в слое IO, но не задействуются загрузчиком) (d953df62f).Состояние датчика и платы запрашивает модуль датчика камеры при подключении и отображает его (OV2640, OV5640, OV7690, OV7725, OV9650, MT9V034, LEPTON) в строке состояния вместе с новой меткой типа платы, используя новую карту соответствия id-имя
sensors.txt(0ffa82958).Руководство по светодиоду при первом запуске добавляет новый диалог
OpenMV Cam LED Colors, который после короткой задержки появляется при первом запуске, если открытым документом являетсяhelloworld_1.py, и объясняет состояния встроенного светодиода (мигающий зелёный = работает загрузчик, синий = выполняетсяmain.py, белый = паника при аппаратном сбое); флажок «Don’t show this message again.» сохраняет отказ через параметрDONT_SHOW_LED_STATES_AGAIN(c2d00422f).Open OpenMV Cam Drive folder — новый пункт меню
Tools, который открывает смонтированный диск камеры в системном файловом менеджере (a49f54305).Erase Onboard Data Flash — новая команда меню
Tools, которая после запроса подтверждения стирает только встроенную flash-память файловой системы, не перепрошивая прошивку (d953df62f, 98686ac46).Копирование модели TensorFlow позволяет диалогу копирования моделей копировать на камеру модели
.tfliteв дополнение к файлам нейронных сетей.network; фильтр диалога также получил пунктыLabel Files (*.txt)иAll Files(ad1aa98f0, 0ffa82958, c0dbdd9e5).Переключение версии протокола отладки разбивает на части последовательные команды
GetAttribute,SetAttribute,FBEnableиJPEGEnableпри взаимодействии с прошивкой 3.5.3+ для повышения надёжности (83b9ca18f).Новые входящие в комплект примеры добавляют скрипты со скользящим окном для mobilenet и обнаружения людей на TensorFlow Lite, а также пример 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-битных слов (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).Обновлён входящий в комплект набор HTML-документации MicroPython (справочник библиотек, руководства по esp8266/esp32, сгенерированные страницы и изображения), отображаемый в справке IDE (e69d71f7c, 90b5c6eb5, 97b0f645a).
Исправления ошибок¶
Исправлено числовое переполнение в статистике гистограммы (среднее, квартили, медиана, стандартное отклонение) путём расширения аккумуляторов с
intдо 64-битных, что предотвращает неверную статистику на больших изображениях (55d7cfe70).Переработаны отключение/извлечение в Linux: ненадёжный сброс через
syncfs/closedirудалён, и диск теперь размонтируется обычной командойumountбез диалога прогресса (b86d5c62c, c0dbdd9e5, 30d4a7d2d).USB-диск платы теперь сопоставляется только когда прошивка достаточно новая или присутствует файл-маркер
.openmv_disk, что предотвращает захват IDE неверного съёмного диска (e464eaed4).Исправлена логика повторного подключения, так что запуск операции загрузчика/стирания во время подключения теперь сначала корректно отключается, а затем повторяет попытку, избегая зависшего рабочего состояния (d953df62f).
Переписан удалитель комментариев/пробелов, используемый при отправке скриптов на камеру, в виде конечного автомата, учитывающего строки, так что символы
#внутри строк больше не принимаются за комментарии, а завершающие пробелы и docstring обрабатываются корректно (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 также запрашивает ID датчика камеры при подключении. Это требует прошивки, реализующей новый протокол. Входящая в комплект прошивка 1.2.15 / 1.4.11 его предоставляет, поэтому для подключения более старые камеры должны быть перепрошиты на новую прошивку.