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