v4.0.0¶
الإصدار v4.0.0 هو الإصدار الرئيسي v3 ← v4. يقدّم واجهة التخزين المؤقت متعدد الإطارات الحديثة لـ sensor (التخزين المؤقت المزدوج / الثلاثي وطابور FIFO للفيديو)، ودالة رد نداء عند اكتمال الإطار، ووحدة Bluetooth (مكدّس NimBLE) مع دعم Portenta، ومشغّل كاميرا MT9M114 الأولي، والتقاط الكاميرا المُفرّغ إلى MDMA، ودعم Bayer/JPEG في image.draw_image()، وقفزة إلى MicroPython 1.15. أُزيل وضع البث القديم وأُعيد تصميم sensor.set_windowing() — اقرأ التغييرات الكاسرة أدناه.
أبرز النقاط¶
التخزين المؤقت متعدد الإطارات — يكتسب
sensorالتخزين المؤقت المزدوج والثلاثي ووضع FIFO للفيديو لمعدلات إطارات أعلى وأكثر سلاسة.دالة رد نداء عند اكتمال الإطار — سجّل دالة رد نداء تُطلق عندما يصبح إطار جديد جاهزاً، لخطوط التقاط غير حاجبة.
Bluetooth — وحدة
bluetoothمبنية على مكدّس NimBLE، مُمكّنة على Arduino Portenta H7 (مع مثال BLE).MT9M114 — مشغّل مستشعر كاميرا أولي.
التقاط أسرع — تفريغ MDMA لالتقاط بيانات الكاميرا؛ تقبل
draw_image()الآن مصادر/وجهات Bayer وJPEG.MicroPython 1.15 — حُدّثت نسخة MicroPython المرفقة من 1.13 إلى 1.15.
تغيير كاسر: أُزيل وضع البث القديم وأُعيد تصميم
sensor.set_windowing()— راجع التغييرات الكاسرة.
ميزات جديدة¶
التخزين المؤقت متعدد الإطارات للمستشعر — إضافة
sensor.set_framebuffers()/sensor.get_framebuffers()وأوضاعSINGLE_BUFFER/DOUBLE_BUFFER/TRIPLE_BUFFER/VIDEO_FIFO، بالإضافة إلىsensor.get_frame_available()للالتقاط المزدوج والثلاثي وعبر FIFO الفيديو.دالة رد نداء عند اكتمال الإطار — إضافة
sensor.set_frame_callback()بحيث تعمل دالة رد نداء Python عند انتهاء كل إطار جديد.Bluetooth — إضافة وحدة
bluetoothمدعومة بمكدّس NimBLE (وحدة NimBLE الفرعية، ومشغّل CYW-BT)، مُمكّنة على Arduino Portenta H7 مع مثال BLE.MT9M114 — إضافة مشغّل مستشعر كاميرا MT9M114 الأولي.
draw_image — إضافة دعم إلغاء الفسيفسائية ودعم نسخ JPEG بحيث تقبل
image.draw_image()صور مصدر/وجهة من نوع Bayer وJPEG.تفريغ الالتقاط إلى MDMA — يُفرّغ التقاط بيانات الكاميرا إلى MDMA من أجل إنتاجية أعلى.
يمكن الآن تعطيل وسيطة لوحة الألوان عبر تمرير
-1(بما أنNoneمحجوزة كوسيطة صالحة).
تغييرات وتحسينات أخرى¶
التحول إلى تنفيذ I2C البرمجي الجديد؛ والمواءمة مع المنبع (upstream) في MicroPython؛ وتهيئة ulab لكل لوحة؛ وتمكين الوحدات المدمجة الأساسية لـ OpenMV 2؛ وقفل قراءة مخزن الإطارات بشكل أكثر إنصافاً؛ وتوسيع دعم المزامنة (mutex) إلى Cortex-M0/M0+ مع مهلة للقفل.
إصلاحات العلل¶
الكاميرا والتصوير:
إصلاح موثوقية تهيئة FLIR Lepton على لوحة Pure Thermal، ومعالجة مخزن/إيقاف JPEG في ImageIO، وإعدادات vflip/hmirror في HM01B0، وإفراغ مخزن JPEG عند إبطال صورة، وعلَم
croppedالذي كان يُضبط عندما يكون حجم الإطار غير صالح.
النظام والاتصال:
إصلاح تفريغ أمر USB وأمر إعادة الضبط إلى محمّل الإقلاع، وتهيئة المزامنة (mutex)، ومصدر ساعة UART، وتعريف صفحة الترميز في FatFS، ومعالجة ACK خارج النطاق في WINC1500، وتصحيح أخطاء WiFi، وPID الخاص بـ USB في Nano33؛ وعزل وسادات تماثلية مخصصة.
الأجهزة ودعم اللوحات¶
مستشعر كاميرا MT9M114 (مشغّل أولي).
Arduino Portenta H7 — تمكين Bluetooth (NimBLE) مع مثال BLE.
Arduino Nano RP2040 Connect / Nano 33 BLE Sense — تعطيل علَم تصحيح WiFi حيث لا يكون مدعوماً؛ وإضافة مثال الوميض؛ وإصلاح PID الخاص بـ USB.
تغييرات كاسرة في الـ API¶
تغييرات الـ API المرئية للمستخدم بين v3.9.4 وv4.0.0. النطاق: وحدات Python C في modules/ ومكتبات Python في scripts/libraries/.
كل تغيير موسوم بمدى تأثيره:
major — يؤثر على معظم البرامج النصية؛ ستحتاج على الأرجح إلى نقل الكود.
minor — API ضيق؛ يؤثر فقط على البرامج النصية التي استخدمته.
behavior — نفس الـ API، نتائج مختلفة؛ أعد فحص البرامج النصية المضبوطة.
التغييرات مجمّعة حسب التأثير بذلك الترتيب. إذا كنت تريد فقط نقل كودك، فانتقل إلى قائمة التحقق للترحيل في النهاية. كل تجزئة commit ترتبط بفرقها (diff) على GitHub.
أُزيل وضع البث (major)¶
أُزيل وضع بث المستشعر القديم لصالح واجهة التخزين المؤقت متعدد الإطارات الجديدة. يجب على الكود الذي مكّن وضع البث أن ينتقل إلى sensor.set_framebuffers() مع DOUBLE_BUFFER / TRIPLE_BUFFER / VIDEO_FIFO وأن يقود الالتقاط بـ sensor.snapshot() / sensor.get_frame_available() بدلاً من ذلك.
Commits: a42f3a647
أُعيد تصميم sensor.set_windowing() (behavior)¶
جُعلت sensor.set_windowing() أكثر مرونة بكثير: فهي الآن تقبل أشكالاً متعددة من الوسائط (صف منطقة، أو عرض/ارتفاع مُركّز، أو x, y, w, h) وتحلّ النافذة نسبةً إلى الدقة الحالية. قد تختار البرامج النصية التي مرّرت وسائط النوافذ بالشكل الثابت القديم منطقة مختلفة وينبغي إعادة فحصها.
Commits: 3e9c43554
MicroPython 1.13 ← 1.15 (behavior)¶
حُدّثت نواة MicroPython المرفقة من 1.13 إلى 1.15 (عبر 1.14). يتبع سلوك المكتبة القياسية واللغة المنبع (upstream) في MicroPython 1.15؛ أعد فحص البرامج النصية التي تعتمد على سلوك micropython / الوحدات القياسية الخاص بنسخة معينة.
أُزيلت وسيطة update_jpeg_buffer في ImageIO (minor)¶
أُعيد تصميم تحديث مخزن JPEG في ImageIO لاشتقاق المخزن من وسيطة مصدر الصورة، وأُزيلت الوسيطة الصريحة update_jpeg_buffer. يجب على البرامج النصية التي مرّرت update_jpeg_buffer إلى ImageIO أن تُسقط تلك الوسيطة.
Commits: 5c6937bd1
قائمة التحقق للترحيل¶
للنقل النظيف إلى v4.0.0 يكون العمل المعتاد:
استبدل أي استخدام لوضع البث المُزال بواجهة التخزين المؤقت متعدد البيانات الجديدة
sensor.set_framebuffers()(أُزيل وضع البث).أعد فحص استدعاءات
sensor.set_windowing()مقابل معالجة الوسائط المُعاد تصميمها والأكثر مرونة (تغيير النوافذ).أعد التحقق من البرامج النصية التي تعتمد على سلوك MicroPython الخاص بنسخة معينة مقابل MicroPython 1.15 (ترقية MicroPython).
أسقط وسيطة
update_jpeg_bufferمن استدعاءات ImageIO (تغيير ImageIO).
جميع البرامج النصية الأخرى تعمل دون تعديل.