v4.2.2

يضيف الإصدار v4.2.2 دعم صور PNG (فك/ترميز عبر lodepng)، ومحمّل نماذج مدمجة قائم على جداول، ودعم OV5640 على Portenta، وتحديثًا لـ Edge-Impulse TensorFlow، و ulab 4.0. لقد تغيّرت واجهة برمجة تطبيقات تهيئة RPC CAN — اقرأ التغييرات الكاسرة أدناه.

أبرز النقاط

  • دعم PNGImage.to_png() و image.PNG وقراءة/كتابة ملفات PNG.

  • tf.load_builtin_model() — نماذج مدمجة قائمة على جداول يمكن استبدالها أو إضافتها في وقت البناء.

  • Portenta H7 — دعم كاميرا OV5640 (مع التركيز التلقائي).

  • MicroPython/ulab — تم تحديث ulab إلى 4.0.0.

  • تغيير كاسر: تغيّرت واجهة برمجة تطبيقات تهيئة RPC CAN — راجع التغييرات الكاسرة.

ميزات جديدة

  • صيغة صور PNG — طريقة Image.to_png() جديدة، وثابت image.PNG / PIXFORMAT_PNG، وتحميل/حفظ ملفات PNG (قراءة/كتابة .png)، وإخراج PNG في تحويلات image.to()، عبر مرمّز lodepng المتكامل.

  • tf.load_builtin_model(path) — يحمّل نموذجًا مدمجًا في البرنامج الثابت ويُعيد صفًّا (labels, net)؛ أصبحت النماذج المدمجة الآن قائمة على جداول بحيث يمكن استبدالها أو إضافتها في وقت البناء.

تغييرات وتحسينات أخرى

  • TensorFlow / Edge Impulse — تم تحديث مكتبة الاستدلال المُرفقة إلى Edge Impulse ei-V2.5.0، وانتقل نموذج person_detection إلى جدول النماذج المدمجة، وأُضيفت مُعامِلات TensorFlow المفقودة عبر جميع إصدارات Cortex-M0+/M4/M7/M55 بحيث تعمل المزيد من نماذج Edge Impulse.

  • تم تحديث ulab إلى 4.0.0.

  • أصبح فتح منفذ USB التسلسلي الافتراضي بسرعة 1200 bps يُطلق الآن إعادة تعيين باللمس على غرار Arduino للدخول إلى محمّل الإقلاع.

  • تم تحديث البرنامج الثابت لوحدة WiFi WINC1500 إلى 19.7.6 (مع برنامج التحديث النصي)، وأصبح الآن يُبلّغ عن إصدار برنامج التشغيل المضيف الفعلي.

  • يطبع منفذ RP2 الآن "MPY: soft reboot" وحصل على تهيئة/إلغاء تهيئة UART.

إصلاحات الأخطاء

  • تم إصلاح حجم مخزن الإطارات الخام للوحة Arduino Nano RP2040 Connect ومعرّف منتج USB للوحة Arduino Nicla Vision (تعداد USB صحيح).

دعم العتاد واللوحات

  • Arduino Portenta H7 — دعم كاميرا OV5640 (مع التركيز التلقائي)؛ تم تعطيل GC2145 على Portenta.

  • Arduino Nano RP2040 Connect — تهيئة الذاكرة وقوالب نظام ملفات جديد.

  • WiFi Shield (WINC1500) — تم تحديث البرنامج الثابت إلى 19.7.6.

تغييرات واجهة البرمجة الكاسرة

تغييرات واجهة البرمجة المرئية للمستخدم بين v4.2.1 و v4.2.2. النطاق: وحدات Python C في modules/ ومكتبات Python في scripts/libraries/.

كل تغيير موسوم بتأثيره:

  • طفيف — واجهة برمجة ضيقة؛ تؤثر فقط على البرامج النصية التي استخدمتها.

  • سلوكي — نفس الواجهة، نتائج مختلفة؛ أعد فحص البرامج النصية المضبوطة.

تُجمَّع التغييرات حسب التأثير بهذا الترتيب. يرتبط كل تجزئة لإيداع (commit) بفرقه (diff) على GitHub.

واجهة برمجة تطبيقات تهيئة RPC CAN (طفيف)

في مكتبة rpc، أُعيدت تسمية وسيطة CAN المفتاحية sampling_point في rpc_can_master / rpc_can_slave إلى sample_point (لمطابقة MicroPython الأصلي)، وأُزيلت دالة ضبط توقيت بتات CAN اليدوية — يُهيّأ ناقل CAN الآن عبر CAN(..., baudrate=, sample_point=). يجب تحديث البرامج النصية التي مرّرت sampling_point أو اعتمدت على حساب توقيت البتات القديم.

الإيداعات: b565eca58، 06d716986

image.format() والصور المضغوطة (سلوكي)

مع مسار الصور المضغوطة الموحّد المُضاف لـ PNG، يُعيد image.format() الآن PIXFORMAT_INVALID لصيغة غير معروفة، وأصبحت فهرسة/تكرار/طباعة الصور المضغوطة تشمل الآن PNG إضافة إلى JPEG. ينبغي إعادة فحص الشيفرة التي فحصت قيمة الإرجاع السابقة للصيغ غير المعروفة.

الإيداع: f12a4659c

قائمة مراجعة الترحيل

للانتقال نظيف إلى v4.2.2: أعد تسمية sampling_point في RPC CAN ← sample_point وأسقط أي ضبط يدوي لتوقيت بتات CAN (تغيير RPC CAN)، وأعد فحص أي شيفرة فحصت image.format() للصيغ غير المعروفة (تغيير format()).