روبات های مسیر یاب

معرفی روبوت های مسیر یاب
در این بخش سعی داریم ابتدا وظایف و فعالیت های روبوت های مسیر یاب را برای شما شرح دهیم و امیدواریم بتوانیم اطالاعات جامعی را در اختیار شما قرار دهیم:
روبوت های مسیر یاب معمولا به دو دسته ی ساده و ویژه(عکس بالا) تقسیم بندی می شوند که در بخش ساده روبوت ها توانایی دنبال کردن یک خط را دارا می باشند که این از توانایی های عمومی روبوت های مسیر یاب است اما ویژگی هایی که روبوت های مسیر یاب ویژه را از روبوت های ساده متمایز می کند توانایی عبور کردن از مسیر های سخت و دشوار است که در این حالت روبوت می تواند از مسیر هایی مثل دست انداز ، چاله ی آب ، شیب ۴۵ درجه و… عبور کند.
آشنایی با نحوه ی فعالیت روبوت ها ی مسیر یاب
هر چند روبوت های مسیر یاب می توانند در طرح ها و انواع مختلف ساخته شوند اما در مجموع فلسفه ی کار آن ها مشابه است. به طوری که در همه ی روبوت های مسیر یاب اطلاعات توسط میکرو کنترلر از حسگر ها گرفته می شود و بعد از پردازش دستورات لازم به موتور ها انتقال می یابد و این عمل به طور متناوب تکرار می شود که در این بین آی سی های الکترونیکی و قطعات مختلف قرار می گیرند.

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

و از یک یا دو چرخ به عنوان چرخ هرزگرد که در جلوی روبوت تعبیه می شود

الکترونیک : این قسمت یکی از مهمترین قسمت های روبوت است که البته قسمتی است که بیشترین زمان را نیاز دارد که خود از قسمت های مختلف تشکیل می شود و در اینجا آن ها را نام می بریم:
۱- برد اصلی
۲-برد سنسور
۳-کنترل موتور ها
در اینجا به توضیح کوتاهی در مورد هر یک از این قسمت ها می پردازیم:
۱- برد اصلی : این برد همانطور که از نامش پیداست جز اصلی ترین قسمت های روبوت است که وظیفه اخذ اطلاعات ، پردازش اطلاعات و صدور دستور های لازم به دیگر قسمت ها را بر عهده دارد. به طوری که اطلاعات مورد نیاز را از سنسور ها گرفته و بعد از پردازش آن ، دستورات لازم را با توجه به Programing به موتور ها صادر می کند.
۲-برد سنسور: این برد یکی از قسمت های ربات است که نیاز به ظرافت کاری زیادی دارد . سنسور ها به همراه اتصالات مربوط به سنسور ها باید بر روی این برد قرار گیرد .
۳- کنتل موتور ها : موتور ها معمولا در هنگام طبقه بندی در قسمت مکانیک قرار می گیرند اما کنترل آن ها در قسمت الکترونیک قرار می گیرد . اما از آن جا که کنترل موتور ها از اهمیت فراوانی برخوردار است ، ما موتور ها را هم در این بخش به شما معرفی می کنیم. کنترل موتور ها به توانایی های موتور و اطلاعات پردازش شده بستگی دارد.
در اینجا هر یک از این قسمت ها را به تفصیل بیان می کنیم
۱- برد اصلی : ما در برد اصلی باید از المان هایی استفاده کنیم که بتوانیم اطلاعات مورد نیاز را از فرستنده سنسور ها دریافت نماییم و سپس بتوانیم با استفاده از میکرو کنترولر ها اطلاعات را پردازش کرده و بوسیله چند آی سی دستورات لازم را به موتور ها صادر نماییم .
پیشنهاد می شود برای در یافت اطلاعات از فرستنده سنسورها از apamp ها استفاده کنیم و بهتر است برای تنظیم ولتاژ apamp ها از پتانسیومترها استفاده کنیم بدین ترتیب می توانیم با اتصال apamp ها به میکروکنترلر اطلاعات را از سنسورها دریافت نماییم .

بررسي سيستم روبات مسيريابي :
بر روي زمين خطي سياه رنگ متمايز از زمينه روشن تصور كنيد . پهناي اين خط در حدود دو سانتي متر و طول انرا نامحدودبا پيچ وخمهاي فراوان تصوركنيد تئوري ميگويد وقتي نور به جسمي كدر يا سياه رنگ برخورد مي كند قسمت بيشتري از نورجذب ان مي شود و مقدار كمي از ان باز تابيده ميشود و وقتي نور به جسمي روشن و سفيد بتابد قسمت زيادي از نور را باز مي تاباند و قسمت كمي را جذب مي كند پس ميتوان سفيد يا سياه بودن دو جسم را با اندازه گيري نوربازتابيده شده ازان حدس زد كافي است يك منبع نوراني داشته باشيم كه نور رابه طرف جسم مورد نظر بتاباند ودرهمان حال يك سنسورنوري ميزان نور بازتابش را اندازه گيري كند مطمئنا براي دو جسم با رنگهاي مختلف يا دو جسم سفيد وسياه ميزان باز تابش متفاوت ثبت خواهد شد.
انجام ازمايش بالا درتاريكي ممكن است به نتايج خوبي منجر شود اما در محيطي مثل محيط اتاق انواع و اقسام منابع نوري را داريم .همچنين بايد در نظر داشته باشيم كه سنسورنوري مابرروي روباتي قرار دارد كه همواره در حال حركت است و نسبت به منابع نوري در اتاق درزاويه هاي تاريك و روشن واقع ميشود اگر محيط با لامپهاي فلورسنت روشن ميشود.
مساله از اين هم بدتراست چون لامپهاي فلورسنت در هر ثانيه صد بار روشن وخاموش ميشوند و سنسورها اين مطلب را حس خواهند كرد اگر تلويزيون هم در محيط روشن باشدحركت تصاوير نور محيط را دچار تغيير خواهد كرد.

راه حل چيست؟
راه حل اول :
راه حلي كه ما پيشنهاد ميكنيم استفاده ازدو نوع نور است دراصل استفاده از دو طيف نوري مجزا. سعي ميشود نور اتاق نور لامپهاي فلورسنت باشد وازلامپهاي معمولي رشته اي و نور خورشيد حتي المقدور اجتناب شود .
نور لامپهاي فلورسنت در اصل درطيف نزديك به نورماورابنفش قراردارد كه با ماده فسفرسانس ميزاني ازان را به نور مرئي تبديل مي كنند با اين وجود لامپهاي فلورسنت نور قرمز يا مادون قرمز ندارند.درصد نور مادون قرمزتوليدي توسط اين لامپها بسيارناچيزاست درعوض لامپهاي رشته اي به ميزان زيادي نورمادون قرمز ونورقرمزدارندونور ماورابنفش توليدي توسط لامپهاي رشته اي بسيار ناچيز و قابل صرفنظراست روي اين اصل ما درسيستمي كه قرار است مسير سياه رادرزمينه سفيد تشخيص دهد از لامپهاي مادون قرمز استفاده مي كنيم ديودهايLED وجود دارند كه در طيف مادون قرمز كار مي كنند اين ديودها نور مادون قرمز غيرمرئي توليد مي كنند .
سنسورهاي نور مادون قرمز هم در بازار يافت ميشوند سنسورهايي كه فقط با نور مادون قرمز تحريك ميشوند طبق قراري كه با هم گذاشتيم در اتاق فقط از لامپهاي فلورسنت استفاده مي كنيم كه در طيف مادون قرمز تداخلي ايجاد نمي كنند .
راه حل دوم:
راه حل ديگري هم هست كه دقيق تر عمل مي كند و اين حساسيت هاي بي مورد را ندارد اما روش پر هزينه اي مي تواند ياشد صرفنظر از اينكه نور اتاق حاوي كدام يك از طيف هاي نوري است منبع هاي نوري مسير ياب به صورت لحظه اي كار ميكنند سعي مي شود ميزان نور برخوردي به يك سطح نيمي از يك مقدار مبنا باشد .
براي لحظه اي كوتاه ديود نور گسيل را روشن مي كنيم و ميزان نوري را كه منعكس شده را اندازه ميگيريم حال ديود نور گسيل را خاموش مي كنيم و بلافاصله دوباره سطح نور موجود را اندازه گيري ميكنيم اين مقادير را توسط A\D به صورت ديجيتال به يك پردازنده مي دهيم تا از همديگر كم كند. تفاوت بين دو سطح نوري بيانگر تيره يا روشن بودن سطح مورد نظر مي تواند باشداز روش دوم براي جاهاي ديگر هم مي توان استفاده كرد .
فرض كنيد مي خواهيد ميزان دوري يا نزديكي به ديواري را تخمين بزانيد روش بالا مي تواند به يك روبات ميزان دوري يا نزديكي به يك ديوار را نشان دهد بدون اينكه روبات به ميزان نور محيط ونور موجود حساس باشد.
نحوه تشخيص مسير چگونه است ؟

ساده ترين كار استفاده از فقط يك چشم الكترونيكي براي تشخيص مسير سياه و سفيد مي باشد. در برنامه نرم افزاري براي روبات اينطور تعريف مي كنيم كه تا وقتي بر روي مسير سياه قرار دارد به سمت جلو حركت كند هر گاه كه مسير سياه را گم كرد با توجه به حالت قبلي براي يافتن مسير به سمت چپ يا راست حركت كند .
روش بالا مستلزم اين است كه روبات همواره موقعيت خود را همواره محاسبه و نگهداري كند اگر تعداد چشمها را به سه عدد افزايش دهيم كار راحتتر پيش مي رود و به احتمال زياد احتياجي به محاسبه موقعيت روبات نباشد زيرا چشم مركزي همواره بايد روي مسيرسياه قرارداشته باشد ودوسنسور كناري مسيرسفيد را رويت كنند هر گاه هركدام ازسنسورهاي كناري خط سياه را رويت كرد بايد روبات به سمت مخالف اصلاح مسير كند.
هر چقدر تعداد چشمها را زيادتر كنيم برنامه پچيده ترميشوداما قدرت تشخيص مسير صحيح بالاتر مي رود و امكان مانور بيشتري خواهد بود.
شرح سخت افزاري مدار تشخيص مسيرمداري كه در شكل يك مشاهد مي كنيد داري چهار طبقه است از چهار چشم الكترونيكي يعني چهار عدد سنسور نور مادمن قرمز استفاده شده است هر سنسور مادون قرمز به طور جداگانه همراه با يك عدد LED مادون قرمز درون يك استوانه فلزي قرار دارد كه از يك طرف باز است و به طرف مسير سياه وسفيد قرارمي گيرد علت اينكه سنسورهارا از هم جدا كرده ايم اين است كه نور هر LED مادون قرمزبه سنسورمربوط به خودش ارتباط داشته باشد واز تداخل هاي نوري با ساير سنسورها جلوگيري شود.
ازسه عدد سنسور در يك رديف و از سنسور چهارم در پشت سر انها استفاده شده است .

شرح عملکرد روبات

روباتي که در اينجا تصميم به تو ضيح نحوه ساخت آنرا دارم بروي زمينه سفيد بدنبال خط مشکي حرکت ميکند. ميکروکنترلر مورد استفاده در روبات ATmega8 می باشد. و کدهای برنامه روبات با استفاده از نرم افزار BASCOM ایجاد شده اند.

روبات شامل دو موتور در طرفين خود مي باشد، که جهت حرکت به جلو هر دو موتور را روشن مي کند، زمان دور زدن به چپ موتور سمت چپ خاموش و موتور سمت راست روشن مي شود و برای دور زدن به سمت راست موتور سمت راست خاموش و موتور سمت چپ روشن می شود. البته موتورهای بکار رفته DC موتور بوده و جهت کاهش سرعت و در نتیجه کنترل دقیق تر روبات از موتورهايي با گیربکس سرخود استفاده شده، که قیمت آن در بازار جمهوری تهران ۷۰۰۰ تومان است در صورتی که به این نوع موتور دسترسی ندارید ميتوانید از موتورهای اسباب بازی گیربکس دار استفاده کنید، در غير اين صورت بايستي خودتان گیربکس را بسازيد دقت داشته باشيد که دور نهايي چرخش چرخهاي روبات ۶۰ دور بر دقیقه باشد.

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

برنامه روبات به زبان BASIC نوشته شده در محیط BASCOM :

$regfile = “m8def.dat”
$crystal = 8000000

Config Portd = Output ‘Portd used for control motor
Config Adc = Single , Prescaler = Auto
Start Adc ‘Start Analog to Digital Converter

Dim S1 As Word ‘S1 Right Sensor
Dim S2 As Word ‘S2 Left Sensor

Portd = 0
Wait 3

Do

S1 = Getadc(3) ‘Read Sensor 1
S2 = Getadc(5) ‘Read Sensor 2
‘portd.0 right motor
If S2 > 400 Then Set Portd.0
If S2 < 300 Then Reset Portd.0

‘portd.2 left motor
If S1 > 400 Then Set Portd.2
If S1 < 300 Then Reset Portd.2

Loop
End ‘end program

ليست قطعات مدار روبات:
میکرو کنترلر ATmega8 یک عدد

–آی سی رگولاتور۷۸۰۵ یک عدد

–آی سی ULN2803 یک عدد

–موتور ۵ ولتی با گیربکس و دور بر دقیقه ۶۰ دو عدد

–رله ۵ ولتی دو عدد
–دیود ۱N4001 دو عدد

–مقاومت ۱۰کیلو اهمی دو عدد

–مقاومت ۳۳۰ اهمی دو عدد

–فتورزیستور کوچک دو عدد

–دیود نورانی سفید پر نور دو عدد

–خازن ۳۳۰ میکروفاراد دو عدد

–برد هزار سوراخ ۱۱٫۵ در ۶٫۵ سانتی متر

.::ليست قطعات مکانیک روبات::.

–چرخ ماشین اسباب بازی کوچک دو عدد

–فولی ضبط صوت جهت چرخ وسط یک عدد

–پیچ اسپیسر (Spacer) سه سانتی به همراه مهره چهار عدد

–ترمینال برق چهار خانه یک عدد

–تخته سه لا ۱۲ در ۱۲ سانتی متر

مراحل ساخت مکانیک روبات :

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

>>>> من خودم از برد ربات به عنوان بدنه استفاده میکنم و همه اجزا رو محکم روی فیبر لحیم میکنم

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

RE: اموزش ساخت ربات مسیر یاب

قسمت حرکت :
این قسمت در اقلب ربات ها مشتر ک هست و بسته به امکانات موجود میتوانید از هر روش استفاده کنید .
۱- سیستم حرکت چهار چرخ (اگه اسمش این نیست بگید )

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