تبلیغات

به نام خدا
سلام عرض می کنم خدمت همه هی دوستای خوبم
این جلسه قراره انشاالله با هم ساخت یه ربات مسیریاب ساده (بدون میکروکنترلر) رو با هم شروع کنیم.

کار را ابتدا از قسمت مکانیک شروع می کنیم، یعنی بدنه‌ی فیزیکی ربات

  سیستم حركت تانك





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


 

سیستم حرکتی تانک به این صورت است که در 2 طرف آن چند چرخ به وسیله ی یک تسمه ی فلزی ضخیم (به اصطلاح شنی) به یکدیگر متصل شده‌اند، حرکت شنی‌ها هر کدام جداگانه توسط راننده‌ی تانک کنترل می‌شود و راننده عمل پیچیدن تانک به هر سمت را با توقف شنی آن سمت انجام می‌دهد. مثلاً اگر تصمیم داشته باشد تانک به سمت چپ بپیچد، شنی سمت چپ را متوقف کرده و شنی سمت راست به حرکت خود ادامه می‌دهد و در نتیجه تانک حول محور مشخصی (محور همان شنی سمت چپ است) به سمت چپ می‌پیچد.
از مهم‌ترین مزیت‌های این سیستم نسبت به سیستم خودروهای سواری، بالاتر بودن قدرت مانور آن در سر پیچ‌ها می‌باشد، یعنی با سیستم تانک می‌توان با سرعت بیشتری پیچ‌ها را پیمود.
همچنین شبیه‌سازی این سیستم در ابعاد کوچک‌تر بسیار ساده‌‌تر از سیستم خودروهای معمولیست. به همین خاطر ما در ربات‌‌ها از همین سیستم به اصطلاح تانکی استفاده می‌کنیم، اما با یک تغییرات جزیی. ما شنی را از سیستم حذف می‌کنیم، یعنی دور چرخ ها تسمه ای نمی‌اندازیم، زیرا این تسمه برای کاربردهای خاص طراحی شده و در ساخت یک ربات مسیریاب نیازی به آن نیست. همچنین چرخ‌های جلو را نیز می‌توانیم حذف کرده و به جای آن در فاصله‌ی بین 2 چرخ هرزگرد بگذاریم. (هرزگرد یک چرخ است که به هر جهتی می‌تواند حرکت کند. در پایه‌ی بعضی از مبل‌های خانگی و صندلی‌های کامپیوتری از هرزگرد استفاده شده است.)

خود شاسی ربات نیز بهتر است از جنس MDF یا پلاستیک فشرده (پلکسی گلاس) باشد. برای اتصال موتورها به بدنه هم می‌توانید از "دیوار کوب" لوله‌های آب استفاده کنید.

الگوریتم تعقیب خط در یک ربات مسیریاب


 


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

در جلسات قبل با سنسورهای نوری فتوترنزیستور آشنا شدیم و دیدیم چگونه می‌توان به وسیله‌ی این سنسورها و مدارات جانبی آنها تغییرات نور محیط را اندازه‌گیری کرد. همان طور که می‌دانید جسم سفید نور تابیده شده به خود را بازتاب می‌کند و جسم سیاه رنگ بیشتر نور تابیده شده به خود را جذب کرده و بازتاب نمی‌کند. ما هم با استفاده از همین خاصیت و به کمک گیرنده فرستنده‌های نوری خود می‌توانیم خط سیاه را در کف زمینه‌ی سفید تشخیص دهیم. به این صورت که ما یک جفتِ گیرنده فرستنده گیرنده‌ی نوری را در کنار هم قرار می‌دهیم، با مدارهای راه‌انداز، فرستنده، نور را به کف زمین می‌تاباند و گیرنده با توجه به تغییرات نور دریافتی از کف زمین، می‌تواند خط سیاه را پیدا کند.


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


دقت كنید كه سنسورها مستقیماً در كنار هم چیده نشده‌اند و یه صورت زاویه دار (به شكل هشتی) چیده شده‌اند

3.bmp

این هم نحوه‌ی چینش سنسورها‌ی كف یك ربات مسیریاب حرفه‌ای

4.bmp

چند تا نکته:

1-فاصله ی سنسورها تا زمین 5-10 سانتی متر باید باشه

2-چینش 8  سنسور‌ها برای رد كردن پیچ‌های تند است، زیرا اگر سنسور‌های همگی با هم همخط باشند، و ربات به یك پیچ 90 درجه برسد، سنسور‌ها همگی در لحظه‌ی اول از روی خط رد می‌شوند و انگار ربات در هر سمت فقط یك سنسور دارد، اما با این چینش، سنسور‌ها هر كدام به صورت مجزا از روی خط عبور می‌كنند.

ربات به 3 قسمت تقسیم می شود: 1-ورودی ها 2-پردازش 3-خروجی

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

اما در مورد بخش پردازش...

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

در این قسمت ما باید با توجه به آموخته های فعلی خود بتوانیم مداری طراحی کنیم که بتواند الگوریتم مورد نظر ما را پیاده سازی کند. یعنی 3 سنسور هر طرف را چک کند و اگر هر کدام خط را دیدند به موتور آن سمت دستور خاموش شدن بدهد. برای اینکار، با توجه به اینکه رنگ زمینه سفید، و رنگ خط سیاه است، بهتر است برای راه اندازی سنسورها از مدار شماره 2(به جلسه ی 14 مراجعه شود) استفاده شود. سپس یک AND 3 ورودی درست کرده(به جلسه ی هفدهم مراجعه شود) و خروجی سنسورها را به این 3 ورودی وصل کنیم.

به همین ترتیب برای 3 سنسور طرف دیگر هم همین مدار را می بندیم.

حال نتیجه ی مدار را بررسی می کنیم. (به عنوان مثال سمت راست را بررسی می کنیم)

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

حالا چگونه به وسیله ی خروجی AND هر طرف موتور آن سمت را خاموش و روشن کنیم؟


بخش خروجی ربات(کنترل موتورها)

ما در این قسمت باید مداری را برای موتورها ببندیم که بتوان با آن، به وسیله ی خروجیِ ANDی که در قسمت پردازشگر آماده کرده ایم، موتور را روشن و خاموش کرد. یعنی هرگاه خروجی AND ، 1 منطقی بود، موتور روشن باشد و هرگاه خروجی AND ، 0 منطقی بود، موتور خاموش شود.

این مدار همانطور که احتمالاً حدس زده اید بسیار ساده است، فقط کافیست ما پایه ی – موتور هر سمت را به – منبع تغذیه متصل کنیم، و + آن موتور را هم نیز به خروجی AND هر طرف وصل کنیم.

حالا مدار اصلی ربات را به صورت شماتیک رسم می کنیم.



نکته: در مدار بالا، برای مختصرتر شدن مدار شماتیک، فرستنده های مادون قرمز در مدار کشیده نشده اند، دوستان فراموش نکنند که در مدار اصلی در کنار هر گیرنده باید یک فرستنده تعبیه شود!!

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

همانطور که در شکل می بینید، خروجی آی سی 7408 مستقیماً به موتورها متصل نشده است، بلکه وارد بافر شده و از از پایه ی متناظر به موتور وصل شده. همانطور که در جلسات قبل نیز گفته شده بود، آی سی های معمولی مثل 7408 و 7432 و ...، جریان دهی پایینی دارند و نمی توان آن ها را مستقیماً به موتور یا سایر قطعاتی که جریان بالایی می خواهند متصل کرد، به همین منظور ما از بافر74245 استفاده می کنیم. اما معمولاَ این أی سی نیز توانایی راه اندازی موتور ربات را ندارد. ساده‌ترین راه برای حل این مشكل، یك تقویت ترانزیستوری ساده است. یعنی خروجی بافر را توسط یك ترانزیستور(مثلاً TIP41) تقویت كنیم. در صورت استفاده از ترانزیستور معمولاً دیگر نیازی به استفاده از بافر نیست و می‌توان خروجی آی سی 7408 را مستقیماً به پایه‌ی Base ترانزیستور متصل نمود و  آن را به این شكل تقویت كرد.

 
البته برای موتورها قوی تر، باید از درایورهای مخصوص مثل L298 استفاده کنیم که جلسه ی بعد به آن اشاره خواهد شد.

همچنین در جلسه ی بعد با آی سی ULN2003 نیز آشنا خواهید شد (برای راه اندازی موتور). چند نکته ی حرفه ای هم در مورد ربات مسیر یاب مطرح خواهیم کرد.

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