pyb --- دوال متعلقة باللوحة¶
تحذير
وحدة pyb مهملة. استخدم وحدة machine المتعددة المنافذ في الشيفرات الجديدة -- فهي توفر الوظائف نفسها على كل OpenMV Cam بغض النظر عن عائلة المتحكم الدقيق، بينما لا توجد pyb إلا على اللوحات المبنية على STM32. تُبقى pyb للحفاظ على التوافق مع البرامج النصية القديمة، ولن تُضاف إليها ميزات جديدة، وقد تُزال في إصدار مستقبلي.
تحتوي وحدة pyb على دوال خاصة بـ STM32 ومتعلقة باللوحة.
دوال متنوعة¶
- pyb.have_cdc() bool¶
تُرجع True إذا كان USB متصلًا كجهاز تسلسلي، وإلا False.
ملاحظة
هذه الدالة مهملة. استخدم pyb.USB_VCP().isconnected() بدلًا منها.
- pyb.hid(data: Tuple[int, int, int, int]) None¶
تأخذ صفًا رباعيًا (أو قائمة) وترسله إلى مضيف USB (الحاسوب) للإشارة إلى حدث حركة ماوس HID.
ملاحظة
هذه الدالة مهملة. استخدم
pyb.USB_HID.send()بدلًا منها.
- pyb.main(filename: str) None¶
تضبط اسم ملف البرنامج النصي الرئيسي الذي سيُشغّل بعد انتهاء boot.py. إذا لم تُستدعَ هذه الدالة فسيُنفَّذ الملف الافتراضي main.py.
لا معنى لاستدعاء هذه الدالة إلا من داخل boot.py.
- pyb.mount(device: Any, mountpoint: str, *, readonly: bool = False, mkfs: bool = False) None¶
ملاحظة
هذه الدالة مهملة. استخدم
vfs.mount()/vfs.umount()وجهاز كتل مشتقًا منvfs.AbstractBlockDevبدلًا منها.تركّب جهاز كتل تحت
mountpoint. يجب أن يطبّقdeviceبروتوكول جهاز الكتل القديم الخاص بـ pyb (وهو مهمل أيضًا -- راجعvfs.AbstractBlockDevللواجهة الحديثة):الدالة
الغرض
readblocks(self, blocknum, buf)تنسخ ما يعادل
bufمن البايتات من الجهاز بدءًا من الكتلةblocknum. طولbufمضاعف للعدد 512.writeblocks(self, blocknum, buf)(اختياري)تكتب
bufإلى الجهاز بدءًا من الكتلةblocknum. إذا حُذفت، يُركّب الجهاز للقراءة فقط.count(self)تُرجع عدد الكتل ذات الحجم 512 بايت على الجهاز.
sync(self)(اختياري)تُفرّغ أي عمليات كتابة مخزّنة مؤقتًا.
mountpointهو المسار في جذر نظام الملفات الذي يُركّب عنده الجهاز؛ ويجب أن يبدأ بشرطة مائلة أمامية. تفرضreadonlyتركيبًا للقراءة فقط. تنشئmkfsنظام ملفات جديدًا إذا لم يكن هناك أي نظام موجود.
- pyb.repl_uart(uart: UART | None = None) UART | None¶
تحصل على كائن UART الذي يتكرر عليه REPL أو تضبطه.
- pyb.usb_mode(modestr: str | None = None, port: int = -1, vid: int = 0xf055, pid: int = -1, msc: Tuple = (), hid: Tuple = pyb.hid_mouse, high_speed: bool = False) str | None¶
إذا استُدعيت دون وسائط، تُرجع وضع USB الحالي كسلسلة نصية.
إذا استُدعيت مع توفير modestr، فإنها تحاول ضبط وضع USB. القيم التالية لـ modestr مفهومة:
modestr
يضبط
Noneيعطّل USB.
'VCP'VCP (منفذ COM افتراضي) فقط.
'MSC'MSC (فئة التخزين الكتلي لـ USB) فقط.
'VCP+MSC'VCP وMSC.
'VCP+HID'VCP وHID (جهاز واجهة بشرية).
'VCP+MSC+HID'VCP وMSC وHID معًا. غير مدعوم على كل OpenMV Cam.
للحفاظ على التوافق مع الإصدارات السابقة، تُفهم
'CDC'بمعنى'VCP'(وكذلك'CDC+MSC'و'CDC+HID').ينبغي أن يكون المعامل port عددًا صحيحًا (0، 1، ...) ويحدد منفذ USB المراد استخدامه إذا كانت اللوحة تدعم منافذ متعددة. القيمة -1 تستخدم المنفذ الافتراضي أو المُختار تلقائيًا.
يتيح لك المعاملان vid وpid تحديد VID (معرّف المورّد) وPID (معرّف المنتج). قيمة pid تساوي -1 ستختار PID بناءً على قيمة modestr.
عند تفعيل وضع MSC، يمكن استخدام المعامل msc لتحديد قائمة بوحدات SCSI LUN المراد عرضها على واجهة التخزين الكتلي. على سبيل المثال
msc=(pyb.Flash(), pyb.SDCard()).عند تفعيل وضع HID، يمكنك أيضًا تحديد تفاصيل HID بتمرير المعامل المفتاحي hid. وهو يأخذ صفًا من (الفئة الفرعية، البروتوكول، أقصى طول حزمة، فترة الاستقصاء، واصف التقرير). افتراضيًا سيضبط قيمًا مناسبة لماوس USB. كما توجد ثابتة
pyb.hid_keyboardوهي صف مناسب للوحة مفاتيح USB.المعامل high_speed، عند ضبطه على
True، يفعّل وضع USB HS إذا كان العتاد يدعمه.
الثوابت¶
كلا الثابتين أدناه عبارة عن صفوف خماسية جاهزة بالشكل
(subclass, protocol, max_packet_size, polling_interval_ms, report_descriptor)
صالحة للتمرير كوسيط hid لـ usb_mode() لجعل OpenMV Cam تظهر للمضيف كجهاز USB HID. subclass = 1 يعني "واجهة الإقلاع" ويختار protocol فئة جهاز الإقلاع (1 = لوحة مفاتيح، 2 = ماوس). العنصر الخامس هو كائن bytes يحمل واصف تقرير HID المستخدم عند تعداد المضيف للجهاز.
- pyb.hid_mouse: tuple¶
واصف HID جاهز لماوس إقلاع بثلاثة أزرار مع حركة X/Y نسبية. الصف هو
(1, 2, 4, 8, <mouse report descriptor>): فئة فرعية للإقلاع، بروتوكول ماوس، تقارير إدخال بطول 4 بايت (قناع الأزرار + X + Y + العجلة)، يُستقصى كل 8 مللي ثانية. واصف التقرير المدمج هو الذي يستخدمهpyb.USB_HID().send((buttons, dx, dy, wheel)).
- pyb.hid_keyboard: tuple¶
واصف HID جاهز للوحة مفاتيح إقلاع USB. الصف هو
(1, 1, 8, 8, <keyboard report descriptor>): فئة فرعية للإقلاع، بروتوكول لوحة مفاتيح، تقارير إدخال بطول 8 بايت (بايت المُعدِّل، بايت محجوز واحد، ستة رموز مفاتيح متزامنة)، يُستقصى كل 8 مللي ثانية. واصف التقرير المدمج يطابق التخطيط القياسي بطول 8 بايت للوحة مفاتيح إقلاع HID، لذا ينبغي أن يكون التقرير المرسل عبرUSB_HID.send()من نوعbytesبالشكل(modifiers, 0, key1, key2, key3, key4, key5, key6).
الأصناف¶
- class ADC -- التحويل من التناظري إلى الرقمي
- class ADCAll -- الوصول إلى جميع قنوات ADC
- الفئة CAN -- ناقل اتصالات شبكة منطقة التحكم (controller area network)
- الفئة DAC -- التحويل من الرقمي إلى التناظري
- الفئة ExtInt -- تهيئة دبابيس الدخل/الخرج لتوليد مقاطعة عند الأحداث الخارجية
- الفئة Flash -- الوصول إلى تخزين الفلاش المدمج
- الفئة I2C -- بروتوكول تسلسلي ثنائي الأسلاك
- الفئة LED -- مؤشر LED على اللوحة
- الصنف Pin -- التحكم في دبابيس الإدخال/الإخراج
- الصنف PinAF -- الوظائف البديلة للدبوس
- الصنف RTC -- ساعة الوقت الحقيقي
- الصنف Servo -- مشغّل سيرفو هواية ثلاثي الأسلاك
- الصنف SPI -- بروتوكول تسلسلي تقوده وحدة تحكم
- class Timer -- التحكم في المؤقتات الداخلية
- class TimerChannel -- إعداد قناة لمؤقت
- class UART -- ناقل اتصال تسلسلي مزدوج الاتجاه
- class USB_HID -- جهاز واجهة بشرية عبر USB (HID)
- class USB_VCP -- منفذ اتصال افتراضي عبر USB