v4.1.0¶
يجلب الإصدار v4.1.0 دعمًا كاملاً لـ Arduino Nano RP2040 Connect / Raspberry Pi Pico (WiFi، وBluetooth، والتقاط الكاميرا، والقفز إلى محمّل الإقلاع)، وفك ترميز صور JPEG مباشرةً، وعميل HTTP urequests مُجمَّد، ودعم مستشعر OV7670، وتوحيد الإبلاغ عن أخطاء المستشعر. تغيّرت واجهة WiFi واستثناءات المستشعر — اقرأ التغييرات الكاسرة أدناه.
أبرز النقاط¶
لوحات RP2 — تحصل Arduino Nano RP2040 Connect / Pico على WiFi (NINA-W10)، وBluetooth (NimBLE)، والتقاط الكاميرا/DCMI، والقفز إلى محمّل الإقلاع.
فك ترميز JPEG — أصبحت عمليات الصور تقبل الآن صور JPEG المضغوطة مباشرةً.
عميل HTTP
urequestsمُجمَّد داخل البرنامج الثابت.دعم مستشعر الكاميرا OV7670.
تغيير كاسر: أُعيدت هيكلة واجهة WiFi لـ NINA/RP2 وأصبحت عدة أخطاء للمستشعر ترفع الآن
RuntimeError— راجع التغييرات الكاسرة.
ميزات جديدة¶
Arduino Nano RP2040 Connect / Raspberry Pi Pico — WiFi عبر برنامج التشغيل
networkالخاص بـ NINA-W10، وBluetooth/NimBLE، والتقاط الكاميرا (برنامج DCMI PIO)، وأمر القفز إلى محمّل الإقلاع.فك ترميز صور JPEG — أصبحت
find_apriltags()وlcd.display()وtv.display()وعمليات الصور ذات الصلة تقبل الآن صور JPEG المضغوطة مباشرةً (فك الترميز إلى binary/grayscale/RGB565).urequests— أصبح عميل HTTP (GET/POST/PUT/...) الآن مُجمَّدًا على OpenMV 4 / 4 Plus / Portenta / Nicla، مع مثالhttp_post.py.مكتبة المساعدة
ble_advertising، مُجمَّدة على Nano RP2040 Connect.المضيف/التنقيح —
pyopenmv.reset_to_bl()وأمر جديدUSBDBG_SYS_RESET_TO_BL(0x0E) لإعادة الضبط إلى محمّل الإقلاع؛ والقفز إلى محمّل الإقلاع على Arduino Nano 33 BLE Sense.OV7670 — دعم جديد لمستشعر الكاميرا OV7670، قابل للتحديد على OpenMV 4.
تغييرات وتحسينات أخرى¶
ترتبط مقابس RP2 UDP تلقائيًا بمنفذ مؤقت عند استخدامها دون ربط؛ وتم تحديث وحدة MicroPython الفرعية المضمّنة.
إصلاحات الأخطاء¶
الشبكات:
إصلاح معالجة accept/close/send/recv/bind لمقبس NINA WiFi ومهلات العمليات، وحالة تسابق في مخزن النص المؤقت للتنقيح في RP2 كان من الممكن أن تُفسد مخرجات IDE.
الكاميرا والنظام:
إصلاح إعادة ضبط HM01B0، وتعطّل ناقل I2C للكاميرا بعد فشل مسح المستشعر على OpenMV H7، ودخول الطاقة المنخفضة لـ H7 ULPI عند فصل USB، وتوليد دبوس ADC لـ H7، وتوزيع دبابيس كاميرا Portenta / SPI-CS للدرع.
دعم العتاد واللوحات¶
Arduino Nano RP2040 Connect / Raspberry Pi Pico — WiFi، وBluetooth، والكاميرا، ونظام ملفات فلاش أكبر، ومحمّل إقلاع MSC.
مستشعر الكاميرا OV7670 (OpenMV 4).
Arduino Portenta H7 — منفذ توصيل I2C4، ودبابيس PWM/ساعة إضافية، ومستشعرات OV7725 / MT9V034.
تغييرات كاسرة في واجهة برمجة التطبيقات¶
تغييرات كاسرة مرئية للمستخدم في واجهة برمجة التطبيقات بين v4.0.2 وv4.1.0. النطاق: وحدات Python C في modules/ ومكتبات Python في scripts/libraries/.
كل تغيير موسوم بتأثيره:
طفيف — واجهة برمجة تطبيقات ضيقة؛ يؤثر فقط على البرامج النصية التي استخدمتها.
سلوك — نفس الواجهة، نتائج مختلفة؛ أعد فحص البرامج النصية المضبوطة.
تُجمَّع التغييرات حسب التأثير بهذا الترتيب. إذا كنت تريد فقط نقل شيفرتك، انتقل إلى قائمة فحص الترحيل في النهاية. يرتبط كل تجزئة تأكيد (hash) بالفرق الخاص به على GitHub.
أُعيدت هيكلة واجهة WiFi لـ NINA / RP2 (طفيف)¶
أُعيدت هيكلة برنامج تشغيل WLAN لـ NINA / RP2 ليطابق واجهة network الأصلية في MicroPython / CYW43: مُنشئ WLAN(interface) (وضع STA/AP)، وطريقة جديدة active([bool])، واسمان بديلان config / start_ap لـ connect، وإعادة تسمية وسيط ssid في connect() إلى essid، وكلمة مفتاحية جديدة channel، وأصبحت nina.fw_version() الآن تُرجع صفًا (tuple) (major, minor, patch) بدلاً من بايتات خام. أصبح عدم تطابق إصدار البرنامج الثابت لـ NINA الآن تحذيرًا غير قاتل بدلاً من OSError.
أصبحت أخطاء المستشعر الآن ترفع RuntimeError (سلوك)¶
تم توحيد الإبلاغ عن أخطاء المستشعر حول جدول رموز أخطاء موحّد: أصبحت إخفاقات الكاميرا (مهلة الالتقاط، أو framesize/pixformat/window/framerate غير صالح، أو خطأ مخزن الإطارات، أو تجاوز سعة JPEG، أو مستشعر غير مكتشف، ...) ترفع الآن رسائل متسقة ووصفية، وأصبحت عدة حالات كانت ترفع سابقًا ValueError ترفع الآن RuntimeError (بما في ذلك sensor.reset()). يجب على الشيفرة التي كانت تلتقط ValueError لهذه الحالات أن تلتقط RuntimeError بدلاً من ذلك.
قائمة فحص الترحيل¶
للنقل النظيف إلى v4.1.0، العمل المعتاد هو:
انقل شيفرة WiFi لـ NINA/RP2 إلى واجهة
network.WLANالقياسية (WLAN(interface)وactive()وessid=) وتوقّع صفًا (tuple) منnina.fw_version()(تغيير واجهة WiFi).غيّر
except ValueErrorإلىexcept RuntimeErrorحول معالجة أخطاء الكاميرا /sensor.reset()(تغيير أخطاء المستشعر).