در جلسه قبل در مورد الگوریتم کلی حرکت یک ربات مسیر یاب برای دنبال کردن خط آشنا شدیم و دیدیم ربات برای دنبال کردن خط باید با توجه به اطلاعاتی که از سنسورها دریافت می کند، هرگاه سنسور هر سمت خط را دید(یعنی هرگاه بر روی خط قرار گرفت و خط را حس کرد)، موتور متناظر همان سمت خاموش شود تا ربات روی خط باقی بماند.
همچنین در جلسه ی پیش توضیح داده شد که چگونه می توان به وسیله ی یک جفت گیرنده فرستنده ی مادون قرمز، خط سیاه را در زمینه ی سفید تشخیص داد.
همانطور که در جلسه ی پنجم توضیح داده شد، ربات به 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 نیز آشنا خواهید شد (برای راه اندازی موتور). چند نکته ی حرفه ای هم در مورد ربات مسیر یاب مطرح خواهیم کرد.
موفق و پیروز باشید.تا جلسه ی آینده خدا نگه دار
دوست شما، فراز
|