v1.7.0¶
В v1.7.0 появляется модуль cpufreq (управление частотой CPU / разгоном), модуль os из MicroPython, обновление частоты кадров / управление разрешением для тепловых датчиков MLX, а также начальная поддержка платы OpenMV Cam M7 (STM32F7). Изменились сигнатура fir.init(), обработка слишком больших кадров и качество JPEG по умолчанию — прочитайте о критических изменениях ниже.
Основные новшества¶
Модуль
cpufreq— запрос / установка частоты CPU, с примером разгона.Тепловые MLX —
fir.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.MLX / FIR —
fir.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). Выберите поддерживаемый размер кадра, если вы полагались на прежнюю ошибку.
Максимальный размер кадра на 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 обычно нужно:
Преобразовать позиционные вызовы
fir.init(...)в именованную форму (изменение fir.init).Использовать поддерживаемый размер кадра вместо опоры на прежнюю ошибку слишком большого кадра (изменение слишком больших кадров) и переработать обработку VGA на OpenMV 2 (изменение размера кадра OpenMV 2).
Передать явное значение
qualityвimage.compress(), если вам нужно прежнее качество JPEG (изменение качества JPEG).
Все остальные скрипты работают без изменений.