با اولین آموزش از سری آموزشهای سنسورکیت آردوینو در خدمتتون هستم . در اولین آموزش به راه اندازی ماژول جوی استیک به همراه آردوینو Uno میپردازیم. در ادامهی آموزش با مرجع تخصصی آردوینو ، دیجی اسپارک همراه باشید.
ماژول جوی استیک
جوی استیک Joystick PS2 یک ماژول با خروجی آنالوگ و قابلیت شبیه سازی مختصات اهرم در راستای دو محور X و Y میباشد. در بسیاری از پروژههای رباتیک نیاز به جوی استیک کاملا مشهود است. ماژول جوی استیک JoyStick قابلیت حرکت در تمام زوایا در راستای محور X , Y را دارد. بر روی ماژول جوی استیک JoyStick دو پتانسیومتر ۱۰ کیلو با زاویه ۹۰ درجه در کنار یکدیگر قرار گرفتهاند. با تغییر وضعیت اهرم قرار گرفته شده بر روی ماژول در راستای محور X,Y بسته به مسیر و جهت انتخابی، ولتاژ خروجی بین ۰ تا ۵ ولت DC تغییر خواهد کرد. هنگامی که ماژول جوی استیک را به میکروکنترلر متصل میکنید، در خروجی تا مقدار ۵۱۲ را در حالت Resting میتوانید بخوانید. در حالت کلی با تغییر اهرم ماژول جوی استیک مقدار ۰ تا ۱۰۲۳ را میتوانید در خروجی ماژول ببینید. ماژول جوی استیک JoyStick دارای ۴ پایه به ترتیب GND , 5v , VRx , VRy , SW میباشد. پایه VRx مروبط به تغییرات اهرم جوی استیک در راستای محور X همان محور افقی میباشد. پایه VRy مروبط به تغییرات اهرم جوی استیک در راستای محور Y همان محور عمودی میباشد. پایه SW مربوط به کلید فشاری بر روی ماژول میباشد. در حالت عادی خروجی پین SW ، برابر با ۵ ولت DC است و در صورت فشار دادن کلید ولتاژ خروجی پایه SW به ۰ ولت تغییر میکند. ولتاژ خروجی دو پایه VRx و VRy در حالت عادی ۲٫۵ ولت میباشد. با تغییر وضعیت اهرم قرار گرفته شده بر روی ماژول، ولتاژ خروجی دو پایه VRx و VRy بین ۰ تا ۵ ولت تغییر خواهد کرد.
مشخصات فنی جوی استیک
- VCC: تامین تغذیه (۵ ولت از آردوینو).
- GND: زمین (زمین مشترک با آردوینو).
- VRx: خروجی آنالوگ محور X.
- VRy: خروجی آنالوگ محور Y.
- SW: خروجی دیجیتال دکمهها.
- PS2_DAT، PS2_CMD، PS2_SEL، PS2_CLK: اینها برای اتصال جوی استیک با استفاده از رابط PS2 است (با آردوینو استفاده نمیشود).
بررسی پایه های جوی استیک
ماژول جوی استیک PS2 آردوینو دارای پنج پایه است که به شرح زیر هستند:
- VCC (تغذیه): این پایه برای تامین تغذیه ماژول استفاده میشود و به طور معمول به منبع تغذیه ۵ ولت آردوینو متصل میشود.
- GND (زمین): این پایه برای اتصال به زمین (GND) آردوینو استفاده میشود تا با آردوینو یک زمین مشترک داشته باشد.
- VRx (خروجی آنالوگ محور X): این پایه خروجی آنالوگ جوی استیک برای محور X است. زمانی که جوی استیک حرکت میکند، ولتاژ آنالوگ متناسب با موقعیت محور X تولید میشود که میتواند با استفاده از تابع analogRead() در آردوینو خوانده شود.
- VRy (خروجی آنالوگ محور Y): این پایه خروجی آنالوگ جوی استیک برای محور Y است. همانند پایه VRx، ولتاژ آنالوگ متناسب با موقعیت محور Y تولید میشود و با استفاده از تابع analogRead() در آردوینو قابل خواندن است.
- SW (خروجی دیجیتال دکمهها): این پایه خروجی دیجیتال مربوط به دکمههای جوی استیک است. وقتی دکمهها فشار داده میشوند، این پایه یک سیگنال دیجیتالی (HIGH یا LOW) تولید میکند که با استفاده از تابع digitalRead() در آردوینو قابل خواندن است.
اتصال جوی استیک به آردوینو
این ماژول یک ماژول بسیار ساده با خروجی آنالوگ و قابلیت اندازه گیری مختصات اهرم جوی استیک در راستای دو محور x و y میباشد . این جوی استیک قابلیت حرکت در تمامی زوایا را داشته و همچنین دارای یک کلید فشاری نیز می باشد. از این جوی استیک می توان در ساخت انواع کنترلرهای ربات و کوادکوپتر و… استفاده کرد. بر روی این ماژول دو عدد پتانسیومتر ۱۰ کلیواهم جهت اندازه گیری حرکت اهرم جوی استیک در راستای دو محور x و y وجود دارد . مکانیزم کار به این صورت است که با نغییر وصعیت اهرم میزان ولتاژ خروجی ماژول تغییر میکند و ما از طریق ADC متوجه میشویم که ماژول در چه وضعیتی قرار دارد.
پین GND و ۵v+ که مربوط به تعذیه ماژول میباشد و باید به تریب به GND آردوینو و مثبت ۵ ولت DC متصل شود.
پین SW که مربوط به کلید فشاری قرار گرفته بر روی جویاستیک میباشد .در حالت عادی خروجی این پین ۵+ ولت DC است و در صورت فشار دادن آن ولتاژ خروجی آن به ۰ ولت تغییر میکند. ( این پین به پین شماره ۸ آردوینو متصل میشود)
پین VRx : این پین مروبط به تغییرات اهرم جوی استیک در راستای محور X (محور افقی ) میباشد . در حالت عادی ولتاژ خروجی این پین برابر ۲٫۵ ولت میباشد و برحسب تغییر وضعیت اهرم از راست به چپ به تریب ولتاژ خروجی این پین میان دو بازه ۵ الی ۰ ولت تغییر میکند. ( این پین به پین A0 برد آردوینو متصل میشود)
پین VRy : این پین مروبط به تغییرات اهرم جوی استیک در راستای محور y (محور عمودی ) میباشد . در حالت عادی ولتاژ خروجی این پین برابر ۲٫۵ ولت میباشد و برحسب تغییر وضعیت اهرم از بالا به پایین به تریب ولتاژ خروجی این پین میان دو بازه ۵ الی ۰ ولت تغییر میکند. ( این پین به پین A1 برد آردوینو متصل میشود)
برنامه نویسی
برای برنامه نویسی این ماژول ما باید به وسیلهی مبدل آنالوگ به دیجیتال (ADC) ولتاژهای خروجی پینهای VRx و VRy را اندازهگیری کنیم.همانطور که گفته شد ولتاژهای این دو پین میان بازهی ۰ الی ۵ ولت تغییر میکند پس هنگامی که این ولناژ آنالوگ توسط ADC به مقادیر دیجیتال تبدیل میشود ، مقادیر بدست آمده بین ۰ الی ۱۰۲۳ میباشد.
- VRy : در هنگام تبدل به مقادیر دیجیتال ، در بالاترین نقظه دارای مقدار ۱۰۲۳ و در پایین ترین نقظه برابر ۰ میباشد.
- VRx : در هنگام تبدیل به مقادیر دیجیتال ، در راست ترین نقطه دارای مقدار۱۰۲۳ و در جپ ترین نقطه برابر ۰ میباشد.
قابل ذکر است برای تبدیل ولتاژ آنالوگ به ولتاز دیجیتال از تابع analogRead(pin) استفاده میشود. که پارامتر pin ، شماره پین مورد نظر ما بر روی بورد آردوینو میباشد.همانظور که گفته شد یک کلید نیز برای فشرده شدن بر روی جوی استیک قرار دارد که در صورت فشرده شدن مقدار ۰ ولت و در حالت عادی مقدار ۵ ولت بر روی پین SW اعمال میشود. برای بررسی وضعیت کلید باید آن را به صورت پولآپ در بیاوریم که برای این کار از تابع زیر استفاده میکنیم.
pinMode(pin, INPUT_PULLUP);
نمونهی کد آردوینو
در مثال زیر وضعیت اهرم جوی استیک بررسی شده و مختصات آن بر روی سریال مانیتور نرم افزار آردوینو نمایش داده میشود.
int JoyStick_X = A0; // محور x int JoyStick_Y = A1; // محور Y int JoyStick_Z = 8; // کلید void setup() { pinMode(JoyStick_Z, INPUT_PULLUP); // قرار دادن پین کلید در وضعیت پولآپ Serial.begin(9600); // 9600 bps } void loop() { int x, y, z; x = analogRead(JoyStick_X); y = analogRead(JoyStick_Y); z = digitalRead(JoyStick_Z); Serial.print(x); Serial.print(","); Serial.print(y); Serial.print(","); Serial.println(z); delay(100); }
- JoyStick_X: متغیر محور X که به پین A0 متصل شده است.
- JoyStick_Y: متغیر محور Y که به پین A1 متصل شده است.
- JoyStick_Z: متغیر کلید (دکمه) که به پین ۸ متصل شده است.
سخت افزار مورد نیاز
در صورت تمایل به انجام پروژههای بیشتر در ارتباط با جوی استیک میتوانید به لینکهای زیر مراجعه نمایید.
با سلام خدمت شما دوست عزیز…
همانطور که میدانید سایت دانشجو کیت پکیج سنسور برای آردوینو رو عرضه میکنه. من این پکیج رو گرفتم به امید اینکه پکیج شامل طرز کار با سنسور ها هم هستش. متاسفانه حتی مدل سنسور هم توش نبود. من قبلا بهشون پیغام فرستادم ولی جوابی نگرفتم. شما میتونید مدل سنسور و یا اموزش برای سنسور ها رو در اختیار همه قرار بدید؟؟؟
با سلام
همانطور که مشاهده می کنید بنده شروع به آموزش دادن سنسور های موجود در آن پکیج کردم و در روز حدود ۲ آموزش از سنسور های پکیج آموزش داده می شود
سلام من میخوام ۵ تا سروو را کنترل کنم با جوی استیک باید چی کارکنم؟؟؟؟