تتحرك الشخصية على الشاشة قليلاً حتى عندما يترك المستخدم عصا التحكم في المنتصف. غالباً ما تكون المشكلة أن المركز ليس رقماً مثالياً، أو أن الجهد يتذبذب قربه، أو أن البرنامج يحول أصغر تغير إلى حركة. يبني هذا المشروع لوحة اختبار لعصا ثنائية المحور: تسجل الإحداثيات في وضع السكون، ثم تقيس كيف تتحرك القراءات عند إمالة العصا بخطوات صغيرة. توضح وثائق Seeed أن وحدة Grove Thumb Joystick تستخدم مقاومتين متغيرتين لمحوري X وY وزر ضغط، وأن مجال القراءة النموذجي في لوحة Arduino محدود حول الوسط؛ هذه قيم تعريفية للوحدة وليست ضماناً لجميع النسخ. الغرض من التجربة إيجاد منطقة خمول مبنية على بيانات وحدتك، لا توصيل العصا بروبوت متحرك أو الادعاء بأن الإعداد مريح لكل مستخدم.

المشكلة قبل كتابة deadzone

تحدد deadzone نطاقاً حول المركز تتجاهله الواجهة لتمنع الانجراف، لكن تكبيرها كثيراً يمحو الحركات الصغيرة. اجمع أولاً بيانات دون لمس، ثم عين نطاق حركة مقصودة بخطوات متساوية. اختبر X وY منفصلين ثم معاً، لأن محوراً قد يكون معكوساً أو له مركز مختلف. إذا كان النظام المقصود لعبة أو نموذج واجهة وصول، فاجعل منطقة الخمول قابلة للتعديل في ملف الإعداد. لا تصمم منزلقاً يحتاج من المستخدم ضغطاً أو مدى حركة غير مريح؛ اكتف بنموذج شاشة أو مؤشر بصري على الطاولة.

المكونات والتوصيل

تحتاج عصا تناظرية صغيرة، لوحة ESP32 أو Arduino متوافقة مع خرج الوحدة، أسلاك قصيرة، حامل يثبت العصا، زر تسجيل، ورسماً بسيطاً على Serial Plotter أو صفحة محلية. وصل محوري X وY إلى مدخلي ADC، والطاقة والأرضي حسب مواصفات الوحدة. بعض وحدات العصا مصممة لخمسة فولت وقد ترفع جهد الخرج عن حدود ESP32؛ قس الخرج أولاً وتأكد من مستوى الإشارة قبل التوصيل، واستخدم واجهة تقسيم أو وحدة مناسبة إن لزم. لا تعتمد على لون الأسلاك وحده. افصل تغذية الاختبار عند إعادة ترتيب الأسلاك، ولا توصل جهازاً متحركاً خلال جمع بيانات العصا.

من مقبض اليد إلى عينة رقمية

يقرأ البرنامج ADC للمحورين بتردد ثابت مثلاً 50 عينة بالثانية، ويسجل القيمة الخام والوقت وحالة الزر. في المرحلة الأولى اترك العصا دون لمس مدة عشرين ثانية، ثم اطلب من شخص أن يدفعها إلى علامات مرسومة على حامل ورقي: أعلى وأسفل ويمين ويسار وأربع زوايا. أضف عودة إلى المركز بعد كل نقطة. ارسم سحابة X/Y؛ إذا لم تكن متناظرة تماماً، لا تجبرها على مقياس واحد قبل حساب حدود كل محور. وفر خيار معايرة بسيطاً يسجل المركز والنهايات التي حققها المستخدم، مع تخزين إعدادات الخصوصية محلياً.

مثال حساب deadzone

لنفترض أن قراءة المركز الساكن لمحور X جمعت 500 مرة. كان الوسيط 2040، ووقعت 98% من العينات بين 2024 و2055. في هذا المثال فقط يمكن اختيار نصف deadzone مقداره 24 خطوة ADC لتجاوز الضوضاء الساكنة، ثم بدء الحركة بعد هذا الحد. لا تستخدم العدد 24 كقيمة افتراضية لكل لوحة أو عصا؛ دقة ADC والتوهين وتغذية الوحدة تختلف. احسب القيم حول الوسيط، ثم أعد الاختبار بعد إعادة تشغيل اللوحة وبعد لمس العصا والعودة. إذا بقيت الحركة الصغيرة غير مرئية، خفف النطاق بالتدريج واجعل للمستخدم تجربة عملية. يمكن قياس مقدار الاستجابة بعد deadzone بتدرج تحويل متناسب حتى لا تقفز الشخصية عند أول خروج من المركز.

خط الأساس ومصفوفة التحقق

ابدأ بالعصا مثبتة وغير ملموسة على الطاولة. سجل 500 عينة لكل محور في ثلاث جلسات، مع فاصل قصير بين الجلسات. ثم كرر القراءة عند الضغط الخفيف في الاتجاهات الأساسية، وعند إمالة قطرية، وعند ترك المقبض فجأة. قارن الحركة الوهمية قبل deadzone وبعدها، واحسب أصغر حركة قابلة للرصد في كل اتجاه. معيار القبول المقترح أن يظل المؤشر ساكناً في مجموعة السكون وأن يتحرك بسلاسة في نقاط العلامات، لا أن يطابق تحكماً احترافياً. اطلب من أكثر من مستخدم تجربة الإعداد إذا كان المشروع موجهاً لمجموعة، واحصل على موافقتهم قبل حفظ بيانات الأداء.

الأعطال التي تبدو مثل مشكلة برمجية

إذا انحرف محور واحد باستمرار، افحص تغذية العصا والأرضي والحد الأقصى للخرج. إذا كان محور X يتحرك بالعكس، يمكن قلب الإشارة برمجياً بعد حفظ القراءة الخام. إذا تغير المركز عند الضغط إلى الأسفل، فقد يؤثر زر الضغط ميكانيكياً في العصا؛ لا تخلط حدث الزر مع قيمة المحور. تذبذب القراءة أثناء تشغيل شاشة أو وحدة لاسلكية قد يكون ضوضاء كهربائية؛ اختبر أولاً مع بقية الأجهزة مفصولة ثم أعدها وحدة بوحدة. المتوسط المتحرك قد يخفف الرعشة لكنه يضيف تأخراً، لذلك قس زمن الاستجابة ولا تستخدم المرشح لإخفاء خلل التوصيل.

تطبيق مناسب لمشروع التخرج

يمكن أن تتحول التجربة إلى وحدة تحكم تفاعلية لمتحف مصغر أو لعبة تعليمية، حيث يرسم البرنامج موقع المؤشر ومنطقة الخمول التي اختارها المستخدم. لكنها لا تثبت ملاءمة عصا واحدة لكل قدرات الحركة، ولا تستبدل تقييم متخصص إذا كان المقصود جهازاً مساعداً حقيقياً. وثّق نوع العصا، جهد تغذيتها، طراز المتحكم، إعداد ADC، وسجل بياناتاً مجهولة الهوية. مشروع تخرج في هندسة الحاسوب أو الأنظمة المضمنة يمكن أن يسلم البرنامج، رسم السحابة، اختبار المستخدم بموافقته، ومقارنة قابليّة الضبط. للمساعدة في تحويل النموذج إلى نطاق مناسب يمكن مراجعة مشاريع التخرج وخدمات Arduino وإنترنت الأشياء. ابدأ من مواصفات Seeed للوحدة وتوثيق ADC في Arduino-ESP32، ثم عاير النسخة الموجودة على طاولتك.

يمكن أن تكون هذه التجربة جزءاً من مشاريع تخرج في هندسة الحاسوب عندما يشرح الفريق حدود القياس ويشارك إعدادات النموذج. للمراجعة التقنية، افتح المصادر الأصلية: Grove - Thumb Joystick - Seeed Studio Wiki، Arduino ESP32 ADC API - Espressif، ESP32 ADC Programming Guide - Espressif.

المصادر

مراجعة المصادر: .

اختبار المثال وحدوده

تحسب منطقة الخمول من توزيع 500 قراءة ساكنة في الاختبار المقترح؛ الأرقام الفعلية تعتمد على الوحدة واللوحة ولا تكتب كقيم مصنع.

مقالات ذات صلة

الخدمة المرتبطة: برمجة Arduino والأجهزة المتصلة والروبوتات.

أرسل متطلبات مشروعك