v1.7.0

v1.7.0 מציגה את המודול cpufreq (בקרת תדר ה-CPU / overclocking), את מודול ה-os של MicroPython, רענון חיישן תרמי MLX / בקרת רזולוציה, וכן הקמה ראשונית של לוח OpenMV Cam M7 (STM32F7). חתימת fir.init(), הטיפול בפריימים גדולים מדי ואיכות ה-JPEG המוגדרת כברירת מחדל השתנו — קראו את השינויים שוברי התאימות שלהלן.

עיקרים

  • המודול cpufreq — שאילתה / הגדרה של תדר ה-CPU, עם דוגמת overclocking.

  • מודול os — מודול ה-os של MicroPython זמין כעת.

  • MLX תרמיfir.init() מקבל קצב רענון ורזולוציית ADC.

  • OpenMV Cam M7 — הקמה ראשונית של לוח STM32F7.

  • שובר תאימות: fir.init() מקבל כעת רק ארגומנטים בשם, פריימים גדולים מדי נחתכים אוטומטית, ואיכות ה-JPEG בברירת מחדל ירדה — ראו את השינויים שוברי התאימות.

תכונות חדשות

  • cpufreq — נוסף המודול cpufreq עם cpufreq.get_frequency() / cpufreq.set_frequency() והקבועים CPUFREQ_120MHZ / 144 / 168 / 192 / 216MHZ, וכן דוגמת overclocking.py.

  • os — הופעל מודול ה-os של MicroPython.

  • MLX / FIRfir.init() מקבל כעת קצב רענון ורזולוציית ADC, עם בקרות refresh / resolution תואמות עבור החיישן התרמי MLX.

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

  • כוונן אזור ה-AGC/AEC של ה-OV7725 (פחות טשטוש תנועה), הופעל פס הצבע המלא של ה-DSP עבור ה-OV7725, ותוקן הזרמת חוצץ הפריימים (frame buffer) ב-IDE (ללא פריימים ישנים / כפולים).

תיקוני באגים

  • תוקן גלישת גודל העברה ב-DCMI/DMA ב-sensor.snapshot(), נוקה הטיפול בגלישת חוצץ (buffer) בדחיסת JPEG, שופר אזור הפעולה של ה-AEC/AGC ב-OV7725 לחשיפה/הגבר (gain) אוטומטיים טובים יותר, ותוקנו סקריפטי פס הצבע / הבדיקה העצמית עבור ה-OV7725.

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

  • OpenMV Cam M7 (STM32F7 / OPENMV7) — תמיכה ראשונית בלוח ובמאתחל (bootloader).

  • OpenMV 2 — שעון החיישן מונע על ידי יציאת ה-MCO.

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

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

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

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

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

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

fir.init() מקבל כעת רק ארגומנטים בשם (minor)

fir.init() עוצב מחדש כך שיקבל ארגומנטים בשם (type= / refresh= / resolution=, ברירת מחדל refresh 64 Hz, מקסימום 512 Hz) במקום ארגומנטים מיקומיים. עדכנו קריאות מיקומיות fir.init(...) לצורת השם.

Commits: 958c5b7f7

פריימים גדולים מדי נחתכים אוטומטית ל-QVGA (behavior)

sensor.snapshot() כבר אינו זורק שגיאה כאשר הפריים הגולמי חורג מגודל הפריים הגולמי המקסימלי של הלוח — פריימים גולמיים גדולים מדי כעת ממוסגרים/נחתכים ל-QVGA במקום זאת (רק פריים גולמי במצב JPEG עדיין נדחה). בחרו רזולוציה (framesize) נתמכת אם הסתמכתם על השגיאה הקודמת.

Commits: b655a5488, abace9e4f

ה-framesize המקסימלי של OpenMV 2 הורד ל-QVGA (behavior)

ב-OpenMV 2, ה-framesize המקסימלי של תמונה אינטגרלית / גולמי / blob הורד מ-VGA ל-QVGA. בקשה ל-VGA עבור פעולות גווני אפור / RGB565 / blob / תמונה אינטגרלית ב-OpenMV 2 כעת נחתכת ל-QVGA — עצבו מחדש סקריפטים שהסתמכו על עיבוד VGA בלוח זה.

Commits: 7499062bd

איכות ה-JPEG בברירת מחדל הופחתה (behavior)

איכות ה-JPEG בברירת מחדל הופחתה (ברירת מחדל 50 ← 35, עם ספי תת-דגימה נמוכים יותר ב-IDE) להזרמה אמינה יותר. תמונות JPEG שנלכדות/מוזרמות הן באיכות נמוכה יותר באופן נראה לעין כברירת מחדל — העבירו quality מפורש ל-image.compress() אם אתם זקוקים לאיכות הקודמת.

Commits: d9c8b1535

רשימת הסבה

להסבה נקייה ל-v1.7.0 העבודה הטיפוסית היא:

  1. המירו קריאות מיקומיות fir.init(...) לצורת השם (שינוי fir.init).

  2. השתמשו ב-framesize נתמך במקום להסתמך על שגיאת הפריים הגדול מדי הישנה (שינוי הפריים הגדול מדי), ועצבו מחדש עיבוד VGA ב-OpenMV 2 (שינוי ה-framesize של OpenMV 2).

  3. העבירו quality מפורש ל-image.compress() אם אתם זקוקים לאיכות ה-JPEG הקודמת (שינוי איכות ה-JPEG).

כל שאר הסקריפטים פועלים ללא שינוי.