v4.2.2

v4.2.2 додає підтримку зображень PNG (декодування/кодування через lodepng), завантажувач вбудованих моделей на основі таблиць, підтримку Portenta OV5640, оновлення Edge Impulse TensorFlow та ulab 4.0. API конфігурації RPC CAN змінено — прочитайте список критичних змін нижче.

Основні зміни

  • Підтримка PNGImage.to_png(), image.PNG та читання/запис PNG-файлів.

  • tf.load_builtin_model() — вбудовані моделі на основі таблиць, які можна замінити або додати під час збірки.

  • Portenta H7 — підтримка камери OV5640 (з автофокусом).

  • MicroPython/ulab — ulab оновлено до версії 4.0.0.

  • Критично: API конфігурації RPC CAN змінено — дивіться список критичних змін.

Нові функції

  • Формат зображення PNG — новий метод Image.to_png(), константа image.PNG / PIXFORMAT_PNG, завантаження/збереження PNG-файлів (читання/запис .png) та виведення PNG у перетвореннях image.to() за допомогою вбудованого кодека lodepng.

  • tf.load_builtin_model(path) — завантажує вбудовану в мікропрограму модель (МН) і повертає кортеж (labels, net); вбудовані моделі тепер визначаються через таблицю, тому їх можна замінити або додати під час збірки.

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

  • TensorFlow / Edge Impulse — пакетна бібліотека інференсу оновлена до Edge Impulse ei-V2.5.0, модель person_detection перенесена до таблиці вбудованих моделей, а відсутні оператори TensorFlow додані для всіх збірок Cortex-M0+/M4/M7/M55 — тепер більше моделей Edge Impulse запускаються успішно.

  • ulab оновлено до 4.0.0.

  • Відкриття віртуального послідовного порту USB на швидкості 1200 бод тепер ініціює скидання у стилі Arduino до завантажувача.

  • Мікропрограма модуля WiFi WINC1500 оновлена до версії 19.7.6 (за допомогою скрипту оновлення), тепер він також повідомляє реальну версію хост-драйвера.

  • Порт RP2 виводить «MPY: soft reboot» та отримав підтримку ініціалізації/деініціалізації UART.

Виправлення помилок

  • Виправлено розмір кадрового буфера Arduino Nano RP2040 Connect та ідентифікатор USB-продукту Arduino Nicla Vision (правильне перерахування USB).

Апаратне забезпечення та підтримка плат

  • Arduino Portenta H7 — підтримка камери OV5640 (з автофокусом); GC2145 відключено на Portenta.

  • Arduino Nano RP2040 Connect — конфігурація пам’яті та шаблони свіжої файлової системи.

  • WiFi Shield (WINC1500) — мікропрограму оновлено до версії 19.7.6.

Критичні зміни API

Зміни API, помітні користувачу, між v4.2.1 та v4.2.2. Область застосування: C-модулі Python у modules/ та бібліотеки Python у scripts/libraries/.

Кожна зміна позначена за впливом:

  • незначний — вузький API; стосується лише скриптів, які його використовували.

  • поведінковий — той самий API, інші результати; перевірте налаштовані скрипти.

Зміни згруповані за рівнем впливу у вказаному порядку. Кожен хеш коміту веде до diff на GitHub.

API конфігурації RPC CAN (незначний)

У бібліотеці rpc аргумент-ключове слово CAN sampling_point для rpc_can_master / rpc_can_slave перейменовано на sample_point (для відповідності upstream MicroPython), а ручний помічник розрахунку тактування CAN видалено — шина CAN тепер налаштовується через CAN(..., baudrate=, sample_point=). Скрипти, які передавали sampling_point або покладалися на старий розрахунок тактування, потрібно оновити.

Коміти: b565eca58, 06d716986

image.format() та стиснені зображення (поведінковий)

Завдяки уніфікованому шляху обробки стиснених зображень, доданому для PNG, image.format() тепер повертає PIXFORMAT_INVALID для невідомого формату, а індексування/ітерація/виведення стиснених зображень тепер охоплює PNG разом із JPEG. Код, який перевіряв попереднє значення для невідомих форматів, слід перевірити.

Коміт: f12a4659c

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

Для чистого перенесення на v4.2.2: перейменуйте sampling_pointsample_point у RPC CAN і видаліть будь-яке ручне налаштування тактування CAN (зміна RPC CAN), а також перевірте будь-який код, що перевіряв image.format() для невідомих форматів (зміна format()).