روبات تعقیب خط

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

شکل ۱-۱ شمای یک روبات تعقیب خط
روبات تعقیب خط روباتی ایده ال برای روبات سازان اماتور می باشد. حس کردن خط و واداشتن روبات به حرکت بر روی ان به همراه اصلاح دائمی حرکت های نادرست از طریق یک مکانیزم فیدبک یک حلقه بسته ساده را ایجاد میکند.
صورت مسئله ساخت روبات تعقیب خط در مسابقات مختلف دارای جزئیات زیاد و بعضا متفاوتی است اما اصل موضوع در همه انها این است که روبات باید بتواند یک خط مشکی به عرض ۱٫۸ سانتی متر(معمولا چسب برق) را در یک صفحه سفید دنبال کند.یعنی وقتی در ابتدای خط مشکی تنظیم و سپس روشن شود بدون نیاز به دخالت کاربر به دنبال خط مشکی حرکت

کند در شکل بالا روباتی که قصد ساختن ان را داریم به همراه مسیر ان مشاهده می شود.
البته در بعضی روبات های پیشرفته تر نیازی به تنظیم کردن روبات روی خط مشکی نیست و خود روبات به صورت هوشمند خط را پیدا می کند که این بخاطر برنامه خوب نوشته شده برای میکرو ان توسط سازنده است. در روباتی که در این پروژه ساخته می شود سعی شده است این اصل رعایت شود.

۱-۲ بلوك دياگرام يك روبات تعقيب خط
از نظر كلي هر روبات بايد
• از طريق سنسورهايش ( حسگرها ) اطلاعاتي را از دنياي خارج جمع آوري كن

د
• اين اطلاعات را به اطلاعات قابل فهم مغز پردازشگر خود تبديل و به آن منتقل كند
• بر طبق برنامه ريزي قبلي ، اطلاعات را پردازش و تصميم مناسب را اتخاذ كند
• تصميمات نهايي را به كمك عملگرهايش اجرا كند.

تفاوت روبات هاي مختلف به ماهيت اين مراحل برمي گردد .
روبات تعقيب خط هم همين اجزاء را درون خودش دارد :
• براي حس كردن خط به دست كم دو سنسور نوري كه تفاوت رنگ سفيد و مشكي را درك كنند نياز دارد . اين سنسورها انواع مختلفي مانند ديود مادون قرمز ، مقاومت متغير با نور (فوتوسل )، فوتو – ترانزيستور و . . . دارند .
• اطلاعات سنسور از طريق يك مدارسوييچ يا مبدل آنالوگ به ديجيتال به واحد پردازشگر منتقل مي شود .
• مغز پردازشگر اين روبات مي تواند يك مدار منطقي يا يك ميكروكنترلر از هر نوعي باشد . روبات بايد در قبال منحرف شدن خط ، واكنش مناسب نشان دهد.
• تصميم واحد پردازشگر مبني بر ادامه مسير يا پيچيدن به چپ و راست از طريق فرمان هايي كه به موتورهاي روبات كه ممكن است از نوع DC ( آرميچر) يا پله اي ( Stepper ) باشند داده مي شود ، انجام مي پذيرد .

بلوك دياگرام يك روبات تعقيب خط
با دو سنسور را در شكل مقابل مي بينيد :

۱- ۳ عملكرد روبات تعقيب خط
روبات تعقیب خط دست كم دارای دو سنسور نوری است كه دو طرف مشكی در زمينه سفيد قرار مي گيرند ( تعداد سنسورها به طريقی كه خواهيم ديد می توان بيش از دو عدد باشد )برای اشکار سازی یک مسیر رنگی بر روی سطحی که اختلاف رنگ زیادی با مسیر دارد(مسیر مشکی بر سطح سفید یا مسیر سفید بر سطح مشکی) عموما از حسگرهای مادون قرمز استفاده می شود. هر حسگر بر اساس انکه بر روی مسیر رنگی قرار داشته باشد یا خیر یک سیگنال خروجی انالوگ تولید می کند.مدارات الکترونیکی برخی از روبات های تعقیب خط ابتدا سیگنال تولید شده را توسط یک

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

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

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

 

شکل ۲-۱ عملکرد یک روبات تعقیب خط
روبات های تعقیب خط را بر اساس ساختار حرکتشان می توان به انواع مختلفی تقسیم کرد که در زیر چند نمونه را مشاهده ذکر شده:
۱- حرکت تانکی
۲- یا حرکت با ۴ چرخ ۳ موتور که ۲ موتور برای حرکت به جلو و یک برای چرخش به چپ یا راست
۳- یا حرکت با ۲ چرخ و ۲ موتور و یک سکان که ۲ موتور علاوه بر حرکت به جلو وظیفه چرخش به چپ یا راست را هم دارد

در شکل زیر انواع این روبات ها را مشاهده می کنید:

(۲) (۱) (۲)
شکل ۱-۳ انواع روبات تعقیب خط ۱- حرکت با چهار چرخ و سه موتور ـ ۲ـ حرکت با دو چرخ و دوموتور ویک سکان

روباتی که ما قصد ساختن ان را در این پروژه داریم از سیستم نوع سوم برای حرکتش بهره می گیرد حرکت این روبات به صورت زیر عمل می باشد:

هرگاه روبات در حين حركت به انحرافي در خط مشكي برخورد كند ، يكي از سنسورهايش وارد خط مي شود ؛ مثلاً اگر خط مشكي به راست منحرف شود ، سنسور سمت راست روبات وارد خط مشكي مي شود . روبات بايد با توجه به سنسوري كه وارد خط شده انحراف خط را متوجه شود و به همان جهت بپيچد . ساده ترين راه براي پيچيدن يك سمت ، خاموش كردن موتور همان سمت و ادامه كار موتور سمت مخالف است .
براي پيچيدن به شيوه حرفه اي تر مي توانيد به جاي

خاموش كردن موتور سمت موافق ، آن را در جهت معكوس بچرخانيد .

با اين كار روبات در حين پيچيدن روي زمين کشيده نمي شود و مي تواند درجا بچرخد .
چرخيدن روبات بايد تا آن جايي انجام شود كه سنسوري كه وارد خط شده بود ، از خط خارج شود ؛ يعني مجدداً تمام سنسورها خارج خط قرار گيرند تا روبات بتواند به حركت عادي خود ادامه دهد .

در ادامه اجزاي يك روبات تعقيب خط را معرفي مي كنيم.

۲- ۱سنسورهاي روبات تعقيب خط
همان گونه كه گفته شد ، روبات تعقيب خط بايد از طريق سنسورهايش خط را حس كند و انحراف آن را تشخيص دهد . براي اين كار به يك سنسور نوري نياز داريم .
بلوك دياگرام سنسور نوري به شكل روبرو است :

يك فرستنده نوري و يك گيرنده نوري را زير روبات كنار هم قرار مي دهيم ؛ به صورتي كه گيرنده مستقيماً در معرض نور ارسالي از فرستنده نباشد و تنها انعكاس آن از سطح مقابل را دريافت كند . از آن جايي كه مقدار نور بازگشتي از سطح مشكي كمتر از مقدار نور بازگشتي از سطح سفيد است ، به كمك تحليل مقدار نور دريافتي از سطح ، مي توان مشكي و سفيد بودن سطح را تشخيص داد . شكل زير را ببينيد :

شکل ۲-۱ چگونگی قرارگرفتن دیودها

 

در ذيل سه نوع سنسور نوري مختلف را بررسي مي كنيم :
۲-۱-۱ ديود مادون قرمز
فرستنده و گيرنده مادون قرمز دو ديود كاملاً مشابه هستن

د . يكي از آن ها امواج مادون قرمز را از خود ساطع و ديگري دريافت مي كند .

مدار فرستنده مادون قرمز به شكل زير است : مدار گيرنده ماون قرمز را ببينيد :
توجه كنيد كه ديود گيرنده در بایاس معكوس بسته شده است ؛ بنابراين اگر ميزان نور مادون قرمزي كه به آن مي تابد كم باشد ( مثلاً هنگام بازتابش از سطح مشكي) ديود هدايت نمي كند و ولتاژ out بالا خواهد بود . اگر نور مادون قرمز به ميزان زياد به ديود بتابد ، هدايت مي كند و ولتاژ out پايين مي رود . بنابراين اگر براي تشخيص خط مشكي در زمينه سفيد در روبات تعقيب خط از ديودهاي مادون قرمز استفاده كنيد ، در حالتي كه فرستنده / گيرنده مقابل سطح سفيد قرار دارد ، ولتاژ out پايين تر از وقتي است كه فرستنده / گيرنده وارد خط شده است .
۲-۱-۲ مقاومت متغير با نور ( فوتو – رزيستور يا فوتوسل )
مقاومت هاي معمولي تحت شرايط مختلف ( جريان ، توان ، دما ، فشار ، رطوبت ، نور ، . . . ) مقاومت تقريباً يكساني دارند ( البته وقتي اين شرايط در بازه هاي مجاز مربوط به آن مقاومت تغيير كنند ) . اما مقاومت هايي نيز وجود دارند كه با تغيير شرايط ، مقاومت متغيري از خود بروز مي دهند؛ مثلاً ترميستور يك مقاومت متغير با دما است و با تغيير دماي محيط مقدار مقاومت آن تغيير مي كند . از ترميستور به عنوان سنسور دما مي توان استفاده كرد .
فوتوسل (Photocell) مقاومت متغير با نور معمولي است . مقدار اين مقاومت بسته به مقدار نوري كه به آن مي تابد تغيير مي كند . براي استفاده از اين سنسور در روبات تعقيب خط كافي است آن را همراه با يك فرستنده نوري معمولي مثلاً يك LED به كار بريد . بهتر است رنگ LED را
شکل ۲-۲ مدار مقاومت متغیر بانور

طوري انتخاب كنيد كه بيشترين درخشش را داشته باشد ( مثلاً نارنجي تند ) . مدار زير را ببينيد
بسته به مقدار نور انعكاسي از سطح (‌ كه به سفيد يا مشكي بودن آن بستگي دارد) ، ولتاژ Vout تغيير مي كند . به بيان ديگر ، ولتاژ Vout با توجه به مقدار مقاومت فوتوسل و مقاومت سري شده با آن ، در دو سطح مشكي و سفيد دو مقدار متفاوت دارد . از روي مقدار اين ولتاژ ، روبات مي تواند خط را تشخيص دهد .

۲-۱-۳ فوتو – ترانزيستور
در ترانزيستورهاي معمولي دو پيوندي (BJT) ، مقدار جريان lc كه از كلكتور به اميتر جريان دارد ، بسته به جريان lB كه به بيس آن ها وارد مي شود تغيير مي كند . بنابراين با يك پيكربندي مناسب مي توان با تغيير ولتاژ ( جريان ) بيس ، ولتاژ كلكتور را تغيير داد .
در فوتو – ترانزيستور ، آن چه باعث تغيير جريان كلكتور به اميتر مي شود ، نه جريان بيس ، بلكه نوري است كه به بيس مي تابد . بنابراين بسته به نوري كه به بيس فوتو – ترانزيستور مي تابد
( كه با انعكاس از دو سطح سفيد و مشكي متفاوت است ) ، ولتاژ كلكتور تغيير مي كند . اين نور بسته به نوع فوتو-ترانزيستور ، مي تواند نور معمولي يا مادون قرمز باشد . مدار فرستنده –گيرنده فوتو-ترانزيستور به مدار فوتوسل شباهت زيادي دارد .
حال با توجه به معرفی و بررسی انواع سنسورهای مادون قرمز ما در این پروژه برای روبات خود از سنسورهای نوع مادون قرمز استفاده می کنیم.
در ذیل سنسور مادون قرمز CNY70 که ما در این پروژه قصد داریم از ان استفاده کنیم به همراه Datasheet ان تشریح می شود.

شکل ۲-۳ مدار فوتو ترانزیستور

۲- ۲ سنسور CNY70
این سنسور به صورت یک بسته حاوی دو عدد سنسور مادون قرمزاست. یک سنسور فرستنده و سنسور دیگر گیرنده می باشد. برای اینکه روبات شما بهتر کار کند بهتر است بجای استفاده از دو سنسور مادون قرمز به صورت مجزا از این packeg سنسور استفاده کنید. در این سنسور پایه های بلندتر در هر سمت سمت آند و پایه های کوتاهتر سمت کاتد است.
با استفاده از این نوع سنسور میزان خطاها تا حد قابل ملاحظه ای کاهش می یابد.

شکل ۲-۴ نمایی از یک سنسور CNY70

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

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

۲-۳-۱استفاده از یک سنسور: (The Edge Finder)

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

فعال می شود. این روش تنها برای سرعت های بسیار کم قابل استفاده است و در سرعت های بالاتر کاربرد ندارد. واضح است در صورتی که ربات در لبه ی دیگر ربات قرار بگیرد در جهت مخالف حرکت خواهد کرد و یا اگر ربات خط را گم کند در یک مدار دایره ای برای همیشه چرخش خواهد کرد. از این نوع سنسور به ندرت همراه با میکروکنترلرها استفاده میشود. در حالت باینری برای سنسورها تنها دو صورت صفر یا یک را میتوان در نظر گرفت.
تنها حالت ها ی ممکن عبارتند از:
Line off the – ۰
Line over the -1
2-3-2 استفاده از ۲ سنسور : (The Line Avoider)

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

حالت های ممکن برای این حالت عبارتند از:
۰۰- Straddling the line or lost the line
01 – Found right side of line
10 – Found left side of line
11 – Not used unless sensors are placed less than the line’s width apart

۲-۳- ۳استفاده از ۳ سنسور : (The Line Seer)

 

حال با اضافه کردن سنسور سوم به روبات آن را از وجود خط و همچنین لبه های خط آگاه
می کنیم. حالا روبات این برتری را دارد که از موقعیت خط آگاهی پیدا کند برای مثال گم کردن خط را توسط سنسور وسط درک کند. سنسور سوم همچنین میتواند در مسیر های دارای خمیدگی (انحناء) نقش بسیار زیادی را در کاهش سرعت برای بالا بردن دقت در عمل تعقیب خط و جلوگیری از گم کردن خط داشته باشد و سرعت را در مسیرهای مستقیم چندین برابر کند به این روش کنترل چند سرعته یا PWM گفته می شود.
استفاده ار سنسور سوم در طراحی ها رایج است خصوصا در ربات هایی که در آنها از میکروکنترلر استفاده شده است.
شرایط امکان پذیر برای این حالت عبارتند از:
۰۰۱ – Moving off the line to the left

۰۱۰ – Centered over the line
011 – Slightly off the line to the left
100 – Moving off the line to the right
101 – Not used

۱۱۰- Slightly off the line to the right
111 -Not used ,but could be used in the advanced or maze solving contests

۲-۳-۴استفاده از ۵ سنسور: (The Line Dancer)
ممکن است این سوال مطرح شود که ۳ سنسور برای کنترل کامل ربات کافی می باشد در اینصورت دلیل استفاده از ۲ سنسور اضافه چیست؟
استفاده از ۲ سنسور دیگر به ترتیبی که در زیر نشان داده شده است قا بلیت اطمینان را بالا
می برد و همچنین روبات می تواند پیچ های تند تر را نیز تشخیص دهد.

صورت های ممکن برای این حالت : (تنها حالتهای مفید نوشته شده)
۰۰۰۰۰- Lost line from overshoot or break in line
00001 – Almost off the line, steer hard right and reduce speed
00011- Near the right edge of the line, steer right

۰۰۰۱۰ – Right of the center of the line, steer right
00110 – Slightly to the right of the center of the line, slight correction to the right
00100 – Centered over line, increase speed for straight runs
01100 – Slightly to the left of the center of the line, slight correction to the left
01000 – Left of the center of the line, steer left
11000 – Near the left edge of the line, steer left
10000 – Almos

t off the line, steer hard left and reduce speed
11111 – Line intersection or circle at end of maze
البته باید در نظر داشت ممکن است سنسورها به صورت های گوناگون دیگری هم قرار بگیرند که بسته به فکر و برنامه شخص سازنده دارد.
ما نیز قصد داریم از ۵ سنسور مادون قرمز cny70 مطابق قسمت بالا استفاده کنیم.
دقت داشته باشید که با در نظر گرفتن سنسورها به عنوان اعداد باینری به راحتی می توانیم تصمیمات منطقی خود را به برنامه تبدیل کنید.
در ادامه انواع روش ها برای این کار بررسی می شود.

۳-۱تبديل و انتقال خروجي سنسور به مدار پردازشگر
خروجی هر كدام از مدارات سنسوری بخش قبل ، يك ولتاژ آنالوگ ( پيوسته ) بين صفر تا ۵ ولت است كه بسته به اين كه سنسور در محيط سفيد يا مشكی باشد ، مقادير مختلفی خواهد داشت . مثلاً فرض كنيد خروجی يك سنسور نوری در محيط كاملاً سفيد حدود ۲/۱ ولت است و با ورود كامل آن سنسور به خط مشكی خروجی سنسور ۸/۳ ولت می شود ( تلاش نكنيد سنسور خود را طوری بسازيد كه ولتاژ خروجی آن دقيقاً منطبق بر اين مقادير باشد ! اين تنها مثالی برای درك شما از موضوع است ). مدار پردازشگر بايد بر اساس اين دو مقدار واكنش مناسب را نشان دهد و روبات را هدايت كند . اما مدارهای پردازشگر ( چه مدار منطقی و چه ميكروكنترلر ) تنها مقادير ديجيتال را
می شناسند . يعني بايد با آن ها به زبان «صفر» و «يك» صحبت كرد .
در منطق ولتاژهای ديجيتال ، از ولتاژ بين صفر تا حدود ۸/۰ ولت به «صفر منطقی» و از ولتاژ بين ۳ تا ۵ ولت به «يك منطقی» تعبير می شود .
بنابراين اگر مثلاً خروجی يك سنسور نوری در محيط كاملاً سفيد ۲/۱ ولت و در محيط كاملاً مشكی ۸/۳ ولت باشد ، يك مدار منطقی يا ميكروكنترلر هيچ دركی از آن نخواه داشت . بلكه اين ولتاژها بايد به مقادير ديجيتال تبديل شوند تا قابل درك توسط مدار پردازشگر باشند .
براي تبديل خروجي آنالوگ سنسور به مقدار ديجيتال دو راه وجود دارد :
به كمك يك مدار سوييچينگ شما می توانيد از روي خروجی آنالوگ سنسور ، «بودن» يا «نبودن» سنسور در خط را مشخص كنيد .
اگر از مدار مبدل آنالوگ به ديجيتال (A/D ) استفاده كنيد ، مي توانيد درصد وارد شدن سنسور به خط را نيز تشخيص دهيد .

 

شکل ۳-۱ نمودار محدوده ولتاژ آنالوگ

۳-۱-۱مدار سوييچينگ
به كمك يك مدار الكترونيكی سوييچينگ می توان ولتاژ آنالوگ خروجی سنسور را به يك ولتاژ ديجيتال «صفر» يا «يك» قابل درك توسط مدار منطقی يا ميكروكنترلر تبديل كرد . به زبان ساده مداری مي خواهيم كه مثلاً وقتی سنسور در منطقه سفيد است «صفرمنطقی» و وقتي وارد منطقه مشكی می شود ، «يك منطقی» را به عنوان خروجی توليد كند . با ا

ين كار ، مدار پردازشگر از روی اين ولتاژ متوجه «ورود» يا «عدم ورود» روبات به خط مشكی می شود .
بلوك دياگرام مدار سوييچينگ به شكل زير است :

به يك نكته مهم توجه كنيد . فرض كنيد هنگامی كه سنسور كاملاً از خط مشكی خارج است
( در محيط كاملاً سفيد است ) دارای خروجی ۲/۱ ولت می باشد و با ورود كامل به خط مشكي دارای ولتاژ ۸/۳ ولت می شود .
می خواهيم اين ولتاژهای آنالوگ را به كمك يك مدار سوييچينگ به گونه ای به يك ولتاژ ديجيتال تبديل كنيم كه وقتي سنسور در منطقه سفيد است «صفر منطقی» و وقتی وارد منطقه مشكی می شود ، «يك منطقی» را به عنوان خروجی داشته باشيم . هنگامی كه سنسور از زمينه سفيد وارد خط مشكی می شود ، خروجی سنسور به مرور از ۲/۱ ولت تا ۸/۳ ولت تغيير می كند .

شکل ۳-۲
به نظر می آيد روبات بايد طوری طراحی شود كه با رسيدن ولتاژ خروجی سنسور به ميانه اين بازه ( مثلاً ۵/۲ ولت ) با توجه به اين كه سنسور كم و بيش وارد خط شده ، خروجی مدار سوييچينگ از «صفر» به «يك» تغيير كرده و جهت حركت روبات تغيير كند . به اين ولتاژ كه با گذر از آن عمل سوييچينگ اتفاق می افتد ، اصطلاحاً نقطه آتش (Trigger Poin ) گفته می شود.
مقدار ولتاژ نقطه آتش چقدر بايد باشد ؟ به بيان ديگر ولتاژ خروجی سنسور بايد به چه حدی برسد تا نتيجه بگيريم سنسور وارد خط شده و جهت حركت روبات را اصلاح كنيم ؟ ۵/۱ ولت كم نيست ؟ ۵/۲ ولت بهتر نيست ؟ اصلاً بهتر نيست صبر كنيم سنسور كاملاً وارد خط شود و ولتاژ خروجی آن به ۸/۳ ولت برسد و بعد جهت حركت روبات را تغيير دهيم ؟
واقعيت اين است كه پاسخ به اين سؤال به مكانيك و نيز مدار كنترلی روبات شما بستگی دارد . در واقع بايد ببينيد دقت چرخش روبات شما در چه حد است ؟ اگر می تواند بسيار سريع و دقيق بچرخد ، نيازی نيست خيلی زودتر از ورود كامل سنسور به خط به روبات فرمان چرخش داده شود . اما اگر چرخش روبات كند و همراه با خطاست ، شايد بهتر باشد زمانی كه نيمی از سنسور وارد خط شده فرمان چرخش بدهيم تا روبات در زمان مناسب بتواند بچرخد .

اكنون مي خواهيم يك مدار سوييچينگ بسازيم كه عبور ولتاژ خروجي سنسور از ولتاژ نقطه آتش را تشخيص دهد ؛ به بيان ديگر بايد مداری طراحی كنيم كه مثلاً در ولتاژ ورودی كمتر از ولتاژ نقطه آتش ، خروجی «صفر» ( يعني ولتاژی بين صفر تا ۸/۰ ولت ) و در ولتاژ ورودی بيشتر از ولتاژ نقطه آتش ، خروجی «يك» ( ولتاژی بين ۳ تا ۵ ولت ) بدهد . يك مدار منطقي يا ميكروكنترلر می تواند از روی اين خروجی «صفر» يا «يك» ، متوجه «ورود» يا «عدم ورود» روبات به خط مشکی بشود .ساخت مدار سوييچينگ راه های مختلفی دارد .

۳-۱-۲مدار ترانزيستوری
مدار روبرو را ببينيد . مقاومت ها بايد به نحوی انتخاب شوند كه ولتاژ خروجی ترانزيستور
( ولتاژ كلكتور ) در حالت های قطع و اشباع برابر ولتاژهای ديجيتال (حدود صفر و حدود ۵ ولت ) باشد . اگر ولتاژ ورودی IN كم باشد ، ترانزيستور در حالت قطع بوده و ولتاژ خروجی آن ( ولتاژ كلكتور OUT ) «يك» خواهد بود . اگر ولتاژ ورودی ترانزيستور از حدی بالاتر برود ، ترانزيستور سوييچ كرده و وصل می شود و خروجی آن ( ولتاژ كلكتور ) از «يك» به «صفر» تغيير م

ی كند . مدار منطقی يا ميكروكنترلر از روی ولتاژ كلكتور متوجه ورود يا عدم ورود روبات به خط مشکی شده و تصميم گيری لازم را انجام می دهد . براي مدارهای سوييچينگ استفاده از ترانزيستورهای ۲N3904 يا ۲N2222 يا ترانزيستورهای مشابه مناسب است . اين مدار بيشتر در مواقعی استفاده می شود كه ورودی به سرعت تغيير كند ، و گرنه ممكن است خروجی OUT در منطقه غير مجاز ( نه «صفر» و نه «يك» ) قرار گيرد .

شکل ۳-۳ مدار ترانزیستوری

۳-۱-۳مدار اشميت تريگر
مدارهای سوييچينگ بالا با عبور از يك ولتاژ نقطه آتش سوييچ می كنند . اين مسأله ممكن است باعث دردسر شود . مثال قبلی را در نظر بگيريد ( خروجی سنسور نوری در محيط كاملاً سفيد حدود ۲/۱ ولت و در محيط كاملاً مشكی حدود ۸/۳ ولت است و ولتاژ نقطه آتش را ۵/۲ ولت در نظر گرفته ايم .) فرض كنيد سنسور در حال ورود به خط مشكي است ؛‌ بنابراين ولتاژ خروجي آن بالا رفته و سرانجام در حالي كه حدود نيمي از سنسور وارد خط شده است ، از ۵/۲ ولت مي گذرد . خروجي مدار سوييچينگ تغيير كرده و به قسمت كنترلي اعلام مي كند سنسور وارد خط شده است . روبات تغيير جهت داده و مي چرخد تا سنسور را از خط خارج كند . همين كه بيش از نيمي از سنسور از خط خارج مي شود ، ولتاژ خروجي آن از ۵/۲ ولت كمتر شده و خروجي مدار

سوييچينگ به حالت قبل باز مي گردد و به قسمت كنترلي اعلام مي كند سنسور از خط خارج شده است . به محض اين كه روبات كمي از جاي خود حركت كند ، مجدداً خروجي سنسور از ۵/۲ ولت بيشتر شده و مدار سوييچ مي كند ، باز سنسور از خط خارج مي شود و مجدداً مدار سوييچ مي كند و . . . .مشاهده مي كنيد كه با حركت سنسور در لبه خط كه ولتاژ خروجي آن در حدود ولتاژ ۵/۲ ولت نوسان مي كند ، مرتباً مدار سوييچ از «يك» به «صفر» و بر عكس تغيير مي كند و باعث مي شود هيچ گاه روبات به درستي تنظيم نشود .

براي حل اين مشكل مي توان به جاي يك نقطه آتش ، دو نقطه آتش بالا ( UTP : Upper Trigger Point ) و نقطه آتش پايين ( LTP ) در نظر گرفت . در مثال قبلي ، به جاي يك ولتاژ آتش ۵/۲ ولت ، يك ولتاژ آتش پايين به ميزان ۲ ولت و يك ولتاژ آتش بالا به ميزان ۳ ولت در نظر مي گيريم . مداري طراحي مي كنيم كه وقتي ولتاژ ورودي آن از ولتاژ آتش بالا بيشتر شد ، خروجي آن «يك» و وقتي ولتاژ ورودي آن از ولتاژ آتش پايين كمتر شد ، خروجي آن «صفر» شود . به اين

ترتيب مشكل قبلي حل مي شود و ديگر مدار سوييچ پيرامون يك ولتاژ آتش مرتباً سوييچ نمي كند . به تكنيك فوق ، ايجاد هيسترزيس (Hysteresis) يا حافظه گفته مي شود .

شکل ۳-۴ استفاده از دو نقطه آتش
با استفاده از مدار داراي هيسترزيس با LTP = 2 (v) , UTP = 3 (v) ، وقتي سنسور وارد خط مي شود ، مدار سوييچ بلافاصله واكنش نشان نمي دهد ، بلكه صبر مي كند تا سنسور قدري بيشتر وارد خط شود و ولتاژ خروجي آن از ۳ ولت بيشتر شود . در اين حالت به روبات فرمان چرخش داده مي شود . هنگامي كه كمي از سنسور از خط خارج شد ، باز مدار سوييچ بلافاصله دستور قطع چرخش مي دهد .

از معروف ترين مدارات ايجاد هيسترزيس ، مدار اشميت تريگر ( Schmitt Trigger ) است كه شكل ترانزيستوري آن را در شكل زیر مي بينيد .

شکل ۳-۵ مداراشمیت تریگر
با تنظيم مقادير مقاومت ها مي توانيد ولتاژ نقطه آتش بالا و نقطه آتش پايين را تنظيم كنيد .
مدار اشميت تريگر را با آپ-امپ با فيدبك مثبت نيز مي توان ساخت . توجه كنيد عملكرد ا

ين مدار عكس مدار اشميت تريگر ترانزيستوري است ؛ يعني با بيشتر شدن ولتاژ ورودي از UTP خروجي «صفر» و با كمتر شدن ولتاژ ورودي از LTP خروجي «يك» مي شود .
تراشه ۷۴LS14 مدار اشميت تريگر آماده را ( البته با تنظيمات مفصل ) ارائه مي كند .

شکل ۳-۶ مدار اشمیت تریگر با آپ ـ امپ

۳-۱-۴تبديل خروجي آنالوگ سنسور به ولتاژ ديجيتال به كمك A / D
مدارات سوييچينگ ، ولتاژ خروجي سنسور را به يك ولتاژ Vout ( با دو حالت «صفر» يا «يك» ) تبديل مي كنند ؛ به بيان ديگر ، به كمك خروجي دو حالته يك مدار سوييچينگ مي توان تنها دانست آيا روبات وارد خط شده است يا خير ؟ اين در حالي است كه ولتاژ خروجي سنسور از وقتي در زمينه سفيد است تا زماني كه كاملاً وارد خط مشكي شود ، به مرور تغيير مي كند . بنابراين اگر بتوانيم ولتاژ خروجي سنسور را نه به صورت يك رقم منطقي «صفر» يا «يك» ، كه مثلاً به كمك يك عدد ۸ بيتي بيان كنيم ، آن گاه مي توان به كمك ۲۵۶ عدد مختلفي كه مي توان با ۸ بيت ساخت ، مقدار ورود سنسور به خط را نيز با دقت زياد با عددي بين صفر تا ۲۵۵ مشخص كرد . مدار مبدل آنالوگ به ديجيتال اين كار را انجام مي دهد .

مثال قبلي را ( خروجي سنسور نوري در محيط كاملاً سفيد حدود ۲/۱ ولت و در محيط كاملاً مشكي حدود ۸/۳ ولت است ) مجدداً در نظر بگيريد ؛ به كمك يك A / D مداري طراحي مي كنيم كه اگر خروجي سنسور ۲/۱ ولت باشد خروجي A / D برابر صفر و اگر خروجي سنسور ۸/۳ ولت باشد خروجي A / D برابر ۲۵۵ شود ؛ در اين حالت مي توان بر اساس عدد خروجي ۸ بيتي A / D مقدار ورود سنسور به خط را دانست و براساس آن تصميم لازم را اتخاذ كرد .

مدار تراشه ADC804 را درشكل زیر مي بينيد .
اين مدار مرتباً ولتاژ Vin(+) – Vin(-) را به عدد ۸ بيتي تبديل كرده و روي پايه هاي DB0 تا DB7 نمايش مي دهد . براي مثال بالا ، خروجي سنسور را به ورودي Vin(+) متصل كرده و به كمك يك پتانسيومتر ، ولتاژ ۲/۱ ولت را ساخته و به Vin(-) متصل مي كنيم . در اين حالت اگر سنسور در محيط كاملاً سفيد باشد ( خروجي سنسور ۲/۱ ولت باشد ) ، خروجي A / D صفر
( DB7 – DBO = 00000000 ) و اگر سنسور در محيط كاملاً مشكي باشد ( خروجي سنسور ۸/۳ ولت باشد ) ، خروجي A / D برابر ( DB7 – DBO = 11111111 ) مي شود . با اتصال DB7 – DBO به مدار كنترلي ( مثلاً ميكرو كنترلر ) ، مي توان بر اساس عدد ۸ بيتي خروجي A / D تصميم گيري لازم براي حركت روبات را انجام داد . مثلاً مي توان خروجي A / D 127

( DB7-DBO = 01111111 = 255/2 ) A / D را به عنوان نقطه آتش در نظرگرفت ؛ يعني هر گاه ميكرو كنترلر عدد ۱۲۷ را از A / D دريافت كند ، مي تواند نتيجه بگيرد كه نيمي از سنسور وارد خط شده و عمل تغيير جهت روبات انجام دهد . اگر بخواهيد هيسترزيس را در سوييچ رعايت كنيد ، مي توانيد دو نقطه آتش ( مثلاً UTP برابر ۲۰۰ و LTP برابر ۱۰۰ ) در نظر بگيريد و برنامه ميكروكنترلر را طوري بنويسيد كه اين نقاط آتش رعايت شوند .

۳-۱-۵ مدار سوييچ با آپ امپ
به كمك تراشه هاي مقايسه كننده كه عموماً از نوع آپ امپ هستند و بدون فيدبك استفاده
مي شوند ، نيز مي توان عمل سوييچينگ را انجام داد .
ما نیز قصد داریم از این روش در روبات خود بهره گیریم پس ابتدا با ساختار اپ امپ ها اشنا می شویم

۳-۲آشنايي با تقويت كننده هاي عملياتي (Opamp):

شکل ۳-۸ نمونه ای از تقویت کننده های عملیاتی

تقويت كننده هاي عملياتي، تقويت كننده هاي كوپل مستقيم بوده، كه داراي گين
(Gian) خيلي زيادي مي باشند. كه مقدار اين گين را با كمك مقاومت فيدبك مي توان كنترل نمود. اين تقويت كننده ها اكثراً در مدارات خطي بكار مي روند و اغلب در مدارات غيرخطي نيز از آنها استفاده مي شود. يك تقويت كننده عملياتي ايده آل بايستي شرايط زير را دارا باشد: