v1.1.0

v1.1.0 היא גרסת הארכיטקטורה היסודית: היא נוטשת את מודולי ההתקנים ההיקפיים המותאמים המוקדמים לטובת רכיבים מובנים של MicroPython סטנדרטיים, מעבירה את ה-API של העיבוד לתוך מודול ה-image ואת שעון קצב הפריימים לתוך time, ומוסיפה Haar cascades מובנים, get_pixel() / set_pixel(), תמיכה בלוח OpenMV 2, וניפוי שגיאות USB-CDC. זוהי גרסה שוברת תאימות במידה רבה ומגדירת API — קרא את השינויים שוברי התאימות שלהלן.

עיקרים

  • רכיבים מובנים של MicroPython — המודולים המותאמים gpio / led / spi / socket / wlan / uart / file / select הוסרו לטובת pyb / machine של MicroPython.

  • מודול imageImage() / HaarCascade() / מתארים (descriptor) נמצאים כעת במודול ה-image.

  • time.clock — שעון קצב הפריימים עבר לתוך מודול ה-time.

  • Haar cascades מובניםHaarCascade("frontalface") / HaarCascade("eye") (אין צורך בקובץ).

  • תמיכה בלוח OpenMV 2 וניפוי שגיאות USB-CDC.

  • שובר תאימות: מבנה המודולים הוגדר מחדש — ראה את השינויים שוברי התאימות.

תכונות חדשות

  • Image — נוספו Image.get_pixel(x, y) / set_pixel() וגישה לפיקסלים באמצעות מנוי img[i]; Haar cascades מובנים בזיכרון פלאש (flash) (HaarCascade("frontalface") / HaarCascade("eye")) ומילת מפתח stages= להגבלת שלבי ה-cascade; draw_string() עובד על תמונות בגווני אפור.

  • Sensor — נוספו sensor.set_colorbar(), sensor.set_saturation(), וגודל הפריים QQVGA2.

  • mlxmlx.read(type) עם פלט mlx.RAINBOW / mlx.GRAYSCALE.

  • ניפוי שגיאות — מומש ניפוי שגיאות דרך USB CDC, שאילתת fw_version() של הקושחה, קושחה ייעודית לכל לוח (OpenMV 1 / OpenMV 2), וסקריפטי בדיקה עצמית / colorbar; שגיאות קריטיות/ניתוח נרשמות לזיכרון פלאש (flash).

שינויים ושיפורים אחרים

  • חוסר זיכרון מעלה כעת MemoryError במקום OSError; סקריפטים רצים עם העלאה מחדש של חריגות כך שהשגיאות מודפסות במקום לקרוס; קצב הבָּאוּד (baud rate) הטורי ניתן להגדרה (ברירת מחדל 921600); מערכת קבצים גדולה יותר בזיכרון פלאש; שעון הפיקסל של החיישן הונמך ל-54 MHz ליציבות לכידה; sensor.reset() מסתמך על איפוס רך של החיישן בלבד.

תיקוני באגים

  • תוקנו התאמת תבניות, find_features() שחזר על העצם הראשון, גישה אטומית לאוגר (register) ב-SCCB/I2C, זיהוי שבב כרטיס SD, מיפוי פינים של soft-I2C, דיוק fast_cbrtf / צבע LAB, ושימוש בזיכרון של תמונה אינטגרלית / מסנן median ב-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, תוצאות שונות; בדוק מחדש סקריפטים מכוונים.

השינויים מקובצים לפי השפעה בסדר זה. אם אתה רק רוצה להסב את הקוד שלך, דלג לרשימת בדיקה להגירה בסוף. כל hash של commit מקושר ל-diff שלו ב-GitHub.

מודולי התקנים היקפיים מותאמים הוסרו (major)

המודולים המותאמים המוקדמים clock / file / gpio / led / select / socket / spi / wlan / uart הוסרו לטובת ההתקנים ההיקפיים המובנים pyb / machine של MicroPython. הסב סקריפטים למקבילות הסטנדרטיות של MicroPython (לדוגמה pyb.Pin / pyb.LED / pyb.SPI / pyb.UART).

Commits: 6d2fafa94

ה-API של העיבוד עבר לתוך מודול ה-image (major)

Image(), HaarCascade(), ופונקציות השמירה/טעינה של מתארים (descriptor) אינם עוד רכיבים מובנים חשופים — הם נמצאים במודול ה-image החדש. סקריפטים חייבים לבצע import image ולהשתמש ב-image.Image / image.HaarCascade().

Commits: 54288c535

שעון קצב הפריימים עבר לתוך time (major)

מודול ה-clock העצמאי הוסר; שעון קצב הפריימים נמצא כעת ב-time. השתמש ב-import time וב-clock = time.clock() — האובייקט המוחזר עדיין מספק .tick() / .fps() / .avg() / .reset().

Commits: a8928ca3b

/flash ו-/sd אינם מתווספים עוד ל-sys.path (behavior)

תוויות הכרך / תיקיית השורש תוקנו ו-/flash ו-/sd אינם מצורפים עוד אוטומטית ל-sys.path. סקריפטים שייבאו מודולי עזר לפי שם חשוף מאותם מיקומים חייבים להוסיף את הנתיב במפורש (או למקם מודולים היכן שהם נמצאים).

Commits: 09e77b5da

רשימת בדיקה להגירה

להסבה נקייה ל-v1.1.0 העבודה הטיפוסית היא:

  1. החלף את המודולים המותאמים gpio / led / spi / uart / socket / wlan / file / select ב-pyb / machine של MicroPython (הסרת המודולים המותאמים).

  2. בצע import image והוסף קידומת image. ל-Image() / HaarCascade() (מעבר מודול ה-image).

  3. השתמש ב-import time וב-clock = time.clock() (מעבר ה-clock).

  4. הוסף את /flash / /sd ל-sys.path במפורש אם ייבאת מודולי עזר לפי שם חשוף (שינוי ה-sys.path).

כל שאר הסקריפטים רצים ללא שינוי.