مكتبات OpenMV MicroPython

تحذير

ملخص مهم لهذا القسم

يصف هذا الفصل الوحدات (مكتبات الدوال والأصناف) المدمجة في MicroPython. يطمح هذا التوثيق بشكل عام إلى وصف جميع الوحدات والدوال/الأصناف المنفّذة في مشروع MicroPython. غير أن MicroPython قابلة للتهيئة بدرجة عالية، وقد يتضمن كل منفذ إلى لوحة/نظام مضمّن معين مجموعة فرعية فقط من مكتبات MicroPython المتاحة.

ومع وضع ذلك في الاعتبار، يُرجى الانتباه إلى أن بعض الدوال/الأصناف في وحدة ما (أو حتى الوحدة بأكملها) الموصوفة في هذا التوثيق قد لا تكون متاحة في بناء معين لـ MicroPython على نظام معين. أفضل مكان للعثور على معلومات عامة حول توفر/عدم توفر ميزة معينة هو قسم "General Information" الذي يحتوي على معلومات تخص MicroPython port معيناً.

في بعض المنافذ يمكنك اكتشاف المكتبات المدمجة المتاحة التي يمكن استيرادها بإدخال ما يلي في REPL

help('modules')

إلى جانب المكتبات المدمجة الموصوفة في هذا التوثيق، يمكن العثور على المزيد من الوحدات من مكتبة Python القياسية، إضافة إلى امتدادات MicroPython الأخرى لها، في micropython-lib.

مكتبات Python القياسية والمكتبات المصغّرة

جرى "تصغير" مكتبات Python القياسية التالية لتتلاءم مع فلسفة MicroPython. وهي توفّر الوظيفة الأساسية لتلك الوحدة وتهدف إلى أن تكون بديلاً جاهزاً لمكتبة Python القياسية.

مكتبات OpenMV Cam

تصف الأقسام التالية المكتبات المتاحة على كل لوحة مدعومة من OpenMV، بما في ذلك الوحدات المدمجة الخاصة بـ MicroPython وامتدادات OpenMV الخاصة.

الوحدات المشتركة

مدمجة في البرنامج الثابت على كل لوحة كاميرا OpenMV.

مساعدات Python المجمّدة المشحونة على معظم لوحات كاميرا OpenMV (المشغّلات والشبكات والأدوات المساعدة):

مساعدات الشبكات (تتطلب واجهة شبكة عاملة):

إطار عمل الويب

وحدات إطار عمل خادم الويب. راجع أقسام كل لوحة أدناه لمعرفة اللوحات التي تتضمن كلاً منها.

الوحدات الخاصة بالمنفذ

وحدات مرتبطة بعائلة MCU معينة. راجع أقسام كل لوحة أدناه لمعرفة اللوحات التي تتضمن كلاً منها.

مشغّلات العتاد

مشغّلات للمستشعرات والشاشات والطرفيات الأخرى المشحونة على لوحة واحدة أو أكثر من اللوحات المدعومة من OpenMV. راجع أقسام كل لوحة أدناه لمعرفة اللوحات التي تتضمن كلاً منها.

التوفر لكل لوحة

تُظهر القوائم أدناه الوحدات الخاصة بالمنفذ ووحدات المشغّلات المشحونة على كل لوحة. جميع الوحدات في Common وFrozen Python helpers وNetworking helpers (أعلاه) متاحة على كل لوحة كاميرا ما لم يُذكر خلاف ذلك.

OpenMV N6

STM32N657 (Cortex-M55 بتردد 800 MHz) مع وحدة NPU مدمجة بتردد 1 GHz مصنّفة عند 600 GOPS INT8. يقترن وحدة NPU بمستشعر PAG7936 ذي المصراع العام بدقة 1 ميغابكسل.

  • pyb --- دوال متعلقة باللوحة

  • stm --- وظائف خاصة بمتحكمات STM32 الدقيقة

  • ssd1306 --- مشغّل OLED

  • tb6612 --- مشغّل المحركات TB6612

  • jwt --- رموز JSON Web Tokens

  • microdot --- إطار عمل HTTP مبسّط

OpenMV AE3

نظام على شريحة ثنائي النواة Alif Ensemble E3: Cortex-M55 بتردد 400 MHz (HP) إضافة إلى Cortex-M55 بتردد 160 MHz (HE)، مع وحدتي NPU مدمجتين (NPU من نوع HP بتردد 400 MHz / 204 GOPS + NPU من نوع HE بتردد 160 MHz / 46 GOPS).

  • alif --- دوال نظام Alif Ensemble على شريحة

  • romfs --- أدوات ROMFS المساعدة

  • pca9674a --- مشغّل موسِّع I2C من نوع PCA9674A

  • jwt --- رموز JSON Web Tokens

  • microdot --- إطار عمل HTTP مبسّط

OpenMV Cam RT1062

لوحة رؤية آلية منخفضة الطاقة مبنية حول NXP i.MX RT1062 (Cortex-M7 بتردد 600 MHz). تجمع بين شبكات USB-C عالية السرعة وWi-Fi / Bluetooth وEthernet بسرعة 10/100.

  • mimxrt --- وظائف خاصة بـ NXP i.MX RT

  • dht --- مستشعرات الحرارة/الرطوبة DHT11 وDHT22

  • onewire --- بروتوكول الناقل 1-Wire

  • ds18x20 --- مشغّل مستشعر الحرارة DS18x20

  • neopixel --- التحكم في مصابيح WS2812 / NeoPixel LED

  • ssd1306 --- مشغّل OLED

  • tb6612 --- مشغّل المحركات TB6612

  • pca9674a --- مشغّل موسِّع I2C من نوع PCA9674A

  • jwt --- رموز JSON Web Tokens

  • microdot --- إطار عمل HTTP مبسّط

OpenMV Pure Thermal

لوحة تصوير حراري كاملة النظام مبنية حول STM32H743 (Cortex-M7 بتردد 480 MHz) مع ذاكرة SDRAM خارجية بسعة 64 ميغابايت، وذاكرة فلاش QSPI بسعة 32 ميغابايت، ومُرمِّز JPEG عتادي، وخرج DVI/HDMI.

  • pyb --- دوال متعلقة باللوحة

  • stm --- وظائف خاصة بمتحكمات STM32 الدقيقة

  • tfp410 --- مُسلسِل DVI/HDMI

  • ft5x06 --- مشغّل شاشة لمس سعوية

  • dht --- مستشعرات الحرارة/الرطوبة DHT11 وDHT22

  • onewire --- بروتوكول الناقل 1-Wire

  • ds18x20 --- مشغّل مستشعر الحرارة DS18x20

  • neopixel --- التحكم في مصابيح WS2812 / NeoPixel LED

  • ssd1306 --- مشغّل OLED

  • tb6612 --- مشغّل المحركات TB6612

OpenMV Cam H7 Plus

STM32H743 (Cortex-M7 بتردد 480 MHz) مع ذاكرة SDRAM خارجية بسعة 32 ميغابايت، وذاكرة فلاش QSPI بسعة 32 ميغابايت، ومُرمِّز JPEG عتادي، ووحدة الكاميرا OV5640 بدقة 5 ميغابكسل.

  • pyb --- دوال متعلقة باللوحة

  • stm --- وظائف خاصة بمتحكمات STM32 الدقيقة

  • dht --- مستشعرات الحرارة/الرطوبة DHT11 وDHT22

  • onewire --- بروتوكول الناقل 1-Wire

  • ds18x20 --- مشغّل مستشعر الحرارة DS18x20

  • neopixel --- التحكم في مصابيح WS2812 / NeoPixel LED

  • ssd1306 --- مشغّل OLED

  • tb6612 --- مشغّل المحركات TB6612

OpenMV Cam H7

STM32H743 (Cortex-M7 بتردد 480 MHz) مع ذاكرة SRAM داخلية بسعة 1 ميغابايت، وذاكرة فلاش داخلية بسعة 2 ميغابايت، ومُرمِّز JPEG عتادي.

  • pyb --- دوال متعلقة باللوحة

  • stm --- وظائف خاصة بمتحكمات STM32 الدقيقة

  • dht --- مستشعرات الحرارة/الرطوبة DHT11 وDHT22

  • onewire --- بروتوكول الناقل 1-Wire

  • ds18x20 --- مشغّل مستشعر الحرارة DS18x20

  • neopixel --- التحكم في مصابيح WS2812 / NeoPixel LED

  • ssd1306 --- مشغّل OLED

  • tb6612 --- مشغّل المحركات TB6612

OpenMV Cam M7

STM32F765 (Cortex-M7 بتردد 216 MHz) مع ذاكرة SRAM داخلية بسعة 512 كيلوبايت، وذاكرة فلاش داخلية بسعة 2 ميغابايت. تأتي مع المستشعر OV7725.

  • pyb --- دوال متعلقة باللوحة

  • stm --- وظائف خاصة بمتحكمات STM32 الدقيقة

  • dht --- مستشعرات الحرارة/الرطوبة DHT11 وDHT22

  • onewire --- بروتوكول الناقل 1-Wire

  • ds18x20 --- مشغّل مستشعر الحرارة DS18x20

  • neopixel --- التحكم في مصابيح WS2812 / NeoPixel LED

  • ssd1306 --- مشغّل OLED

  • tb6612 --- مشغّل المحركات TB6612

OpenMV Cam M4

STM32F427 (Cortex-M4 بتردد 180 MHz) مع ذاكرة SRAM داخلية بسعة 256 كيلوبايت، وذاكرة فلاش داخلية بسعة 1 ميغابايت. تأتي مع المستشعر OV7725.

  • pyb --- دوال متعلقة باللوحة

  • stm --- وظائف خاصة بمتحكمات STM32 الدقيقة

  • dht --- مستشعرات الحرارة/الرطوبة DHT11 وDHT22

  • onewire --- بروتوكول الناقل 1-Wire

  • ds18x20 --- مشغّل مستشعر الحرارة DS18x20

  • neopixel --- التحكم في مصابيح WS2812 / NeoPixel LED

  • ssd1306 --- مشغّل OLED

  • tb6612 --- مشغّل المحركات TB6612

Arduino Nicla Vision

لوحة رؤية آلية بأبعاد 22.86 × 22.86 مم مبنية حول النظام ثنائي النواة على شريحة STM32H747AII6: Cortex-M7 بتردد 400 MHz إضافة إلى Cortex-M4 بتردد 200 MHz.

  • pyb --- دوال متعلقة باللوحة

  • stm --- وظائف خاصة بمتحكمات STM32 الدقيقة

  • lsm6dsox --- IMU بستة محاور من نوع LSM6DSOX

  • dht --- مستشعرات الحرارة/الرطوبة DHT11 وDHT22

  • ds18x20 --- مشغّل مستشعر الحرارة DS18x20

  • onewire --- بروتوكول الناقل 1-Wire

  • neopixel --- التحكم في مصابيح WS2812 / NeoPixel LED

Arduino Portenta H7

لوحة تطوير صناعية بأبعاد 66 × 25 مم مبنية حول النظام ثنائي النواة على شريحة STM32H747XI: Cortex-M7 بتردد 400 MHz إضافة إلى Cortex-M4 بتردد 200 MHz.

  • pyb --- دوال متعلقة باللوحة

  • stm --- وظائف خاصة بمتحكمات STM32 الدقيقة

  • dht --- مستشعرات الحرارة/الرطوبة DHT11 وDHT22

  • ds18x20 --- مشغّل مستشعر الحرارة DS18x20

  • onewire --- بروتوكول الناقل 1-Wire

  • neopixel --- التحكم في مصابيح WS2812 / NeoPixel LED

  • lora --- مشغّل مودم LoRa

  • ssd1306 --- مشغّل OLED

  • tb6612 --- مشغّل المحركات TB6612

Arduino Giga R1 WiFi

لوحة بحجم Mega بأبعاد 101 × 53 مم مبنية حول النظام ثنائي النواة على شريحة STM32H747XI: Cortex-M7 بتردد 480 MHz إضافة إلى Cortex-M4 بتردد 240 MHz، مع شاشة لمس مدمجة بدقة 800x480.

  • pyb --- دوال متعلقة باللوحة

  • stm --- وظائف خاصة بمتحكمات STM32 الدقيقة

  • dht --- مستشعرات الحرارة/الرطوبة DHT11 وDHT22

  • onewire --- بروتوكول الناقل 1-Wire

  • neopixel --- التحكم في مصابيح WS2812 / NeoPixel LED

  • gt911 --- متحكم لمس سعوي بخمس نقاط من نوع GT911

  • ft5x06 --- مشغّل شاشة لمس سعوية

Arduino Nano RP2040 Connect

لوحة بحجم Nano مبنية على RP2040 مع وحدة Wi-Fi/Bluetooth من نوع U-blox NINA-W102. لم تعد مدعومة بنشاط؛ يُحتفظ بآخر إصدار برنامج ثابت من OpenMV لهذه اللوحة للأغراض الأرشيفية.

  • rp2 --- مساعدات PIO / DMA / الفلاش الخاصة بـ RP2040

  • espflash --- أداة كتابة البرنامج الثابت لمحمّل إقلاع ROM الخاص بـ ESP32

  • lsm6dsox --- IMU بستة محاور من نوع LSM6DSOX

  • dht --- مستشعرات الحرارة/الرطوبة DHT11 وDHT22

  • onewire --- بروتوكول الناقل 1-Wire

  • ds18x20 --- مشغّل مستشعر الحرارة DS18x20

  • neopixel --- التحكم في مصابيح WS2812 / NeoPixel LED

Arduino Nano 33 BLE Sense

لوحة بحجم Nano من نوع Nordic nRF52840 مع مجموعة مستشعرات Arduino المدمجة. لم تعد مدعومة بنشاط؛ يُحتفظ بآخر إصدار برنامج ثابت من OpenMV لهذه اللوحة للأغراض الأرشيفية.

  • ubluepy --- واجهة برمجة طرفية ومركزية لـ Bluetooth LE على Nordic SoftDevice

  • bmi270 --- IMU بستة محاور من نوع BMI270

  • bmm150 --- مقياس مغناطيسية ثلاثي المحاور من نوع BMM150

  • lsm9ds1 --- IMU بتسعة محاور من نوع LSM9DS1

  • hts221 --- مستشعر الرطوبة/الحرارة HTS221

  • lps22h --- مستشعر الضغط LPS22HB/HH

  • hs3003 --- مستشعر الرطوبة/الحرارة HS3003

  • apds9960 --- مشغّل مستشعر القرب والإيماءات واللون

  • dht --- مستشعرات الحرارة/الرطوبة DHT11 وDHT22

  • onewire --- بروتوكول الناقل 1-Wire

  • ds18x20 --- مشغّل مستشعر الحرارة DS18x20

  • neopixel --- التحكم في مصابيح WS2812 / NeoPixel LED

توسيع المكتبات المدمجة من Python

يمكن توسيع مجموعة فرعية من الوحدات المدمجة بشيفرة Python عبر توفير وحدة بالاسم نفسه في نظام الملفات. تنطبق قابلية التوسعة هذه على وحدات مكتبة Python القياسية التالية المدمجة في البرنامج الثابت: array وbinascii وcollections وerrno وgzip وhashlib وheapq وio وjson وos وplatform وrandom وre وselect وsocket وssl وstruct وtime وzlib، إضافة إلى وحدة machine الخاصة بـ MicroPython. أما جميع الوحدات المدمجة الأخرى فلا يمكن توسيعها من نظام الملفات.

يتيح هذا للمستخدم توفير تنفيذ موسَّع لمكتبة مدمجة (ربما لتوفير توافق إضافي مع CPython أو وظيفة مفقودة). يُستخدم هذا على نطاق واسع في micropython-lib، راجع إدارة الحزم لمزيد من المعلومات. عادةً ما تُجري وحدة نظام الملفات استيراداً بحرف بدل من الوحدة المدمجة لكي ترث جميع المتغيرات العامة (الأصناف والدوال والمتغيرات) من المدمجة.

في الإصدار v1.21.0 من MicroPython وما بعده، ولمنع وحدة نظام الملفات من استيراد نفسها، يمكنها فرض استيراد الوحدة المدمجة عبر إفراغ sys.path مؤقتاً أثناء الاستيراد. على سبيل المثال، لتوسيع وحدة time من Python، يقوم ملف باسم time.py على نظام الملفات بما يلي:

_path = sys.path
sys.path = ()
try:
  from time import *
finally:
  sys.path = _path
  del _path

def extra_method():
  pass

والنتيجة أن time.py يحتوي على جميع المتغيرات العامة لوحدة time المدمجة، لكنه يضيف extra_method.

في الإصدارات الأقدم من MicroPython، يمكنك فرض استيراد وحدة مدمجة بإضافة الحرف u إلى بداية اسمها. على سبيل المثال، import utime بدلاً من import time. فمثلاً، قد يبدو time.py على نظام الملفات كما يلي:

from utime import *

def extra_method():
  pass

لا تزال هذه الطريقة مدعومة، لكن طريقة sys.path الموصوفة أعلاه هي المفضّلة الآن لأن البادئة u ستُزال من أسماء الوحدات المدمجة في إصدار مستقبلي من MicroPython.

باستثناء الحالات التي تحتاج فيها تحديداً إلى فرض استخدام الوحدة المدمجة، ينبغي للشيفرة دائماً استخدام import module بدلاً من import umodule.