v1.1.0¶
v1.1.0 — це базовий архітектурний реліз: він замінює ранні власні модулі периферійних пристроїв стандартними вбудованими засобами MicroPython, переносить API роботи із зображеннями до модуля image, а таймер кадрової частоти — до time, а також додає вбудовані каскади Хаара, get_pixel() / set_pixel(), підтримку плати OpenMV 2 та відлагодження через USB-CDC. Це реліз із численними критичними змінами API — ознайомтеся з ними нижче.
Основні можливості¶
Вбудовані засоби MicroPython — власні модулі
gpio/led/spi/socket/wlan/uart/file/selectзамінено наpyb/machineвід MicroPython.Модуль
image—Image()/HaarCascade()/ дескриптори тепер знаходяться в модуліimage.time.clock— таймер кадрової частоти перенесено до модуляtime.Вбудовані каскади Хаара —
HaarCascade("frontalface")/HaarCascade("eye")(файли не потрібні).Підтримка плати OpenMV 2 та відлагодження через USB-CDC.
Критична зміна: структуру модулів перевизначено — перегляньте критичні зміни.
Нові можливості¶
Image — додано
Image.get_pixel(x, y)/set_pixel()та індексний доступ до пікселівimg[i]; вбудовані каскади Хаара у флеш-пам’яті (HaarCascade("frontalface")/HaarCascade("eye")) та ключове словоstages=для обмеження кількості стадій каскаду;draw_string()працює із зображеннями у відтінках сірого.Sensor — додано
sensor.set_colorbar(),sensor.set_saturation()та розмір кадруQQVGA2.mlx—mlx.read(type)з виведеннямmlx.RAINBOW/mlx.GRAYSCALE.Відлагодження — реалізовано відлагодження через USB CDC, запит версії мікропрограми
fw_version(), прошивки для кожної плати (OpenMV 1 / OpenMV 2), самотестування та скрипти тестової смуги кольорів; критичні помилки та помилки синтаксису записуються у флеш-пам’ять.
Інші зміни та вдосконалення¶
Нестача пам’яті тепер викликає
MemoryErrorзамістьOSError; скрипти виконуються з повторним підняттям виключення, тому помилки виводяться замість краша; швидкість передачі (бод) через послідовний порт налаштовується (за замовчуванням 921600); більший розмір файлової системи у флеш-пам’яті; тактова частота пікселів датчика знижена до 54 МГц для стабільності захвату;sensor.reset()покладається виключно на м’яке скидання датчика.
Виправлення помилок¶
Виправлено зіставлення шаблонів, повторення першого об’єкта у
find_features(), атомарний доступ до регістрів SCCB/I2C, виявлення SD-картки, відображення виводів програмного I2C, точністьfast_cbrtf/ кольорів LAB, а також використання пам’яті для інтегрального зображення / медіанного фільтра на OpenMV 1 / 2.
Апаратне забезпечення та підтримка плат¶
Підтримка плати OpenMV 2 (STM32F427) (та апаратний дизайн OpenMV 3); MCO використовується як тактовий сигнал датчика на OpenMV 2.
Критичні зміни API¶
Критичні зміни API, видимі користувачу, між v1.0.3-beta та v1.1.0. Область дії: C-модулі Python у modules/ та бібліотеки Python у scripts/libraries/.
Кожна зміна позначена за ступенем впливу:
major — стосується більшості скриптів, що використовували цю функцію; потрібен перенос коду.
behavior — той самий API, інші результати; перевірте налаштовані скрипти.
Зміни згруповані за ступенем впливу у відповідному порядку. Якщо ви просто хочете перенести код, перейдіть до контрольного списку міграції в кінці. Кожен хеш коміту посилається на його diff на GitHub.
Власні модулі периферійних пристроїв видалено (major)¶
Ранні власні модулі clock / file / gpio / led / select / socket / spi / wlan / uart замінено вбудованими периферійними пристроями pyb / machine від MicroPython. Перенесіть скрипти на стандартні аналоги MicroPython (наприклад, pyb.Pin / pyb.LED / pyb.SPI / pyb.UART).
Коміти: 6d2fafa94
API роботи із зображеннями перенесено до модуля image (major)¶
Image(), HaarCascade() та функції збереження/завантаження дескрипторів більше не є простими вбудованими функціями — вони знаходяться в новому модулі image. Скрипти мають виконувати import image та використовувати image.Image / image.HaarCascade().
Коміти: 54288c535
Таймер кадрової частоти перенесено до time (major)¶
Окремий модуль clock видалено; таймер кадрової частоти тепер знаходиться в time. Використовуйте import time та clock = time.clock() — повернутий об’єкт як і раніше надає .tick() / .fps() / .avg() / .reset().
Коміти: a8928ca3b
/flash та /sd більше не додаються до sys.path (behavior)¶
Мітки розділів / кореневі каталоги виправлено, і /flash та /sd більше не додаються автоматично до sys.path. Скрипти, які імпортували допоміжні модулі за простим ім’ям із цих місць, мають явно додати шлях (або розмістити модулі там, де вони знаходяться).
Коміти: 09e77b5da
Контрольний список міграції¶
Для чистого переходу на v1.1.0 зазвичай потрібно:
Замінити власні модулі
gpio/led/spi/uart/socket/wlan/file/selectнаpyb/machineвід MicroPython (видалення власних модулів).Виконати
import imageта додати префіксimage.доImage()/HaarCascade()(переміщення модуля image).Використовувати
import timeтаclock = time.clock()(переміщення таймера).Явно додати
/flash//sdдоsys.path, якщо ви імпортували допоміжні модулі за простим ім’ям (зміна sys.path).
Всі інші скрипти працюють без змін.