در این مقاله قصد داریم نمونه ی کامل از طراحی ربات اسپورت فیرا کاپ را قرار دهیم. این طراحی شامل فایل سه بعدی بدنه ربات، فایل لایه باز آلتیوم برای بردهای ربات و فایل برنامه ی اولیه است. برای دانلود فایلها به انتهای مقاله مراجعه کنید.
ابتدا شناختی راجع به مسابقات رباتهای ورزشی (اسپورت) پیدا کنیم.
نگاهی به قوانین مسابقات رباتهای ورزشی (اسپورت)
این ربات باید مسیری که به صورت خطی مشکی در زمین سفید است را دنبال کند. مسیر دارای پیچ وخم هایی است. در طول مسیر اصلی، مسیرهای فرعی وجود دارد که ربات را به آیتم های ورزشی میرساند. ربات باید وارد مسیرهای فرعی شده، آیتم ورزشی مورد نظر را انجام داده و مجددا به مسیر اصلی بازگردد.
هر آیتم به وسیله یک کارت رنگی که در کنار خط گذاشته می شود شناسایی می شود. این رنگ ها به صورت زیر مشخص شده اند.
رنگ زرد نشان دهنده وجود آیتم وزنه برداری در طول مسیر است. در آیتم وزنه برداری ربات باید وزنه ای به سنگینی حدود 500 گرم را تا ارتفاع 10 سانتی متر از زمین بلند کرده و بر روی سکو قرار دهد.
رنگ آبی نشان دهنده ی آیتم تیراندازی است. ربات وقتی وارد این آیتم می شود باید به یک سیبل که در فاصله ی یک متری از ربات قرار دارد تیر پرتاب کند.
رنگ نقره ای نشان دهنده ی آیتم هل دادن مانع است. ربات در این آیتم باید یک مکعب مستطیل به وزن حدود 500 گرم را هل دهد.
رنگ قرمز نشان دهنده ی آیتم دو و میدانی است. در این آیتم ربات باید به تعداد مشخص و با سرعت بیشتر به دور یک حلقه بچرخد و سپس خارج شود.
رنگ سبز نشان دهنده ی آیتم فوتبال است. در این آیتم ربات باید توپ را به یکی از دو دروازه ای که مقابل ربات است شوت کند. دروازه ی صحیح قبل از مسابقه توسط داور اعلام می شود.
طراحی ربات برای انجام آیتم ها
برای طراحی ربات از لحاظ فنی کارهایی که ربات باید انجام دهد را دسته بندی کرده و به ترتیب به معرفی اجزا و قطعات مورد نیاز هر قسمت می پردازیم.
تعقیب کردن خط
اولین کاری که این ربات باید بتواند انجام دهد تعقیب کردن خط است. این خط مسیری به رنگ سیاه در زمین سفید خواهد بود. برای انجام این کار می شود از دوربین و پردازش تصویر کمک گرفت ولی انجام این کار با استفاده از سنسورهای مادون قرمز بسیار ساده تر انجام می شود. برای این منظور تعدادی سنسور مادون قرمز به صورت شکل زیر در قسمت زیر ربات قرار می دهیم. هر کدام از این سنسورها میتوانند رنگ سیاه یا سفید مقابل خود را به خوبی تشخیص دهند. بنابراین به کمک آنها می توان متوجه شد که وضعیت ربات نسبت به خط چگونه است.
در مرحله ی بعد اطلاعات خروجی سنسورها باید پردازش شوند. برای این منظور از میکروکنترلر ATmega128 استفاده شده است. با توجه به محبوبیت نرم افزار آردوینو برای برنامه نویسی این آی سی از محیط برنامه نویسی آردوینو استفاده می شود. ولی از آنجاییکه این میکروکنترلر جزء گزینه های قابل انتخاب آردوینو نیست، باید کتابخانه ی MegaCore به آردوینو اضافه شود. برای نصب کتابخانه MegaCore مراحل زیر را انجام دهید.
|
در مرحله ی آخر وظیفه ی مکانیک ربات است که دستوراتی که از میکروکنترلر رسیده است را به حرکت تبدیل کند. برای این منظور 4 عدد موتور و چرخ برای ربات تعبیه شده است که بتواند ربات را به سمت های مختلف حرکت دهد.
موتورهای استفاده شده در این ربات از نوع گیربکس دار و انکودر دار هستند. گشتاور نسبتا بالا و در عین حال کوچک بودن کمیت هایی است که در انتخاب نوع موتور برای این ربات بسیار مورد توجه باید قرار بگیرند.
این موتور ها با نام ZGA25 شناخته می شوند و جزء موتورهای رایج بازار ایران است. برای ربات اسپورت سرعت موتور بهتر است بین 100 تا 200 دور در دقیقه باشد. ولی چنانچه مدل انکودر دار آن را پیدا نکردید میتوانید از مدل معمولی آن استفاده کنید. (جای پیچ های همه ی آنها با هم یکسان هستند)
مشخصات این موتور ها در جدول زیر آورده شده است
کمیت | مقدار | واحد |
سرعت | 100 | دور در دقیقه |
گشتاور | 1.5 | کیلوگرم بر سانتی متر |
ولتاژ نامی | 12 | ولت |
جریان نامی | 0.3 | آمپر |
جریان در حالت اِستال | 1.2 | آمپر |
برای کنترل موتور ها توسط میکروکنترلر به تقویت کننده هایی نیاز است تا جریان مورد نیاز موتور را تامین کند. برای این کار از درایور L298 استفاده شده است که برای راه اندازی 2 موتور مناسب است. همچنین کانکتورهایی برای اتصال موتورهای داینامیکسل و همچنین موتور سروو MG قرار داده شده است. در واقع این مدار مخصوص رباتهای اسپورت نیست و طوری طراحی شده است تا بتواند برای رباتهای مسابقات مختلف قابل استفاده باشد.
تشخیص کارتهای رنگی
رنگهایی که در زمین مسابقه علاوه بر سفید و سیاه باید توسط ربات تشخیص داده شوند عبارتند از :
سبز، قرمز، آبی، زرد، نقره ای
برای تشخیص این رنگ ها از ماژول APDS9960 استفاده می کنیم. این ماژول با رابط I2C کار میکند و رنگ اجسام مقابل خودش را به 3 مولفه ی اصلی سبز، آبی، قرمز تجزیه کرده و به کاربر می دهد. کاربر با تشخیص میزان شدت هر مولفه می تواند از رنگ مقابل سنسور مطلع شود.
با توجه به این که کارتهای رنگی میتوانند سمت چپ یا راست خط باشند، از دو عدد از این سنسورها در ربات استفاده شده است.
آیتم دو و میدانی
این آیتم نیاز به سنسور جدیدی ندارد و با برنامه نویسی می توان این آیتم را به خوبی انجام داد. در این آیتم ربات باید در یک محوطه ی بسته به تعداد مشخصی که توسط داور اعلام می شود بچرخد و سپس به ادامه ی مسیر بپردازد. مسیری که در این قسمت قرار دارد مسیر ساده ای است و زاویه های شکسته ندارد. بنابراین ربات می تواند این قسمت را با سرعت بالاتری انجام دهد.
آیتم هل دادن مانع
این آیتم هم نیاز به سنسور جدید ندارد و تنها با برنامه نویسی میتوان این آیتم را انجام داد. ولی از لحاظ مکانیکی، بدنه ی ربات باید توانایی هل دادن وزنه ی نیم کیلوگرمی را داشته باشد.
شوت کردن توپ
در این آیتم ربات باید یک توپ را به سمت دروازه ی صحیح شوت کند. جهت صحیح دروازه با الگوریتم های برنامه نویسی مشخص خواهد شد. در اینجا به یک شوتر احتیاج داریم تا توپ را شوت کند. برای این کار از یک موتور 500RPM استفاده شده است. به این موتور یک اهرم متصل است که با روشن شدن موتور به سرعت به سمت بالا می آید و باعث شوت شدن توپ می شود.
برای اینکه ربات در فاصله ی مناسبی از توپ قرار بگیرد، یک جفت سنسور مادون قرمز در دو طرف شوتر قرار گرفته اند. وقتی ربات به توپ برسد، ارتباط بین فرستنده و گیرنده ی مادون قرمز قطع می شود و از این طریق ربات متوجه رسیدن به توپ می شود.
6- وزنه برداری
این آیتم جزء سخت ترین کارهایی است که ربات باید بتواند انجام دهد. در این آیتم ربات باید یک وزنه ی 500 گرمی را از سکوی اول بلند کند و روی سکوی دوم بگذارد. برای اینکار به یک بازو احتیاج است که به صورت زیر طراحی شده است.
موتوری که برای اینکار استفاده شده است از نوع سروو و از شرکت داینامیکسل انتخاب شده است. این مدل موتور AX12 نام دارد که مشخصات آن در جدول زیر آورده شده است.
Item | Specifications |
Baud Rate | 7,843 [bps] ~ 1 [Mbps] |
Weight | AX-12 (53.5 [g]), AX-12+ (53.5 [g]), AX-12A (54.6 [g]) |
Dimensions (W x H x D) | 32 X 50 X 40 [mm] |
Resolution | 0.29 [°] |
Running Degree | 0 ~ 300 [°] |
Motor | Cored |
Gear Ratio | 254 : 1 |
Stall Torque | 1.5 [N.m] (at 12 [V], 1.5 [A]) |
No Load Speed | 59 [rev/min] (at 12V) |
Operating Temperature | -5 ~ +70 [°C] |
Input Voltage | 9.0 ~ 12.0 [V] (Recommended : 11.1V) |
Command Signal | Digital Packet |
Physical Connection | TTL Level Multi Drop Bus |
ID | 254 ID (0~253) |
Feedback | Position, Temperature, Load, Input Voltage, etc |
Gear Material | Engineering Plastic(Full) |
Case Material | Engineering Plastic(Front, Middle, Back) |
7- تیراندازی
برای این آیتم یک طراحی مکانیکی نیاز است. باید یک تیرکمان طراحی کرد به طوریکه ضامن رها کننده ی تیر توسط برنامه کنترل شود. برای این منظور تیرکمان به صورت زیر طراحی شده است.
قسمت مشکی رنگ زیر تیر کمان، ضامن تیر است و وقتی به سمت پایین کشیده شود تیر رها می شود. برای پایین کشیدن ضامن از همان اهرم وزنه برداری استفاده می کنیم. به این صورت که وقتی اهرم از مقدار معمول خود عقب تر برود به ضامن برخورد می کند و ضامن را به سمت پایین می کشد و تیر رها می شود.
و در نهایت قسمت های مختلف را روی بدنه قرار می دهیم و ظاهری برای ربات طراحی می کنیم.
دانلود فایلهای ربات
تمامی فایلهای مورد نیاز ساخت ربات در لینک زیر موجود است.
For downloading Robot 3d files click here
برای دانلود فایلهای ربات اینجا کلیک کنید.