استارت ساخت ربات مسیریاب (تعقیب خط) . قسمت اول

سه شنبه, ۴ خرداد ۱۴۰۰، ۱۲:۵۷ ق.ظ

سلام .

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

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

میخوام تمام مراحل تکمیل ربات رو به صورت پست اینجا منتشر کنم . این میتونه برای خودم یک نقشه ذهنی باشه و شایدم برای کسانی که میخوان داخل این لیگ ها و مسابقات شرکت کنند یک سری تجربیات بدرد بخور . احتمالا برای بعضی هام سواله که یه ربات صفر تا صدش چطوری طراحی میشه میتونه سرگرمی جالبی باشه :)

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

 

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

 

یک ربات به طور کلی از سه بخش تشکیل میشه که جداگونه باید هر کدوم از این بخش ها رو تکمیل کنیم :

1 - مکانیک ربات

2 - سخت افزار ربات

3 - نرم افزار ربات

 

مکانیک ربات : فیزیک ربات و مکانیزم حرکتی ربات هستش . اینکه چه شکل و شاسی برای ربات در نظر بگیریم و بسازیم . چه موتور هایی و به چه شکلی برای حرکت ربات ببندیم و ....

 

سخت افزار ربات : شامل مدار سخت افزاری ربات هست که اونو طراحی میکنیم و روی ربات میبندیم . این مدار از المان های الکترونیکی مثل سنسور ها ، میکروکنترلر ها ، دایورهای موتور ها و ... تشکیل میشه . 

 

نرم افزار ربات : این بخش همون برنامه نویسی ربات هستش . یعنی مغز ( پردازشگر مرکزی که میتونه یک میکروکنترلر باشه ) ربات رو طبق الگوریتمی که ربات داره و کاری که باید انجام بده برنامه ریزی کنیم . معمولا این برنامه نویسی میتونه با زبان های مختلف انجام بشه ولی یکی از قدرتمندترین و معروف ترین آن ها زبان C و ++C هستند . اسمبلی نیز میتونه در برخی مدار ها به عنوان زبان برنامه نویسی درنظر گرفته بشه .

 

اما ربات مسیریاب چه شکلی قراره مسیر یا خط مشکی که معمولا با چسب برق کشیده میشه رو تشخیص بده ؟

ربات مسیریاب با استفاده از سنسور های مادون قرمز یا فوتوسل ( به ندرت ) اینکار رو انجام میده .

چون استفاده از سنسور فوتوسل خیلی خیلی کم پیش میاد بنابراین فقط روش سنسور مادون قرمز رو توضیح میدیم . 

در اصل همینطور که میدونید امواج مادون قرمز یک نوع نور غیر مرئی هستند . یعنی با چشم غیر مسلح قابل دید نیست . کنترل تلویزیونامون از امواج مادون قرمز برای ارتباط با تلویزیون استفاده میکند . اگه دقت کنید سر کنترلتون یک چراغ مانند کوچیک وجود داره ولی هیچوقت نوری ازش ساطع نمیشه . به خاطر اینه که این چراغ در واقع فرستنده ی مادون قرمزه . بنابراین انتظار نداریم امواجش با چشم قابل دیدن باشه . ولی به جاش کافیه دوربین گوشیتون رو باز کنید و بگیرید سر کنترل (رو به روی فرستنده مادون قرمز) و یکی از کلید های کنترل رو فشار بدید . میبینید که یک نور سفید رنگ یا بنفش رنگ از اون ساطع میشه . اینجا چون از چشم مسلح (دوربین گوشی) استفاده کردیم تونستیم این نور رو ببینیم . 

 

نمونه ای از زمین یا مسیر یک ربات مسیریاب :

 

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

اما این سنسور های مادون قرمز چه شکلی خط رو تشخیص میدن ؟ زیر ربات مسیریاب ، چندین جفت سنسور فرستنده و گیرنده مادون قرمز وجود داره . فرستنده مادون قرمز امواج مادون قرمز رو ارسال میکنه به کف زمین که چسب روش چسبیده . اگه این نور هایی که ارسال میکنه به سطح مشکی ( یعنی به خط ها ) بخوره ، بازتابی ازشون صورت نمیگیره چون رنگ مشکی نور رو جذب میکنه . بنابراین گیرنده چیزی از نور رو نمیگیره . بنابراین هروقت گیرنده نتونست نوری رو بگیره ، میفهمه الان سنسور روی خط مشکی قرار داره چون بازتابی صورت نگرفته . برعکس هروقت جفت سنسور مورد نظر روی سطح سفید قرار بگیرن ، فرستنده نور رو میفرسته و میخوره به سطح سفید . ازاونجایی که سطح سفید اصلا جذبی از نور به اون صورت نداره بنابراین بیشتر نور رو بازتاب میکنه . بازتاب نور میرسه به گیرنده و گیرنده میفهمه که الان روی سطح سفید هستند :)

 

شکل زیر به خوبی نحوه کارکرد سنسور ها رو نشون میده :

 

فرض کنید یک جفت فرستنده گیرنده سمت راست ربات قرار بدیم و یک جفت هم سمت چپ . به شکل زیر : 

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

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

حالا فرض کنید مثلا مسیر چسب یهو 90 درجه بپیچه به سمت چپ . تصویر زیر :

در اینجا سنسور سمت چپ ربات میره رو خط و در نتیجه سنسور سمت چپ میفهمه که روی خط مشکیه . اینجا باید موتور سمت چپ رو از کار بندازیم  . این باعث میشه فقط چرخ سمت راست بچرخه و این باعث میشه ربات شروع به چرخیدن به سمت چپ کنه :) .

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

اینطوریه که میتونه روی خط حرکت کنه . 

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

تا اینجای کار فعلا منتظر ارسال یک سری وسایل هستم . برای اینکار به دوتا موتور نیاز داریم ( سمت راست و چپ ) و یک سری جفت گیرنده فرستنده مادون قرمز . که سفارش دادم بیاد . 

البته این رباتی که فقط دو تا جفت سنسور داشت خیلی مبتدی بود . ربات ها گاهی اوقات تا 26 سنسور هم دارن :||||||

 

فعلا تا اینجا تئوری ها رو داشته باشیم . در پست بعدی میریم برا تکمیل مکانیک ربات (احتمالا میشه فردا پس فردا و اینا )

شب بخیر ... :))

موافقین ۲ مخالفین ۰

خیلی هم عالی!

راستی یه سوال

من میخوام برد رسبری سفارش بدم

آردوینو و اینا هم میخوام بگیرم. از کجا بهتره بگیرم؟

سلام :)
ممنونم .
بستگی داره کجا زندگی میکنید (کدوم استان). مثلا اگه اصفهان زندگی میکنید خیابان طالقانی مرکز این چیزاس . همه چیشو میتونید پیدا کنید. 
ولی به نظر من بهتره اینجور وسایل رو از سایت هایی مثل دانشجوکیت و ... سفارش بدید . چون روی قیمت روز بهتون میفروشن و بصرفه تر میتونه باشه . 
از سایت های زیر میتونید استفاده کنید :
دانشجوکیت 
thecaferobot.com
سایت دیجیکالا هم دیدم که اوردینو و رزبری داشت 

یه همچین سیستمی رو اگه بتونی رو پهباد من پیاده کنی ببین چی میشه

مثل خلبان خودکار میشه

فکرشا بکن

اگه وقت داشتی بعد امتحانا بیا تا بگم بهت

از نظر تئوری میتونم یه ایده های برات پیاده سازی کنم ولی در عمل هزینه ی زیادی میخواد . 
ممکنه پهبادت به فنا بره 🤣 اگه میخوای باشه 
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">