v1.0.0-beta

الإصدار v1.0.0-beta هو الإصدار الأول (التجريبي) من البرنامج الثابت لـ OpenMV — أول بنية عامة لـ OpenMV Cam. وهو يرسي الأساس الذي بُني عليه كل ما تلاه: بيئة تشغيل برمجة نصية MicroPython على OpenMV Cam بمعالج STM32F4، وواجهة برمجة تطبيقات كاميرا sensor، ومكتبة رؤية آلية image، وOpenMV IDE للتطوير المباشر. وبما أنه الإصدار الأول فلا يوجد ما يُنقل منه — يلخص هذا المدخل ما جاء به البرنامج الثابت الأول.

أبرز الميزات

  • MicroPython على OpenMV Cam — شغّل برامج Python النصية على الكاميرا عبر USB مع REPL تفاعلي وواجهة تصحيح أخطاء في IDE.

  • التقاط الكاميرا — وحدة sensor: اضبط تنسيق البكسل / الدقة / معدل الإطارات والتقط الإطارات باستخدام snapshot().

  • الرؤية الآلية — مكتبة image: كشف الكتل الملونة، والرسم، والمرشحات، ومطابقة القوالب، وكشف الوجوه بسلاسل Haar، والنقاط المفتاحية.

  • OpenMV IDE — بيئة تطوير متكاملة لسطح المكتب مع عارض مباشر لمخزن الإطارات، ومحرر شيفرة، وتحديث للبرنامج الثابت داخل IDE.

  • العتاد — OpenMV Cam الأصلي (STM32F4) مع كاميرات OmniVision OV9650 / OV2640، ودعم بطاقة SD ودرع WiFi.

ميزات جديدة

البرمجة النصية والوحدات:

  • بيئة تشغيل MicroPython كأساس للبرنامج الثابت، مع تنفيذ البرامج النصية على الكاميرا عبر واجهة تصحيح أخطاء USB وREPL تفاعلي.

  • وحدة sensorset_pixformat() / set_framesize() / set_framerate()، وضوابط حد الكسب الأقصى / السطوع / التباين / الكسب، وreset()، وsnapshot()، والانعكاس الأفقي / القلب العمودي — إضافةً إلى ثوابت المستشعر والدقة.

  • وحدة رؤية آلية image (imlib) تكشف عن كائنات الصورة (مع بروتوكول مخزن Python المؤقت) وسطح معالجة الصور أدناه.

  • وحدة time / clock لقياس التوقيت ومعدل الإطارات بالثانية.

  • وحدات طرفية مبكرة — led (LED بالألوان RGB)، وspi، وgpio (دخل/خرج الدبابيس مع تسجيل المقاطعات الخارجية)، وuart، وrng العتادي، ومؤقت systick، وfile / select لنظام الملفات.

  • الاتصال الشبكي عبر socket / wlan (CC3000 WiFi)، ومشغّل عرض lcd، ووحدة مستشعر حراري mlx90620، وتسجيل فيديو AVI/MJPEG.

معالجة الصور:

  • التقاط إطارات الكاميرا في مخزن إطارات مخصص ديناميكيًا.

  • كشف الكتل الملونة (التعبئة بالفيضان) وتعتيب فضاء الألوان LAB/XYZ (مع جداول تحويل RGB↔LAB).

  • بدائيات الرسم (خط، سلسلة نصية/خط طباعة، دائرة)، والمرشحات (تآكل / تمدد / وسيط / عكس / ثنائي / عتبة)، وتحجيم الصور (ثنائي خطي)، واستخراج الصور الفرعية، وblit، ومزج ألفا.

  • مطابقة القوالب (مع حفظ/تحميل القالب)، وكشف الوجوه/الكائنات بسلاسل Haar وفق Viola-Jones (سلاسل قابلة للتحميل + محوّل سلاسل OpenCV)، وسلسلة LBP وكاشف العيون، وكشف النقاط المفتاحية FAST / SURF / FREAK ومطابقة الواصفات، والصور التكاملية، وكشف الحركة.

  • ترميز JPEG (مع التحكم في الجودة)، وحفظ الصور بصيغ PPM / PGM / PNG / الخام، وترميز فيديو AVI/MJPEG.

بيئة التطوير المتكاملة والأدوات:

  • تطبيق سطح المكتب OpenMV IDE — عارض مباشر لمخزن الإطارات مع معدل الإطارات بالثانية، ومحرر شيفرة (فتح / جديد / حفظ / حفظ باسم، الملفات الأخيرة، قائمة أمثلة مرفقة)، واتصال / إعادة ضبط / اتصال تلقائي، وتحميل/حفظ الإعدادات.

  • تحديث البرنامج الثابت داخل IDE عبر DFU، وأداة pydfu المكتوبة بلغة Python خالصة، وأمر USB للإجبار على الدخول في وضع محمّل الإقلاع؛ ومكتبة/بروتوكول المضيف openmv.py؛ وعارض مستقل لمخزن الإطارات وأداة للسلاسل؛ وقواعد udev لنظام Linux.

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

  • برامج نصية أمثلة مرفقة: كشف الكتل، وكشف/تتبع الوجوه، وSURF / النقاط المفتاحية، ومطابقة القوالب، وLCD، وعارض مخزن الإطارات، وblit، وباث MJPEG، وتسجيل AVI، وخادم صدى، ومعدل الإطارات بالثانية، وعروض كتابة JPEG / الصور التوضيحية.

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

  • OpenMV Cam — STM32F4xx (STM32F407 / F429) عبر مراجعات العتاد المبكرة، مع CMSIS + الطرفيات/Cube HAL من STM32 وCMSIS-DSP.

  • الكاميرات — OmniVision OV9650 وOV2640 (SCCB/I2C، التحكم في المنظم) عبر طبقة تجريد عتاد المستشعر، إضافةً إلى مستشعر MLX90620 الحراري بالأشعة تحت الحمراء؛ بدقات من QQCIF/QCIF حتى SVGA/UXGA بمعدل يصل إلى 30 إطارًا في الثانية.

  • التخزين / الاتصال — بطاقة SD (SPI وSDIO) مع FatFS، ونظام ملفات ذاكرة فلاش داخلية، وSDRAM (مخزن الإطارات في SDRAM)، وUSB OTG FS (تصحيح الأخطاء + DFU)، وCC3000 WiFi (دروع WiFi / BLE)، وLED بالأشعة تحت الحمراء، وI2C برمجي/عتادي وSPI مدفوع بـ DMA.

تغييرات جذرية في واجهة برمجة التطبيقات

لا شيء. الإصدار v1.0.0-beta هو الإصدار الأول (التجريبي) من البرنامج الثابت لـ OpenMV — لا يوجد إصدار سابق لكسر التوافق معه. توثّق الإصدارات اللاحقة تغييراتها الجذرية مقارنةً بسابقتها؛ راجع بقية سجل التغييرات.