v4.2.2

גרסה v4.2.2 מוסיפה תמיכה בתמונות PNG (פענוח/קידוד באמצעות lodepng), טוען מודלים מובנים מבוסס-טבלה, תמיכה ב-OV5640 ב-Portenta, עדכון TensorFlow של Edge Impulse, ו-ulab 4.0. ה-API להגדרת CAN ב-RPC השתנה — קראו את השינויים השוברים תאימות שלהלן.

עיקרי הדברים

  • תמיכה ב-PNGImage.to_png(), image.PNG, וקריאה/כתיבה של קבצי PNG.

  • tf.load_builtin_model() — מודלים מובנים מבוססי-טבלה שניתן להחליף או להוסיף בזמן הבנייה.

  • Portenta H7 — תמיכה במצלמת OV5640 (עם פוקוס אוטומטי).

  • MicroPython/ulab — ulab עודכן לגרסה 4.0.0.

  • שובר תאימות: ה-API להגדרת CAN ב-RPC השתנה — ראו את השינויים השוברים תאימות.

תכונות חדשות

  • תבנית תמונה PNG — מתודה חדשה Image.to_png(), קבוע image.PNG / PIXFORMAT_PNG, טעינה/שמירה של קבצי PNG (קריאה/כתיבה של .png), ופלט PNG בהמרות image.to(), באמצעות מקודד lodepng המשולב.

  • tf.load_builtin_model(path) — טוען מודל המובנה בקושחה ומחזיר טאפל (labels, net); המודלים המובנים הם כעת מבוססי-טבלה כך שניתן להחליפם או להוסיפם בזמן הבנייה.

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

  • TensorFlow / Edge Impulse — ספריית ההסקה המצורפת עודכנה ל-Edge Impulse ei-V2.5.0, מודל ה-person_detection הועבר לטבלת המודלים המובנים, ואופרטורים חסרים של TensorFlow נוספו בכל בנייות Cortex-M0+/M4/M7/M55 כך שיותר מודלים של Edge Impulse יכולים לרוץ.

  • ulab עודכן לגרסה 4.0.0.

  • פתיחת היציאה הטורית הווירטואלית של USB בקצב 1200 bps מפעילה כעת איפוס מסוג Arduino (touch reset) אל המאתחל (bootloader).

  • קושחת מודול ה-WiFi מסוג WINC1500 עודכנה לגרסה 19.7.6 (יחד עם סקריפט העדכון), והיא מדווחת כעת את גרסת מנהל ההתקן המארח בפועל.

  • פורט ה-RP2 מדפיס ”MPY: soft reboot“ וקיבל אתחול/ביטול-אתחול של UART.

תיקוני באגים

  • תוקנו גודל חוצץ הפריימים הגולמי של Arduino Nano RP2040 Connect ומזהה המוצר של USB ב-Arduino Nicla Vision (כדי לקבל מנייה תקינה של USB).

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

  • Arduino Portenta H7 — תמיכה במצלמת OV5640 (עם פוקוס אוטומטי); ה-GC2145 מושבת ב-Portenta.

  • Arduino Nano RP2040 Connect — תצורת זיכרון ותבניות מערכת-קבצים ראשונית.

  • WiFi Shield (WINC1500) — הקושחה עודכנה לגרסה 19.7.6.

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

שינויי API גלויים למשתמש בין v4.2.1 ל-v4.2.2. היקף: מודולי C של Python בתיקייה modules/ וספריות Python בתיקייה scripts/libraries/.

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

  • minor — API צר; משפיע רק על סקריפטים שהשתמשו בו.

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

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

ה-API להגדרת CAN ב-RPC (minor)

בספריית rpc, ארגומנט המילה-מפתח של CAN sampling_point ב-rpc_can_master / rpc_can_slave שונה ל-sample_point (כדי להתאים ל-MicroPython המקורי), וכלי העזר הידני לתזמון ביטים של CAN הוסר — אפיק ה-CAN מוגדר כעת באמצעות CAN(..., baudrate=, sample_point=). יש לעדכן סקריפטים שהעבירו sampling_point או הסתמכו על חישוב תזמון הביטים הישן.

קומיטים: b565eca58, 06d716986

image.format() ותמונות דחוסות (behavior)

עם נתיב התמונה-הדחוסה המאוחד שנוסף עבור PNG, image.format() מחזירה כעת PIXFORMAT_INVALID עבור תבנית לא מוכרת, ואינדוקס / איטרציה / הדפסה של תמונה דחוסה מכסים כעת PNG בנוסף ל-JPEG. יש לבדוק מחדש קוד שבדק את ערך ההחזרה הקודם עבור תבניות לא מוכרות.

קומיט: f12a4659c

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

למעבר נקי ל-v4.2.2: שנו את שם sampling_point של RPC CAN ← sample_point והסירו כל הגדרת תזמון-ביטים ידנית של CAN (שינוי ה-RPC CAN), ובדקו מחדש כל קוד שבדק את image.format() עבור תבניות לא מוכרות (שינוי ה-format()).