v3.6.0

v3.6.0 обеспечивает полную поддержку 5-мегапиксельной камеры OV5640 с новыми разрешениями высокого качества (HD / FHD / QHD / QXGA / WQXGA), обновляет ядро до MicroPython 1.12, существенно оптимизирует программный JPEG-кодировщик и обнаружение AprilTag / линий, добавляет UVC (USB-видео) на OpenMV Cam H7 Plus и поддерживает QSPI-флеш объёмом до 32 МБ. Поведение MicroPython и get_histogram() изменилось — ознакомьтесь с несовместимыми изменениями ниже.

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

  • 5-мегапиксельная OV5640 — полнофункциональный драйвер камеры с новыми разрешениями HD / FHD / QHD / QXGA / WQXGA / WQXGA2.

  • MicroPython 1.12 — обновлено встроенное ядро.

  • Более быстрый конвейер — существенно оптимизированы программное кодирование JPEG, обнаружение AprilTag, обнаружение линий LSD, histeq() и декодирование QR-кодов.

  • UVC на H7 Plus — OpenMV Cam H7 Plus может работать как USB-видеоустройство.

  • Несовместимо: изменились поведение MicroPython, нормализация image.get_histogram() и вывод JPEG/оттенков серого на OpenMV 3 — см. несовместимые изменения.

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

  • OV5640 — добавлена полная поддержка 5-мегапиксельной камеры OV5640 (конфигурация внешнего тактирования при инициализации датчика) и новые константы разрешений sensor.HD / FHD / QHD / QXGA / WQXGA / WQXGA2.

  • TIM4 — освобождён, так что его можно использовать из MicroPython.

  • Добавлен пример синхронизированной записи DAC (dac_write_timed.py), а dac_control.py переименован в dac_write.py.

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

  • Встроенный MicroPython обновлён до 1.12; существенно оптимизированы программный JPEG-кодировщик (путь VGA, пути оттенков серого/бинарного изображения, целочисленная арифметика вместо вычислений с плавающей точкой, оптимизированный захват MCU), find_line_segments() (LSD), обнаружение AprilTag, Image.histeq() и преобразование QR-кода / RGB в оттенки серого; добавлена поддержка QSPI-флеша для чипов объёмом до 32 МБ; удалён устаревший пример CMSIS-CNN cnn.py.

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

Камера и обработка изображений:

  • Исправлены повреждение при кодировании JPEG в HQQQVGA, сжатие бинарного (1-битного) изображения → JPEG, регрессия find_line_segments() (повторно включена проверка невыровненного NOTDEF) и незначительные проблемы драйвера OV2640.

Система и загрузка:

  • Исправлены повреждение при самотестировании / файловой системе (selftest.py теперь запускается до включения USB MSC, а USB MSC включается при фатальной ошибке, чтобы хост мог прочитать журнал ошибок), write_timed() для pyb.DAC, тайминги machine.I2C для H7, повторное включение overdrive на F7 после режима остановки и интервал rtc.wakeup() в stop_mode.py.

Аппаратное обеспечение и поддержка плат

  • OV5640 — полнофункциональный драйвер 5-мегапиксельной камеры с разрешениями высокого качества.

  • OpenMV Cam H7 Plus — поддержка UVC (USB-видео); целевая плата OPENMV4R переименована в OPENMV4P.

  • QSPI-флеш — теперь поддерживаются чипы объёмом до 32 МБ.

Несовместимые изменения в API

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

Все три несовместимых изменения являются изменениями поведения (тот же API, другие результаты) — перепроверьте затронутые скрипты. Каждый хеш коммита ведёт к его diff на GitHub.

MicroPython обновлён до 1.12 (поведение)

Встроенное ядро MicroPython было обновлено до 1.12. Поведение стандартной библиотеки и языка соответствует вышестоящему MicroPython 1.12; перепроверьте скрипты, зависящие от специфичного для версии поведения micropython / стандартных модулей.

Коммиты: eafd431ea

Нормализация порога image.get_histogram() изменена (поведение)

image.get_histogram()get_statistics()) с цветовыми порогами теперь нормализует по числу пикселей, прошедших пороговую обработку, а не по всей области интереса (ROI), и использует округление вниз вместо обычного округления при индексировании корзин. Значения гистограммы/статистики для вызовов с порогами отличаются от предыдущих выпусков — перенастройте код, сравнивавший абсолютные значения гистограммы.

Коммиты: 7cf0f8089

Вывод JPEG/оттенков серого на OpenMV 3 изменён (поведение)

Для экономии флеш-памяти таблица поиска YUV на OpenMV 3 (M7) была отключена, поэтому значения пикселей вывода JPEG и оттенков серого вычисляются на OpenMV 3 несколько иначе. Вывод по-прежнему корректен, но незначительно отличается от предыдущих выпусков; перепроверьте сравнения с точностью до пикселя на OpenMV 3.

Коммиты: 0e4b46e41

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

Перепроверьте скрипты, зависящие от специфичного для версии поведения MicroPython, на соответствие 1.12 (обновление MicroPython), перенастройте код, сравнивавший абсолютные значения get_histogram() / get_statistics() при использовании цветовых порогов (изменение гистограммы), и перепроверьте сравнения с точностью до пикселя на OpenMV 3 (изменение вывода OpenMV 3). Все остальные скрипты работают без изменений.