v1.7.0

В v1.7.0 появляется модуль cpufreq (управление частотой CPU / разгоном), модуль os из MicroPython, обновление частоты кадров / управление разрешением для тепловых датчиков MLX, а также начальная поддержка платы OpenMV Cam M7 (STM32F7). Изменились сигнатура fir.init(), обработка слишком больших кадров и качество JPEG по умолчанию — прочитайте о критических изменениях ниже.

Основные новшества

  • Модуль cpufreq — запрос / установка частоты CPU, с примером разгона.

  • Модуль os — теперь доступен модуль os из MicroPython.

  • Тепловые MLXfir.init() принимает частоту обновления и разрешение ADC.

  • OpenMV Cam M7 — начальная поддержка платы STM32F7.

  • Критическое: fir.init() теперь принимает только именованные аргументы, слишком большие кадры автоматически обрезаются, а качество JPEG по умолчанию снижено — см. критические изменения.

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

  • cpufreq — добавлен модуль cpufreq с cpufreq.get_frequency() / cpufreq.set_frequency() и константами CPUFREQ_120MHZ / 144 / 168 / 192 / 216MHZ, а также пример overclocking.py.

  • os — включён модуль os из MicroPython.

  • MLX / FIRfir.init() теперь принимает частоту обновления и разрешение ADC, с соответствующими элементами управления refresh / resolution для теплового датчика MLX.

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

  • Настроена область AGC/AEC для OV7725 (меньше смазывания при движении), включена сплошная цветовая полоса DSP для OV7725 и исправлена потоковая передача буфера кадра в IDE (нет устаревших / дублирующихся кадров).

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

  • Исправлено переполнение размера передачи DCMI/DMA в sensor.snapshot(), упорядочена обработка переполнения буфера при JPEG-сжатии, улучшена рабочая область AEC/AGC для OV7725 для лучшей автоматической экспозиции/усиления, а также исправлены скрипты цветовой полосы / самопроверки для OV7725.

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

  • OpenMV Cam M7 (STM32F7 / OPENMV7) — начальная поддержка платы и загрузчика.

  • OpenMV 2 — тактирование датчика осуществляется выходом MCO.

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

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

Каждое изменение помечено по степени воздействия:

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

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

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

fir.init() теперь принимает только именованные аргументы (minor)

fir.init() была переработана для приёма именованных аргументов (type= / refresh= / resolution=, по умолчанию refresh 64 Гц, максимум 512 Гц) вместо позиционных. Обновите позиционные вызовы fir.init(...) на именованную форму.

Коммиты: 958c5b7f7

Слишком большие кадры автоматически обрезаются до QVGA (behavior)

sensor.snapshot() больше не вызывает исключение, когда необработанный кадр превышает максимальный размер необработанного кадра платы — слишком большие необработанные кадры теперь окнируются/обрезаются до QVGA (отклоняются только необработанные кадры в режиме JPEG). Выберите поддерживаемый размер кадра, если вы полагались на прежнюю ошибку.

Коммиты: b655a5488, abace9e4f

Максимальный размер кадра на OpenMV 2 снижен до QVGA (behavior)

На OpenMV 2 максимальный размер кадра для интегрального изображения / необработанного / блоба снижен с VGA до QVGA. Запрос VGA для операций с оттенками серого / RGB565 / блобами / интегральным изображением на OpenMV 2 теперь обрезается до QVGA — переработайте скрипты, которые зависели от обработки VGA на этой плате.

Коммиты: 7499062bd

Снижено качество JPEG по умолчанию (behavior)

Качество JPEG по умолчанию снижено (по умолчанию с 50 → 35, с более низкими порогами субдискретизации в IDE) для более надёжной потоковой передачи. Снятые/передаваемые JPEG по умолчанию имеют заметно более низкое качество — передайте явное значение quality в image.compress(), если вам нужно прежнее качество.

Коммиты: d9c8b1535

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

Для чистого перехода на v1.7.0 обычно нужно:

  1. Преобразовать позиционные вызовы fir.init(...) в именованную форму (изменение fir.init).

  2. Использовать поддерживаемый размер кадра вместо опоры на прежнюю ошибку слишком большого кадра (изменение слишком больших кадров) и переработать обработку VGA на OpenMV 2 (изменение размера кадра OpenMV 2).

  3. Передать явное значение quality в image.compress(), если вам нужно прежнее качество JPEG (изменение качества JPEG).

Все остальные скрипты работают без изменений.