v4.5.9¶
يجلب الإصدار v4.5.9 بثّ المعاينة الخام للوحات غير المزوّدة بمُرمِّز JPEG عتادي، واقتصاص المستشعر العتادي لتحرير مزيد من RAM، وفكّ تشفير Bayer المسرّع بـ Helium بشكل أسرع، ومجموعة من إصلاحات الكاميرا/تصحيح USB. كما يغيّر واجهة برمجة تطبيقات نتائج AprilTag ومجموعة عائلات AprilTag الافتراضية، لذا اقرأ التغييرات الكاسرة أدناه.
أبرز النقاط¶
بثّ المعاينة الخام — يمكن للوحات غير المزوّدة بمُرمِّز JPEG عتادي الآن إرسال إطارات خام مصغّرة إلى IDE/المضيف بدلًا من الفشل في المعاينة.
اقتصاص المستشعر العتادي — يقلّل ضبط حجم إطار أصغر الآن من ذاكرة كل مخزن ويحرّر RAM لـ
fb_alloc().فكّ تشفير Bayer أسرع — أصبح تحويل Bayer→RGB/تدرج الرمادي الآن مسرّعًا بـ Helium-SIMD على لوحات Cortex-M55.
تغيير كاسر: تغيّر كائن نتيجة AprilTag إلى الوصول بالسمات، وقُلّصت مجموعة عائلات AprilTag الافتراضية (راجع تغييرات AprilTag وتغيير عائلة AprilTag).
ميزات جديدة¶
بثّ المعاينة الخام — يمكن للوحات غير المزوّدة بمُرمِّز JPEG عتادي تجاوز JPEG وبثّ إطارات خام مصغّرة (بحد أقصى نحو 60 كيلوبايت) إلى IDE/المضيف، بحيث تعمل المعاينة المباشرة على تلك اللوحات.
تغييرات وتحسينات أخرى¶
الاقتصاص العتادي مُمكَّن الآن على جميع لوحات STM32/NXP (Giga وNicla Vision وPortenta H7 وOpenMV 1–4 / 4 Plus / Pure Thermal / RT1060). وعند ضبط حجم إطار أو نافذة، تُقلَّص ذاكرة كل مخزن إلى الحجم المقتصّ، مما يحرّر مزيدًا من RAM لـ
fb_alloc().فكّ تشفير Bayer أسرع — أصبح تحويل Bayer→RGB565/تدرج الرمادي الآن مسرّعًا بـ ARM Helium/MVE SIMD على لوحات Cortex-M55 (مثل RT1060)، مع مسار مشترك لمُرمِّز JPEG بـ SIMD.
تصحيح أسرع في IDE — ينقل المصحّح الآن البيانات مباشرة من مكدّس USB عندما يكون ذلك ممكنًا، متجنبًا نسخة إضافية.
تحديث الوحدة الفرعية MicroPython — يمكن للوحات تغيير حجم مخزن TinyUSB CDC، إضافة إلى إصلاحات في GC وقواعد البناء.
إصلاحات الأخطاء¶
الكاميرا والمستشعرات:
تصحيح نمط Bayer/CFA الخاص بـ OV7725 (GBRG → BGGR)، مما يصلح مخرجات اللون المفكوكة من Bayer على كاميرات OV7725؛ ويُبلِّغ OV7725 الآن عن تنسيق بكسل Bayer، وتُبلِّغ المستشعرات التي تعتمد على Bayer فقط الآن عن عمق مصدر بمعدل بايت واحد لكل بكسل.
إصلاح حساب حجم مخزن الإطارات الخام/Bayer.
تعلّم الآلة:
يستخدم TensorFlow Lite Micro الآن الذاكرة الحرة لكومة GC عند تحديد حجم ساحة الموتر المؤقتة، مما يمنع حالات فشل تخصيص تحميل النموذج على اللوحات ذات ذاكرة مخزن الإطارات المحدودة.
المضيف / IDE:
إصلاح معالجة مخزن USB-debug CDC على لوحات TinyUSB لإنتاجية أكثر موثوقية للاتصال التسلسلي/التصحيح.
tools/pyopenmv: إصلاح ترتيب بايتات RGB565، وإضافة وسيطةscale، وأصبحت أداة مخزن الإطارات تُبلِّغ الآن عن حجم/تنسيق الصورة.
دعم العتاد واللوحات¶
OV7725 يُبلِّغ الآن عن تنسيق بكسل Bayer (معالجة صحيحة للبيانات الخام/CFA).
تمكين الاقتصاص العتادي عبر نطاق لوحات STM32/NXP.
تغييرات كاسرة في واجهة برمجة التطبيقات¶
حالات كسر واجهة برمجة التطبيقات المرئية للمستخدم بين v4.5.8 وv4.5.9. النطاق: وحدات Python C في modules/ ومكتبات Python في scripts/libraries/.
كل تغيير موسوم بمدى تأثيره:
ثانوي — واجهة برمجة تطبيقات ضيقة؛ يؤثر فقط على البرامج النصية التي استخدمته.
سلوكي — نفس الواجهة، نتائج مختلفة؛ أعد فحص البرامج النصية المضبوطة.
التغييرات مجمّعة حسب التأثير بهذا الترتيب. إذا كنت تريد فقط نقل شيفرتك، فانتقل إلى قائمة التحقق للترحيل في النهاية. ويرتبط كل تجزيء (hash) للالتزام بفرقه (diff) على GitHub.
كائنات نتيجة AprilTag وset_buffers (ثانوي)¶
أصبحت نتائج AprilTag من find_apriltags() الآن تعرض بياناتها بوصفها سمات بدلًا من طرق — استخدم tag.cx وtag.cy وtag.rotation وtag.family وtag.corners بدلًا من tag.cx() وtag.family() وما إلى ذلك. وأُضيف وصول جديد name (سلسلة اسم العائلة) ووصول بدقة عشرية cxf / cyf.
وبشكل منفصل، تغيّرت تهيئة مخزن الفيديو التلقائية: تحلّ set_buffers محل auto_adjust — مرّر -1 لاستخدام ما يصل إلى ثلاثة مخازن بحجم الإطار (أو أكبر عدد يتسع) و1 لاستخدام مخزن الإطارات بأكمله. وأصبح تحديد حجم المخزن الآن مدركًا لعدد البتات لكل بكسل، بحيث يمكن تخصيص مزيد من المخازن للتنسيقات بمعدل 1 بت لكل بكسل.
إزالة ble_advertising وRPC عبر الشبكة (ثانوي)¶
أُزيلت المكتبة المساعدة ble_advertising والمثال ble_temperature.py — استخدم aioble بدلًا من ذلك (يُوفَّر مثال درجة حرارة باستخدام aioble). وأُزيلت أصناف RPC الرئيسية/التابعة عبر الشبكة من rpc.py.
عائلات AprilTag معطّلة افتراضيًا (سلوكي)¶
أصبحت عائلات AprilTag الآن قابلة للاختيار بشكل فردي في وقت الترجمة، والعائلات غير المستخدمة معطّلة افتراضيًا. وعلى اللوحات القياسية، تكتشف find_apriltags() الآن عائلة TAG36H11 فقط ما لم يُعَد بناء البرنامج الثابت مع تمكين عائلات أخرى. وستتوقف البرامج النصية المعتمدة على عائلات أخرى (TAG16H5، TAG25H9، ...) على بناء قياسي عن اكتشافها بصمت.
الالتزام: effe12f2c
قائمة التحقق للترحيل¶
للحصول على نقل نظيف إلى v4.5.9، يكون العمل المعتاد كالآتي:
غيّر الوصول إلى نتائج AprilTag من استدعاءات الطرق إلى السمات (
tag.cx()→tag.cx)، وبدّلauto_adjustبـset_buffers(تغييرات AprilTag / المخزن).استبدل
ble_advertisingبـaiobleوأسقط أي استخدام لـ RPC الرئيسي/التابع عبر الشبكة (الإزالات).إذا كنت تستخدم عائلات AprilTag غير
TAG36H11على بناء قياسي، فلاحظ أنها لم تعد تُكتشف افتراضيًا (تغيير عائلة AprilTag).