کنترل چند موتور سروو با جوی استیک و آردوینو
سرو موتور ( Servo Motor ) متشکل از یک موتور الکتریکی ساده است که در کنار موتور تعدادی المان الکترونیکی به منظور کنترل زاویه ، سرعت و یا شتاب به شفت موتور متصل می شوند و کلیه المان ها به همراه موتور در یک پکیج واحد ارائه می شوند. سرو موتور ها ممکن است دارای گیربکس یا فاقد گیربکس باشد و اندازه های بسیار کوچک برای مصارف ساخت تجهیزات مکاترونیکی مانند ربات ها و هواپیما های مدل تا اندازه های بزرگ برای دستگاه های صنعتی ساخته می شوند. در حوزه میکروکنترلر ، آنچه که از سرو موتور مشاهده می نماییم معمولا یک موتور DC جاروبک دار است که به کمک یک سری چرخدنده ( گیربکس ) به یک پتانسیومتر داخلی وصل شده است و خروجی گیربکس نیز از طرف دیگر خارج شده است. پتانسیومتر فقط وضعیت خروجی را کنترل می کند و کاری به وضعیت موتور ندارد.
در آموزش امروز قصد داریم دو موتور سرو را با یک عدد جوی استیک به وسیله برد Arduino کنترل کنیم. با ما همراه باشید تا نحوه راه اندازی و برنامه نویسی این پروژه کاربردی را فرا بگیرید. در پست های قبلی راه اندازی اولیه موتورهای سرو را آموزش داده ایم
راه اندازی سرو موتور توسط آردوینو
برای انجام این پروژه به یک عدد ماژول جوی استیک و یک عدد Arduino ترجیحا Uno و دو عدد موتور سروو نیازمندیم. هدف کنترل دو موتور سروو (یکی در جهت x و دیگری در جهت y) می باشد. که برای هر جهت یک سروو موتور وجود دارد. بعد از آماده سازی این وسایل نوبت به اتصالات می رسد.
در موتورهای سروو معمولا سیم نارنجی سیم ورودی پالس های موتور(Data) است و سیم قرمز تغذیه مثبت موتور و سیم قهوه ای GND موتور می باشد. در استانداردهای دیگر این موتور نیز سیم زرد به عنوان سیم دیتا و سیم قرمز تغذیه مثبت و سیم سیاه GND موتور می باشد.
ماژول جوی استیک نیز یک ساختار مقاومتی دارد به این صورت که از دو مقاومت متغیر 5K اهمی در دو جهت بهره می برد و دارای 5 پین می باشد که دو پین برای تغذیه ماژول و دو پین برای کنترل جهت های x,y و یک پین برای کنترل سوییچ تعبیه شده در ماژول می باشد.
شماتیک کنترل چندگانه موتور سرو با جوی استیک و آردوینو
سورس کد برنامه کنترل چندگانه موتور سرو با جوی استیک و آردوینو
#include <Servo.h> Servo S1; Servo S2; int x=0; int y=1; int joy; void setup() { S1.attach(3); S2.attach(4); } void loop() { joy = analogRead(x); joy = map(joy, 0, 1023, 0, 180); S1.write(joy); joy = analogRead(y); joy = map(joy, 0, 1023, 0, 180); S2.write(joy); delay(10); }
حال که تا اینجای کار با سرو موتورها و راه اندازی و کنترل در دو جهت را با استفاده از جوی استیک فرا گرفتیم با کمی تعمیم می توان به پروژه های کامل تری مثل کنترل از طریق ولوم و ارتباط با بلوتوث یا حتی ساخت یک بازوی رباتیکی دست یافت. به همین منظور در ادامه همین آموزش ها کنترل موتورهای سروو و استپر را بیان می کنیم و در پایان این بخش از آموزش ها پروژه بازوی رباتیک و نحوه پیاده سازی آن را به سمع و نظر شما می رسانیم.
ادامه دارد …
سلام .چجوری میشه کاری کرد تا بعد از رها کردن جوی استیک ، سروو موتور ها به حالت قبلی برنگردن؟؟؟
سلام سروو موتور چند درجه استفاده کردید؟
اگه 360 درجه استفاده کنید بعد از رها کردن جواستیک دیگه به حالت اول برنمیگرده
سلام اگر بخواهیم چهار سرووموتور و دو جوی استیک قرار دهیم باید چه کار بکنیم؟