خلال هذا المشروع، سنتعلم كيفية استخدام عصا التحكم Joystick مع الاردوينو. ليتم استخدامها في تطبيقات مختلفة مثل التحكم في حركة الروبوت وتوجيهه، أو في عمل ألعاب الفيديو باستخدام الاردوينو.
![استخدام-عصا-التحكم-joystick-مع-الاردوينو](https://geeksvalley.com/wp-content/uploads/2017/04/ezgif.com-optimize-2.gif)
المكونات المطلوبة
![arduino uno r3](https://geeksvalley.com/wp-content/uploads/2015/08/arduino-uno-r3-1.jpg)
لوحة الأردوينو (Arduino Uno)
![](https://geeksvalley.com/wp-content/uploads/2016/11/Game-Joystick-Module-600x520.jpg)
عصا التحكم ( Joystick)
![Full size breadboard 830](https://geeksvalley.com/wp-content/uploads/2015/10/Full-size-breadboard-830-600x600.jpg)
لوح التجارب (Breadboard)
![Breadboard Jumper Wire 65 pcs](https://geeksvalley.com/wp-content/uploads/2015/10/Breadboard-Jumper-Wire-65-pcs-600x550.jpg)
أسلاك توصيل (Wires)
عصا التحكم Joystick
عصا التحكم أو ذراع التوجيه هي احد القطع الالكترونية التي تتميز بالبساطة وسهولة البرمجة. حيث أنها تستخدم في تطبيقات متعددة مثل الألعاب، والروبوتات،والرافعات وغيرها.
![استخدام-عصا-التحكم-joystick-مع-الاردوينو](https://geeksvalley.com/wp-content/uploads/2017/04/IMG_7957-1024x683.jpg)
تتكون عصا التحكم من مقاومتين متغيرتين للتحكم بمحاور الاتجاه X و Y . يؤدي تحريك عصا التحكم إلى تغيير في قيمة المقاومتان. ويتم تمثيل موضع عصا التحكم بنقطة يتم وصفها على محاور X,Y .
![joystick-arduino](https://geeksvalley.com/wp-content/uploads/2017/05/Joystick-Schematic.png)
يتكون عصا التحكم من ثلاث مدخلات يتم توصيلهم إلى الأردوينوالخاص بك، في حين ان الاثنين المتبقية امدادات للطاقة.
![joystick-arduino](https://geeksvalley.com/wp-content/uploads/2017/05/2.png)
توصيل الدارة :
قم بتوصيل عصا التحكم إلى الأردوينو كما هو موضح بالصورة التالية :
التوصيل :
Arduino | Joystick |
5v | Vcc |
Gnd | Gnd |
A0 | VRx |
A1 | VRy |
الكود البرمجي :
int xVal; //X values from joystick int yVal; //Y values from joystick void setup() { Serial.begin(9600); //Starts serial at 9600 baud pinMode(A0, INPUT); //Sets the analog ports used to an input pinMode(A1, INPUT); } void loop() { xVal = analogRead(A0); //read the X value yVal = analogRead(A1); //read the Y value Serial.print(" Y = "); Serial.print(yVal); //prints Y value Serial.print(" X = "); Serial.println(xVal); //prints X value delay(1000); // so that we dont get a spam on the serial monitor }
شرح الكود :
قمنا بتعريف متغيرين xVal، yVal إحداهما لتخزين قيمة X والأخر لتخزين قيمة Y ، حيث تمثل القيميتين موضع/موقع عصا التحكم.
في دالة التهيئة قمنا بتفعيل شاشة الاتصال التسلسلي، ثم ضبط الأطراف الموصله مع عصا التحكم كمدخل.
int xVal; //X values from joystick int yVal; //Y values from joystick void setup() { Serial.begin(9600); //Starts serial at 9600 baud pinMode(A0, INPUT); //Sets the analog ports used to an input pinMode(A1, INPUT); }
نقوم بقراءة قيم X و Y ثم عرض النتائج على شاشة الاتصال التسلسلي باستخدام الدالة (Serial.print(value .
void loop() { xVal = analogRead(A0); //read the X value yVal = analogRead(A1); //read the Y value Serial.print(" Y = "); Serial.print(yVal); //prints Y value Serial.print(" X = "); Serial.println(xVal); //prints X value delay(1000); // so that we dont get a spam on the serial monitor }