v3.7.0¶
الإصدار v3.7.0 إصدار كبير. يضيف وحدة audio (ميكروفون PDM في Portenta H7) مع واجهة جديدة لدوال رد النداء غير الحاجبة، ووحدة التعرف على الكلام micro_speech المعتمدة على TensorFlow، ووحدة تحكم LCD جديدة كلياً بنظام RGB المتوازي (مع خرج HDMI ولمس FT5X06)، ودالة image.flush() مع ثوابت تنسيق البكسل، وخط أنابيب لتدريج image.draw_image() مُعاد كتابته. تمت إزالة عدة مكتبات مساعدة قديمة وطرق صور، وتغيّر حساب yuv_to_* — اقرأ التغييرات الكاسرة أدناه.
أبرز النقاط¶
وحدة
audio— التقاط من ميكروفون PDM المدمج في Portenta H7 بواجهةstart_streaming(callback)غير حاجبة.micro_speech— وحدة للتعرف على الكلام 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).كاسر: تمت إزالة مكتبات الحساب المساعدة القديمة وعدة طرق صور، وأُعيدت صياغة واجهات
draw_image()/ LCD، ولم يعدyuv_to_*يطرح 128 — راجع التغييرات الكاسرة.
ميزات جديدة¶
audio— وحدةaudioجديدة لـ Portenta H7 لالتقاط ميكروفون PDM:audio.init()وaudio.start_streaming(callback)غير الحاجبة وaudio.stop_streaming()(يُحدَّد التردد بالهرتز).micro_speech— وحدة جديدة تحتوي على الصنفMicroSpeechوaudio_callback()وmicro_speech()للتعرف على الكلام بـ TensorFlow؛ تستخدمlisten()متوسطاً بنافذة متحركة وتقبل كلمة مفتاحيةfilterلتقييد النتائج بقائمة تسميات.LCD — وحدة تحكم LCD جديدة بدعم شاشة RGB المتوازية وأنواع
LCD_NONE/LCD_SHIELD/LCD_DISPLAYوالعديد من ثوابت أحجام الإطار و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) ومثال للاستيقاظ من حالة الإيقاف عبر ExtInt.
تغييرات وتحسينات أخرى¶
أُعيد تنظيم الأمثلة المدمجة تحت
scripts/examples/Arduino/؛ وأصبح مخزن الإطارات الآن يُحدَّث فوراً بعد تحميل/إنشاء الصور باستخدامcopy_to_fb=True(دون حاجة إلى تفريغ يدوي)؛ وتم تقليص كومة Portenta قليلاً لاستيعاب المزيد من حالة المشغّلات الثابتة.
إصلاحات الأخطاء¶
الكاميرا والتصوير:
إصلاح تبادل الأحمر/الأزرق (ترتيب بايتات RGB565) في الصور الملتقطة، وتقريب رسم DMA2D ليطابق بقية شيفرة الرسم، وفساد
fb_allocفي التخصيصات التكرارية (find_blobs())، وتقييدtop_hat()/black_hat()بتفعيل العمليات الثنائية والحسابية معاً.
الشاشة والصوت:
إصلاح خرج درع LCD ووضع الصوت الأحادي ذي القناة الواحدة في Portenta.
Portenta:
تجاوز مشكلة Ethernet/SDRAM (برفع
rst_ethإلى الحالة العالية) وإصلاح إعداد توقيت SDRAM.
الأجهزة ودعم اللوحات¶
Arduino Portenta H7 — التقاط صوت من ميكروفون PDM المدمج (SAI / PDM2PCM).
LCD — وحدة تحكم شاشة RGB المتوازية الجديدة (تفعيل LTDC في بنية H7) وخرج HDMI عبر TFP410 ودعم شاشة LCD اللمسية FT5X06.
تغييرات كاسرة في API¶
كسور API المرئية للمستخدم بين v3.6.9 وv3.7.0. النطاق: وحدات Python بلغة C في modules/ ومكتبات Python في scripts/libraries/.
كل تغيير موسوم بأثره:
طفيف — API ضيّق؛ يؤثر فقط على البرامج النصية التي استخدمته.
سلوك — نفس API، نتائج مختلفة؛ أعِد فحص البرامج النصية المضبوطة.
التغييرات مُجمَّعة حسب الأثر بهذا الترتيب. إذا كنت تريد فقط نقل شيفرتك، انتقل إلى قائمة التحقق للترحيل في النهاية. يرتبط كل تجزئة (hash) لكل التزام (commit) بفروقاته على GitHub.
إزالة مكتبات الحساب المساعدة القديمة (طفيف)¶
تمت إزالة المكتبات المساعدة mtx وrv وulinalg وumatrix وvec من scripts/libraries لصالح ulab. ستفشل البرامج النصية التي تستخدم import لأيٍّ منها ويجب نقلها إلى ulab.
الالتزامات: 1f7da9272
إزالة remove_shadows() / chrominvar() / illuminvar() (طفيف)¶
تم حذف image.remove_shadows() وimage.chrominvar() وimage.illuminvar() دون بديل. يجب على البرامج النصية التي تستدعي هذه الطرق إزالة الاستدعاءات.
الالتزامات: 3173c2bb3
إعادة صياغة توقيع image.draw_image() (طفيف)¶
أُعيدت كتابة image.draw_image() فوق خط أنابيب تدريج جديد. لم تعد وسائط alpha الموضعية القديمة / وسيط scale المفرد والترتيب الموضعي السابق منطبقة؛ استخدم الصيغة الجديدة بالكلمات المفتاحية (x_scale= / y_scale= أو x_size= / y_size= وalpha= وcolor_palette= وhint= …).
الالتزامات: 3439f8824
إعادة كتابة وحدة LCD (طفيف)¶
أُعيدت كتابة وحدة lcd لوحدة التحكم الجديدة بالشاشة. أصبحت lcd.init() الآن تأخذ type للشاشة (LCD_NONE / LCD_SHIELD / LCD_DISPLAY) ووسائط بكلمات مفتاحية جديدة، وأُعيد تنظيم سطح الثوابت / API بشكل كبير. لا تزال البرامج النصية القديمة المخصصة للدرع تعمل في معظمها، لكن القيم الافتراضية والسلوك تغيّرا — راجع برامج LCD النصية مقابل واجهة type / framesize الجديدة.
الالتزامات: 185538207
لم يعد yuv_to_* يطرح 128 (سلوك)¶
أصبحت image.yuv_to_binary() / yuv_to_grayscale() / yuv_to_rgb() / yuv_to_lab() الآن تعامل عنصر Y في الصف (tuple) كقيمة غير موقّعة بين 0 و255 بدلاً من طرح 128. يجب على المستدعين تمرير Y دون انحياز −128 السابق للحصول على نفس الألوان كما كان من قبل.
الالتزامات: dcf141192
قائمة التحقق للترحيل¶
من أجل نقل نظيف إلى v3.7.0، العمل المعتاد هو:
نقل استخدام
mtx/rv/ulinalg/umatrix/vecإلىulab(إزالة مكتبة الحساب).إزالة استدعاءات
image.remove_shadows()/chrominvar()/illuminvar()(طرق الصور المُزالة).تحديث استدعاءات
image.draw_image()إلى توقيع الكلمات المفتاحية الجديد (إعادة صياغة draw_image).مراجعة برامج LCD النصية مقابل واجهة
type/framesizeالجديدة لـlcd(إعادة كتابة LCD).إسقاط انحياز −128 عند تمرير Y إلى
yuv_to_*(تغيير yuv_to_*).
جميع البرامج النصية الأخرى تعمل دون تعديل.