v3.6.0

גרסה v3.6.0 מביאה תמיכה מלאה במצלמת OV5640 5 MP עם גדלי פריים חדשים ברזולוציה גבוהה (HD / FHD / QHD / QXGA / WQXGA), מעדכנת את הליבה ל-MicroPython 1.12, מבצעת אופטימיזציה משמעותית למקודד ה-JPEG התוכנתי ולזיהוי AprilTag / קווים, מוסיפה UVC (וידאו USB) ב-OpenMV Cam H7 Plus, ותומכת ב-flash מסוג QSPI בגודל עד 32 MB. ההתנהגות של MicroPython ו-get_histogram() השתנו — קראו על השינויים השוברים להלן.

עיקרים

  • OV5640 5 MP — מנהל התקן מצלמה מלא עם גדלי פריים חדשים HD / FHD / QHD / QXGA / WQXGA / WQXGA2.

  • MicroPython 1.12 — הליבה המצורפת עודכנה.

  • צינור מהיר יותר — אופטימיזציה משמעותית לקידוד JPEG תוכנתי, זיהוי AprilTag, זיהוי קווים LSD, histeq(), ופענוח QR-code.

  • UVC ב-H7 Plus — ה-OpenMV Cam H7 Plus יכול לשמש כהתקן וידאו USB.

  • שובר: ההתנהגות של MicroPython, נורמליזציית image.get_histogram(), ופלט ה-JPEG/grayscale של OpenMV 3 השתנו — ראו את השינויים השוברים.

תכונות חדשות

  • OV5640 — נוספה תמיכה מלאה במצלמת OV5640 5 MP (תצורת שעון חיצוני באתחול החיישן) וקבועי גדלי הפריים החדשים sensor.HD / FHD / QHD / QXGA / WQXGA / WQXGA2.

  • TIM4 — שוחרר כך שהוא שמיש מתוך MicroPython.

  • נוספה דוגמת כתיבה מתוזמנת של DAC (dac_write_timed.py) ושמה של dac_control.py שונה ל-dac_write.py.

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

  • ה-MicroPython המצורף עודכן ל-1.12; בוצעה אופטימיזציה משמעותית למקודד ה-JPEG התוכנתי (נתיב VGA, נתיבי grayscale/binary, חשבון שלמים במקום נקודה צפה, לכידת MCU ממוטבת), ל-find_line_segments() של LSD, לזיהוי AprilTag, ל-Image.histeq(), ולהמרת QR-code / RGB-to-gray; נוספה תמיכה ב-flash מסוג QSPI לשבבים בגודל עד 32 MB; הוסרה דוגמת ה-cnn.py המיושנת של CMSIS-CNN.

תיקוני באגים

מצלמה והדמיה:

  • תוקנו השחתת קידוד JPEG ב-HQQQVGA, דחיסת תמונה בינארית (1-bit) → JPEG, רגרסיה ב-find_line_segments() (אופשרה מחדש בדיקת ה-NOTDEF הלא-מיושרת), ובעיות מינוריות במנהל ההתקן של OV2640.

מערכת ואתחול:

  • תוקנו השחתת בדיקה עצמית / מערכת קבצים (selftest.py רץ כעת לפני אפשור USB MSC, ו-USB MSC מאופשר בעת שגיאה קטלנית כך שהמארח יכול לקרוא את יומן השגיאות), ה-write_timed() של pyb.DAC, התזמונים של machine.I2C ב-H7, אפשור-מחדש של overdrive ב-F7 לאחר מצב stop, ומרווח ה-rtc.wakeup() של stop_mode.py.

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

  • OV5640 — מנהל התקן מצלמה מלא של 5 MP עם גדלי פריים ברזולוציה גבוהה.

  • OpenMV Cam H7 Plus — תמיכת UVC (וידאו USB); יעד הלוח OPENMV4R שונה ל-OPENMV4P.

  • flash מסוג QSPI — שבבים בגודל עד 32 MB נתמכים כעת.

שינויי API שוברים

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

כל שלושת השינויים השוברים הם שינויי התנהגות (אותו API, תוצאות שונות) — בדקו מחדש סקריפטים מושפעים. כל hash של commit מקשר ל-diff שלו ב-GitHub.

MicroPython עודכן ל-1.12 (התנהגות)

ליבת ה-MicroPython המצורפת עודכנה ל-1.12. התנהגות הספרייה הסטנדרטית והשפה עוקבת אחר MicroPython 1.12 מהמקור; בדקו מחדש סקריפטים התלויים בהתנהגות ספציפית-לגרסה של micropython / מודולים סטנדרטיים.

Commits: eafd431ea

נורמליזציית הסף של image.get_histogram() השתנתה (התנהגות)

image.get_histogram() (ו-get_statistics()) עם ספי צבע מנרמלים כעת לפי מספר הפיקסלים שעברו סף ולא לפי כל ה-ROI, ומשתמשים ב-floor במקום ב-round לאינדוקס הסלים (bins). ערכי ההיסטוגרמה/הסטטיסטיקה עבור קריאות שעברו סף שונים מגרסאות קודמות — כווננו מחדש קוד שהשווה מול ערכי היסטוגרמה מוחלטים.

Commits: 7cf0f8089

פלט ה-JPEG/grayscale של OpenMV 3 השתנה (התנהגות)

כדי לחסוך ב-flash, טבלת החיפוש של YUV ב-OpenMV 3 (M7) הושבתה, ולכן ערכי הפיקסלים בפלט JPEG ו-grayscale מחושבים מעט אחרת ב-OpenMV 3. הפלט עדיין תקף אך שונה במעט מגרסאות קודמות; בדקו מחדש השוואות מדויקות-פיקסל ב-OpenMV 3.

Commits: 0e4b46e41

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

אמתו מחדש מול 1.12 סקריפטים התלויים בהתנהגות ספציפית-לגרסה של MicroPython (עדכון ה-MicroPython), כווננו מחדש קוד שהשווה מול ערכי get_histogram() / get_statistics() מוחלטים בעת שימוש בספי צבע (השינוי בהיסטוגרמה), ובדקו מחדש השוואות מדויקות-פיקסל ב-OpenMV 3 (השינוי בפלט OpenMV 3). כל שאר הסקריפטים ירוצו ללא שינוי.