v4.2.2¶
v4.2.2 добавляет поддержку изображений PNG (декодирование/кодирование через lodepng), табличный загрузчик встроенных моделей, поддержку OV5640 для Portenta, обновление TensorFlow для Edge Impulse и ulab 4.0. Изменился API конфигурации RPC CAN — см. описание несовместимых изменений ниже.
Основные изменения¶
Поддержка PNG —
Image.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перенесена в таблицу встроенных моделей, а во все сборки Cortex-M0+/M4/M7/M55 добавлены недостающие операторы TensorFlow, благодаря чему запускается больше моделей Edge Impulse.ulab обновлён до 4.0.0.
Открытие виртуального последовательного порта USB на скорости 1200 бод теперь вызывает сброс в загрузчик в стиле Arduino (touch reset).
Прошивка модуля WiFi WINC1500 обновлена до 19.7.6 (вместе со скриптом обновления), и теперь она сообщает фактическую версию хост-драйвера.
Порт RP2 выводит «MPY: soft reboot» и получил инициализацию/деинициализацию UART.
Исправления ошибок¶
Исправлены размер сырого буфера кадра для Arduino Nano RP2040 Connect и Product ID 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/.
Каждое изменение помечено степенью влияния:
minor — узкий API; затрагивает только скрипты, которые его использовали.
behavior — тот же API, иной результат; перепроверьте настроенные скрипты.
Изменения сгруппированы по влиянию в этом порядке. Каждый хэш коммита ведёт к его diff на GitHub.
API конфигурации RPC CAN (minor)¶
В библиотеке rpc именованный аргумент CAN sampling_point в rpc_can_master / rpc_can_slave переименован в sample_point (для соответствия вышестоящему MicroPython), а вспомогательная функция ручной настройки битового тайминга CAN удалена — шина CAN теперь настраивается через CAN(..., baudrate=, sample_point=). Скрипты, передававшие sampling_point или полагавшиеся на старый расчёт битового тайминга, необходимо обновить.
image.format() и сжатые изображения (behavior)¶
С добавлением унифицированного пути обработки сжатых изображений для PNG функция image.format() теперь возвращает PIXFORMAT_INVALID для неизвестного формата, а индексация / итерация / печать сжатых изображений теперь охватывает как PNG, так и JPEG. Код, который анализировал прежнее возвращаемое значение для неизвестных форматов, следует перепроверить.
Коммит: f12a4659c
Чек-лист миграции¶
Для чистого перехода на v4.2.2: переименуйте RPC CAN sampling_point → sample_point и удалите любую ручную настройку битового тайминга CAN (изменение RPC CAN), а также перепроверьте любой код, анализировавший image.format() для неизвестных форматов (изменение format()).