في هذا الدليل، سنتعلم كيفية ربط عصا التحكّم XY مع المتحكم الدقيق ESP32 من SunFounder، مما سيمكننا من الكشف عن موقعها واتخاذ إجراء بناءً على مدخلاتها. سنقوم أيضًا بدمج جرس ينشط عندما تُحرّك عصا التحكّم إلى موضع محدد. ستمكّننا هذه التركيبة من إنشاء مشاريع تفاعلية تستجيب لمدخلات المستخدم في الوقت الحقيقي.
ESP32-26-xy-joystick-main
يوفر عصا التحكم XY مخرجين تماثليين يت correspondiان لمواقع X وY وزر يمكن الضغط عليه لتفعيل إجراء. من خلال قراءة القيم من عصا التحكم، يمكننا التحكم في عناصر مختلفة في مشروعنا، مثل تفعيل صفارة أو عرض القيم على الشاشة. لفهم العملية بالكامل، تأكد من مشاهدة الفيديو للحصول على رؤى إضافية (في الفيديو عند 00:00).
شرح الأجهزة
تشمل المكونات الرئيسية لهذا المشروع متحكم ESP32 الدقيق، وعصا التحكم XY، ومُنبّه. يعد ESP32 لوحة متعددة الاستخدامات تدعم الواي فاي والبلوتوث، مما يجعلها مثالية لمشاريع إنترنت الأشياء. تتكون عصا التحكم XY من مقاومتين متغيرتين لمحوري X وY، وزر ضغط إضافي لإدخال المزيد.
مخطط عصا التحكممخطط توصيل عصا التحكم ESP32-26-xy
يخرج عصا التحكم إشارات تماثلية تتوافق مع موقعه، والتي تقرأها دبابيس التماثل في ESP32. يوفر زر الدفع إشارة رقمية عند الضغط عليه. يربط الجرس بدبوس خرج رقمي على ESP32، مما يسمح بتفعيله أو إلغاء تفعيله استنادًا إلى موقع عصا التحكم.
تفاصيل ورقة البيانات
الصانع
سونفاوندر
رقم القطعة
وحدة عصا التحكم XY
جهد التشغيل
٣.٣ فولت - ٥ فولت
قيمة المقاومة
10 كΩ (لكل محور)
التيار الأقصى
20 مللي أمبير
نوع المفتاح
زر ضغط لحظي
الأبعاد
تقريبًا 50 مم × 50 مم
تأكد من أن جهاز التحكم مزود بالطاقة بجهد 3.3 فولت للتوافق مع ESP32.
استخدم مقاومات السحب لأعلى للمفتاح لتجنب المدخلات العائمة.
قم بتوصيل المخرجات التناظرية بمداخل ADC الخاصة بـ ESP32 (34 لـ X، 35 لـ Y).
استخدم آلية تخفيف التأثير للزر لمنع التفعيل الخاطئ.
راقب مستويات الفولتية لضمان بقائها ضمن حدود التشغيل الآمنة.
تعليمات التوصيل
ESP32-26-xy-joystick-wiring
لتوصيل عصا التحكم بالـ ESP32، ابدأ بتوصيل دبابيس الأرض من عصا التحكم بدبوس الأرض على الـ ESP32. بعد ذلك، اربط دبابيس VCC لعصا التحكم بدبوس 3.3 فولت على الـ ESP32. تحتوي عصا التحكم على دبابيس إخراج تناظرية: اربط إخراج المحور X (الموسوم بـVRXللتثبيت34على ESP32 ومخرج محور Y (الموسوم كـVRYللتثبيت35.
لخروج المفتاح، قم بتوصيل دبوس المفتاح بالدبوس33على ESP32. ستقوم هذه الدبوس بقراءة ضغط الزر كإدخال رقمي. تأكد من أن الوصلات آمنة لتجنب المشاكل المتقطعة. إذا كانت الأسلاك الخاصة بك تختلف عن الفيديو (في الفيديو عند 02:30)، فقم بالتكيف وفقًا لذلك مع الالتزام بنفس المبادئ للوصلات التناظرية والرقمية.
أمثلة على الشيفرة وشرح تفصيلي
في الكود، نبدأ بتعريف الثوابت لدبابيس عصا التحكم. المعرفاتxAxis,yAxis, وbtnمقرر أن34,35, و33، على التوالي. هذا يجعل من السهل الإشارة إلى هذه الدبابيس في جميع أنحاء البرنامج.
#define xAxis 34
#define yAxis 35
#define btn 33
في الـsetup()في الدالة، نقوم بتهيئة الاتصال التسلسلي ونضبط وضع دبابيس الزر لإدخال. هذا يُعد ESP32 لقراءة البيانات من عصا التحكم وإرسالها إلى وحدة المراقبة التسلسلية.
داخل الـloop()نقرأ القيم التناظرية لمحاور X و Y لذراع التحكم باستخدامanalogRead()وقم بتخزينها فيxValueوyValue. يتم قراءة حالة الزر باستخدامdigitalRead()ومخزنة فيbtnValueأخيرًا، نقوم بطباعة هذه القيم على المراقب التسلسلي.
void loop() {
int xValue = analogRead(xAxis);
int yValue = analogRead(yAxis);
int btnValue = digitalRead(btn);
Serial.printf("Joystick value is %d , %d , %d \n",xValue,yValue,btnValue);
delay(300); // Delay between reads
}
تقوم هذه الحلقة بتحديث القيم باستمرار، مما يوفر ملاحظات في الوقت الفعلي حول حركة عصا التحكم وضغوط الأزرار. للحصول على الكود الكامل، يرجى الرجوع إلى الكود الكامل المحمل أدناه المقالة.
عرض / ماذا تتوقع
عند الانتهاء من الإعداد ورفع الكود، يجب أن يعرض الشاشة التسلسلية قيم X و Y مع حالة الزر. مع تحريك عصا التحكم، ستتغير القيم وفقًا لذلك، مما يعكس موقعها. سيؤدي الضغط على الزر إلى التحويل بين حالتين: عالية ومنخفضة.
تشمل الأخطاء الشائعة الأسلاك غير الصحيحة، والتي يمكن أن تؤدي إلى مدخلات عائمة أو عدم استجابة من وحدة التحكم. تأكد من استخدام الدبابيس الصحيحة وأن المقاومات السحب للأعلى تم تنفيذها للمفتاح. شاهد الفيديو لرؤية عروض عملية لهذه السلوكيات (في الفيديو عند 13:00).
طوابع زمنية للفيديو
:00 بداية
مقدمة عن عصا التحكم XY
7:32 قياس قيم العصا التحكم
8:40 شرح الأسلاك
11:06 شرح كود Arduino لجويستيك مع ESP32
14:43 اختيار لوحة ESP32 ومنفذ COM في Arduino IDE
:24 عرض الاستخدام البسيط لجهاز التحكم عن بعد
19:20 اكتشاف موقع الشيفرة الخاصة بعصا التحكم مع الجرس
21:16 عرض توضيحي للكشف عن الموقع
الصور
joystick_schematic
ESP32-26-xy-joystick-schematic
ESP32-26-xy-joystick-wiring
ESP32-26-xy-joystick-main
joystick_schematic
ESP32-26-xy-joystick-schematic
ESP32-26-xy-joystick-wiring
ESP32-26-xy-joystick-main
826-ESP32 Tutorial 26/55- Arduino code for XY Joystick