v4.4.3

v4.4.3 מציגה את לוח OpenMV RT1060 (NXP i.MX RT1060), API מורחב מאוד להקלטת MJPEG, מתודות ISP חדשות לתמונה (איזון לבן אוטומטי, מטריצת תיקון צבע, גמא), ו-MicroPython 1.20. שמות לוחות Arduino שונו וברירות המחדל של MJPEG השתנו — קראו את השינויים השוברים תאימות שלהלן.

עיקרי הדברים

  • OpenMV RT1060 — לוח NXP i.MX RT1060 חדש (וגרסת REV2).

  • API מורחב של MJPEGwrite(), count, is_closed, sync(), מילות מפתח ROI/palette/alpha, ופונקציית סיום (finalizer).

  • מתודות ISP חדשותimage.awb(), image.ccm(), image.gamma().

  • MicroPython עודכן ל-1.20.0.

  • שובר תאימות: יעדי לוחות Arduino שונו וברירת המחדל של איכות ה-MJPEG השתנתה — ראו את השינויים השוברים תאימות.

תכונות חדשות

  • OpenMV RT1060 — פורט מלא ל-NXP i.MX RT1060 (מנהלי התקן לחיישן, GPIO, I2C, SPI) ותצורת לוח, בנוסף לתמיכה בגרסת הלוח RT1060 REV2 ו-machine.RTC עם התראה/יקיצה בפורט i.MX RT.

  • MJPEG — מתודה חדשה Mjpeg.write() (עם מילות המפתח roi, rgb_channel, alpha, color_palette, alpha_palette, hint) בנוסף ל-count, is_closed, sync() ופונקציית סיום __del__, וכינויי בנאי MJPEG / Mjpeg / mjpeg.

  • מתודות ISP לתמונהimage.awb([max]) (איזון לבן אוטומטי), image.ccm(matrix) (מטריצת תיקון-צבע 3x3 / 4x3), ו-image.gamma(gamma, contrast, brightness).

  • AprilTag — מאפייני מרכז חדשים מסוג נקודה צפה cxf / cyf (cx / cy עדיין מחזירים מספרים שלמים מעוגלים).

  • MLtf.regression() מקבל כעת ndarray של ulab ותומך בטנזורי קלט דו-ממדיים (קלט חד-ממדי עדיין נתמך); אופשרו פעולות נוספות של TensorFlow Lite בספריות ה-libtf המצורפות.

שינויים ושיפורים נוספים

  • MicroPython עודכן ל-1.20.0; ulab עודכן ל-6.0.12.

  • image.gamma / gamma_corr עוצבו מחדש כמתודת ISP והורחבו לתמיכה בתמונות Bayer ו-YUV (לא רק בתמונות ניתנות לשינוי).

  • לוחות STM32 (Portenta H7, Nicla Vision) עברו למנהל ההתקן בקוד פתוח cyw43 ל-WiFi.

  • ספריית ה-rtsp הפכה לניידת (משתמשת ב-random/time במקום ב-pyb); urequests סוגר כעת תמיד את השקע שלו.

תיקוני באגים

מצלמה וחיישנים:

  • תוקנו קצב השעון של OV767x (CLKRC) ב-Arduino Nano 33 BLE Sense, הטיפול בעקיפת/קדם-מחלק (pre-scaler) של CLKRC ב-OV7670, וקווי הנתונים D0/D1 שהוחלפו ב-Arduino Nicla Vision / ML kit (פורט nrf).

מערכת ו-USB:

  • תוקן הטיפול בחבילות-USB קצרות במצב באגים של TinyUSB (העברות IDE/מארח אמינות יותר).

  • תוקנו קוטביות הנורית המהבהבת ב-OpenMV RT1060 וזיהוי כרטיס SD בעת הדלקה.

תמיכת חומרה ולוחות

  • OpenMV RT1060 — לוח NXP i.MX RT1060 חדש, בנוסף לגרסת REV2.

  • STM32 — Portenta H7 / Nicla Vision עברו למנהל ההתקן בקוד פתוח cyw43 ל-WiFi.

שינויי API שוברי תאימות

שבירות API גלויות למשתמש בין v4.4.2 ל-v4.4.3. היקף: מודולי C של Python בתוך modules/ וספריות Python בתוך scripts/libraries/.

כל שינוי מתויג לפי ההשפעה שלו:

  • behavior — אותו API, תוצאות שונות; בדקו מחדש סקריפטים מכווננים.

  • tooling — משפיע על מתן שמות ללוחות / ריענון קושחה, לא על ה-API של Python.

השינויים מקובצים לפי השפעה בסדר הזה. כל גיבוב (hash) של commit מקושר ל-diff שלו ב-GitHub.

ברירות מחדל וטיפול בשגיאות של MJPEG (behavior)

קוד הקלטת ה-MJPEG עבר שיפוץ. ברירת המחדל של quality ה-JPEG ב-add_frame() / write() הועלתה מ-50 ל-90 (ההקלטות גדולות ואיכותיות יותר כברירת מחדל), איכות לא חוקית מעלה כעת ValueError, פעולה על קובץ סגור מעלה כעת OSError, ומתודות ההקלטה מחזירות כעת את אובייקט ה-Mjpeg. יש לבדוק מחדש סקריפטים שהסתמכו על איכות ברירת המחדל הישנה או על התנהגות השגיאה הקודמת.

Commit: 3fc55ad31

יעדי לוחות Arduino שמם שונה (tooling)

שמות יעדי לוחות ה-Arduino שונו למוסכמת מתן שמות מעודכנת וכל מניפסטי הלוחות (סטים של מודולים קפואים) רועננו. זה אינו משנה את ה-API של Python, אך שמות הקבצים/לוחות של הקושחה המשמשים לבנייה או לריענון קושחה של לוחות Arduino השתנו — עדכנו את הכלים שלכם בהתאם.

Commits: 77a7d16c0, 59d9f2603

רשימת תיוג להסבה

להסבה נקייה ל-v4.4.3: בדקו מחדש הקלטות MJPEG לאיכות ברירת המחדל החדשה ולהתנהגות השגיאה (שינוי ה-MJPEG), ועדכנו את כלי הבנייה/ריענון הקושחה ליעדי לוחות ה-Arduino ששמם שונה (שינוי שמות הלוחות). כל שאר הסקריפטים פועלים ללא שינוי.