v4.1.0#
v4.1.0 забезпечує повну підтримку Arduino Nano RP2040 Connect / Raspberry Pi Pico (WiFi, Bluetooth, захоплення з камери, перехід до завантажувача), безпосереднє декодування зображень JPEG, заморожений HTTP-клієнт urequests, підтримку датчика OV7670 та стандартизовану обробку помилок датчика. WiFi API та виключення датчика змінились — перегляньте підсумок несумісних змін нижче.
Основні можливості#
Плати RP2 — Arduino Nano RP2040 Connect / Pico отримали WiFi (NINA-W10), Bluetooth (NimBLE), захоплення з камери/DCMI та перехід до завантажувача.
Декодування JPEG — операції із зображеннями тепер безпосередньо приймають стиснуті JPEG-зображення.
HTTP-клієнт
urequestsзаморожений у мікропрограмі.Підтримка датчика камери OV7670.
Несумісна зміна: API WiFi для NINA/RP2 було переопрацьовано, а кілька помилок датчика тепер викидають
RuntimeError— дивіться опис несумісних змін.
Нові можливості#
Arduino Nano RP2040 Connect / Raspberry Pi Pico — WiFi через драйвер
networkNINA-W10, Bluetooth/NimBLE, захоплення з камери (програма DCMI PIO) та команда переходу до завантажувача.Декодування JPEG-зображень —
find_apriltags(),lcd.display(),tv.display()та пов’язані операції із зображеннями тепер безпосередньо приймають стиснуті JPEG-зображення (декодування до binary/grayscale/RGB565).urequests— HTTP-клієнт (GET/POST/PUT/…) тепер заморожений на OpenMV 4 / 4 Plus / Portenta / Nicla разом із прикладомhttp_post.py.Допоміжна бібліотека
ble_advertising, заморожена на Nano RP2040 Connect.Хост/налагодження —
pyopenmv.reset_to_bl()та нова командаUSBDBG_SYS_RESET_TO_BL(0x0E) для скидання у завантажувач; перехід до завантажувача на Arduino Nano 33 BLE Sense.OV7670 — нова підтримка датчика камери OV7670, яку можна вибрати на OpenMV 4.
Інші зміни та покращення#
UDP-сокети RP2 автоматично прив’язуються до ефемерного порту при використанні без прив’язки; оновлено вкладений підмодуль MicroPython.
Виправлення помилок#
Мережа:
Виправлено обробку accept/close/send/recv/bind сокетів NINA WiFi та тайм-аути операцій, а також стан гонки текстового буфера RP2, що міг спотворювати виведення IDE.
Камера та система:
Виправлено скидання HM01B0, зависання шини I2C камери після невдалого сканування датчика на OpenMV H7, вхід у режим низького споживання H7 ULPI при відключенні USB, генерацію ADC-виводів H7 та розпинування камери Portenta / SPI-CS щита.
Апаратне забезпечення та підтримка плат#
Arduino Nano RP2040 Connect / Raspberry Pi Pico — WiFi, Bluetooth, камера, більша файлова система у флеш-пам’яті, завантажувач MSC.
Датчик камери OV7670 (OpenMV 4).
Arduino Portenta H7 — виносний I2C4, додаткові виводи PWM/тактування, датчики OV7725 / MT9V034.
Несумісні зміни API#
Видимі користувачу несумісні зміни API між v4.0.2 та v4.1.0. Область: C-модулі Python у modules/ та бібліотеки Python у scripts/libraries/.
Кожна зміна позначена рівнем впливу:
незначний — вузький API; стосується лише скриптів, що його використовували.
поведінка — той самий API, інші результати; перевірте налаштовані скрипти.
Зміни згруповано за рівнем впливу у вказаному порядку. Якщо вам потрібно лише перенести код, перейдіть до контрольного списку міграції в кінці. Кожен хеш коміту посилається на його diff на GitHub.
API WiFi NINA / RP2 переопрацьовано (незначний)#
Драйвер WLAN для NINA / RP2 було переопрацьовано для відповідності вхідному інтерфейсу MicroPython / CYW43 network: конструктор WLAN(interface) (режими STA/AP), новий метод active([bool]), псевдоніми config / start_ap для connect, аргумент ssid методу connect() перейменовано на essid, нове ключове слово channel, а nina.fw_version() тепер повертає кортеж (major, minor, patch) замість сирих байтів. Невідповідність версії мікропрограми NINA тепер є некритичним попередженням замість OSError.
Помилки датчика тепер викидають RuntimeError (поведінка)#
Обробку помилок датчика стандартизовано на основі єдиної таблиці кодів помилок: збої камери (тайм-аут захоплення, недійсний розмір кадру/формат пікселів/вікно/частота кадрів, помилка кадрового буфера, переповнення JPEG, невизначений датчик тощо) тепер видають узгоджені описові повідомлення, а кілька умов, які раніше викидали ValueError, тепер викидають RuntimeError (включаючи sensor.reset()). Код, який перехоплював ValueError для цих випадків, має перехоплювати RuntimeError натомість.
Контрольний список міграції#
Для чистого перенесення до v4.1.0 типова робота така:
Перенесіть код WiFi NINA/RP2 на стандартний інтерфейс
network.WLAN(WLAN(interface),active(),essid=) та очікуйте кортеж відnina.fw_version()(зміна WiFi API).Замініть
except ValueErrorнаexcept RuntimeErrorнавколо обробки помилок камери /sensor.reset()(зміна помилок датчика).