به نام خدا
در این پست قصد داریم سروو موتور 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 از هر ۵ پایه میتوانید استفاده کنید و بایستی در کدها تغییرات را اعمال کنید.