v3.6.8¶
v3.6.8 добавляет плату OpenMV Cam Pure Thermal, ускоряет вывод tf примерно в 4 раза за счёт переноса TensorFlow на CMSIS-NN, расширяет настольную библиотеку rpc интерфейсами UART / Kvaser CAN / I2C / SPI и включает поддержку SD-карты на Arduino Portenta H7. Изменилась обработка разделов SD-карты и поведение import sensor на платах без датчика — прочтите раздел несовместимых изменений ниже.
Основные моменты¶
OpenMV Cam Pure Thermal — поддержка новой платы.
Ускорение TensorFlow примерно в 4 раза — вывод
tfтеперь выполняется на CMSIS-NN.Библиотека
rpc— добавлены интерфейсы UART, Kvaser CAN и master/slave для I2C/SPI.SD-карта на Portenta H7 — включена поддержка SD-карты, с исправлениями тактирования PLL1/HSE/ADC.
Несовместимо: загрузка с SD-карты теперь автоматически определяет раздел, а
import sensorтеперь вызывает исключение при отсутствии датчика изображения — см. несовместимые изменения.
Новые возможности¶
rpc— в настольную библиотеку RPC добавлены интерфейсы UART, Kvaser CAN и master/slave для I2C/SPI (rpc_uart_master/rpc_uart_slave,rpc_kvarser_can_master/rpc_kvarser_can_slave, а также master/slave для I2C/SPI).Платы без датчика — прошивка теперь поддерживает платы без датчика изображения (что обеспечивает работу платы Pure Thermal).
Геометрия JPEG — добавлена структура настроек чтения JPEG (
jpg_w/jpg_h/jpg_size) для считывания геометрии JPEG.
Прочие изменения и улучшения¶
TensorFlow переведён на CMSIS-NN, что ускоряет вывод
tfпримерно в 4 раза (конфигурация imlib для каждой платы скорректирована); примерulabиспользуетulab.numerical.mean/std; пример глубокого сна теперь вызываетsensor.sleep(True)перед записью в регистр обхода регулятора OV7725.
Исправления ошибок¶
Камера и обработка изображений:
Исправлена загрузка изображений JPEG с диска (геометрия JPEG отклонялась как неподдерживаемый формат),
sensor.reset()теперь выполняет аппаратный сброс, чтобы датчик восстанавливался после отключения регулятора, исправлена конфигурация альтернативной функции / тактирования SPI для FLIR Lepton на OpenMV 4 / 4 Plus, а также исправлено назначение вывода FSYNC на OpenMV 4 / 4 Plus.
Связь и система:
Исправлена запись по таймеру
pyb.DACна H7,WLAN.start_ap()для WINC1500 больше не требует ключа при защите OPEN, исправлено совместное использование шины I2C камерой и пользовательскими периферийными устройствами на Portenta, а маркер буфера кадра SWD самопроверки сделан индивидуальным для каждой платы, чтобы он больше не затирал значениеbppбуфера кадра на платах без него.
Поддержка оборудования и плат¶
OpenMV Cam Pure Thermal — новая плата.
Arduino Portenta H7 — включена SD-карта, с исправлениями PLL1 (400 МГц/40 МГц, USB/RNG на HSI48), HSE (25 МГц) и источника тактирования ADC.
Несовместимые изменения API¶
Несовместимые для пользователя изменения API между v3.6.7 и v3.6.8. Область: Python C-модули в modules/ и библиотеки Python в scripts/libraries/.
Оба несовместимых изменения являются изменениями поведения (тот же API, другой результат) — перепроверьте затронутые скрипты. Каждый хеш коммита ведёт на его diff на GitHub.
Автоопределение раздела SD-карты (поведение)¶
Загрузка с SD-карты теперь автоматически определяет раздел вместо того, чтобы всегда монтировать раздел 1. Карты, полагавшиеся на прежнее поведение с фиксированным разделом 1, теперь могут монтировать другую файловую систему; перепроверьте SD-карты с несколькими разделами и ожидаемое монтирование.
Коммиты: 1f7f003b8
import sensor вызывает исключение на платах без датчика (поведение)¶
Для поддержки плат без датчика изображения проверка инициализации модуля sensor теперь выполняется при импорте, поэтому import sensor вызывает RuntimeError, когда датчик изображения не обнаружен (вместо того чтобы завершаться ошибкой позже). На тепловизионной плате оборачивайте import sensor в try / except или не импортируйте его.
Коммиты: 17b444ad1
Контрольный список миграции¶
Перепроверьте SD-карты с несколькими разделами с учётом нового автоопределения раздела (изменение SD-карты) и оборачивайте import sensor на платах без датчика / только тепловизионных платах (изменение импорта датчика). Все остальные скрипты работают без изменений.