3.4. الدبابيس والطرفيات

الدبوس هو أبسط طرفية على وحدة MCU: سلك واحد يربط الشريحة بالعالم الخارجي. كل تفاعل مع أجهزة حقيقية -- تشغيل LED، أو قراءة مفتاح، أو قياس جهد، أو إرسال بايتات عبر خط تسلسلي -- يمر في النهاية عبر دبوس واحد أو أكثر.

3.4.1. أوضاع الدبوس

يُهيّأ الدبوس في أحد الأوضاع القليلة قبل أن يقوم بأي شيء مفيد:

  • Pin.IN -- إدخال. يرصد الدبوس الجهد المطبّق عليه من الخارج ويبلّغ عنه على أنه 0 (منخفض) أو 1 (مرتفع).

  • Pin.OUT -- إخراج. يدفع الدبوس نفسه إما إلى جهد التغذية (1) أو إلى الأرضي (0)، بحيث تشاهد المكونات الخارجية ذلك الجهد.

  • Pin.OPEN_DRAIN -- إخراج لا يمكنه إلا سحب الخط إلى المنخفض. وللانتقال إلى المرتفع، يحرّر الدبوس نفسه (يطفو) وترفع مقاومة سحب علوي خارجية الخط. يُستخدم للنواقل المشتركة حيث قد تدفع أجهزة متعددة الخط نفسه.

يمكن للمدخلات اختيارياً تفعيل مقاومة سحب داخلية تضمن مستوى محدداً عندما لا يدفع شيء خارجي الدبوس:

يأخذ المُنشئ المعرّف والوضع والسحب كوسائط موضعية:

from machine import Pin

led    = Pin("P0", Pin.OUT)
button = Pin("P1", Pin.IN, Pin.PULL_UP)

3.4.2. الوظائف البديلة

تمتلك معظم الدبابيس وظيفة بديلة إضافة إلى دورها كـ GPIO. يمكن للوسادة الفيزيائية الواحدة على الشريحة أن تكون:

تطالب طرفيات أخرى (نواقل تسلسلية إضافية، ومؤقتات، وما إلى ذلك) أيضاً بدبابيس محددة؛ يربط مصمم الشريحة كل كتلة أجهزة بمجموعة ثابتة من الوسادات. يأخذ ADC عينات فقط من الدبابيس الموجّهة إلى مُجمّعه؛ ويرسل UART على الدبوس الوحيد الموصول به إشارة TX خاصته.

ملاحظة

تسِم كاميرات OpenMV دبابيس الموصّل الخارجي من P0 إلى P9 (يختلف قليلاً حسب اللوحة). أي دبوس يحمل أي وظيفة بديلة أمر خاص باللوحة؛ راجع المرجع السريع لـ OpenMV Cam للاطلاع على الجدول.

3.4.3. اختلافات اللوحات

تختلف بعض التفاصيل حسب اللوحة وينبغي دائماً التحقق منها مقابل المرجع السريع بدلاً من افتراضها من لوحة أخرى:

  • تحمّل الجهد. تمتلك بعض الكاميرات دبابيس إدخال/إخراج متحملة لـ 5 فولت (يمكن تطبيق إشارة 5 فولت مباشرة دون تلف)؛ بينما تشغّل أخرى إدخال/إخراجها عند 3.3 فولت أو 1.8 فولت وتتطلب مبدّل مستوى لأي إشارة تفوق ذلك. قد يؤدي توصيل مصدر 5 فولت بدبوس غير متحمل إلى تلف الشريحة.

  • مرجع ADC. يعتمد الجهد الذي يعامله ADC على أنه القيمة القصوى على تغذية الإدخال/الإخراج للوحة. تُرجع read_u16() دائماً 0..65535، لكن الجهد الذي تمثله 65535 هو أياً كان مرجع اللوحة.

  • قوة الدفع. يمكن لدبوس GPIO تزويد أو تصريف تيار محدود -- عادةً عشرات الملي أمبير. يكفي ذلك لتشغيل LED صغير عبر مقاومة؛ لكنه لا يكفي لمحرك أو جرس أو أي حِمل حثّي. اللجوء إلى مشغّل خارجي (ترانزستور، MOSFET، جسر H) لأي شيء أثقل من ذلك.

يعطي المرجع السريع لـ OpenMV Cam الأرقام الدقيقة لكل لوحة.