من المفيد بل من الضروري استخدام عصا التوجيه joystick في بعض التطبيقات، وبما أنّ معظمَها يُعطي إشارة تشابهيّة فيجب تحويل الإشارة إلى رقميّة عن طريق شريحة MCP3008.
تمتلِك عصا التوجيه التشابهيّة محورَين يسمحان لكميّة معيّنة من الجهد بالمرور عبر مقاومتَين متغيِّرتَين potentiometers، ونحتاج إلى رقاقة MCP3008 لقراءة الموقع رقميّاً على الراسبيري باي.

joystick
joystick

مخطط هذه الوحدة كالتالي:

أقطاب المحوِّل التشابهيّ الرقمي
أقطاب المحوِّل التشابهيّ الرقميّMCP3008

يتوضَّع على الجهة اليساريّة 8 مداخل تشابهيّة نحتاج ثلاثة منها، وتتوضّع على الجهة اليمينيّة المخارجُ الرقميّة حيث تتمّ عملية النقل خلال DIN و DOUT.
عنصر MCP3008 محوَّل من تشابهيّ إلى رقميّ بطول عشر بتات،وهذا يعني أنّه يصل إلى حد أعلى هو 2^10،
وكمثال يمكنه أن يعطي 1024 تشكيلة من البتات (القيم من 0 إلى 1023)، وبالتالي ومع دخْل 3.3V تكون الخطوة 3.2mV تقريباً.

الملحقات:

  •  عصا توجيه (تشابهيّة)
  •  دارة متكاملة MCP3008 (محوّل من تشابهيّ إلى رقميّ)
  • لوحة تجارب
  •  سلك توصيل ذكر-أنثى
  •  مقاومة 10kOhm

التوصيل:

على الرغم من أنّ جهد دخْل عصا التوجيه هو 5V إلّا أنّها تعمل دون مشاكلَ على جهد 3.3V المناسب عند استخدام MCP3008، يعبِّر المصطلح SW عن الزّرّ الذي يتمّ تفعيلُه عند الضغط على عصا التوجيه، يجب وصل مقاومة 10kOhm مع التغذية ليكونَ هذا الزّرّ إمّا 0 أو 1023 (مضغوط أو غير مضغوط)، دون هذه المقاومة يتمّ إخراج أرقام عشوائيّة لا يمكن التعامل معها.

مخطط توصيل الراسبيري باي مع عصا التوجيه وMCP3008
مخطط توصيل الراسبيري باي مع عصا التوجيه وMCP3008

الوصلات مع الراسبيري باي

 

راسبيري MCP3008
(Pin 1 (3.3V (Pin 16 (VDD
(Pin 1 (3.3V (Pin 15 (VREF
(Pin 6 (GND (Pin 14 (AGND
(Pin 23 (SCLK (Pin 13 (CLK
(Pin 21 (MISO (Pin 12 (DOUT
(Pin 19 (MOSI (Pin 11 (DIN
(Pin 24 (CE0 (Pin 10 (CS/SHDN
(Pin 6 (GND (Pin 9 (DGND

الوصلات مع عصا التوجيه

 

RPi / MCP3008 Joystick
 (Raspberry Pin 6 (GND  GND
 (Raspberry Pin 1 (3.3V  +5V
 (Pin 1 (CH0  SW
 (Pin 2 (CH1  VRx
 (Pin 3 (CH2  VRy

التجربة:

بداية: قُم بتحميل مكتبة SpiDev من الرابط  هنا

كما ذكرنا سابقاً يعيد MCP3008 قيمة بين 0 و 1023، إذا كانَتْ عصا التوجيه في وضع السكون (المنتصف) سيعيد قيمة 512. وسيعيد قيمة 0 في نهاية المحور وقيمة 1023 في النهاية الأخرى.
يمكنك تحميل ملفّ التجريب من الموقع هنا أو إنشاؤه بنفسك

الكود البرمجي 1:للتحميل اضغط هنا

ومن التشغيل عن طريق

sudo python joystick_test.py

عند تحريك عصا التوجيه ستجد أنّ 1024 خطوة كثيرة جداً وخاصة لعصا توجيه صغيرة، لذلك يمكنك الاختبار على نطاقات بدلاً من قيم وحيدة (عدا القيمتَين 0 و 1023).


المصدر:هنا
ترجمة: عدي ناصر , مراجعة: مي همدر , تدقيق لغوي: رنيم العلي , تصميم: علي العلي , تحرير:قحطان غانم.