آموزش آردوینو پروژه های آردوینو

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

نوشته شده توسط حسین فهیمی

به نام خدا

در این پست قصد داریم سروو موتور Servo Motor را با ماژول جوی استیک JoyStick و برد آردوینو arduino کنترل کنیم. ماژول JoyStick یک ماژول بسیار ساده‌ با خروجی آنالوگ و قابلیت اندازه گیری مختصات اهرم جوی استیک JoyStick در راستای دو محور x و y می‌باشد. این جوی استیک JoyStick قابلیت حرکت در تمامی زوایا را داشته و همچنین دارای یک کلید فشاری می‌باشد. از ماژول جوی استیک JoyStick در ساخت انواع کنترلرهای ربات و کوادکوپتر و… میتوان استفاده کرد. خروجی ماژول جوی استیک JoyStick به صورت ولتاژ می‌باشد. اهرمی متشکل از دسته‌ای که در انتهای خود بر حول یک مقطع حرکت می‌کند و اطلاعات زاویه‌ خود را به صورت دو بعدی یا سه بعدی به رایانه و یا ریزپردازنده می‌فرستد. بر روی ماژول جوی استیک JoyStick دو عدد پتانسیومتر ۱۰ کلیواهم جهت اندازه گیری حرکت اهرم جوی استیک در راستای دو محور x و y وجود دارد. مکانیزم کار به این صورت است که با نغییر وصعیت اهرم میزان ولتاژ خروجی ماژول تغییر می‌کند و ما از طریق ADC  متوجه می‌شویم که ماژول در چه وضعیتی قرار دارد.

برد آردوینو Arduino UNO SMD

برد آردوینو Arduino Uno یک میکروکنترلر بر پایه ATmega 328 می‌باشد. این برد ۱۴ پین ورودی و خروجی دیجیتال (که ۶ تای آن می‌تواند به عنوان خروجی PWM استفاده گردد)، ۶ ورودی آنالوگ، یک تشدیدگر سرامیکی ۱۶ مگاهرتز (Ceramic Resonator)، یک پورت USB، یک ورودی منبع تغذیه، یک ICSP header و یک دکمه ریست دارد. برد آردوینو Arduino Uno شامل کلیه امکانات مورد نیاز جهت بکارگیری میکروکنترلر موجود بر روی برد می‌باشد. برای شروع تنها با یک کابل USB، به سـادگی برد را به کامپیوترتان متصـل کنید و یـا آن را با یـک آداپـتور AC-To-DC و یا باتری راه اندازی نمایید. برد Arduino آردوینو Uno با بردهای قبلی تفاوت دارد؛ زیرا در آن از تراشه FTDI USB-to-serial استفاده نشده است و به جای آن از یک Atmega16U2 که به عنوان تبدیل کننده USB-to-serialتنظیم شده است؛ استفاده می کند. ورژن ۲ برد آردوینو Arduino Uno دارای یک مقاومت جهت پولینگ اتصال HWB میکروکنترلر به زمین می باشد که تغییر حالت به DFU را آسان تر می کند.

سروو موتور Servo Motor

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

پایه دوربین Camera OV

با استفاده از این پایه و دو عدد سروو موتور میتوانید دوربین را در دو محور مختلف جابجا کنید. در این پست ، سروو ها را به این پایه متصل کرده و با جوی استیک کنترلشان میکنیم. این پایه به صورت حرفه ای برای استفاده در انواع ماشین رباتیک و ربات‌های پرنده را دارد.

تا این جا به بررسی لوازم مورد نیاز جهت انجام پروژه پرداختیم. حالا نوبت به اتصال قطعات و کدنویسی است.

اتصالات :

  • X جوی استیک به پین A0 آردوینو
  • Vcc جوی استیک و سرووها به ۵v آردوینو
  • Gnd جوی استیک و سرووها به Gnd آردوینو
  • سیم زرد سروو ها به پین ۹ آردوینو

 

کدنویسی :

#include <Servo.h>
Servo myservo;

void setup() {
 myservo.attach(9);
}

void loop() {
 int joy[1];
 int deg[1];
 joy[0] = analogRead(A0);
 deg[0] = map(joy[0], 0, 1023, 45, 135);
 myservo.write(deg[0]);
}

 

درباره نویسنده

حسین فهیمی

تبادل نظر و رفع عیب با ثبت دیدگاه

۸ دیدگاه

  • سلام ببخشید برد من uno smd هستش ال ای دی پاورش سوخته میخواستم بدونم مشکل از آمپر کشیدنه موتوره یا من ولتاژdv رو زیاد کردم( ۷٫۵ ال ۹ ولت )

  • سلام. ولتاژی رو که به بردتون دادین خوبه ، میتونید به کامپیوتر وصلش کنید و با یه برنامه ی blink ساده تستش کنید. سروو ها رو هم جدا با یه برد دیگه تست کنید.

  • ببخشید من یه جوی استیک دوتایی از دسته بازی در آوردم این پایه هارو داره
    GND
    VCC
    K12
    K11
    P1
    P2
    P3
    P4

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

    • با سلام
      کاربر گرامی می‌بایست دیتاشیت ماژول جوی استیک را با این مورد مطالبقت دهید. لازم است بدانید که کالای مورد استفاده شما در اجرا ممکن است کمی شما را دچار سردرگمی کند. بنابراین پیشنهاد می‌شود از ماژول جوی استیک آماده استفاده بفرمایید.

  • سلام
    موقع کامپایل کردن این ارور رو میده:
    exit status 1
    ‘Xservo’ was not declared in this scope

    • با سلام
      به جای xservo در کدها myservo جایگزین کنید. همجنین کد اصلاح شد و می‌توانید مجددا کپی کنید.

    • با سلام
      بله در آردوینو UNO از هر ۵ پایه میتوانید استفاده کنید و بایستی در کدها تغییرات را اعمال کنید.