جوی استیک نوعی از قطعات الکترونیکی برای شبیه سازی حرکات فیزیکی به حرکات دیجیتالی است. از یک دسته کنسول بازی گرفته تا کنترل کننده یک جرثقیل چندین تنی، استفاده از جوی استیک JoyStick کاربرد دارد. بسیار ساده حرکت ۴ جهتی فیزیکی را شبیه سازی میکند. ماژول جوی استیک JoyStick انواع مختلفی دارد. پیشتر آموزشهای متنوعی با ماژول جوی استیک JoyStick در دیجی اسپارک منتشر شده است. در این آموزش از ماژول جوی استیک پکیج ۳۷ سنسور آردوینو استفاده میکنم. در ادامه با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
ماژول جوی استیک JoyStick Module
جوی استیک 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 بین ۰ تا ۵ ولت تغییر خواهد کرد. در ادامه به بررسی و نحوهی راه اندازی ماژول جوی استیک JoyStick خواهیم پرداخت.
هدف آموزش ماژول JoyStick
ماژول جوی استیک JoyStick با استفاده از اهرم تعبیه شده بر روی خود بر حول یک مقطع حرکت میکند و اطلاعات زاویه خود را به صورت دو بعدی یا سه بعدی به میکروکنترلر ارسال میکند. با استفاده از یک ماژول جوی استیک JoyStick و یک سرو موتور Servo motor SG90 ، کنترل سرو موتور را در دست خواهیم گرفت. با چرخاندن اهرم ماژول جوی استیک، سرو در راستای محور X و Y به چرخش در خواهد آمد. در ادامه به بررسی اتصالات آموزش خواهیم پرداخت.
سرو موتور SG90 Servo Motor
سرو موتور SG90، ماژولی با ابعاد کوچک و کم وزن با توان خروجی بالایی است. شافت خروجی سرو موتور Servo motor SG90 توانایی چرخش با زاویه ۱۸۰ درجه در هر مسیر ۹۰ درجه را دارند.خروجی سرو موتور ها به صورت پالس بوده و در حالت “۰” با پالس ۱٫۵ میلی ثانیه در حالت وسط ، در “۹۰” با پالس ۲ میلی ثانیه تنها در جهت راست، در “۹۰-” با پالس ۱ میلی ثانیه تنها در حالت چپ خواهد چرخید. ولتاژ کاری سرو موتور Servo motor SG90 بین ۴٫۸ تا ۵ ولت DC است. سرو موتور SG90 دارای سه پایه به ترتیب GND , VCC , Signal میباشد. سیم قهوه ای پایه GND ، سیم قرمز پایه VCC و سیم نارنجی پایه سیگنال (S) میباشد. در ادامه به بررسی اتصالات خواهیم پرداخت.
وسایل مورد نیاز:
اتصالات مدار جوی استیک
- پایه زمین (GND) ماژول جوی استیک JoyStick را به پایه A0 آردوینو اتصال دهید.
- پایه تغذیه (VCC) ماژول جوی استیک JoyStick را به پایه A1 آردوینو اتصال دهید.
- پایه VRx ماژول جوی استیک JoyStick را به پایه A2 آردوینو اتصال دهید.
- پایه VRy ماژول جوی استیک JoyStick را به پایه A3 آردوینو اتصال دهید.
- پایه GND ( سیم قهوه ای ) سرو موتور Servo SG90 را به پایه GND آردوینو اتصال دهید.
- پایه VCC ( سیم قرمز ) سرو موتور Servo SG90 را به پایه ۵ ولت آردوینو اتصال دهید.
- پایه سیگنال S ( سیم نارنجی) سرو موتور Servo SG90 را به پایه ۸ آردوینو اتصال دهید.
کد آموزش ماژول جوی استیک JoyStick
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
کد را در نرم افزار آردوینو کپی کنید. با توجه به اتصالات گفته شده در متن آموزش،ماژول جوی استیک Joystick و سرو موتور SG90 را به میکروکنترلر آردوینو اتصال دهید. حال کد را کامپایل کنید. پس از کامپایل در ابتدا، جوی استیک دیتا را از پایه A2 و پایه A3 آردوینو خوانده و به عنوان ورودی ارسال خواهد کرد. در این آموزش مقدار ورودی به اینصورت در سریال مانیتور نمایش داده میشود.
Data = input from joystick
همچنین سرو موتور خروجی را از پایه سیگنال پایه ۸ آردوینو خوانده و به عنوان خروجی در سریال مانیتور نمایش میدهد.
Data = output to servo
حال با چرخش اهرم جوی استیک در راستای محور X , Y، سرو موتور با زاویه ۹۰ درجه به چرخش در خواهد آمد. با چرخاندن اهرم به سمت راست، سرو موتور SG90 به سمت راست و با چرخاندن به سمت چپ، سرو موتور به سمت چپ به چرخش درخواهد آمد. تغییرات دیتای خروجی و دیتای ورودی خوانده شده از پایه A2 و A3 را در سریال مانیتور مشاهده خواهید کرد.
۱۰۱۸ = input from joystick
۱۵۳ = output to servo
در حالت کلی با تغییر اهرم ماژول جوی استیک مقدار ۰ تا ۱۰۲۳ را میتوانید در خروجی ماژول ببینید.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد.
پروژه:
اخیرا تصمیم گرفتهایم برای تعامل بیشتر با شما کاربران و ایجاد موقعیتی در راستای رقابت دانش کاربران، در انتهای هر آموزش یک پروژه تعریف میکنیم. به اولین کاربری که به پروژه تعریف شده پاسخ صحیح بدهد، بن خرید به ارزش ۳۰ هزار تومان از فروشگاه دانشجو کیت ارایه خواهد شد. پروژه: با جابجایی شافت جوی استیک JoyStick حرکت شافت سروو موتور در دامنه ۱۸۰ درجه به صورت یکنواخت و بدون نوسان صورت گیرد. سروو موتور باید در محدوده ۱۸۰ درجه جابجا شود و شافت سرو حرکت نرمی داشته باشد.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.
باتشکر از سایت خوب شما
پاسخ پروژه تعریف شده
با حرکت جوی استیک به هر سمت سرو موتور حرکت ۱۸۰ درجه نرمی دارد و درصورت وسط بودن جوی استیک می ایستد
#include // کتابخانه servo را نصب کنید
#define SERVO_PIN 8 // تعریف پایه سیگنال سرو به عنوان پایه ۸ آردوینو
#define G_joy A0 //تعریف پایه GND ماژول جوی استیک به عنوان پایه A0
#define Vout_joy A1 // تعریف پایه VCC ماژول جوی استیک به عنوان پایه A1
#define Xjoy A2 // تعریف پایه VRx ماژول جوی استیک به عنوان پایه A2
#define Yjoy A3 //تعریف پایه VRy ماژول جوی استیک به عنوان پایه A3
Servo myservo ;
int i=0;
bool kam=false;
void setup() // تعریف ورودی و خروجی
{
Serial.begin(9600); // باد ریت را روی ۹۶۰۰ تنظیم کنید
pinMode(Vout_joy, OUTPUT) ; // تعریف پایه A1 به عنوان خروجی
pinMode(G_joy, OUTPUT) ; // تعریف پایه A0 بع عنوان خروجی
digitalWrite(Vout_joy, HIGH) ;
digitalWrite(G_joy,LOW) ;
myservo.attach(8);
myservo.write(i);
}
void loop()
{
int jXval= analogRead(Xjoy);
int jYval = analogRead(Yjoy);
Serial.println(jXval);
Serial.println(jYval);
delay(10);
if(jXval 600 || jYval 600)
{
myservo.write(i);
if(!kam)
i++;
else
i–;
if(i>180)
kam=true;
if(i<1)
kam=false;
}
}
سلام
از توجه و دقت نظر شما بسیار ممنونم.
برای بررسی کدها، لطفا مجددا پروژه را به صورت یک فایل متنی ضمیمه کنید تا بررسی شود و در صورت صحیح بودن کدها، بن تخفیف اعمال گردد.
سپاسگزارم.
کد ها در داخل فایل متنی به ادرس زیر ضمیمه شد.
http://uupload.ir/view/52h7_servo.txt/
سلام
از توجه شما بسیار ممنونم.
پروژه ارسالی بررسی شد و کدها و حرکت سروو کاملا دقیق است. بن تخفیف از طریق ایمیل برای شما ارسال میگردد. لطفا پس از دریافت بن و استفاده از آن از همین طریق اعلام نمایید.
سپاسگزارم
با عرض سلام… خانوم بلورچیان، من تمام مراحل رو همونطور که در آموزش توضیح دادین انجام دادم،،، اما یه مشکل کلی برام پیش اومده که قادر به اجرای هیچ پروژه ای نیستم،،، زمان کامپایل با این ارور مواجه میشم
G: Category ” in library Single LED Library is not valid. Setting to ‘Uncategorized’
ry ‘Motor Drivers’ in library SparkFun Haptic Motor Driver is not valid. Setting to ‘Uncategorized’
WARNING: Category ‘Input/Output’ in library ArduMax AD5241 Driver is not valid. Setting to ‘Uncategorized’
Sketch uses 3646 bytes (11%) of program storage space. Maximum is 32256 bytes.
Global variables use 271 bytes (13%) of dynamic memory, leaving 1777 bytes for local variables. Maximum is 2048 bytes.
خیلی ممنون میشم راهنمائیم کنید.
سلام
از توجه شما ممنونم.
این ارور مربوط به نصب کتابخانه برای پروژه ای بوده که قبلا در آردوینو اجرا کرده اید، است. باید فایل کتابخانه را در مسیر arduino / Library کپی کنید تا با ارور کتابخانه مواجه نشوید. در صورت برطرف نشدن مشکل از همین طریق اعلام کنید تا مجددا بررسی کنم.
با عرض سلام…متأسفانه برطرف نشد… من حتی آردوینو رو آن اینستال کردم و مجدد دانلود و نصب کردم اما همچنان با این ارورها مواجه میشم
WARNING: Category ‘Sensor’ in library Adafruit CCS811 Library is not valid. Setting to ‘Uncategorized’
WARNING: Category ‘*’ in library AmazonDRS is not valid. Setting to ‘Uncategorized’
WARNING: Category ‘Education’ in library EducationShield is not valid. Setting to ‘Uncategorized’
WARNING: Category ‘Robotics’ in library Olympic Robotic Challenge is not valid. Setting to ‘Uncategorized’
WARNING: Category ” in library Parse Arduino SDK is not valid. Setting to ‘Uncategorized’
WARNING: Category ” in library Single LED Library is not valid. Setting to ‘Uncategorized’
WARNING: Category ‘Motor Drivers’ in library SparkFun Haptic Motor Driver is not valid. Setting to ‘Uncategorized’
WARNING: Category ‘Input/Output’ in library ArduMax AD5241 Driver is not valid. Setting to ‘Uncategorized’
Sketch uses 444 bytes (1%) of program storage space. Maximum is 32256 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 2039 bytes for local variables. Maximum is 2048 bytes.
همانطور که قبلا گفتم این ارور مربوط به کتابخانه adafruit است و آردوینو این کتگوری را نمیتواند تشخیص دهد. پیشنهاد میشود کتابخانه مورد نظر را از مسیر sketch حذف کنید و از پوشه arduinno / library پاک کنید و سپس مجددا امتحان کنید.
وای خانوم بلورچیان خیلیییییییییی ممنونم ازت… باور کنین ۱% هم احتمال نمیدادم مشکل ارورم حل بشه… اما خوشحالی عمده از این بابت که پروژه ی آموزشیتونو خیلی راحت تونستم اجرا کنم…. آخه من نه رشتم الکترونیک بوده نه تو عمرم یه جلسه کلاس آموزشی حتی رفتم…. در حقیقت در این مقوله مبتدی محسوب میشم… خیلی امشب امیدوار شدم و انرژی گرفتم…. بازم ممنون.
سلام
بسیار عالی
حتما در هر مرحله از راه اندازی که به مشکل برخوردید، از طریق ثبت کامنت اقدام کنید تا برطرف گردد.
موفق باشید.
با عرض سلام و خستع نباشید خدمت شما بانو
من این برنامه رو کامپایل کردم خط ۷ برنامه ارور میده
Servo myservo ;
باتشکر
سلام
در ابتدا کتابخانه سرو را فراخوانی کنید. برای اینکار دو روش وجود دارد:
از لینک سرو موتور SG90 در قسمت دانلود کتابخانه سرو موتور جهت دانلود قرار گرفته است، کتابخانه را دانلود کنید و سپس از حالت زیپ خارج کنید و در مسیر نصب آردوینو Arduino / Library کپی کنید.
روش دوم از طریق منو آردوینو Sketch / Include Library / Manage Libraries در صفحه باز شده در قسمت سرچ کلید واژه Servo را سرچ کنید و سپس کتابخانه مربوط به Servo را نصب کنید. سپس مجددا برنامه را کامپایل کنید. در صورت برطرف نشدن مشکل از همین طریق اعلام نمایید.
شیلد یعنی چه ؟
آیا می توان با شیلد جوی استیک و ماژول rf یک رادیو کنترل قابل برنامه نویسی داشت ؟
سلام
شیلد نوعی از ماژول است که بر روی بردهای میکروکنترلر قرار میگیرد و میتوانید از پایه های برد مجددا استفاده کنید. در واقع سیم کشی در طول پروژه کاهش مییابد.
در خصوص سوال دوم هم بله امکان پذیر است.
سلام
آموزش کار با شیلد جوی استیک آردوینو را می خواستم و آیا می توان با آن یک رادیوکنترل درست کرد ؟
اگه میشه انجامش بدین
سلام
از توجه و پیشنهاد شما ممنونم.
دقت کنید که پروژه های متفاوتی با جوی استیک در سایت آموزش داده شده است. طبق آموزش ها پیش بروید و در هر مرحله در صورت بروز به مشکل در همان پست مربوطه کامنت بگذارید تا نویسنده پست راهنمایی کند. پروژه های پیشنهادی کاربران بررسی و در صورت امکان آموزش داده خواهد شد.
موفق باشید.
سلام جوی استیکی داریم که ۴محوره باشه؟
سلام
بله ماژول جوی استیک ۴ محوره موجود است.
سلام خانم پریسا بابت زحمات شما و فیلم های اموزشی ، بابت اینکه من سوالی داشتم البته سوالم زیاد ربطی به ساخت فلش داره ، میخواستم به من راهنمایی کنید حالا در توان خودتون اگه بود و تجربیاتی که دارید جواب سوالم رو بدید بابت ساخت فلش یو اس بی چون رشته خودم کامپیوتر هست هی کنجکاوم بدونم کسایی که علم الکترونیک دارن فلش یو اس بی رو به چه طریق میسازند ممنون با تشکر
با سلام و تشکر از شما
کاربرگرامی از اینکه در جستجوی پاسخ سوالتان هستید بسیار خرسندم. ولی جنابعالی این سوال را درپستهای مختلف برای همکاران بنده هم نوشتهاید. همانطور که اشاره شد، پاسخ سوال شما بسیار گسترده و نیاز به دانش الکترونیک دارد. ولی اگر علاقمند به سخت افزارهای مختلف و عملی کردن ایدههایتان دارید، جلسات پنجشنبه ها را از دست ندهید.
لینک ثبت نام دورهمی اسپارکرها
سلام ببخشید ایا میشه اردوینو را دست ساز ساخت؟
با سلام
برد آردوینو اوپن سورس است و میتوانید بسازید.
سلام خانم بلورچیان ببخشید من ی پروژه درست کردم بایه جوی استیک ودوتاسروموتور چه برنامه ای باید بنویسم ک بافشار دادن سویچ جوی استیک تو یه حالت بمونه و به حالت قبلی برنگرده؟
ممنون
با سلام
امکان نوشتن کد در کامنت ها فراهم نیست.
ببخشید از چه راه ارتباطی میتونم این کد رو ازتون دریافت کنم
با سلام
کاربر گرامی کد برنامه در متن آموزش قرار دارد.