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 на платах без датчика / только тепловизионных платах (изменение импорта датчика). Все остальные скрипты работают без изменений.