پیش از این در خصوص ربات بازو MeArm و چگونگی ساخت آن، آموزش دادیم. در این آموزش با استفاده از برد آردوینو و دو عدد جوی استیک، این ربات بازو را کنترل میکنیم. همچنین روش تهیه قطعات برش خورده و آماده مونتاژ را هم توضیح دادهام. از آنجایی که در ساخت ربات بازو meArm از سرو موتور استفاده شده است، بسته به خلاقیت کاربر، می توان از سخت افزارهای متعددی برای مدیریت آن استفاده کرد. در این آموزش از یک آردوینو uno R3 استفاده شده است. سروو موتورها به کمک ۲ عدد جوی استیک کنترل میشوند. یکی از مهمترین قسمتها که چالش زیادی هم دارد، کالیبره کردن سرو موتورها میباشد. در ادامه با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
راه اندازی ربات بازو MeArm
در آموزش قبلی راجع به اتصالات فیزیکی و به عبارتی روش سرهم کردن قطعات مکانیکی، کامل توضیح دادیم. در این پست روش کالیبره کردن سرو موتورها و راه اندازی را با استفاده از برد آردوینو و نرم افزار آردوینو IDE آموزش خواهم داد. دقت داشته باشید که ربات بازو را میتوانید با بردهای رزبری پای و یا تراشههای میکرو AVR هم راه اندازی کنید. یک سرو موتور کوچک در مرکز قرار دارد که از یک طرف به شاسی اصلی و از سمت شافت، کلیه اجزا ربات بازو به آن متصل شدهاند. دو سرو در سمت چپ و راست بازو و یک سرو هم برای گریپر یا فک قرار گرفته است. به تصویر زیر دقت کنید.
کالیبراسیون Servo Motor بازو
پیش از هر اقدامی باید سرو موتورها را کالیبره کنیم. همانطور که اشاره کردم، این بخش یکی از چالشهای ساخت ربات بازو Mearm میباشد. ابتدا باید سرو موتورها را توسط برد آردوینو کالیبره کرده و شافت آنها را در محل مناسب جاگیری کنیم. همانطور که در تصویر زیر مشاهده میکنید، چهار عدد سرو موتور را نام گذاری کردهایم. چنانچه نمیدانید که سرو موتورها برای کدام بخش از ربات هستند، در انتهای همین پست سوالتان را مطرح کنید. کدهای زیر جهت کالیبره کردن هر چهار عدد سرو موتور میباشد. آنها را کپی کرده و به IDE آردوینو منتقل کنید. سپس اتصالات را باید برقرار کنید.
#include<Servo.h> Servo servoX; Servo servoY; Servo servoV; Servo servoH; void setup(){ servoX.attach(3); servoY.attach(5); servoV.attach(6); servoH.attach(9); } void loop(){ servoH.write(55); servoX.write(70); servoY.write(100); servoV.write(30); delay(2000); servoH.write(20); delay(2000); servoH.write(20); servoX.write(90); servoY.write(90); servoV.write(90); delay(2000); servoH.write(40); delay(2000); }
اتصالات سرو موتورها را به ترتیب زیر برقرار کنید. دقت داشته باشید که هر سرو موتور دارای یک پایه تغذیه و یک پایه GND میباشد. اتصال این دو پایه هم باید برقرار شود. این موارد در پست ۳ روش راه اندازی سرو موتور با آردوینو کاملا آموزش داده شده است. نکتهی مهم برای راه اندازی سروو موتورها، نیاز به یک منبع تغذیه مجزا دارید. حتما از یک منبع تغذیه جداگانه با ولتاژ ۵ الی ۶ ولت استفاده کنید. جریان برد آردوینو برای راه اندازی سروو موتورها کافی نمیباشد.
- سروو موتور وسط (middle) را به پایه ۱۱ آردوینو
- سروو موتور چپ (left) را به پایه ۱۰آردوینو
- سروو موتور راست (right) را به پایه ۹آردوینو
- سروو موتور گیره(claw) را به پایه ۶ آردوینو
اتصال جوی استیک
ماژول جوی استیک قابلیت چرخش در چهار جهت را دارد. همچنین دو پایه آنالوگ، یک پایه دیجیتال و پایههای تغذیه را بر روی خود جای داده است. در این پروژه از پایه دیجیتال استفاده نمیکنیم. پایه دیجیتال جوی استیک با تحریک شاسی اصلی به صورت کلیک، یک فرمان دیجیتال ارسال خواهد کرد. یکی از پایههای جوی استیک را به VRX و دیگری را به VRY وصل میکنیم. پایهها را به ترتیب زیر متصل کنید.
- جوی استیک ۱ :
- VRX = analog 0
- VRY = analog 1
- منفی منبع تغذیه = GND
- سیم مثبت منبع تغذیه = ۵v+
- جوی استیک ۲ :
- VRX = analog 3
- VRY = analog 4
- منفی منبع تغذیه = GND
- سیم مثبت منبع تغذیه = ۵v+
کتابخانه آردوینو ربات بازو
ربات بازوی meArm از یک کتابخانه برای حرکت سرو موتورها به کمک جوی استیک اسنفاده میکند. ابتدا کتابخانه را بر روی کامپایلر Arduino IDE نصب کنید. کتابخانه سرو موتورها به صورت پیشفرض بر روی Arduino IDE قرار دارد. اگر کتابخانهها را به Arduino IDE اضافه نکنید، در هنگام آپلود شدن کدها بر روی برد با خطا کتابخانه روبه رو خواهید شد. چنانچه روش نصب کتابخانه در آردوینو را نمیدانید، به پست نصب کتابخانه در آردوینو IDE مراجعه کنید.
#include "meArm.h" #include <Servo.h>
کد آردوینو ربات بازو
کدهای زیر را کپی کرده و از طریق نرم افزار Arduino IDE روی برد آپلود کنید. دقت داشته باشید که کلیه موارد قبلی را باید به درستی اجرا کرده باشید. در غیر این صورت به هنگام آپلود با مشکل مواجه خواهید شد.
#include "meArm.h" #include <Servo.h> int basePin = 11; // Midle int shoulderPin = 10; // Left int elbowPin = 9; // Right int gripperPin = 6; // Claw int xdirPin = 0; // vrx بر روی جوی استیک ۱ int ydirPin = 1; // vry بر روی جوی استیک ۱ int zdirPin = 3; // vrx بر روی جوی استیک ۲ int gdirPin = 2; // vry بر روی جوی استیک ۲ meArm arm; void setup() { arm.begin(basePin, shoulderPin, elbowPin, gripperPin); } void loop() { float dx = map(analogRead(xdirPin), 0, 1023, -5.0, 5.0); float dy = map(analogRead(ydirPin), 0, 1023, 5.0, -5.0); float dz = map(analogRead(zdirPin), 0, 1023, 5.0, -5.0); float dg = map(analogRead(gdirPin), 0, 1023, 5.0, -5.0); if (abs(dx) < 1.5) dx = 0; if (abs(dy) < 1.5) dy = 0; if (abs(dz) < 1.5) dz = 0; if (!(dx == 0 && dy == 0 && dz == 0)) arm.goDirectlyTo(arm.getX() + dx, arm.getY() + dy, arm.getZ() + dz); if (dg < -3.0) arm.closeGripper(); else if (dg > 3.0) arm.openGripper(); delay(50); }
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد.
پروژه و دریافت بن ارسال رایگان
برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکههای اجتماعی از جمله آپارات و اینستگرام، با هشتگهای دیجی_اسپارک دانشجوکیت digispark daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۲۰۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید. در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.
سلام
آیا امکان تهیه پایه های ربات وجود دارد؟
با سلام
بله برای این منظور از لینک خرید ربات بازو Mearm استفاده کنید.
لطفا اگر پی دی افی به صورت مقدماتی برای ساخت مدلهای کنترلی مثل ماشین کنترلی، دارید بفرستید به ایمیل
******vani@gmail.com
با سلام
در حال حاضر همین توضیحاتی هست که در سایت اعلام شده است.
لطفا بفرمایید چطور میشه کدها رو روی برد آپلود کرد؟ اگر ممکنه کتاب خلاصه فارسی پیشنهاد کنید برای ساخت تجهیزات کنترل از راه دور.
با سلام
برای آپلود کدها بایستی به کمک نرم افزار آردوینو اقدام کنید. طبق همین الگو کدها را آپلودی میکنید.
با سلام و سپاس فراوان. اما همانطور که خودتون فرمودین کالیبره کردن سروو ها مهمترین بخش کاره ولی زود ازش رد شدین و کامل توضیح ندادین. خب داخل loop داریم هی زاویه موتور ها رو تغییر میدیم. خب اینجوری که نمیشه وقتی آردوینو رو خاموش کنیم و موتور ها رو بخوایم مونتاژ کنیم هر کدام از موتور ها در زاویه نا معلومی ایستاده. شفت رو با چه زاویه ای بهش متصل کنیم؟ این قسمت گنگ هست. یعنی این کد که به تنهایی کار کالیبره کردن رو انجام نمیده فقط زاویه موتور ها رو تغییر میده. بخش مهم کار اینه که شافت رو بتونیم درست سر جاش قرار بدیم که من متوجه نشدم باید چیکار کنم. خواهش می کنم راهنمایی بفرمایید.
با سپاس
با سلام و تشکر ازشما
مواردی که شما میفرمایید در بخش کالیبراسیون این آموزش قرار دارد. کافیست کدهایی که ارایه شده است را روی برد آپلود کنید. البته اتصالات سرو موتورها به ترتیب دیتاشیت اهمیت دارد.
شاید سوالم رو بد مطرح کردم. ببینید فرض کنید کد کالیبره کردن رو بر روی آردوینو آپلود کردیم و اجرا کردیم. در این حالت فقط برای سادگی کار، چنگک رو در نظر میگیریم که به زاویه ۹۰ درجه میره. حالا میخوایم سروو را به شفت چنگک وصل کنیم. در این حالت باید چنگک بسته باشد یا باز یا در وسط باشد؟ به همین ترتیب برای سایر موتور ها. چون اگر سرووی کالیبره شده رو به بازویی که در زاویه ای نادرست (که نمیدانم درستش چجوریه) قرار داره وصل کنیم، هنگام حرکت ممکنه که بازو به انتها برسه و فضایی برای چرخش بیشتر وجود نداشته باشه. با تشکر
بله حق با شماست، متاسفانه بنده این آموزش را راه اندازی نکردهام و دقیقا نمیدانم این مورد را چطور باید رفع کرد. چنانچه روش اجرا را میدانید، لطفا از همین طریق برای دیگر کاربران هم اعلام بفرمایید.
در ضمن یه سوال دیگه. left و Right موتور ها نسبت به وقتی هست که از روبرو به ربات بازو و چنگک نگاه می کنیم؟ یا از پشت؟
با سلام
بله از روبرو میباشد.
سلام ببخشید نوع سروو موتور ۳۶۰ درجه است یا ۱۸۰ درجه؟
با سلام
این مورد به نوع پروژه و نیاز شما در پروژه مشخص میشود و تفاوتی ندارد.
سروو موتور ۳۶۰ در این ربات نمیتونه کاربرد داشته باشه … چون با گردش ۳۶۰ درجه ای برای کف (گردش افقی) و همینطور سگمنت های دیگر بازو، سیمکشی ها دچار کشیدگی میشه و نمیذاره گردش ۳۶۰ اتفاق بیافته …
از همه مهمتر اینکه شما برای سرووی ۳۶۰ درجه نمیتونید «تعیین زاویه» کنید. علتش هم اینه که پتانسیومتری که در سرووهای ۱۸۰ و ۲۷۰ وجود داره، در سرووهای ۲۶۰ حذف شده که باعث گردش ۳۶۰ بشه … در این سرووها فقط به جهت گردش (چپ گرد و راست گرد) و سرعت چرخش دسترسی و کنترل داریم.
بنابراین برای خانواده های Robot Arm باید از سرووهای کمتر از ۳۶۰ استفاده بشه.
با سلام
کاربر گرامی از اینکه اطلاعات خود را با دیگر کاربران به اشتراک میگذارید، سپاسگزاریم.
با سلام و خدا قوت. بنده دنبال ساده ترین ماژولی هستم که قطع یا وصل بودن یک کنتاکت را از طریق سیمکارت برایم اس ام اس کند. ممنون میشم قیمت را هم اعلام بفرمایید.
با سلام
سوالتان خیلی کلی است. کمی واضحتر درخواستتان را اعلام کنید تا امکان راهنمایی وجود داشته باشد. همچنین پیشنهاد میکنم به آموزش کنترل وسایل برقی با SMS مراجعه کرده و سوالتان را در آنجا مطرح کنید.
سلام ببخشید من دانش اموز هستم و میخوام این پروژه رو انجام بدم. تو نرمافزار اردینو که میخوام این برنامه رو کامپایل کنم ارور میده به meArm کتابخانه سرو رو هم نصب کردم.مشکل از چی هست؟؟
با سلام
لطفا ارور را کپی و ارسال کنید تا بررسی شود.
منم همین مشکلو دارم
با سلام
لطفا مشکل خود را اعلام کنید تا راهنمایی شود.
با سلام
سرو موتور x y v H کدام سرو موتور روبات هستند ؟ در داخل برنامه سرو موتور ها به پایه های ۳ ۵ ۶ ۹ متصبل است اما در متن به پایه های ۱۱ ۱۰ ۶ ۹ متصل است
با سلام
در این خصوص تفاوتی ندارد. سرو موتورها را به هر پایه ای که متصل میکنید همان پایه ها را در کد برنامه وارد کنید.
سلام عرض سلام و خسته نباشید اگر میشه ویدیو
از آموزش و کار ربات تون هم بگذارید
ممنون از آموزش خوبتون
با سلام
کاربر گرامی ضمن تشکر از شما در اینستاگرام لیدی پای یک ویدیو از عملکرد آن گذاشته شده است.
منظور شما از سیم مثبت منبع تغذیه و منفی منبع تغذیه در اتصال جوی استیک ها چیست؟
با سلام
روی ماژول جوی استیک، پایه ها نام گذاری شدهاند. بایستی این مورد را موقع اتصال رعایت کنید.
سلام
باید برنامه ی جوی استیک جدا و کد سرو جداگانه نوشته شود یا دنبال هم.
با سلام
خیر هر دو را بایستی در یک برنامه بنویسید.
سلام مجدد برنامه به هنگام بارگذاری ارور میده که mbed را نداره ای کاش ای کاش شما کتابخانه می آرم رو اینجا بگذارید واقعا جلوی دانش آموزانم زمان زیادی صرف کردم که کتابخانه رو بیابم و واقعا \یدا نشد و از طریق خود برنامه هم به هیچ عنوان بارگذاری نشد.
با سلام
لطفا از لینک دانلود کتابخانه MeArm کل فایل را دانلود کنید. سپس در فولدری که آردوینو روی سیستم نصب شده است، کپی کرده و نام آن را به ‘meArm’ تغییر دهید.
سلام
من این ربات رو تهیه و سرهم کردم
الان مثلا میخوام چنگک رو راه اندازی کنم
اومدم مشابه آموزش کار با سرو موتور مراحل رو رفتم. منتها هر زاویه ای مینویسم سرو موتور کار خودشو میکنه و چنگک رو میبنده
زاویه رو عوض میکنم مثلا جای دیگه بایسته ولی باز میره جای قبلی!
بیرون هم یه سرو موتور رو گذاشتم و برنامه رو نوشتم و دیدم زاویه ش تغییر میکنه
این از چی ناشی میشه؟ سرو موتور سوخته یا چی؟
با سلام
در ابتدا بایستی در کد برنامه کالیبره انجام شود. زاویه درست را تشخیص دهید و سپس در کد برنامه جایگزین کنید.
بررسی و نتیجه را از همین طریق اعلام کنید.
سلام خسته نباشید
چجوری میتونیم یه وقت مشاوره بگیریم واقعا لازمه و زمان زیادی هم ندارم ممنون میشم اگه راهنمایی کنید
با سلام
کاربر گرامی از طریق ارسال تیکت در فروشگاه درخواست خود را ارسال کنید تا تیم فنی راهنمایی کنند.
سلام. میشه مشخص کنید هرکدوم از سروو های x,y,h,v برای کدوم قسمت ربات هست؟ راست یا چپ یا وسط یا گیره
با سلام
به ترتیب claw
right
left
middle
سلام تو نرم افزار اردینو که میخوام این برنامه رو کامپایل کنم ارور میده به meArm کتابخانه مشکل از چی هست؟؟
با سلام
لطفا متن ارور را ارسال کنید.
سلام در این پروژه با یک جوی استیک انجام شده یا دوتا؟؟
با سلام
دو عدد جوی استیک نیاز دارید.
با سلام و عرض ادب و احترام
در خصوص کتابخانه می آرم می خواستم مطلبی بگم
من در منیج لایبرری عبارت meArm را سرچ کردم اما چیزی نمایش نداد
خواستم بدونم لینکی برای دانلود کتابخانه هست یا خیر
اگر نیست چگونه در اردوینو دانلود کنم
با سلام
بله میتوانید از طریق گیت هاب اقدام به دانلود کتابخانه و نصب آن به صورت دستی روی آردوینو را انجام دهید.
با سلام و خسته نباشی من در لینک دانلود کد میآرم شدم در جیت هاب و کد را دنلود کردم ام به من خطای no such file or directory میده چکار باید انجام داد؟
با سلام
کتابخانه های مربوطه را دانلود کنید.
با عرض سلام وتشکر از مطالب بالا
جناب چرا مراحل ساخت را این قدر تیکه تیکه کردید الان نقشه راه انداز مدار کجاست چرا جوی استیک نداره؟
ایا هر بار بعد استفاده باید کالیبره بشه؟برای دفعه بعد
خورتان ساختید این پروژه را جواب میده لطفا از کار کردش فیلم بزارید
سلام و تشکر از همراهی شما
برای راه اندازی بازو می آرم هم میتوانید از جوی استیک استفاده کنید و هم میتوانید از میکروسوئیچ استفاده کنید. مهم ماهیت فرمان دادن است. در خصوص کالیبره هم خیر، یکبار بایستی کالیبره کنید. بله ساخته شده است ولی فیلم از کارکرد آن تهیه نکردهایم.