v4.5.1

v4.5.1 מוסיפה רמזי ציור לכיוון/יחס מימדים של תמונה, טעינת תמונות ישירות מנתיב קובץ, ioctl לשדה ראייה רחב של GC2145, ו-API חדש לבקר תאורה אחורית (backlight). היא גם משכתבת את הבנאי Image(), את ממשקי ה-display, ואת ניתוח ארגומנטי המודולים — קראו את השינויים שוברי התאימות להלן.

עיקרי הדברים

  • רמזי ציורdraw_image() קיבל רמזי כיוון (HMIRROR/VFLIP/TRANSPOSE, ROTATE_90/180/270) ושינוי קנה מידה לפי יחס מימדים (SCALE_ASPECT_KEEP/EXPAND/IGNORE).

  • טעינת תמונות מהדיסקdraw_image() / display.write() מקבלים מחרוזת של נתיב קובץ.

  • בקרת תאורה אחורית — מחלקות DACBacklight / PWMBacklight חדשות וארגומנט backlight= בתצוגה.

  • שובר תאימות: הבנאי Image(), ממשקי ה-display, וניתוח ארגומנטי המודולים השתנו — ראו את השינויים שוברי התאימות.

תכונות חדשות

  • רמזי כיוון ל-draw_image()image.HMIRROR, image.VFLIP, image.TRANSPOSE, בנוסף לקיצורי הדרך image.ROTATE_90 / ROTATE_180 / ROTATE_270.

  • רמזי יחס מימדים ל-draw_image()image.SCALE_ASPECT_KEEP / SCALE_ASPECT_EXPAND / SCALE_ASPECT_IGNORE להתאמה / הרחבה / מתיחה.

  • קבועי לוח צבעים (palette)image.PALETTE_RAINBOW ו-image.PALETTE_IRONBOW (הועברו אל מודול ה-image).

  • שדה ראייה רחב — ioctl חדשים sensor.IOCTL_SET_FOV_WIDE / IOCTL_GET_FOV_WIDE (על ה-GC2145, עד פי 5 קנה מידה של חיישן).

  • טעינה מהדיסקdraw_image() ו-display.write() מקבלים מחרוזת של נתיב קובץ של תמונת מקור, וטוענים אותה ישירות מהאחסון.

  • בקרי תאורה אחורית — מחלקות חדשות DACBacklight ו-PWMBacklight (ניתנות לייבוא מ-display), וארגומנט backlight= בעל מילת מפתח בלבד בבנאי תצוגת SPI/מקבילית.

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

  • מנהל התקן תצוגת ST7701 DSI עבר למודול st7701.py משלו (עדיין ניתן לייבוא דרך from display import *) ומוקפא ב-Arduino Giga; מנהל ה-IMU lsm9ds1 הוקפא ב-Arduino Nano 33 BLE Sense.

  • מצלמות MT9V022 / MT9V034 (תריס גלובלי) מיישמות כעת תיקון רעש שורה (row-noise) לאיכות תמונה טובה יותר.

  • כרך אחסון ההמוני (mass-storage) של USB ב-i.MX RT מתויג כעת כדיסק OpenMV.

תיקוני באגים

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

  • תוקן זיהוי פינות (find_keypoints() FAST/AGAST) על תמונות גבוהות מ-480 שורות — חוצץ (buffer) השורה כעת בגודל המתאים לגובה התמונה.

  • נוספה תמיכה בפין FSYNC עבור snapshot() מסונכרן-פריים על i.MX RT (OpenMV RT1060), ותוקנו פיני SPI4 MOSI/MISO שהוחלפו ב-RT1060.

תצוגה ווידאו:

  • תוקן סדר הארגומנטים של הבנאי SPIDisplay (bgr, byte_swap, triple_buffer יושמו על הפרמטרים הלא נכונים).

  • תוקן שיבוש תמונה של מגן TV בעת ציור תמונה עם מלבן מצוין, וגבולות פריים שגויים של MJPEG בעת הקלטת פריימים בקנה מידה משונה.

רשתות:

  • מצב AP של WINC WiFi אינו אוכף עוד את הגבלת ה-WEP-בלבד המיושנת — מצבי AP פתוחים ו-WPA עובדים עם טיפול תקין ב-PSK.

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

  • OpenMV RT1060 — פין FSYNC ופיני SPI4 מתוקנים.

  • Arduino GIGA — פתרון עוקף לאמינות QSPI; תצוגת ST7701 מוקפאת פנימה.

  • Arduino Nano 33 BLE Sense — מנהל ה-IMU lsm9ds1 מוקפא פנימה.

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

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

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

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

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

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

הבנאי Image() וממשקי display (minor)

הבנאי image.Image שוכתב לארגומנטים בעלי מילת מפתח (height, pixformat, buffer=, copy_to_fb=); הוא יכול כעת לבנות תמונה מ-bytearray/חוצץ (buffer) קיים, וחוצץ נדרש עבור פורמטים דחוסים. display.write() שוכתב: x_scale/y_scale מקבלים כעת float (יחס קנה מידה) או int (גודל יעד בפיקסלים) ומילות המפתח הנפרדות x_size/y_size הוסרו. הארגומנט המיקומי הראשון של WINC.connect() שונה מ-essid ל-ssid, ותוצאות סריקת WINC WiFi השתנו ל-(ssid_bytes, bssid_bytes, channel, rssi, security, N) (ה-SSID/BSSID הם כעת bytes; ה-BSSID אינו עוד מחרוזת MAC מעוצבת).

Commits: 6752c95ac, 161737092, 8178c237c, b6cdf8de1

טווח תאורה אחורית, קנה מידה, וארגומנטים בעלי מילת מפתח בלבד (behavior)

Display.backlight() מקבל כעת עוצמה בטווח 0–100 (0 = כבוי, 100 = מלא) במקום 0–255, ומעלה ValueError מחוץ לטווח. ערכי x_scale/y_scale שלמים מטופלים כעת כגורם קנה מידה מכפיל (כמו floats) ולא כמימד פיקסל יעד — זה משפיע על fir.snapshot()/draw_ir(), tof.snapshot()/ draw_depth(), display, וקנה מידה של tv. ניתוח הארגומנטים על פני המודולים sensor, fir, tof, tv, mjpeg, gif, imageio, tf, ו-audio אוחד, מה שהפך מספר אפשרויות שהיו מיקומיות בעבר לבעלות מילת מפתח בלבד (השמות, ברירות המחדל וההתנהגות נותרו ללא שינוי).

Commits: 391ec443f, 8bd25d6cd, 477312656, 08bf62a32, a4c0f20bf, 9b411a66d, 3d679f5a6, d15fc6b8d, 555e67ecd

רשימת הסבה

להסבה נקייה ל-v4.5.1 העבודה האופיינית היא:

  1. עדכנו את בניית Image() לצורת מילות המפתח החדשה, העבירו את display.write() מ-x_size/y_size, ושנו את WINC.connect() מ-essid ל-ssid (טפלו ב-tuples החדשים מבוססי ה-bytes של הסריקה) (שינויי הבנאי/תצוגה/WINC).

  2. שנו את קנה המידה של קריאות Display.backlight() ל-0–100, בדקו מחדש כל שימוש בערכי x_scale/y_scale שלמים, והעבירו אפשרויות מודול שהיו מיקומיות בעבר כמילות מפתח (שינויי ההתנהגות).