کنترل سروو موتور با جوی استیک joystick دو محوره و آردوینو

سرو موتور با جوی استیک joystick دو محوره

سرو موتور با جوی استیک

جوی استیک joystick

فکر نکنم نیازی به معرفی جوی استیک باشه ، مخصوصا زمانی که گیمر به حساب بیاین و زندگیتون رو با دسته های PS1,2,3,4 یا XBOX گذرونده باشین 😀

اما توی یک توضیح کوتاه باید بگم که joystick یک وسیله ی الکترونیکیه که قابلیت حرکت در زاویه های مختلف رو داره و بر روی پایه های خودش نسبت به زاویه ای که قرار میگیره ولتاژ های متفاوتی رو بعنوان خروجی به ما میده که ما میتونیم با خوندن مقدار ولتاژ توسط پایه های آنالوگ آردوینو و تبدیل اون به دیجیتال (به مبدل آنالوگ به دیجیتال مراجعه کنید) در مدارات از خروجی جوی استیک استفاده کنیم.

این قطعه توی الکترونیک کاربرد های زیادی میتونه داشته باشه و از اجزای ساده ی زیر تشکیل شده :

 

در تصویر بالا مشخصه که joystick  دارای 5 پایه به شرح زیره :

پایه های 1 و 2 : GND و VCC

SW : این پایه در حالت عادی خروجی ای برابر 5 ولت داره و زمانی که چوی استیک فشرده میشه خروجی ای برابر صفر میده.

VR-X یا L/R: این پایه میزان حرکت جوی استیک رو نسبت به محور X ها در خروجیش نمایش میده. در حالت عادی خروجی پایه 2.5 ولته و زمانی که به سمت چپ داده میشه 5 ولت و در زمانی که به سمت راست داده میشه 0 ولت.

VR-Y یا U/D: این پایه میزان حرکت جوی استیک رو نسبت به محور y ها در خروجیش نمایش میده. در حالت عادی خروجی پایه 2.5 ولته و زمانی که به سمت بالا داده میشه 5  ولت و در زمانی که پایین داده میشه 0 ولت.

راه اندازی سروو موتور با جوی استیک دو محوره

چون این جوی استیک 2 محوره هست برای نمایش خروجی اون از 2 سرو موتور استفاده میکنیم.

در بخش آموزش راه اندازی servo موتور با آردوینو ، آموزش کار با این موتور شرح داده شده و مجددا بررسیش نمیکنیم 😉

قطعه مورد نیاز دیگه ای هم جز برد آردوینو نمیمونه.

پروژه سرو موتور با ماژول جوی استیک joystick :

قراره در این پروژه با تغییر وضعیت جوی استیک ، تغییر وضعیت سرو موتور هارو شاهد باشیم و وضعیت سرو موتور ها رو از طریق ارتباط سریال بفرستیم.

شماتیک:

کنترل سروو موتور با جوی استیک joystick دو محوره

تصویر بالا نحوه اتصال سرو موتور ها به آردوینو هستش و تصویر پایین نحوه اتصال جوی استیک به آردوینو:

 اتصال ماژول جوی استیک به آردوینو

کد پروژه:

داخل کد سرو موتور با جوی استیک و آردوینو تضیحات مختصری ازهر خط رو مشاهده میکنید، بازم اگر سوالی بود حتما همین زیر در بخش کامنت ها مطرح کنید.

یک ویدیو کوتاه با حجم کم از نحوه کار این پروژه :

 

پروژه ی راه اندازی سرو موتور با جوی استیک و آردوینو هم به پایان رسید ،  امیدوارم مفید بوده باشه!موفق باشید 🙂

پ.ن از طرف “حمید”: این پروژه توسط آقای رضا علی نیا برای سایت ارسال شده و زحمت های اصلی مطلب به گردن ایشون بوده که صمیمانه از ایشون و زحماتشون تشکر و قدردانی میکنم 🙂

ADS

حمیدرضا مودت

یک مهندس الکترونیک ، علاقه مند به یاد دادن و یاد گرفتن پیرامون دانش برق و الکترونیک

مطالب مرتبط

9 دیدگاه‌

  1. صادق گفت:

    سلام با تشکر از برنامه ی خوبتون. میشه برنامه ای را که بعد از رها کردن جوی استیک سرو موتور به حالت اولیه برنگرده را بزارید.

  2. علی گفت:

    سلام.چرا وقتی دستمونو از رو جوی استیک برمیداریم سروو به حالت قبلیش برمیگرده؟

    • سلام.
      چون جوی استیک دوباره به حالت قبلی برمیگرده و ولتاژ تولید شده روی پایه های جوی استیک تغییر میکنه. جهت سروو هم بر اساس ولتاژ پایه های جوی استیک تغییر میکنه.
      خاصیت سخت افزاره. اگر بخواید تغییر وضعیت نداشته باشید نسبت به شرایط پروژه باید روی برنامتون تغییرات لازم رو انجام بدین.

  3. علی گفت:

    سلام
    من کد اجرا کردم اما خط 29 outputJoystick();
    ارور میده output joy stick was not declare in this scope
    دلیلش چیه؟
    ممنون

    • حمیدرضا مودت گفت:

      سلام.
      ارور میگه تابع outputJoystick معرفی نشده . کد 55 خط هستش. احتمالا همشو کپی نکردین.

  4. حسین گنج خانلو گفت:

    سلام خسته نباشید
    ببخشید من بعد این که مدارو میدم ی لرزش کوچیک تو سرو موتور ها است اونو چطوری باید درستش کنم؟؟؟

    • سلام
      این مطلب رو نگاه کنین :
      http://levinic.com/triggering-servo-motor-with-arduino/
      و مدارهای اون رو هم تست کنین که متوجه بشین آردوینو و سروو موتور سالم هستن یا نه. معمولا لرزش در سرو موتور برای ارسال پالس های اشتباه بوجود میاد و همینطور کمبودن جریان.
      خلاصه قطعات + کد رو جداگانه تست کنین(کد سایت مطابق ویدیو مشکلی نداره!)

  5. شهاب هاشمی گفت:

    با سلام. این کد رو نوشتم و اجرا کردم. اما یک مشکل کوچک داره
    servoVal = map(servoVal, 0, 1023, 70, 180);// baraye ashnai ba dastoor map bekhanid
    در اینجا عدد ۷۰ باید ۰ باشه.
    البته برای من که اینطور بوده

    • سلام ، اون عدد باید بین صفر تا 180 باشه ! حالا اینکه چه عددی ؟ باید با توجه به نوع سروو موتور و انتظار شما از میزان گردش باشه.. پس هردو میتونن درست باشن