v4.4.0

v4.4.0 добавляет API tf.regression(), поддержку FLIR Lepton на OpenMV Cam H7 Pro, поддержку сопроцессора Cortex-M4 на Arduino Nicla Vision и MicroPython 1.19. Несколько модулей для конкретных плат, а также поведение WiFi/LCD изменились — ознакомьтесь с критическими изменениями ниже.

Основные изменения

  • tf.regression() — запуск регрессионных моделей TensorFlow Lite с одномерным входом и одномерным выходом.

  • Поддержка тепловизионного датчика FLIR Lepton на OpenMV Cam H7 Pro.

  • Arduino Nicla Vision — поддержка сопроцессора Cortex-M4, работающий MicroSpeech, LPUART1.

  • MicroPython обновлён до 1.19; ulab обновлён до 5.1.1.

  • Критическое изменение: модули lcd/tv на Nicla Vision были отключены, а драйвер WiFi на RP2040 Connect изменён — см. критические изменения.

Новые возможности

  • tf.regression(model, input_array) — новая функция для регрессионных моделей TensorFlow Lite с одномерным входом и выходом, возвращающая список выходных значений с плавающей точкой.

  • Управление GC2145sensor.set_auto_exposure() и sensor.set_auto_whitebal() теперь работают на GC2145 (автоэкспозицию / автобаланс белого можно отключить; явная установка экспозиции/усиления пока не поддерживается).

  • Arduino Nicla Vision — была включена поддержка сопроцессора Cortex-M4 (CM4) и периферийного устройства LPUART1.

  • machine.Pin — вывод USB_VBUS теперь доступен пользовательским скриптам.

Прочие изменения и улучшения

  • MicroPython обновлён до 1.19; ulab до 5.1.1; встроенный драйвер WiFi cyw43 был обновлён.

  • Порты RP2 (Arduino Nano RP2040 Connect) и nRF (Arduino Nano 33 BLE Sense) перешли на новый отладчик на базе TinyUSB для подключения к IDE/хосту.

  • Частота XCLK для OV7670 была повышена с 12 МГц до 24 МГц (обновлённый набор регистров).

Исправления ошибок

Камера и датчики:

  • Статистика температуры блобов на OpenMV Pure Thermal теперь использует ИК-изображение вместо цветного, поэтому средняя температура для каждого блоба вычисляется корректно.

  • Исправлена обработка ROI и масштабирование области в draw_image() для более точного масштабированного вывода.

  • IMU повторно инициализируется после программного сброса, поэтому он продолжает работать, когда шина SPI для IMU включена.

Система:

  • Исправлены проблемы сравнения знаковых/беззнаковых значений в обнаружении признаков FAST/AGAST, обнаружении блобов, CLAHE и драйверах LCD/TV; исправлены деинициализация камеры-GPIO / SPI / DAC на STM32, привязка выводов LPUART на H7 и регистрация модуля nn для STM32Cube.AI.

Arduino Nicla Vision:

  • MicroSpeech теперь работает (удвоен буфер PDM, добавлен пример), и исправлен режим низкого энергопотребления (standby).

Поддержка оборудования и плат

  • OpenMV Cam H7 Pro — поддержка тепловизионного датчика FLIR Lepton.

  • Arduino Nicla Vision — сопроцессор CM4, LPUART1, MicroSpeech, режим низкого энергопотребления.

Критические изменения API

Видимые пользователю изменения API между v4.3.3 и v4.4.0. Область: C-модули Python в modules/ и библиотеки Python в scripts/libraries/.

Каждое изменение помечено степенью его влияния:

  • minor — узкое место в API; затрагивает только скрипты на конкретной плате.

  • behavior — тот же API, другие результаты; перепроверьте настроенные скрипты.

Изменения сгруппированы по влиянию в этом порядке. Если вы просто хотите перенести свой код, перейдите к контрольному списку миграции в конце. Каждый хеш коммита ведёт на его diff на GitHub.

Модули Nicla Vision и WiFi на RP2040 (minor)

На Arduino Nicla Vision модули lcd и tv были отключены, чтобы освободить память для поддержки сопроцессора CM4 — скрипты, использующие эти модули на Nicla Vision, больше не найдут их. Arduino Nano RP2040 Connect перешёл с пользовательской реализации WiFi/nina от OpenMV на основной драйвер/модуль NINA-W10 из MicroPython, API которого отличается.

Коммиты: f78d191e3, ddf01cb09

Тайм-аут сокета WiFi и вертикальное отражение LCD (behavior)

Тайм-аут сокета WINC1500 теперь возвращает неблокирующую ошибку (EWOULDBLOCK) вместо ETIMEDOUT, поэтому сокеты с истёкшим тайм-аутом больше не закрываются неожиданно — код, перехватывавший ETIMEDOUT, нужно обновить. SPI LCD shield display теперь вызывает ValueError («Vertical flip requires triple buffering!»), когда запрашивается отрицательный y_scale без включённой тройной буферизации.

Коммиты: 1dc4bea88, 7e52cf751

Контрольный список миграции

Для чистого переноса на v4.4.0 обычно требуется:

  1. На Nicla Vision перестать использовать lcd/tv; на Nano RP2040 Connect перенести код WiFi на основной драйвер NINA-W10 (изменения модулей платы).

  2. Обновить код сокетов WINC1500 так, чтобы он ожидал EWOULDBLOCK при тайм-ауте, и включить тройную буферизацию для вертикально отражённого вывода LCD (изменения поведения).