v3.7.0¶
v3.7.0 היא גרסה גדולה. היא מוסיפה את מודול ה-audio (מיקרופון PDM של Portenta H7) עם API חדש ולא-חוסם מבוסס פונקציית callback, את מודול זיהוי הדיבור micro_speech של TensorFlow, בקר LCD חדש לגמרי של RGB מקבילי (עם פלט HDMI ומגע FT5X06), מתודת image.flush() עם קבועי פורמט פיקסל, וצינור הקנה-מידה (scaling) של image.draw_image() שנכתב מחדש. כמה ספריות סיוע ומתודות תמונה מדור קודם הוסרו והחשבון של yuv_to_* השתנה — קראו את השינויים השוברים שלהלן.
עיקרי הדברים¶
מודול
audio— לכידה ממיקרופון PDM מובנה של Portenta H7 עם API לא-חוסם שלstart_streaming(callback).micro_speech— מודול זיהוי דיבור מיקרו של TensorFlow.בקר LCD חדש — תמיכה בתצוגת RGB מקבילי, פלט HDMI (TFP410), ומגע FT5X06.
image.draw_image()— נכתב מחדש עם צינור מלא של קנה-מידה/אלפא/פלטה (x_scale/y_scale/hint/color_palette…).image.flush()בתוספת קבועי פורמט פיקסל (image.BINARY/GRAYSCALE/RGB565/YUV422/BAYER/JPEG).שובר: ספריות סיוע מתמטיות מדור קודם וכמה מתודות תמונה הוסרו, ה-API של
draw_image()/ LCD עוצב מחדש, ו-yuv_to_*אינו מחסר עוד 128 — ראו את השינויים השוברים.
תכונות חדשות¶
audio— מודולaudioחדש ל-Portenta H7 ללכידה ממיקרופון PDM:audio.init(),audio.start_streaming(callback)לא-חוסם, ו-audio.stop_streaming()(התדר מצוין ב-Hz).micro_speech— מודול חדש עם מחלקתMicroSpeech,audio_callback(), ו-micro_speech()לזיהוי דיבור של TensorFlow;listen()משתמש בממוצע חלון נע ומקבל מילת מפתחfilterלהגבלת התוצאות לרשימת תוויות.LCD — בקר LCD חדש עם תמיכה בתצוגת RGB מקבילי, סוגי
LCD_NONE/LCD_SHIELD/LCD_DISPLAY, קבועי framesize רבים,triple_buffer/framesize/refresh/bgr/deinit,displayמורחב, פלט HDMI דרך ה-TFP410, ותמיכה במסך מגע FT5X06.image.flush()— נוספה מתודתimage.flush()וקבועי פורמט פיקסל (image.BINARY/GRAYSCALE/RGB565/YUV422/BAYER/JPEG).image.draw_image()— נכתב מחדש עם צינור קנה-מידה חדש:x_scale/y_scale/x_size/y_size,rgb_channel,alpha,color_palette,alpha_palette, ו-hint, בתוספת קבועיimage.AREA/BILINEAR/BICUBIC/CENTER/EXTRACT_RGB_CHANNEL_FIRST/APPLY_COLOR_PALETTE_FIRSTודוגמאות חדשות של מיזוג-אלפא / טבלת-צבעים / קנה-מידה.ImageReader.next_frame()קיבל מילת מפתחpauseלהשבתת השהיית ההשמעה בזמן אמת.נוספו דוגמאות אודיו של Portenta (
audio_fft.py,micro_speech.py) ודוגמת התעוררות-מ-stop של ExtInt.
שינויים ושיפורים נוספים¶
הדוגמאות המובנות אורגנו מחדש תחת
scripts/examples/Arduino/; ה-framebuffer מתעדכן כעת מיידית לאחר טעינת/יצירת תמונות עםcopy_to_fb=True(אין צורך ב-flush ידני); ה-heap של ה-Portenta הוקטן מעט כדי להכיל יותר מצב מנהל-התקן סטטי.
תיקוני באגים¶
מצלמה והדמיה:
תוקן היפוך אדום/כחול (סדר בתים של RGB565) בתמונות שנלכדו, עיגול ציור של DMA2D כך שיתאים לשאר קוד הציור, השחתת
fb_allocבהקצאות רקורסיביות (find_blobs()), ו-top_hat()/black_hat()הותנו בכך ששתי הפעולות הבינאריות והמתמטיות מופעלות.
תצוגה ואודיו:
תוקנו פלט מגן ה-LCD ומצב האודיו המונו חד-ערוצי של ה-Portenta.
Portenta:
נמצא פתרון עוקף לבעיית Ethernet/SDRAM (הנעת
rst_ethל-high) ותוקנה תצורת תזמון ה-SDRAM.
חומרה ותמיכת לוחות¶
Arduino Portenta H7 — לכידת אודיו ממיקרופון PDM מובנה (SAI / PDM2PCM).
LCD — בקר תצוגת RGB-מקבילי חדש (LTDC הופעל בבניית ה-H7), פלט HDMI דרך ה-TFP410, ותמיכת LCD במסך מגע FT5X06.
שינויי API שוברים¶
שינויי API גלויים למשתמש בין v3.6.9 ל-v3.7.0. היקף: מודולי C של Python ב-modules/ וספריות Python ב-scripts/libraries/.
כל שינוי מתויג בהשפעתו:
minor — API צר; משפיע רק על סקריפטים שהשתמשו בו.
behavior — אותו API, תוצאות שונות; בדקו מחדש סקריפטים מכווננים.
השינויים מקובצים לפי השפעה בסדר זה. אם אתם רק רוצים להעביר את הקוד שלכם, דלגו ל-רשימת הבדיקה למעבר בסוף. כל hash של commit מקשר ל-diff שלו ב-GitHub.
ספריות סיוע מתמטיות מדור קודם הוסרו (minor)¶
ספריות הסיוע mtx, rv, ulinalg, umatrix, ו-vec הוסרו מ-scripts/libraries לטובת ulab. סקריפטים שמבצעים import לאחת מאלה ייכשלו ויש להעבירם ל-ulab.
Commits: 1f7da9272
remove_shadows() / chrominvar() / illuminvar() הוסרו (minor)¶
image.remove_shadows(), image.chrominvar(), ו-image.illuminvar() נמחקו ללא תחליף. סקריפטים שקוראים למתודות אלה חייבים להסיר את הקריאות.
Commits: 3173c2bb3
החתימה של image.draw_image() עוצבה מחדש (minor)¶
image.draw_image() נכתב מחדש על גבי צינור קנה-מידה חדש. הארגומנטים הישנים של alpha מיקומי / scale יחיד והסדר המיקומי הקודם אינם חלים עוד; השתמשו בצורת מילות המפתח החדשה (x_scale= / y_scale= או x_size= / y_size=, alpha=, color_palette=, hint= …).
Commits: 3439f8824
כתיבה מחדש של מודול LCD (minor)¶
מודול ה-lcd נכתב מחדש עבור בקר התצוגה החדש. lcd.init() מקבל כעת type של תצוגה (LCD_NONE / LCD_SHIELD / LCD_DISPLAY) וארגומנטים חדשים של מילות מפתח, ומשטח הקבועים / ה-API אורגן מחדש באופן ניכר. סקריפטים ישנים מבוססי-מגן ברובם עדיין עובדים, אך ברירות המחדל וההתנהגות השתנו — בדקו סקריפטי LCD מול ה-API החדש של type / framesize.
Commits: 185538207
yuv_to_* אינו מחסר עוד 128 (behavior)¶
image.yuv_to_binary() / yuv_to_grayscale() / yuv_to_rgb() / yuv_to_lab() מתייחסים כעת לאיבר ה-Y של ה-tuple כערך ללא-סימן בטווח 0–255 במקום לחסר 128. הקוראים חייבים להעביר Y ללא ההיסט הקודם של −128 כדי לקבל את אותם הצבעים כמו קודם.
Commits: dcf141192
רשימת בדיקה למעבר¶
למעבר נקי ל-v3.7.0, העבודה הטיפוסית היא:
העבירו שימוש ב-
mtx/rv/ulinalg/umatrix/vecאלulab(הסרת ספריית המתמטיקה).הסירו קריאות ל-
image.remove_shadows()/chrominvar()/illuminvar()(מתודות התמונה שהוסרו).עדכנו קריאות ל-
image.draw_image()לחתימת מילות המפתח החדשה (עיצוב מחדש של draw_image).בדקו סקריפטי LCD מול ה-API החדש של
lcdtype/framesize(כתיבה מחדש של LCD).הסירו את ההיסט של −128 בעת העברת Y ל-
yuv_to_*(שינוי yuv_to_*).
כל יתר הסקריפטים רצים ללא שינוי.