v3.6.0#

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

Основне#

  • OV5640 5 МП — повний драйвер камери з новими кадрами 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 timed-write (dac_write_timed.py) та перейменовано dac_control.py на dac_write.py.

Інші зміни та покращення#

  • Оновлено вбудований MicroPython до 1.12; значно оптимізовано програмний кодек JPEG (шлях VGA, шляхи відтінків сірого/бінарний, цілочисельна замість плаваючої арифметики, оптимізоване захоплення MCU), LSD find_line_segments(), виявлення 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 вмикається при фатальній помилці, щоб хост міг прочитати журнал помилок), pyb.DAC write_timed(), тактування 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 upstream; перевірте скрипти, які залежать від версійно-специфічної поведінки micropython / стандартних модулів.

Коміти: eafd431ea

Змінено нормалізацію порогу image.get_histogram() (поведінка)#

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

Коміти: 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). Усі інші скрипти працюють без змін.