ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
عندما تسمع كلمة Thumb Joystick ، فإن أول ما يتبادر إلى الذهن هو التحكم في اللعبة . إنها تستخدم بشكل أساسي لممارسة الألعاب ، على الرغم من أنه ، هناك الكثير من الأشياء الممتعة التي يمكنك القيام بها . مثل التحكم في روبوت ، والتحكم في حركة الكاميرا ؛ هذه ليست سوى قليل من كثير .
نظرة عامة على عصا التحكم أو الالعاب Joystick :
هذا ذراع تحكم يشبه إلى حد بعيد عصا التحكم “التناظرية” على وحدات تحكم PS2 (PlayStation 2) . إنه ذراع تحكم محمل ذات محور نابض ، مما يعني أنه عندما تقوم بإطلاق ذراع التحكم ، فإنه سيتم توسيط نفسه . كما أنه يحتوي على مقبض / غطاء مريح من نوع الكوب يمنح إحساسًا بالإبهام .
الهدف من ذراع التحكم هو توصيل الحركة ثنائية الأبعاد (ثنائية المحور) إلى الاردوينو . يتم تحقيق ذلك عن طريق أثنين من مقاومات أو مقاييس الجهد المستقلة 10K (واحد لكل محور) . تُستخدم مقاييس الجهد هذه كمقسمات جهد مزدوج قابل للتعديل ، مما يوفر مدخلات تناظرية ثنائية المحور في شكل عصا التحكم .
مقاييس الجهد هما الصندوقان الأزرقان على جانبي عصا التحكم . إذا قمت بتحريك عصا التحكم أثناء مشاهدة العمود الأوسط لكل مقياس جهد ، فسترى أن كل من مقاييس الجهد يلتقط الحركة في اتجاه واحد فقط . سنناقش كيف تعمل في الواقع ، في وقت لاحق قليلا .
تحتوي عصا التحكم أيضًا على مفتاح يعمل عند الضغط على الغطاء . المفتاح هو الصندوق الأسود الصغير في الجزء الخلفي من عصا التحكم . إذا قمت بالضغط على الغطاء لأسفل .
How PS2 2-axis thumb joystick module works?
الفكرة الأساسية لعصا التحكم هي ترجمة موضع العصا على محورين – المحور X (من اليسار إلى اليمين) والمحور Y (لأعلى ولأسفل) إلى معلومات إلكترونية يستطيع الاردوينو معالجتها . قد يكون هذا صعبًا بعض الشيء ، ولكن بفضل تصميم ذراع التحكم الذي يتكون من مقاييس جهد وآلية أو مكنيكية Gimbal . أصبح الامر سهلا فلا تقلق !
Gimbal Mechanism
عندما تقوم بتدوير ذراع التحكم ، فإن مقبض الإبهام يتحرك بقضيب ضيق يجلس في محاور ذات فتحات قابلة للتدوير (Gimbal) . يسمح أحد الأعمدة بالحركة في المحور X (اليسار واليمين) بينما يسمح الآخر بالحركة في المحور Y (لأعلى ولأسفل) .
إمالة العصا إلى الأمام والخلف تدور حول المحور Y من جانب إلى جانب . إمالة من اليسار إلى اليمين تدورحول المحور X . عندما تقوم بتحريك العصا قطريا ، فإنها تدور حول كل من المحورين .
يتم توصيل الجهد لكل عمود عصا التحكم الذي يفسر موضع القضيب كقراءات تناظرية . تحريك الأعمدة ذات الشقوق يدور الذراع الملامسة لجهاز قياس الجهد . بمعنى آخر ، إذا دفعت العصا طوال الطريق للأمام ، فسوف تقوم بتحويل ذراع التلامس لقياس الجهد إلى أحد طرفي المسار ، وإذا قمت بسحبه باتجاهك ، فسوف يقوم بتحريك ذراع التلامس إلى الاتجاه الآخر .
قراءة القيم التناظرية من عصا التحكم Joystick :
من أجل قراءة وضع لعصا التحكم فيزيائيا ، نحتاج إلى قياس التغير في مقاومة مقياس الجهد . يمكن قراءة هذا التغيير بواسطة دبوس تمثيلي من الاردوينو باستخدام ADC .
نظرًا لأن لوحة الاردوينو بها دقة ADC تبلغ 10 بت ، فإن القيم في كل قناة تمثيلية (محور) يمكن أن تختلف من 0 إلى 1023 . لذلك ، إذا تم نقل العصا على محور X من طرف إلى آخر ، ستتغير قيم X من 0 إلى 1023 ويحدث شيء مشابه عندما يتم نقله على طول المحور Y . عندما يبقى ذراع التحكم في موضعه المركزي ، تكون القيمة حوالي 512 .
يُظهر الرسم أدناه اتجاهي X و Y ، كما يقدم أيضًا إشارة إلى كيفية استجابة المخرجات عند الضغط على ذراع التحكم في اتجاهات مختلفة .
أطراف عصا التحكم Joystick :
دعونا نلقي نظرة على اطراف وحدة عصا التحكم Joystick .
.
- GND هو دبوس الأرضي الذي نربطه بدبوس GND على اردوينو .
- VCC توفر الطاقة للوحدة . يمكنك توصيله إلى 5V الناتج من اردوينو الخاص بك .
- VRx يعطي قراءات لعصا التحكم في الاتجاه الأفقي (إحداثي X) ، أي إلى أي مدى تم الضغط على اليسار .
- VRy يقدم قراءات لعصا التحكم في الاتجاه الرأسي (إحداثي Y) ، أي إلى أي مدى يتم الضغط على ذراع التحكم لأعلى ولأسفل .
- SW هو زر ضغط . إنه مفتوح عادة ، مما يعني أن القراءة الرقمية من دبوس SW ستكون عالية . عند الضغط على الزر ، سيتم الاتصال بـ GND ، مما يؤدي إلى انخفاض الناتج .
الأسلاك - ربط وحدة عصا التحكم لاردوينو UNO :
الآن بعد أن عرفنا كل شيء عن الوحدة ، فقد حان الوقت لاستخدامها!
كما نعلم ، من أجل تحديد إحداثيات X و Y لعصا التحكم ، نحتاج إلى توصيل كل من المخرجات التناظرية من عصا التحكم إلى دبابيس تمثيلية على الاردوينو . بالنسبة إلى لوحة الاردوينو الخاصة بنا ، نقوم بتوصيل VRx بالدبوس التمثيلي A0 من Arduino و VRy بالتناظري A1 من Arduino .
لقراءة ما إذا كان مفتاح عصا التحكم قد تم الضغط عليه لأسفل ، نقوم بتوصيل دبوس SW لعصا التحكم بالدبوس الرقمي D8 من Arduino .
الكود البرمجي :
البرنامج بسيط جدا سوف نفوم بقرأ القياسات من اثنين من المدخلات التناظرية وواحد من المدخلات الرقمية . ثم سنقوم بعرض النتيجة على الشاشة التسلسلية .
لتحميل الكود البرمجي اضغط هنا
إذا كان كل شيء على ما يرام ، يجب أن تشاهد الإخراج أدناه على الشاشة التسلسلية .
أنتهت !!!