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.מודול
image—Image()/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.mlx—mlx.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 העבודה הטיפוסית היא:
החלף את המודולים המותאמים
gpio/led/spi/uart/socket/wlan/file/selectב-pyb/machineשל MicroPython (הסרת המודולים המותאמים).בצע
import imageוהוסף קידומתimage.ל-Image()/HaarCascade()(מעבר מודול ה-image).השתמש ב-
import timeוב-clock = time.clock()(מעבר ה-clock).הוסף את
/flash//sdל-sys.pathבמפורש אם ייבאת מודולי עזר לפי שם חשוף (שינוי ה-sys.path).
כל שאר הסקריפטים רצים ללא שינוי.