راه اندازی سروو موتور با آردوینو + پروژه بازو رباتیک
سلام امروز میخوایم با شما به راه اندازی سروو موتور با آردوینو بپردازیم که یک پروژه جذاب میتونیم باهاش راه بندازیم که در صنعت ماشین آلات صنعتی کاربرد زیادی داره ، که همه ما اونو به اسم بازو رباتیک دو محوره میشناسیم.
توضیح مختصر در مورد راه اندازی سروو موتور با آردوینو:
ما با راه اندازی سروو موتور با آردوینو قصد داریم تا شما را با سروو موتور آشنا کنیم و همچنین استفاده آن در صنایع همچون بازو های صنعتی ، صنایع پروازی و…
وسایل مورد نیازبرای راه اندازی سروو موتور با آردوینو:
پتانسیومتر
اگر دنبال خرید قطعات هستی فقط کافیه به فروشگاه رباتیک ربات افزار سر بزنی 🧡
آشنایی با عملکرد قطعات در راه اندازی سروو موتور با آردوینو :
سروو موتور:
سروو موتور ها مدل های زیادی دارن ، اما بعنوان نمونه در راه اندازی سروو موتور توسط آردوینو از سروو موتور SG92R استفاده می نماییم. که نسبت به قیمت و حجم مناسبش پرکاربرد می باشد. این موتور 3 سیمه ، که دوسیم آن مربوط به تغذیه (سیم قرمز و قهوه ای)و سیم دیگر سیم کنترل(سیم زرد)که به میکرو(آردوینو) وصل می شود.
بازه ی حرکت موتور 180 درجه می باشد که میشه با زاویه ی 90 درجه به طرفین بچرخند. زاویه ی چرخش با عرض پالسی تعیین میشه که به سیم کنترلی اعمال میشه.
مورد استفاده این موتورها:
صنایعی مثل روباتیک . هواپیما سازی..
قسمت های تشکیل دهتده سروو موتور :
موتور DC
قسمت مکانیکی برای افزایش گشتاور
مدار حسگر موقعیت و کنترل موتور
نکته جالبی که در کتابخونه ی Servo در آردوینو وجود دارد
این است که ، توابع کتابخونه ی Servo.h تا 12 موتور در بردهای معمولی و 48 موتور توی بردهای سری Mega را می توانند پشتیبانی کنند.
البته بدی هایی هم دارند ، مثلا توی بردهای غیر Mega ، هنگام استفاده از این توابع ،عملکرد PWM پایه های 9 و 10 غیرفعال میشه و توی بردهای Mega اگر تعداد موتور ها از 12 تا بیشتر بشه پایه های 11 و 12 خروجی PWM نمیدن.
نمای فنی پتانسیومتر:
پتاسیومتر چیست؟
مقاومت متغییر یا پتاسیومتر در واقع از 2 مقاومت متغییر تشکیل شده استو دارای 3پایه است، و پایه وسط آن مقاومت را کم و زیاد می کند. این قطعه وظیفه محدود كردن جريان و ايجاد ولتاژ را دارد و واحد سنجش این قطعه همانند مقاومت اهم و آن را با علامت Ω نمایش میدهند. دراثرکم و زیاد کردن مقاومت در پتاسیومتر،سروو ما در جهت عقربه ساعت و بالعکس چرخش و تغییر حالت می دهد.
به دلخواه از سمت چپ یا راست یک کدام را (VCC)و یکی دیگر را (GND ) و پایه وسط پایه متغییر ولتاژ است.
جدول اتصال پایه ها :
آردوینو | سروو موتور |
پین ۹ | سیم زرد |
5v | سیم قرمز |
gnd | سیم قهوه ای |
A0 | پایه پتانسیومتر |
یکی مثبت و دیگر منفی | دو پایه دیگر پتانسیومر |
شمای چگونه اتصال پایه پتانسیومتر به آردوینو:
دستورات راه اندازی سروو موتور با پتانسیومتر:
دستور:
#include <Servo.h>
دراین دستور ما کتابخانه سروو موتور را فراخوانی کرده ایم
مانند کد زیر:
1 |
#include <Servo.h> |
دستور:
Servo s1;
در این دستور ما نام سروو مان را s1 نام گذاری کرده ایم
مانند کدزیر:
1 |
Servos1; |
دستور:
int a;
در این دستور ما متغییرa را معرفی کرده ایم تا مقدار آنالوگ پتانسیومتر در آن ریخته شود
مانند کد زیر:
1 |
inta; |
دستور:
s1.attach(9);
در این دستور ما تعریف می کنیم که پایه سروو موترمان به کدام پایه آردوینو متصل است
مانند کد زیر:
1 |
s1.attach(9); |
دستور:
a = analogRead(A0);
در این دستور آردوینو مقدار پتانسیومتر را که آنالوگ می باشد را می خواند
مانند کد زیر:
1 |
a = analogRead(A0); |
دستور:
a= map(a, 0, 1023, 0, 180);
در این دستور ما تابع map را تعریف کرده ایم تا مقدار آنالوگ پتانسیومتر از ۰ تا ۱۰۲۳ بین درجه ی سروو(servo) از ۰ تا ۱۸۰ تناسب بندی کند
مانند کد زیر:
1 |
a = map(a, 0, 1023, 0, 180); |
دستور:
s1.write(a);
در این دستور زمانی که پتانسیومتر در موقعیتی قرار گیرد سروو به همان سمت می رود
مانند کد زیر:
1 |
s1.write(a); |
سورس کامل برنامه:
برای دانلود کامل برنامه و فایل های پروژه به صورت رایگان به پایین صفحه مراجعه کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#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 |
شمای اتصال پایه ها:
دستورات راه اندازی سروو موتور بدون پتانسیومتر:
دستور:
#include <Servo.h>
در این دستور ما کتابخانه سروو را معرفی کرده ایم
مانند کد زیر:
1 |
#include <Servo.h> |
دستور:
Servo s1;
در این دستور ما نام سروو مان را s1 نام گذاری کرده ایم
مانند کد زیر:
1 |
Servo s1; |
دستور:
s1.attach(9);
در این دستور ما تعریف می کنیم که پایه سروو موترمان به کدام پایه آردوینو متصل است
مانند کد زیر:
1 |
s1.attach(9); |
دستور:
s1.writeنوشتن درجه مورد نظرمان مثالا از ۰تا۹۰درجه);
در این دستور ما اندازه چرخش موتور را به سروو تعریف می کنیم(pwm)
مانند کد زیر:
1 |
s1.writeنوشتن درجه مورد نظرمان مثالا از ۰تا۹۰درجه); |
سورس کامل برنامه:
برای دانلود کامل برنامه و فایل های پروژه به صورت رایگان به پایین صفحه مراجعه کنید.
1 2 3 4 5 6 7 8 9 10 |
#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 یا همان محور افقی میباشد.
پایه VRy مربوط به تغییرات اهرم جوی استیک در راستای محور Y یا همان محور عمودی میباشد. پایه SW مربوط بهکلید فشاری بر روی ماژول میباشد.
جدول اتصال پایه های جو استیک به آردوینو:
پایه های جواستیک | پایه های آردوینو |
Vcc | 5v |
Gnd | Gnd |
VRX | A0 |
VRY | A1 |
جدول اتصال پایه های سروو موتور به آردوینو:
پایه سروو موتور | پایه آردوینو |
سیم قرمز | 5V |
سیم قهوه ای | GND |
سیم زرد | پایه 3 |
سیم زرد دومین موتور | پایه4 |
توجه داشته باشید در این آموزش ما از دو سروو موتور استفاده می نماییم
شمای فنی چگونه اتصال پایه های راه اندازی سروو موتور با آردوینو :
نمای پروتئوسی اتصال ماژول جو استیک و سروو به آردوینو:
دستورات راه اندازی سروو موتور:
دستور:
#include <Servo.h>
این دستور برای فراخوانی و راه اندازی سروو موتور می باشد
مانند کد زیر:
1 |
#include <Servo.h> |
دستور:
Servo S1;
این دستور برای معرفی سروو موتور اولمان می باشد برای دستور بعد هم به اینصورت است
مانند کد زیر:
1 |
Servo S1; |
دستور:
int x=0;
در این قسمت ما یک متغییر X داریم که مساوی صفر را قرار داده ایم
مانند کد زیر:
1 |
int x=0; |
دستور:
S1.attach(3);
در این دستور ما تعریف کرده ایم که سروو موتور یک را به پایه 3 آردوینو متصل کرده ایم
مانند کد زیر:
1 |
S1.attach(3); |
دستور:
joy = analogRead(x);
در این دستور ما متغییر جو استیک را مساوی پایه خوانده شده متغییر X قرار داده ایم
مانند کد زیر:
1 |
joy = analogRead(x); |
دستور:
joy = map(joy, 0, 1023, 0, 180);
در این دستور ما متغییر جواستیک را مساوی زمانی که جو استیک درهر محوردر موقعیتی قرار می گیرد کرده ایم
مانند کد زیر:
1 |
joy = map(joy, 0, 1023, 0, 180); |
دستور:
S1.write(joy);
در این دستور زمانی که جواستیک در هر محوری قرار گیرد موتور به سرعت به همان طرف حرکت می کند
مانند کد زیر:
1 |
S1.write(joy); |
دستور:
delay(10);
در این دستور با زمان تاخیر را را تعریف کرده ایم
مانند کد زیر:
1 |
delay(10); |
کد کامل:
برای دانلود کامل برنامه و فایل های پروژه به صورت رایگان به پایین صفحه مراجعه کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
//تعریف کتابخانه سروو به آردوینو #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 گزارش خرابی لینک
درباره امیرحسین تاراج بر
دانشجوی الکترونیک دانشگاه سراسری تهران و در زمینه ی آردوینو - رزبری پای در حال فعالیت هستم به ساخت رباتیک و کار های فنی علاقه مندم و در ربات افزار مشغول به کار هستم
نوشته های بیشتر از امیرحسین تاراج بر
دیدگاهتان را بنویسید