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()(зміна помилок датчика).