راه اندازی سروو موتور با آردوینو + پروژه بازو رباتیک
سلام امروز میخوایم با شما به راه اندازی سروو موتور با آردوینو بپردازیم که یک پروژه جذاب میتونیم باهاش راه بندازیم که در صنعت ماشین آلات صنعتی کاربرد زیادی داره ، که همه ما اونو به اسم بازو رباتیک دو محوره میشناسیم.
توضیح مختصر در مورد راه اندازی سروو موتور با آردوینو:
ما با راه اندازی سروو موتور با آردوینو قصد داریم تا شما را با سروو موتور آشنا کنیم و همچنین استفاده آن در صنایع همچون بازو های صنعتی ، صنایع پروازی و…
وسایل مورد نیازبرای راه اندازی سروو موتور با آردوینو:
[icon name=”fighter-jet” class=”” unprefixed_class=””] آردوینو UNO
[icon name=”fighter-jet” class=”” unprefixed_class=””] برد برد
[icon name=”fighter-jet” class=”” unprefixed_class=””] پتانسیومتر
[icon name=”fighter-jet” class=”” unprefixed_class=””] ماژول جو استیک
[icon name=”fighter-jet” class=”” unprefixed_class=””] سروو موتور
اگر دنبال خرید قطعات هستی فقط کافیه به فروشگاه رباتیک ربات افزار سر بزنی 🧡
آشنایی با عملکرد قطعات در راه اندازی سروو موتور با آردوینو :
سروو موتور:
سروو موتور ها مدل های زیادی دارن ، اما بعنوان نمونه در راه اندازی سروو موتور توسط آردوینو از سروو موتور SG92R استفاده می نماییم. که نسبت به قیمت و حجم مناسبش پرکاربرد می باشد. این موتور 3 سیمه ، که دوسیم آن مربوط به تغذیه (سیم قرمز و قهوه ای)و سیم دیگر سیم کنترل(سیم زرد)که به میکرو(آردوینو) وصل می شود.
بازه ی حرکت موتور 180 درجه می باشد که میشه با زاویه ی 90 درجه به طرفین بچرخند. زاویه ی چرخش با عرض پالسی تعیین میشه که به سیم کنترلی اعمال میشه.
مورد استفاده این موتورها:
[icon name=”star-half-o” class=”” unprefixed_class=””] صنایعی مثل روباتیک . هواپیما سازی..
قسمت های تشکیل دهتده سروو موتور :
[icon name=”star-half-o” class=”” unprefixed_class=””]موتور DC
[icon name=”star-half-o” class=”” unprefixed_class=””]قسمت مکانیکی برای افزایش گشتاور
[icon name=”star-half-o” class=”” unprefixed_class=””]مدار حسگر موقعیت و کنترل موتور
[icon name=”star-half-o” class=”” unprefixed_class=””] نکته جالبی که در کتابخونه ی Servo در آردوینو وجود دارد
این است که ، توابع کتابخونه ی Servo.h تا 12 موتور در بردهای معمولی و 48 موتور توی بردهای سری Mega را می توانند پشتیبانی کنند.
البته بدی هایی هم دارند ، مثلا توی بردهای غیر Mega ، هنگام استفاده از این توابع ،عملکرد PWM پایه های 9 و 10 غیرفعال میشه و توی بردهای Mega اگر تعداد موتور ها از 12 تا بیشتر بشه پایه های 11 و 12 خروجی PWM نمیدن.
نمای فنی پتانسیومتر:
پتاسیومتر چیست؟
مقاومت متغییر یا پتاسیومتر در واقع از 2 مقاومت متغییر تشکیل شده استو دارای 3پایه است، و پایه وسط آن مقاومت را کم و زیاد می کند. این قطعه وظیفه محدود كردن جريان و ايجاد ولتاژ را دارد و واحد سنجش این قطعه همانند مقاومت اهم و آن را با علامت Ω نمایش میدهند. دراثرکم و زیاد کردن مقاومت در پتاسیومتر،سروو ما در جهت عقربه ساعت و بالعکس چرخش و تغییر حالت می دهد.
به دلخواه از سمت چپ یا راست یک کدام را (VCC)و یکی دیگر را (GND ) و پایه وسط پایه متغییر ولتاژ است.
جدول اتصال پایه ها :
آردوینو | سروو موتور |
پین ۹ | سیم زرد |
5v | سیم قرمز |
gnd | سیم قهوه ای |
A0 | پایه پتانسیومتر |
یکی مثبت و دیگر منفی | دو پایه دیگر پتانسیومر |
شمای چگونه اتصال پایه پتانسیومتر به آردوینو:
دستورات راه اندازی سروو موتور با پتانسیومتر:
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
#include <Servo.h>
دراین دستور ما کتابخانه سروو موتور را فراخوانی کرده ایم
مانند کد زیر:
#include <Servo.h>
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
Servo s1;
در این دستور ما نام سروو مان را s1 نام گذاری کرده ایم
مانند کدزیر:
Servos1;
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
int a;
در این دستور ما متغییرa را معرفی کرده ایم تا مقدار آنالوگ پتانسیومتر در آن ریخته شود
مانند کد زیر:
inta;
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
s1.attach(9);
در این دستور ما تعریف می کنیم که پایه سروو موترمان به کدام پایه آردوینو متصل است
مانند کد زیر:
s1.attach(9);
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
a = analogRead(A0);
در این دستور آردوینو مقدار پتانسیومتر را که آنالوگ می باشد را می خواند
مانند کد زیر:
a = analogRead(A0);
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
a= map(a, 0, 1023, 0, 180);
در این دستور ما تابع map را تعریف کرده ایم تا مقدار آنالوگ پتانسیومتر از ۰ تا ۱۰۲۳ بین درجه ی سروو(servo) از ۰ تا ۱۸۰ تناسب بندی کند
مانند کد زیر:
a = map(a, 0, 1023, 0, 180);
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
s1.write(a);
در این دستور زمانی که پتانسیومتر در موقعیتی قرار گیرد سروو به همان سمت می رود
مانند کد زیر:
s1.write(a);
سورس کامل برنامه:
برای دانلود کامل برنامه و فایل های پروژه به صورت رایگان به پایین صفحه مراجعه کنید.
#include <Servo.h> Servo s1; int a; void setup() { s1.attach(9); } void loop() { a= analogRead(A0); a= map(a, 0, 1023, 0, 180); s1.write(a); }
اگر دنبال خرید قطعات هستی فقط کافیه به فروشگاه رباتیک ربات افزار سر بزنی 🧡
جدول اتصال پایه های راه اندازی سروو موتور بدون پتانسیومتر:
سروو موتور | آردوینو |
سیم زرد | پایه ۹ |
سیم قرمز | 5v |
سیم قهوه ای | gnd |
شمای اتصال پایه ها:
دستورات راه اندازی سروو موتور بدون پتانسیومتر:
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
#include <Servo.h>
در این دستور ما کتابخانه سروو را معرفی کرده ایم
مانند کد زیر:
#include <Servo.h>
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
Servo s1;
در این دستور ما نام سروو مان را s1 نام گذاری کرده ایم
مانند کد زیر:
Servo s1;
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
s1.attach(9);
در این دستور ما تعریف می کنیم که پایه سروو موترمان به کدام پایه آردوینو متصل است
مانند کد زیر:
s1.attach(9);
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
s1.writeنوشتن درجه مورد نظرمان مثالا از ۰تا۹۰درجه);
در این دستور ما اندازه چرخش موتور را به سروو تعریف می کنیم(pwm)
مانند کد زیر:
s1.writeنوشتن درجه مورد نظرمان مثالا از ۰تا۹۰درجه);
سورس کامل برنامه:
برای دانلود کامل برنامه و فایل های پروژه به صورت رایگان به پایین صفحه مراجعه کنید.
#include <Servo.h> Servo s1; void setup() { s1.attach(9); } void loop() { s1.write(نوشتن درجه چرخش سروو مثالا از ۰تا۹۰درجه) }
پروژه:
راه اندازی سروو موتور با جواستیک توسط آردوینو:
اگر دنبال خرید قطعات هستی فقط کافیه به فروشگاه رباتیک ربات افزار سر بزنی 🧡
جو استیک :
دقت کنید جوی استیک با توجه به ساختار اهرمی مانند آن از دو پتانسیومتر در زوایه ۹۰ درجه بر روی یک پایه تشکیل شده است. این ماژول در حالتی که اهرمها هیچ حرکتی در راستای محور X و Y ندارند، خروجی ولتاژ ۲٫۵ ولت را تولید میکند.
با حرکت محور جوی استیک در راستای محور X و Y ولتاژ خروجی از ۰ تا ۵ ولت DC تغییر خواهد کرد. جوی استیک دارای ۴ پایه به ترتیب GND , 5v , VRx , VRy , SW میباشد. پایه VRx مربوط به تغییرات اهرم در راستای محور X یا همان محور افقی میباشد.
[icon name=”star-half-o” class=”” unprefixed_class=””] پایه VRy مربوط به تغییرات اهرم جوی استیک در راستای محور Y یا همان محور عمودی میباشد. پایه SW مربوط بهکلید فشاری بر روی ماژول میباشد.
جدول اتصال پایه های جو استیک به آردوینو:
پایه های جواستیک | پایه های آردوینو |
Vcc | 5v |
Gnd | Gnd |
VRX | A0 |
VRY | A1 |
جدول اتصال پایه های سروو موتور به آردوینو:
پایه سروو موتور | پایه آردوینو |
سیم قرمز | 5V |
سیم قهوه ای | GND |
سیم زرد | پایه 3 |
سیم زرد دومین موتور | پایه4 |
توجه داشته باشید در این آموزش ما از دو سروو موتور استفاده می نماییم
شمای فنی چگونه اتصال پایه های راه اندازی سروو موتور با آردوینو :
نمای پروتئوسی اتصال ماژول جو استیک و سروو به آردوینو:
دستورات راه اندازی سروو موتور:
[icon name=”circle-o” class=”” unprefixed_class=””] دستور:
#include <Servo.h>
این دستور برای فراخوانی و راه اندازی سروو موتور می باشد
مانند کد زیر:
#include <Servo.h>
[icon name=”circle-o” class=”” unprefixed_class=””]دستور:
Servo S1;
این دستور برای معرفی سروو موتور اولمان می باشد برای دستور بعد هم به اینصورت است
مانند کد زیر:
Servo S1;
[icon name=”circle-o” class=”” unprefixed_class=””]دستور:
int x=0;
در این قسمت ما یک متغییر X داریم که مساوی صفر را قرار داده ایم
مانند کد زیر:
int x=0;
[icon name=”circle-o” class=”” unprefixed_class=””]دستور:
S1.attach(3);
در این دستور ما تعریف کرده ایم که سروو موتور یک را به پایه 3 آردوینو متصل کرده ایم
مانند کد زیر:
S1.attach(3);
[icon name=”circle-o” class=”” unprefixed_class=””]دستور:
joy = analogRead(x);
در این دستور ما متغییر جو استیک را مساوی پایه خوانده شده متغییر X قرار داده ایم
مانند کد زیر:
joy = analogRead(x);
[icon name=”circle-o” class=”” unprefixed_class=””]دستور:
joy = map(joy, 0, 1023, 0, 180);
در این دستور ما متغییر جواستیک را مساوی زمانی که جو استیک درهر محوردر موقعیتی قرار می گیرد کرده ایم
مانند کد زیر:
joy = map(joy, 0, 1023, 0, 180);
[icon name=”circle-o” class=”” unprefixed_class=””]دستور:
S1.write(joy);
در این دستور زمانی که جواستیک در هر محوری قرار گیرد موتور به سرعت به همان طرف حرکت می کند
مانند کد زیر:
S1.write(joy);
[icon name=”circle-o” class=”” unprefixed_class=””]دستور:
delay(10);
در این دستور با زمان تاخیر را را تعریف کرده ایم
مانند کد زیر:
delay(10);
کد کامل:
برای دانلود کامل برنامه و فایل های پروژه به صورت رایگان به پایین صفحه مراجعه کنید.
//تعریف کتابخانه سروو به آردوینو #include <Servo.h> //تعریف دو متغییر به نام سروو ۱ و۲ برای دو موتور های استفاده شده در این پروژه Servo S1; Servo S2; //در این قسمت ما یک متغییر X داریم که مساوی صفر را قرار داده ایم int x=0; int y=1; int joy; void setup() { //در این دستور ما تعریف کرده ایم که سروو موتور یک را به پایه 3 آردوینو متصل کرده ایم S1.attach(3); S2.attach(4); } void loop() { //در این دستور ما متغییر جو استیک را مساوی پایه خوانده شده متغییر X قرار داده ایم 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); }
با ساخت پروژه بالا و انتشار فیلم آن در صفحات اینستاگرام خو و تگ کردن پیج Robotafzar کد تخفیف برای خرید از فروشگاه های ربات افزار بگیرید ، منتظر فیلما قشنگ شما هستیم 🧡
- در صورت مشکل در لینک دانلود یا خود فایل حتما در بخش خرابی لینک برامون بنویسید تا در سریع ترین زمان رسیدگی کنیم
- توجه فرمایید که اعلام گزارش خربی باعث بهتر شدن خدمات ما به شما خواهد بود
- برای دریافت لینک دانلود یک بار ثبت نام کنید و به صورت مستقیم دانلود کنید
برای مشاهده لینک دانلود لطفا وارد حساب کاربری خود شوید!
وارد شویدپسورد فایل : robotafzar.com گزارش خرابی لینک
Oops! We could not locate your form.
درباره امیرحسین تاراج بر
دانشجوی الکترونیک دانشگاه سراسری تهران و در زمینه ی آردوینو - رزبری پای در حال فعالیت هستم به ساخت رباتیک و کار های فنی علاقه مندم و در ربات افزار مشغول به کار هستم
نوشته های بیشتر از امیرحسین تاراج برمطالب زیر را حتما مطالعه کنید
راه اندازی ماژول التراسونیک srf-05 با آردوینو
راه اندازی OLED 7 PIN با آردوینو
آموزش راه اندازی کنترل LED با جوی استیک توسط آردوینو + پروژه
آموزش PWM و راه اندازی ماژول L298 با آردوینو
راه اندازی کی پد و نمایشگر 2*16 توسط آردوینو
راه اندازی lcd کاراکتری (16*2) با آردوینو
2 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
دیدگاهتان را بنویسید لغو پاسخ
برای نوشتن دیدگاه باید وارد بشوید.
سلام . برد اردوینو بدون درایور قادر به تأمین جریان دو یا سه سروو موتور داره ؟ نیاز. هست تغذیه موتورها مستقل باشه؟
اگر از همین سروو ها استفاده کنید بله