• برچسب ها: آردوینو | ساخت ربات | سنسور
  • 0.0/5 rating (0 votes)
  • یکشنبه, 11 مرداد 1394

هدف ما در این قسمت آموزش گام به گام ساخت ارزان قیمت ترین ربات ممکن با استفاده از آردوینو است. با ما همراه شوید.

 

قطعات مورد نیاز :

آردوینو UNO R3 × 1  
کابل USB × 1  
برد بورد × 1  
ماژول فاصله سنج GP2Y0A21YK0F × 1  
موتور سروو چرخش پیوسته × 2  
جا باتری قلمی 4 تایی × 1  
سیم جامپر × 1  
باتری قلمی AA × 4  
شاسی ربات × 1  

مراحل ساخت:

در ابتدا نیاز به نصب نرم افزار آردوینو (Arduino IDE Software) داریم. این نرم افزار را می توانید از لینک زیر دانلود کنیم.

 دانلود نرم افزار آردوینو

پس از اینکه این نرم افزار را نصب کردیم می توانیم برنامه ی مورد نظر را در آن نوشته و میکروکنترلر خود را پروگرام کنیم. ما برای برنامه ریزی آردوینو از زبان برنامه نویسی c استفاده می کنیم.

محیطی که در آن کدهای برنامه نوشته می شوند اسکچ(Sketch ) نام دارد.

طرز ساخت:

نرم افزار آردوینو را باز کنید. پس از باز کردن این نرم افزار به طور پیش فرض یک اسکچ جدید باز می شود.

برای مثال یک برنامه ی نمونه را از *File → Examples → 01.Basics → Blink*باز کنید.

این برنامه را از قسمت *Sketch → Verify/Compile* کامپایل کنید. بعد از کامپایل کردن برنامه جمله ی Done Compiling دیده می شود.

با استفاده از کابل USB آردوینو خود را به لپ تاپ متصل کنید. پس از اتصال می توانید دستگاه های متصل به لپ تاپ را از قسمت *Tools → Serial Port* مشاهده کنید. دستگاه خود را انتخاب کنید. اکنون قادر خواهید بود برنامه ی (اسکچ) خود را روی آردوینو آپلود کنید.

برای آپلود کردن برنامه به سادگی می توان دکمه upload را از قسمت toolbar فشار دهید و یا از قسمت *File → Upload* فایل خود را بر آردوینو آپلود کنید. در این هنگام چراغ های مربوط به فرستادن و گرفتن داده بر روی آردوینو شروع به چشمک زدن کرده و سپس جمله ی Done Uploading بر روی اسکچ نمایان می شود.

با انجام این مراحل شما می توانید میکروکنترلر خود را برنامه ریزی کنید. حال به سراغ پروژه ی اصلی خود می رویم.

اتصال سنسور IR

محدوده ی وسیعی از سنسورها قابلیت اتصال به آردوینو را دارند. ما در اینجا از سنسور مسافت مادون قرمز GP2Y0A21YK0F برای اندازه گیری فاصله ی اشیا از ربات استفاده می کنیم. محدوده ی اندازه گیری این سنسور از 10 سانتی متر تا 80 سانتی متر می باشد. اتصال این سنسور به آردوینو بسیار ساده است. همانطور که در عکس فوق نشان داده شده است پایه های سنسور به پین های آردوینو مطابق شکل متصل می شوند. برای کالیبره کردن این سنسور از کد زیر استفاده می کنیم.

این اسکچ مقادیر ولتاژ خوانده شده از پین AO را به سانتی متر تبدیل می کند. برای این منظور از یک جدول(آرایه ی دو بعدی) که برخی مقادیر ولتاژ را به مقادیر فاصله ی متناظر با آن ارتباط می دهد. باید متذکر شویم که آردوینو از یک مبدل 10 بیتی آنالوگ به دیجیتال استفاده می کند به این مفهوم که ولتاژ آنالوگ 0 تا 5 ولت به یک عدد دیجیتال بین 0 تا 1023 تبدیل می شود.

اگر بعد از کامپایل کردن و آپلود کردن این اسکچ گزینه ی *Tools → Serial Monitor* را انتخاب کنید می توانید مقدار آنالوگ فعلی و فاصله ی متناظر با آن را که فاصله تا شی مقابل ربات به سانتی متراست مشاهده کنید. می توانید این فاصله را با خط کش محاسبه کرده و با فاصله ی نشان داده شده توسط سنسور مقایسه کنید.

اگر فاصله ی محاسبه شده توسط سنسور از دقت کافی برخوردا نیست باید مقادیر متناظربین ولتاژ و فاصله در جدول را تا زمانیکه به دقت کافی برسید خودتان تنظیم کنید.

با انجام این مراحل شما یاد گرفته اید که چگونه خروجی سنسور IR را بخوانید.

اتصال موتور سروو:

برای اینکه ربات ما توانایی حرکت داشته باشد روش های بسیاری وجود دارد. متداول ترین این روش ها استفاده از موتورهای DC، استپ موتورها و سروو موتورها است. در این پروژه ما از سروو موتور با چرخش پیوسته استفاده می کنیم.

موتورهای سروو معمولا دارای سه سیم هستند. سیم تغذیه (قرمز) ، سیم زمین(سیاه یا قهوه ای) و سیم سیگنال (زرد، نارنجی یا سفید). سیم ها را مطابق شکل فوق یا به صورت زیر به آردوینو متصل کنید.

سیم تغذیه را به پین +5V آردوینو، سیم زمین را به پین GND آردوینو و سیم سیگنال را به پین digital آردوینو متصل کنید. اگر می خواهید اطلاعات بیشتری در مورد نحوه ی کارکرد موتور سروو بدانید به لینک زیر مراجعه کنید.

سروو موتور

برای کالیبره کردن موتور سروو از اسکچ زیر استفاده می کنیم. در واقع سروو را به چرخش در سرعت صفر وادار کرده و سپس پتانسیومتر را آنقدر تغییر می دهیم تا مطمین شویم در سرعت صفر موتور هیچگونه چرخشی ندارد. لینک دانلود این برنامه در زیر قرار داده شده است.

 

سپس مطابق شکل فوق دو موتور سروو را همزمان به آردوینو متصل می کنیم. برای اتصال دو موتور سروو به طور همزمان نیازمند تغییر اندکی در کد هستیم. در زیر کد اتصال همزمان هر دو سروو را می توانید مشاهده کنید.

 

 

تغذیه ربات:

تا الان توسط USB برق لازم برای میکرو را تامین کردیم. برای اینکه ربات ما بتواند آزادانه و بدون اتصال به جایی حرکت کند باید یک منبع تغذیه قابل حمل وجود داشته باشد. برای این منظور از 4 عدد باتری قلمی استفاده می کنیم. مثبت باتری ها را به پایه Vin و منفی باتری ها را به یکی از پایه های GND آردوینو متصل می کنیم. همانطور که در قسمت تغذیه ی آردوینو گفته شد توصیه می شود ولتاژ ورودی آردوینو بین 7 تا 12 ولت باشد.

پس از آن که مطمین شدید همه ی قطعات را مطابق دیگرام فوق به آردوینو متصل کرده اید باتری ها را در مدار قرار دهید. دقت کنید که سروو موتورها انرژی قابل توجهی مصرف می کنند بنابراین اگر نیاز به بیش از دو سروو موتور دارید بایداز منبع تغذیه ی مجزایی برای آن ها استفاده کنید.

بدنه ی ربات:

بدنه ی ربات از قسمت های مختلفی تشکیل شده است.

ساختمان یا بدنه ی اصلی که می تواند از جنس چوب و یا شیشه ی پلکسی باشد.

تعدادی پیچ و مهره

چرخ ها که با پرینتر سه بعدی ساخته می شوند.

حلقه ی لاستیکی

می توانید نقشه ی اجزا را از فایل پیوست دانلود کنید. پس از اینکه اجزای مکانیکی ربات را تهیه کردید موتورهای سروو را در دو طرف ربات با استفاده از پیچ محکم کنید. توجه کنید که شافت موتورها باید به قسمت عقب بدنه یربات نزدیکتر باشد. سپس سنسور IR را در قسمت جلوی بدنه ثابت کنید. همچنین برد آردوینو را در قسمت بالای بدنه ثابت کنید. سپس رینگ لاستیکی را بر روی چرخ ها قرار دهید و چرخ ها را درون شافت سروو قرار داده و با پیچ محکم کنید.

 

 

 

برنامه ی اصلی ربات:

 

برای ساخت ربات ما باید به دو هدف دست پیدا کنیم.

جلوگیری از برخورد به موانع

جلوگیری ازبرخورد به لبه ها

همچنین فقط می توانیم از یک سنسور فاصله استفاده نماییم.

در تصویر اول می توان دید که در حالت عادی وقتی که ربات بر روی یک سطح حرکت می کند فاصله ربات از نزدیکترین مانع برابرفاصله آن تا خود سطح است. اگر ربات با مانعی مواجه شود که بر روی سطح زمین خوابیده باشد فاصله ی تشخیص داده شده توسط سنسور بسیار کمتر از مقدار فاصله ی پیش فرض تا سطح است.(Lmax) .

بنابراین ساده ترین راه برای رسیدن به هدف اول این است که اگر فاصله ی تشخیص داده شده توسط سنسور در این محدوده باشد ربات به حرکت خود در آن مسیر ادامه دهد. همچنین در صورتیکه فاصله بیشتر از Lmax باشد بسیار محتمل است که ربات به گوشه یا لبه رسیده باشد.

بنابراین دو قانون وجود دارد:

هنگامی که فاصله تا مانع بین محدوده ی Lmin و Lmax باشد ربات باید به حرکت مستقیم خود در آن مسیر ادامه دهد.

اگر فاصله بیشتر از Lmax و یا کمتر از Lmin باشد ربات باید آنقدر بچرخد تا فاصله ی تشخیص داده شده در یک راستا این محدوده قرار گیرد و سپس در همان راستا حرکت کند.

همچنین با توجه به اینکه ربات دارای دو چرخ می باشد مکانیزم حرکت به صورت زیر خواهد بود:

برای حرکت مستقیم باید هر دو چرخ با سرعت یکسان به جلو حرکت کنند.

برای حرکت به عقب باید هر دو چرخ با سرعت یکسان به عقب حرکت کنند.

برای حرکت به سمت چپ باید چرخ سمت چپ به عقب و چرخ سمت راست به جلو حرکت کند.

برای حرکت به سمت راست باید چرخ سمت راست به عقب و چرخ سمت چپ به جلو حرکت کند.

کد مربوط به این قسمت را می توانید از لینک زیر دانلود کنید.

 

افزودن نظر