v2.7.0¶
v2.7.0 מודרניזה את ה-API של ההגבר האוטומטי / החשיפה האוטומטית / איזון הלבן של מודול sensor ליחידות פיזיקליות (dB / מיקרו-שניות), משפץ את find_displacement() המבוסס מתאם-פאזה (בהוספת סיבוב/קנה-מידה), ומוסיף את get_similarity() (SSIM), chrominvar() / illuminvar(), חוצצי פריימים נוספים, וספריית MQTT. זוהי גרסה גדולה שוברת-תאימות — קראו את השינויים שוברי-התאימות שלהלן.
עיקרים¶
API חיישן מודרני —
set_auto_gain()/set_auto_exposure()/set_auto_whitebal()משתמשים כעת ב-dB / מיקרו-שניות, עםget_gain_db()/get_exposure_us()/get_rgb_gain_db()תואמים.מתאם פאזה —
find_displacement()משופץ עם סיבוב / קנה-מידה ו-find_rotscale()/linpolar()/logpolar().SSIM — דמיון מבני
image.get_similarity().חוצצי פריימים נוספים —
sensor.alloc_extra_fb()/dealloc_extra_fb().MQTT — ספריית MQTT חדשה.
שובר-תאימות: ה-API של הגבר/חשיפה/איזון-לבן של החיישן, מידות פריים של
find_displacement()/ FFT,find_number(), כלי הקושחה של WINC, ו-z_rotation()של AprilTag — כולם השתנו — ראו את השינויים שוברי-התאימות.
תכונות חדשות¶
חיישן — נוספו
sensor.get_gain_db(),sensor.get_exposure_us(),sensor.get_rgb_gain_db(), מילת מפתחgain_db_ceilingב-set_auto_gain(), תמיכתhmirror/vflipל-MT9V034, ו-sensor.alloc_extra_fb()/sensor.dealloc_extra_fb()לחוצצי פריימים נוספים בזיכרון RAM.תמונה — נוספו
remove_shadows(),min()/max()(הפרשת פריימים),get_similarity()(SSIM) עם דוגמת דמיון-מבני,chrominvar()/illuminvar(),find_rotscale(),linpolar()/logpolar(), מילות מפתח threshold / offset / invert במסנני האדפטיבייםmean()/mode()/median()/midpoint(),len()/ אינדוקס על אובייקט נקודות המפתח, ו-.match()כגישה על אובייקט התאמת נקודות-המפתח.ספריות / רשת — נוספה ספריית MQTT (עם דוגמת MQTT ב-WiFi) ומצב
network.WINC.MODE_BSPלתכנות קושחת WINC על פני ה-UART לניפוי באגים.דוגמאות — נוספו דוגמאות צריכת-חשמל-נמוכה
deep_sleep.py/stop_mode.py, זרימה אופטית מתקדמת, וסקריפטי דוגמה לינארי/לוג-קוטבי; הקושחה מנתחת כעתuart.iniבעת האתחול כדי לאפשר REPL UART.
שינויים ושיפורים נוספים¶
get_regression()קיבל מילות מפתחarea_threshold/pixels_thresholdורגרסיה חסינה מהירה יותר (למעקב-קו / מירוץ);get_pixel()תומך כעת בתמונות Bayer; נוספה תשתית STM32H7 (כותרות CMSIS / HAL / מאתחל (bootloader) — לוח ה-H7 עדיין אינו שמיש); עודכנה קושחת WINC1500 המצורפת (19.4.4 / 19.5.2).
תיקוני באגים¶
הדמיה:
תוקנו באג חריגה-מגבולות בחיפוש-יהלום של
find_template(), השחתתlogpolar/linpolar, ו-illuminvar()שיוצא משליטה בערכי צבע קרובים-לאפס.
חיישן ומערכת:
תוקנו באגים בבקרת הגבר אוטומטית, שוחזר גודל
MAIN_FBב-snapshot()(כך ש-copy_to_fbברזולוציה שונה, שינוי גודל FB, ואיגום זרימה אופטית עובדים שוב), פסק-הזמן שלgethostbynameב-WINC, ניקוי-הסטטוס שלpydfuבמאתחל (bootloader) של ה-H7, ומצבי עצירה/המתנה בצריכת-חשמל-נמוכה.
חומרה ותמיכת לוחות¶
STM32H7 — תשתית (CMSIS / HAL / מאתחל (bootloader)); לוח OpenMV H7 עדיין אינו שמיש בגרסה זו.
WINC1500 — עודכנה הקושחה המצורפת.
שינויי API שוברי-תאימות¶
שבירות API נראות-למשתמש בין v2.6.0 ל-v2.7.0. היקף: מודולי C של Python בתוך modules/ וספריות Python בתוך scripts/libraries/.
כל שינוי מתויג לפי השפעתו:
מהותי — משפיע על רוב הסקריפטים שהשתמשו בתכונה; תצטרכו להסב את הקוד.
משני — API צר; משפיע רק על סקריפטים שהשתמשו בו.
התנהגות — אותו API, תוצאות שונות; בדקו מחדש סקריפטים מכוונים.
השינויים מקובצים לפי השפעה בסדר זה. אם אתם רק רוצים להסב את הקוד, דלגו אל רשימת הבדיקה להסבה בסוף. כל hash של commit מקושר ל-diff שלו ב-GitHub.
sensor.set_auto_gain() שופץ ל-dB (מהותי)¶
sensor.set_auto_gain() אינו מקבל עוד את מילת המפתח השלמה value= ואינו מחזיר עוד True / False. השתמשו ב-sensor.set_auto_gain(False, gain_db=...) (ערך dB מסוג float), קראו אותו בחזרה עם sensor.get_gain_db() החדש, ועטפו את הקריאה ב-try / except שכן כשל מעלה כעת ValueError.
Commits: b906c5f19
sensor.set_auto_exposure() שופץ למיקרו-שניות (מהותי)¶
sensor.set_auto_exposure() אינו מקבל עוד את מילת המפתח השלמה value= ואינו מחזיר עוד True / False. השתמשו ב-sensor.set_auto_exposure(False, exposure_us=...), קראו אותו בחזרה עם sensor.get_exposure_us() החדש, וטפלו ב-ValueError המועלה בעת כשל.
Commits: 7be0a7a18
מידות פריים של find_displacement() / FFT שופצו (מהותי)¶
מתאם הפאזה שופץ. image.find_displacement() מחזיר כעת אובייקט תזוזה (עם x_translation() / y_translation() — לשעבר x_offset / y_offset — בנוסף ל-rotation() / scale() ומילות המפתח החדשות logpolar / fix_rotation_scale); אובייקט הסיבוב-קנה-מידה הנפרד הוסר ו-find_rotscale() נוסף. קבועי מידת הפריים של FFT שונו-שם/הוסרו: sensor.B40x30 הוסר לחלוטין, ו-sensor.B64x32 / B64x64 שונו-שם לאותיות רישיות sensor.B64X32 / B64X64 (עם B128X64 / B128X128 חדשים).
sensor.set_auto_whitebal() שופץ ל-dB (משני)¶
sensor.set_auto_whitebal() החליף את מילת המפתח השלמה value=[r, g, b] ב-rgb_gain_db=[r, g, b] (dB מסוג float) ומחזיר כעת None (מעלה ValueError בעת כשל) במקום True / False. השתמשו ב-sensor.get_rgb_gain_db() החדש כדי לקרוא את ההגברים בחזרה.
Commits: 30ecbdc4f
set_hmirror() / set_vflip() מחזירים None (משני)¶
sensor.set_hmirror() ו-sensor.set_vflip() מחזירים כעת None ומעלים ValueError בעת כשל במקום להחזיר סטטוס True / False. הסירו כל קוד המסתעף לפי ערך ההחזרה שלהם.
Commits: aeb023804
כלי הקושחה של WINC דורשים נתיב קובץ (משני)¶
כלי הקושחה של network.WINC השתנו: wlan.fw_dump() / wlan.fw_update() מקבלים כעת ארגומנט חובה של נתיב-קובץ-קושחה וה-WINC נפתח במצב תכנות (network.WINC(mode=...)). עדכנו קריאות ללא ארגומנט להעברת נתיב (לדוגמה wlan.fw_update("/winc_19_5_2.bin")).
Commits: fcc3b0b9c
image.find_number() דורש ROI בגודל 28x28 (התנהגות)¶
image.find_number() (LeNet) דורש כעת ROI בגודל מדויק של 28x28 הנכנס לתוך התמונה ומעלה שגיאה אחרת (במקום לרוץ על ROI שרירותי/מלא-תמונה). העבירו roi=(x, y, 28, 28) מפורש.
Commits: 4d09a13f3
סימן z_rotation() של AprilTag התהפך (התנהגות)¶
z_rotation() של AprilTag (וה-rotation() הקשור) משתמש כעת במוסכמת קואורדינטות ימנית, כך שהזווית המוחזרת מנוגדת בסימן לעומת גרסאות קודמות. סקריפטים התלויים בסימן הישן חייבים להפוך את הערך או להתאים את חישוב הזווית שלהם.
Commits: 7673aaf74
רשימת בדיקה להסבה¶
להסבה נקייה ל-v2.7.0 העבודה הטיפוסית היא:
הסבו
set_auto_gain()ל-gain_db=+get_gain_db()וטפלו ב-ValueError(שיפוץ ההגבר האוטומטי).הסבו
set_auto_exposure()ל-exposure_us=+get_exposure_us()(שיפוץ החשיפה האוטומטית).עדכנו את
find_displacement()לאובייקט התזוזה ושנו את שמות קבועי מידת הפריים של FFT (שיפוץ ה-find_displacement).הסבו
set_auto_whitebal()ל-rgb_gain_db=+get_rgb_gain_db()(שיפוץ איזון הלבן) והפסיקו לבדוק את ערך ההחזרה שלset_hmirror()/set_vflip()(שינוי ה-mirror/flip).העבירו נתיב קושחה לכלי
fw_*של WINC (שינוי כלי ה-WINC).העבירו
roiבגודל 28x28 ל-find_number()(שינוי ה-find_number) והתאימו את חישוב הזווית של AprilTag לסימןz_rotation()ההפוך (שינוי ה-z_rotation).
כל שאר הסקריפטים פועלים ללא שינוי.