v3.4.2¶
إصدار v3.4.2 إصدار كبير. فهو يقدّم OpenMV Cam H7 Plus (ذاكرة SDRAM، ومخزن إطارات ضخم للالتقاط بدقة عالية)، والكاميرا OV5640 بدقة 5 ميغابكسل، ودعم FDCAN، وبرنامج تشغيل OV2640 مُعاد كتابته، و Image.jpeg_encode_for_ide()، ومكتبتي pid / modbus جديدتين. تغيّرت واجهة ifconfig() لـ WINC1500 والقيم الافتراضية لـ find_apriltags() — اقرأ التغييرات الجذرية أدناه.
أبرز النقاط¶
OpenMV Cam H7 Plus — لوحة جديدة مع برنامج تشغيل SDRAM ومخزن إطارات بحجم ~31 ميغابايت للالتقاط بدقة عالية.
برنامج تشغيل الكاميرا OV5640 بدقة 5 ميغابكسل مع كشف عبر I2C.
دعم الطرفية FDCAN، مع مثال CAN.
إعادة كتابة OV2640 — صور قائمة بشكل صحيح، ودوال تلقائية تعمل، ولقطة JPEG، وحجم إطار
sensor.XGAجديد.JPEG لـ IDE —
Image.jpeg_encode_for_ide()والإرسال التلقائي لصور JPEG الكبيرة إلى IDE.تغيير جذري: تغيّرت دلالات
WLAN.ifconfig()لـ WINC1500، ولم تعدMQTTClient.wait_msg()تطلق استثناءً عند الاستقبال الفارغ، وأصبحتfind_apriltags()تستخدم التوصيل رباعي الاتجاهات افتراضيًا — انظر التغييرات الجذرية.
ميزات جديدة¶
WiFi — أُضيفت
WLAN.netinfo()(تُرجع(rssi, security, ssid, mac, ip)) وإعداد عنوان IP ثابت لـ WINC1500 عبرWLAN.ifconfig()، مع مثال لعنوان IP ثابت.FDCAN — أُضيف دعم طرفية FDCAN ومثال
can.py.JPEG لـ IDE — أُضيفت
Image.jpeg_encode_for_ide()/Image.jpeg_encoded_for_ide()؛ تُرسَل صور JPEG الكبيرة تلقائيًا إلى IDE عندما يكون المخزن صغيرًا جدًا.المكتبات — أُضيفت مكتبة متحكم PID
pid، ومكتبة RTU التابعةmodbus(مع مثال 32-modbus)، وصنفSSD1306_I2Cلشاشات OLED عبر I2C.أمثلة — أُضيف اشتراك MQTT (
mqtt_sub.py، مع إعادة تسميةmqtt.pyإلىmqtt_pub.py).المستشعر — أُضيف حجم الإطار
sensor.XGA(1024x768)؛ وأصبحتprint()/repr()على صورة Bayer تُخرج بيانات وصفية بصيغة JSON.
تغييرات وتحسينات أخرى¶
أُعيدت كتابة برنامج تشغيل OV2640 (صور قائمة بشكل صحيح، دوال تلقائية تعمل، قبول لقطة JPEG)؛ وتم تفعيل apriltags بدقة عالية (يرفع حد منطقة الاهتمام <64K بكسل على اللوحات القادرة على ذلك)؛ وخُفّض PCLK لـ OV2640 من 72 MHz إلى 36 MHz.
إصلاحات الأخطاء¶
التصوير:
أُصلح تجاوز سعة عمليات ثنائية بعد نهاية الصورة، ودقة printf/float في مخرجات
find_apriltags()/find_datamatrices()/find_lines()، وتنسيق JSON المشوّه فيprint()للكتل، وfind_apriltags()على الصور المقلوبة عموديًا / أفقيًا، وخطأ منطقة الاهتمام فيfind_lbp()، ومهلة ضغط JPEG للدقات الكبيرة، وإحصاءات ذاكرةfb_alloc.
الكاميرا والمستشعرات:
أُصلحت صيانة ذاكرة التخزين المؤقت في وضع JPEG ومحاذاة المخزن، وأقصى حجم نقل DCMI، وإعداد سجلات OV2640 ودقاتها، واستعادة حالة إيقاف تشغيل المستشعر عند إعادة التعيين، وجودة صورة OV7725 (أُضيف مرشح تشويش لكل كاميرا).
الشبكات والنظام:
أُصلح خطأ/تعطّل صعب في
socket.accept()، ومعالجة مهلة المقبس في WINC1500 (أصبحت المهلة 0 حاجبة الآن؛ ولا تُغلَق المقابس عند مهلة الاستقبال)، والنوم العميق في H7، و RTC (تحديث المصدر الأعلى ومشكلات EXTI / مؤقت الاستيقاظ / إعادة التعيين البرمجية في H7)، ومقاطعة مؤقتpyb.Servo(كان Servo غير وظيفي).
العتاد ودعم اللوحات¶
OpenMV Cam H7 Plus (OPENMV4R) — لوحة جديدة مع برنامج تشغيل SDRAM يتيح مخزن إطارات كبيرًا (~31 ميغابايت).
OV5640 — برنامج تشغيل كاميرا جديد بدقة 5 ميغابكسل مع كشف عبر I2C.
FDCAN — دعم الطرفية.
تغييرات API الجذرية¶
تغييرات API المرئية للمستخدم بين v3.4.1 و v3.4.2. النطاق: وحدات Python بلغة C في modules/ ومكتبات Python في scripts/libraries/.
يُوسم كل تغيير بمدى تأثيره:
رئيسي — يؤثر على معظم البرامج النصية التي استخدمت الميزة؛ ستحتاج إلى نقل الكود.
ثانوي — واجهة API ضيقة؛ يؤثر فقط على البرامج النصية التي استخدمتها.
سلوك — نفس الواجهة، نتائج مختلفة؛ أعد فحص البرامج النصية المضبوطة.
تُجمَّع التغييرات حسب التأثير بهذا الترتيب. إذا كنت تريد فقط نقل الكود، انتقل إلى قائمة التحقق للترحيل في النهاية. يربط كل تجزئة commit إلى الفرق الخاص به على GitHub.
تغيّرت دلالات WLAN.ifconfig() لـ WINC1500 (رئيسي)¶
على درع WiFi WINC1500، لم تعد WLAN.ifconfig() تُرجع القائمة القديمة المكونة من 5 عناصر [rssi, security, ssid, mac, ip]. فهي الآن تجلب/تعيّن صفًا (ip, subnet, gateway, dns) (وتدعم إعداد عنوان IP ثابت)، بما يطابق واجهة network القياسية. يجب على الكود الذي قرأ معلومات الاتصال من ifconfig() التحول إلى طريقة WLAN.netinfo() الجديدة ((rssi, security, ssid, mac, ip)).
Commits: e685b484a
تُرجع MQTTClient.wait_msg() القيمة None عند الاستقبال الفارغ (ثانوي)¶
أصبحت MQTTClient.wait_msg() في مكتبة mqtt تُرجع الآن None عند الاستقبال الفارغ بدلًا من إطلاق OSError(-1). يجب على الكود الذي التقط OSError(-1) لاكتشاف مقبس مغلق/فارغ الفحص عن قيمة الإرجاع None بدلًا من ذلك.
Commits: 76239ea89
قائمة التحقق للترحيل¶
للنقل النظيف إلى v3.4.2 يكون العمل المعتاد:
استبدل قراءات معلومات الاتصال من
WLAN.ifconfig()لـ WINC1500 بـWLAN.netinfo()(تغيير ifconfig).افحص
MQTTClient.wait_msg()بحثًا عن إرجاعNoneبدلًا من التقاطOSError(-1)(تغيير wait_msg).أعد ضبط كشف AprilTag أو اِبنِ مع
IMLIB_ENABLE_FINE_APRILTAGSإذا كنت بحاجة إلى التوصيل ثماني الاتجاهات (تغيير find_apriltags).
تعمل جميع البرامج النصية الأخرى دون تغيير.