1-1 روبات تعقیب خط چیست
روبات تعقیب خط ماشینی است که می تواند یک مسیر را دنبال کند. مسیر می تواند مرئی باشد مانند یک خط مشکی بر یک سطح سفید (تعقیب خط) و یا نامرئی مانند یک میدان مغناطیسی در فضای ازاد باشد. هدف طی مسیر بابیشترین سرعت و کمترین خطا نسبت به مسیر تعیین شده است. کاربرد های عملی یک چنین روباتی شامل اتومبیل های خودکار که جاده را از طریق یک مسیر راهنمای مغناطیسی دنبال می کنند یا روبات های کارگر که در کارخانه ها مسیر مشخصی را از طریق خطوط رنگی حک شده بر کف ان طی می کند می شود.
شکل 1-1 شمای یک روبات تعقیب خط
روبات تعقیب خط روباتی ایده ال برای روبات سازان اماتور می باشد. حس کردن خط و واداشتن روبات به حرکت بر روی ان به همراه اصلاح دائمی حرکت های نادرست از طریق یک مکانیزم فیدبک یک حلقه بسته ساده را ایجاد میکند.
صورت مسئله ساخت روبات تعقیب خط در مسابقات مختلف دارای جزئیات زیاد و بعضا متفاوتی است اما اصل موضوع در همه انها این است که روبات باید بتواند یک خط مشکی به عرض 1.8 سانتی متر(معمولا چسب برق) را در یک صفحه سفید دنبال کند.یعنی وقتی در ابتدای خط مشکی تنظیم و سپس روشن شود بدون نیاز به دخالت کاربر به دنبال خط مشکی حرکت کند در شکل بالا روباتی که قصد ساختن ان را داریم به همراه مسیر ان مشاهده می شود.
البته در بعضی روبات های پیشرفته تر نیازی به تنظیم کردن روبات روی خط مشکی نیست و خود روبات به صورت هوشمند خط را پیدا می کند که این بخاطر برنامه خوب نوشته شده برای میکرو ان توسط سازنده است. در روباتی که در این پروژه ساخته می شود سعی شده است این اصل رعایت شود.
1-2 بلوک دیاگرام یک روبات تعقیب خط
از نظر کلی هر روبات باید
* از طریق سنسورهایش ( حسگرها ) اطلاعاتی را از دنیای خارج جمع آوری کند
* این اطلاعات را به اطلاعات قابل فهم مغز پردازشگر خود تبدیل و به آن منتقل کند
* بر طبق برنامه ریزی قبلی ، اطلاعات را پردازش و تصمیم مناسب را اتخاذ کند
* تصمیمات نهایی را به کمک عملگرهایش اجرا کند.
تفاوت روبات های مختلف به ماهیت این مراحل برمی گردد .
روبات تعقیب خط هم همین اجزاء را درون خودش دارد :
* برای حس کردن خط به دست کم دو سنسور نوری که تفاوت رنگ سفید و مشکی را درک کنند نیاز دارد . این سنسورها انواع مختلفی مانند دیود مادون قرمز ، مقاومت متغیر با نور (فوتوسل )، فوتو – ترانزیستور و . . . دارند .
* اطلاعات سنسور از طریق یک مدارسوییچ یا مبدل آنالوگ به دیجیتال به واحد پردازشگر منتقل می شود .
* مغز پردازشگر این روبات می تواند یک مدار منطقی یا یک میکروکنترلر از هر نوعی باشد . روبات باید در قبال منحرف شدن خط ، واکنش مناسب نشان دهد.
* تصمیم واحد پردازشگر مبنی بر ادامه مسیر یا پیچیدن به چپ و راست از طریق فرمان هایی که به موتورهای روبات که ممکن است از نوع DC ( آرمیچر) یا پله ای ( Stepper ) باشند داده می شود ، انجام می پذیرد .
بلوک دیاگرام یک روبات تعقیب خط
با دو سنسور را در شکل مقابل می بینید :
1- 3 عملکرد روبات تعقیب خط
روبات تعقیب خط دست کم دارای دو سنسور نوری است که دو طرف مشکی در زمینه سفید قرار می گیرند ( تعداد سنسورها به طریقی که خواهیم دید می توان بیش از دو عدد باشد )برای اشکار سازی یک مسیر رنگی بر روی سطحی که اختلاف رنگ زیادی با مسیر دارد(مسیر مشکی بر سطح سفید یا مسیر سفید بر سطح مشکی) عموما از حسگرهای مادون قرمز استفاده می شود. هر حسگر بر اساس انکه بر روی مسیر رنگی قرار داشته باشد یا خیر یک سیگنال خروجی انالوگ تولید می کند.مدارات الکترونیکی برخی از روبات های تعقیب خط ابتدا سیگنال تولید شده را توسط یک مقایسه کننده با یک مدار مرجع مقایسه و نتیجه ی دیجیتال حاصل که یکی از دو حالت "روشن" یا "تیره" است را به قسمت کنترلر ارسال می کنند. بدین ترتیب اطلاعاتی که از حسگر به دست می اید فقط دارای دو حالت "حسگر بر روی مسیر قرار دارد" و " حسگر خارج از مسیر قرار دارد" خواهد بود و هیچ حالت دیگری در این بین وجود نخواهد داشت.
در مقابل در برخی دیگر از روبات های تعقیب خط سیگنال انالوگ حسگرها توسط مبدل انالوگ به دیجیتال به مقادیر دیجیتال تبدیل شده و به بخش کنترلر فرستاده می شود. با این روش معلوم
می شود که هر حسگر تا چه اندازه بر روی مسیر قرار دارد یا از ان منحرف شده است. که البته روباتی که قصد ساخت ان را داریم از روش اول بهره می گیرد یعنی اطلاعات هر سنسور را توسط یک مقایسه کننده به صورت یک یا صفر تبدیل کرده بعد به کنترلر ارسال می کند.
اطلاعات ارسالی از سنسورها که ممکن است به صورت انالوگ یا دیجیتال (صفر و یک) باشد به بخش پردازشگر روبات که می تواند از مدارات منطقی یا یک میکر کنترلر تشکیل شده باشد فرستاده می شود دراین قسمت که در واقع مغز روبات می باشد با استفاده از اطلاعات سنسورها وضیعت روبات را نسبت به خط (میسر) تشخیص داده و برای ادامه یا اصلاح مسیر دستوراتی را به موتورها و یا عملگرها ی روبات ارسال می کند که ممکن است روبات به سمت چپ یا راست یا میسر مستقیم حرکت کند.
دستورات بخش پردازشگر به صورت دیجیتالی (صفر یا یک) است که توسط قسمتی به نام درایور باید تشخیص داده شود وموتورها را کنترل کند. در واقع ما بین پردازشگر و موتورها یا عمل کننده ها بخشی به نام درایور داریم.
در زیر عملکرد یک روبات تعقیب خط 2 سنسوره را طبق انچه در در قسمت فوق توضیح داده شد به صورت گرافیکی مشاهده می کنید:
شکل 2-1 عملکرد یک روبات تعقیب خط
روبات های تعقیب خط را بر اساس ساختار حرکتشان می توان به انواع مختلفی تقسیم کرد که در زیر چند نمونه را مشاهده ذکر شده:
1- حرکت تانکی
2- یا حرکت با 4 چرخ 3 موتور که 2 موتور برای حرکت به جلو و یک برای چرخش به چپ یا راست
3- یا حرکت با 2 چرخ و 2 موتور و یک سکان که 2 موتور علاوه بر حرکت به جلو وظیفه چرخش به چپ یا راست را هم دارد
در شکل زیر انواع این روبات ها را مشاهده می کنید:
(2) (1) (2)
شکل 1-3 انواع روبات تعقیب خط 1- حرکت با چهار چرخ و سه موتور ـ 2ـ حرکت با دو چرخ و دوموتور ویک سکان
روباتی که ما قصد ساختن ان را در این پروژه داریم از سیستم نوع سوم برای حرکتش بهره می گیرد حرکت این روبات به صورت زیر عمل می باشد:
هرگاه روبات در حین حرکت به انحرافی در خط مشکی برخورد کند ، یکی از سنسورهایش وارد خط می شود ؛ مثلاً اگر خط مشکی به راست منحرف شود ، سنسور سمت راست روبات وارد خط مشکی می شود . روبات باید با توجه به سنسوری که وارد خط شده انحراف خط را متوجه شود و به همان جهت بپیچد . ساده ترین راه برای پیچیدن یک سمت ، خاموش کردن موتور همان سمت و ادامه کار موتور سمت مخالف است .
برای پیچیدن به شیوه حرفه ای تر می توانید به جای خاموش کردن موتور سمت موافق ، آن را در جهت معکوس بچرخانید .
با این کار روبات در حین پیچیدن روی زمین کشیده نمی شود و می تواند درجا بچرخد .
چرخیدن روبات باید تا آن جایی انجام شود که سنسوری که وارد خط شده بود ، از خط خارج شود ؛ یعنی مجدداً تمام سنسورها خارج خط قرار گیرند تا روبات بتواند به حرکت عادی خود ادامه دهد .
در ادامه اجزای یک روبات تعقیب خط را معرفی می کنیم.
2- 1سنسورهای روبات تعقیب خط
همان گونه که گفته شد ، روبات تعقیب خط باید از طریق سنسورهایش خط را حس کند و انحراف آن را تشخیص دهد . برای این کار به یک سنسور نوری نیاز داریم .
بلوک دیاگرام سنسور نوری به شکل روبرو است :
یک فرستنده نوری و یک گیرنده نوری را زیر روبات کنار هم قرار می دهیم ؛ به صورتی که گیرنده مستقیماً در معرض نور ارسالی از فرستنده نباشد و تنها انعکاس آن از سطح مقابل را دریافت کند . از آن جایی که مقدار نور بازگشتی از سطح مشکی کمتر از مقدار نور بازگشتی از سطح سفید است ، به کمک تحلیل مقدار نور دریافتی از سطح ، می توان مشکی و سفید بودن سطح را تشخیص داد . شکل زیر را ببینید :
شکل 2-1 چگونگی قرارگرفتن دیودها
در ذیل سه نوع سنسور نوری مختلف را بررسی می کنیم :
2-1-1 دیود مادون قرمز
فرستنده و گیرنده مادون قرمز دو دیود کاملاً مشابه هستند . یکی از آن ها امواج مادون قرمز را از خود ساطع و دیگری دریافت می کند .
مدار فرستنده مادون قرمز به شکل زیر است : مدار گیرنده ماون قرمز را ببینید :
توجه کنید که دیود گیرنده در بایاس معکوس بسته شده است ؛ بنابراین اگر میزان نور مادون قرمزی که به آن می تابد کم باشد ( مثلاً هنگام بازتابش از سطح مشکی) دیود هدایت نمی کند و ولتاژ out بالا خواهد بود . اگر نور مادون قرمز به میزان زیاد به دیود بتابد ، هدایت می کند و ولتاژ out پایین می رود . بنابراین اگر برای تشخیص خط مشکی در زمینه سفید در روبات تعقیب خط از دیودهای مادون قرمز استفاده کنید ، در حالتی که فرستنده / گیرنده مقابل سطح سفید قرار دارد ، ولتاژ out پایین تر از وقتی است که فرستنده / گیرنده وارد خط شده است .
2-1-2 مقاومت متغیر با نور ( فوتو – رزیستور یا فوتوسل )
مقاومت های معمولی تحت شرایط مختلف ( جریان ، توان ، دما ، فشار ، رطوبت ، نور ، . . . ) مقاومت تقریباً یکسانی دارند ( البته وقتی این شرایط در بازه های مجاز مربوط به آن مقاومت تغییر کنند ) . اما مقاومت هایی نیز وجود دارند که با تغییر شرایط ، مقاومت متغیری از خود بروز می دهند؛ مثلاً ترمیستور یک مقاومت متغیر با دما است و با تغییر دمای محیط مقدار مقاومت آن تغییر می کند . از ترمیستور به عنوان سنسور دما می توان استفاده کرد .
فوتوسل (Photocell) مقاومت متغیر با نور معمولی است . مقدار این مقاومت بسته به مقدار نوری که به آن می تابد تغییر می کند . برای استفاده از این سنسور در روبات تعقیب خط کافی است آن را همراه با یک فرستنده نوری معمولی مثلاً یک LED به کار برید . بهتر است رنگ LED را
شکل 2-2 مدار مقاومت متغیر بانور
طوری انتخاب کنید که بیشترین درخشش را داشته باشد ( مثلاً نارنجی تند ) . مدار زیر را ببینید
بسته به مقدار نور انعکاسی از سطح ( که به سفید یا مشکی بودن آن بستگی دارد) ، ولتاژ Vout تغییر می کند . به بیان دیگر ، ولتاژ Vout با توجه به مقدار مقاومت فوتوسل و مقاومت سری شده با آن ، در دو سطح مشکی و سفید دو مقدار متفاوت دارد . از روی مقدار این ولتاژ ، روبات می تواند خط را تشخیص دهد .
2-1-3 فوتو – ترانزیستور
در ترانزیستورهای معمولی دو پیوندی (BJT) ، مقدار جریان lc که از کلکتور به امیتر جریان دارد ، بسته به جریان lB که به بیس آن ها وارد می شود تغییر می کند . بنابراین با یک پیکربندی مناسب می توان با تغییر ولتاژ ( جریان ) بیس ، ولتاژ کلکتور را تغییر داد .
در فوتو – ترانزیستور ، آن چه باعث تغییر جریان کلکتور به امیتر می شود ، نه جریان بیس ، بلکه نوری است که به بیس می تابد . بنابراین بسته به نوری که به بیس فوتو – ترانزیستور می تابد
( که با انعکاس از دو سطح سفید و مشکی متفاوت است ) ، ولتاژ کلکتور تغییر می کند . این نور بسته به نوع فوتو-ترانزیستور ، می تواند نور معمولی یا مادون قرمز باشد . مدار فرستنده -گیرنده فوتو-ترانزیستور به مدار فوتوسل شباهت زیادی دارد .
حال با توجه به معرفی و بررسی انواع سنسورهای مادون قرمز ما در این پروژه برای روبات خود از سنسورهای نوع مادون قرمز استفاده می کنیم.
در ذیل سنسور مادون قرمز CNY70 که ما در این پروژه قصد داریم از ان استفاده کنیم به همراه Datasheet ان تشریح می شود.
شکل 2-3 مدار فوتو ترانزیستور
2- 2 سنسور CNY70
این سنسور به صورت یک بسته حاوی دو عدد سنسور مادون قرمزاست. یک سنسور فرستنده و سنسور دیگر گیرنده می باشد. برای اینکه روبات شما بهتر کار کند بهتر است بجای استفاده از دو سنسور مادون قرمز به صورت مجزا از این packeg سنسور استفاده کنید. در این سنسور پایه های بلندتر در هر سمت سمت آند و پایه های کوتاهتر سمت کاتد است.
با استفاده از این نوع سنسور میزان خطاها تا حد قابل ملاحظه ای کاهش می یابد.
شکل 2-4 نمایی از یک سنسور CNY70
2-3 تعداد سنسورها
شیوه های زیادی برای دنبال کردن یک خط توسط روبات وجود دارد که در تمامی آنها از تعدادی سنسور برای این کار استفاده می شود. اگر خط تنها پیچ و انحراف داشته باشد ، دو سنسور که دقیقاً دو سمت خط قرار گرفته باشد ، کافی است . اما معمولاً در مسابقات رسمی ، خط دارای بریدگی ها و تقاطع هایی با زوایا و اندازه های مختلف است . اگر تنها از دو سنسور استفاده کنید ، ممکن است خط را گم کنید . بنابراین اگر چند سنسور در فواصل و زوایای مختلف تعبیه کنید مفید خواهد بود .
اکنون حالت های مختلف سنسورها از لحاظ تعداد و نحوه چیدن انها را بررسی می کنیم. در واقع قصد داریم درباره ی تاثیر تعداد سنسورها در توانایی روبات برای تعقیب خط بحث کنیم و در نهایت بهترین حالت را برای روبات خود انتخاب می کنیم .
2-3-1استفاده از یک سنسور: (The Edge Finder)
در این حالت تنها یک سنسور وظیفه ی دنبال کردن خط را بر عهده دارد و عملا یک لبه از خط با تغییر مکان از سیاه به سفید توسط ربات درک میشود. یک موتور وقتی فعال میشود که خط دیده می شود و موتور دیگر وقتی که خط توسط سنسور دیده نمیشود فعال می شود. این روش تنها برای سرعت های بسیار کم قابل استفاده است و در سرعت های بالاتر کاربرد ندارد. واضح است در صورتی که ربات در لبه ی دیگر ربات قرار بگیرد در جهت مخالف حرکت خواهد کرد و یا اگر ربات خط را گم کند در یک مدار دایره ای برای همیشه چرخش خواهد کرد. از این نوع سنسور به ندرت همراه با میکروکنترلرها استفاده میشود. در حالت باینری برای سنسورها تنها دو صورت صفر یا یک را میتوان در نظر گرفت.
تنها حالت ها ی ممکن عبارتند از:
Line off the – 0
Line over the -1
2-3-2 استفاده از 2 سنسور : (The Line Avoider)
استفاده از 2 سنسور شبیه به حالت یک سنسور می باشد با این تفاوت که هر سنسور به طور مجزا وظیفه ی کنترل یک موتور را دارد. سنسورها در دو طرف خط قرار میگیرند و از وارد شدن به خط اجتناب می کنند. روبات در این حالت بهتر از حالت قبل کار می کند اما با گم کردن خط دچار سرگردانی می شود دلیل این اتفاق این است که ربات نمی تواند اختلاف بین در خط قرار گرفتن با بیرون خط بودن را درک کند. در این حالت در صورتی که از میکرو کنترلر استفاده شود میتوان بعضی از این مشکلات را از طریق نرم افزار برطرف کرد. در صورتیکه دو سنسور را به انداره ای نزدیک هم قرار داده باشیم که هر دو روی خط وسط قرار گرفته باشند می توانیم به این روش هم خط را دنبال کنیم که با خروج هر سنسور از خط موتور متصل به آن خاموش شود.
حالت های ممکن برای این حالت عبارتند از:
00- 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
2-3- 3استفاده از 3 سنسور : (The Line Seer)
حال با اضافه کردن سنسور سوم به روبات آن را از وجود خط و همچنین لبه های خط آگاه
می کنیم. حالا روبات این برتری را دارد که از موقعیت خط آگاهی پیدا کند برای مثال گم کردن خط را توسط سنسور وسط درک کند. سنسور سوم همچنین میتواند در مسیر های دارای خمیدگی (انحناء) نقش بسیار زیادی را در کاهش سرعت برای بالا بردن دقت در عمل تعقیب خط و جلوگیری از گم کردن خط داشته باشد و سرعت را در مسیرهای مستقیم چندین برابر کند به این روش کنترل چند سرعته یا PWM گفته می شود.
استفاده ار سنسور سوم در طراحی ها رایج است خصوصا در ربات هایی که در آنها از میکروکنترلر استفاده شده است.
شرایط امکان پذیر برای این حالت عبارتند از:
001 – Moving off the line to the left
010 – Centered over the line
011 – Slightly off the line to the left
100 – Moving off the line to the right
101 – Not used
110- Slightly off the line to the right
111 -Not used ,but could be used in the advanced or maze solving contests
2-3-4استفاده از 5 سنسور: (The Line Dancer)
ممکن است این سوال مطرح شود که 3 سنسور برای کنترل کامل ربات کافی می باشد در اینصورت دلیل استفاده از 2 سنسور اضافه چیست؟
استفاده از 2 سنسور دیگر به ترتیبی که در زیر نشان داده شده است قا بلیت اطمینان را بالا
می برد و همچنین روبات می تواند پیچ های تند تر را نیز تشخیص دهد.
صورت های ممکن برای این حالت : (تنها حالتهای مفید نوشته شده)
00000- 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
00010 – 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 – Almost off the line, steer hard left and reduce speed
11111 – Line intersection or circle at end of maze
البته باید در نظر داشت ممکن است سنسورها به صورت های گوناگون دیگری هم قرار بگیرند که بسته به فکر و برنامه شخص سازنده دارد.
ما نیز قصد داریم از 5 سنسور مادون قرمز cny70 مطابق قسمت بالا استفاده کنیم.
دقت داشته باشید که با در نظر گرفتن سنسورها به عنوان اعداد باینری به راحتی می توانیم تصمیمات منطقی خود را به برنامه تبدیل کنید.
در ادامه انواع روش ها برای این کار بررسی می شود.
3-1تبدیل و انتقال خروجی سنسور به مدار پردازشگر
خروجی هر کدام از مدارات سنسوری بخش قبل ، یک ولتاژ آنالوگ ( پیوسته ) بین صفر تا 5 ولت است که بسته به این که سنسور در محیط سفید یا مشکی باشد ، مقادیر مختلفی خواهد داشت . مثلاً فرض کنید خروجی یک سنسور نوری در محیط کاملاً سفید حدود 2/1 ولت است و با ورود کامل آن سنسور به خط مشکی خروجی سنسور 8/3 ولت می شود ( تلاش نکنید سنسور خود را طوری بسازید که ولتاژ خروجی آن دقیقاً منطبق بر این مقادیر باشد ! این تنها مثالی برای درک شما از موضوع است ). مدار پردازشگر باید بر اساس این دو مقدار واکنش مناسب را نشان دهد و روبات را هدایت کند . اما مدارهای پردازشگر ( چه مدار منطقی و چه میکروکنترلر ) تنها مقادیر دیجیتال را
می شناسند . یعنی باید با آن ها به زبان "صفر" و "یک" صحبت کرد .
در منطق ولتاژهای دیجیتال ، از ولتاژ بین صفر تا حدود 8/0 ولت به "صفر منطقی" و از ولتاژ بین 3 تا 5 ولت به "یک منطقی" تعبیر می شود .
بنابراین اگر مثلاً خروجی یک سنسور نوری در محیط کاملاً سفید 2/1 ولت و در محیط کاملاً مشکی 8/3 ولت باشد ، یک مدار منطقی یا میکروکنترلر هیچ درکی از آن نخواه داشت . بلکه این ولتاژها باید به مقادیر دیجیتال تبدیل شوند تا قابل درک توسط مدار پردازشگر باشند .
برای تبدیل خروجی آنالوگ سنسور به مقدار دیجیتال دو راه وجود دارد :
به کمک یک مدار سوییچینگ شما می توانید از روی خروجی آنالوگ سنسور ، "بودن" یا "نبودن" سنسور در خط را مشخص کنید .
اگر از مدار مبدل آنالوگ به دیجیتال (A/D ) استفاده کنید ، می توانید درصد وارد شدن سنسور به خط را نیز تشخیص دهید .
شکل 3-1 نمودار محدوده ولتاژ آنالوگ
3-1-1مدار سوییچینگ
به کمک یک مدار الکترونیکی سوییچینگ می توان ولتاژ آنالوگ خروجی سنسور را به یک ولتاژ دیجیتال "صفر" یا "یک" قابل درک توسط مدار منطقی یا میکروکنترلر تبدیل کرد . به زبان ساده مداری می خواهیم که مثلاً وقتی سنسور در منطقه سفید است "صفرمنطقی" و وقتی وارد منطقه مشکی می شود ، "یک منطقی" را به عنوان خروجی تولید کند . با این کار ، مدار پردازشگر از روی این ولتاژ متوجه "ورود" یا "عدم ورود" روبات به خط مشکی می شود .
بلوک دیاگرام مدار سوییچینگ به شکل زیر است :
به یک نکته مهم توجه کنید . فرض کنید هنگامی که سنسور کاملاً از خط مشکی خارج است
( در محیط کاملاً سفید است ) دارای خروجی 2/1 ولت می باشد و با ورود کامل به خط مشکی دارای ولتاژ 8/3 ولت می شود .
می خواهیم این ولتاژهای آنالوگ را به کمک یک مدار سوییچینگ به گونه ای به یک ولتاژ دیجیتال تبدیل کنیم که وقتی سنسور در منطقه سفید است "صفر منطقی" و وقتی وارد منطقه مشکی می شود ، "یک منطقی" را به عنوان خروجی داشته باشیم . هنگامی که سنسور از زمینه سفید وارد خط مشکی می شود ، خروجی سنسور به مرور از 2/1 ولت تا 8/3 ولت تغییر می کند .
شکل 3-2
به نظر می آید روبات باید طوری طراحی شود که با رسیدن ولتاژ خروجی سنسور به میانه این بازه ( مثلاً 5/2 ولت ) با توجه به این که سنسور کم و بیش وارد خط شده ، خروجی مدار سوییچینگ از "صفر" به "یک" تغییر کرده و جهت حرکت روبات تغییر کند . به این ولتاژ که با گذر از آن عمل سوییچینگ اتفاق می افتد ، اصطلاحاً نقطه آتش (Trigger Poin ) گفته می شود.
مقدار ولتاژ نقطه آتش چقدر باید باشد ؟ به بیان دیگر ولتاژ خروجی سنسور باید به چه حدی برسد تا نتیجه بگیریم سنسور وارد خط شده و جهت حرکت روبات را اصلاح کنیم ؟ 5/1 ولت کم نیست ؟ 5/2 ولت بهتر نیست ؟ اصلاً بهتر نیست صبر کنیم سنسور کاملاً وارد خط شود و ولتاژ خروجی آن به 8/3 ولت برسد و بعد جهت حرکت روبات را تغییر دهیم ؟
واقعیت این است که پاسخ به این سوال به مکانیک و نیز مدار کنترلی روبات شما بستگی دارد . در واقع باید ببینید دقت چرخش روبات شما در چه حد است ؟ اگر می تواند بسیار سریع و دقیق بچرخد ، نیازی نیست خیلی زودتر از ورود کامل سنسور به خط به روبات فرمان چرخش داده شود . اما اگر چرخش روبات کند و همراه با خطاست ، شاید بهتر باشد زمانی که نیمی از سنسور وارد خط شده فرمان چرخش بدهیم تا روبات در زمان مناسب بتواند بچرخد .
اکنون می خواهیم یک مدار سوییچینگ بسازیم که عبور ولتاژ خروجی سنسور از ولتاژ نقطه آتش را تشخیص دهد ؛ به بیان دیگر باید مداری طراحی کنیم که مثلاً در ولتاژ ورودی کمتر از ولتاژ نقطه آتش ، خروجی "صفر" ( یعنی ولتاژی بین صفر تا 8/0 ولت ) و در ولتاژ ورودی بیشتر از ولتاژ نقطه آتش ، خروجی "یک" ( ولتاژی بین 3 تا 5 ولت ) بدهد . یک مدار منطقی یا میکروکنترلر می تواند از روی این خروجی "صفر" یا "یک" ، متوجه "ورود" یا "عدم ورود" روبات به خط مشکی بشود .ساخت مدار سوییچینگ راه های مختلفی دارد .
3-1-2مدار ترانزیستوری
مدار روبرو را ببینید . مقاومت ها باید به نحوی انتخاب شوند که ولتاژ خروجی ترانزیستور
( ولتاژ کلکتور ) در حالت های قطع و اشباع برابر ولتاژهای دیجیتال (حدود صفر و حدود 5 ولت ) باشد . اگر ولتاژ ورودی IN کم باشد ، ترانزیستور در حالت قطع بوده و ولتاژ خروجی آن ( ولتاژ کلکتور OUT ) "یک" خواهد بود . اگر ولتاژ ورودی ترانزیستور از حدی بالاتر برود ، ترانزیستور سوییچ کرده و وصل می شود و خروجی آن ( ولتاژ کلکتور ) از "یک" به "صفر" تغییر می کند . مدار منطقی یا میکروکنترلر از روی ولتاژ کلکتور متوجه ورود یا عدم ورود روبات به خط مشکی شده و تصمیم گیری لازم را انجام می دهد . برای مدارهای سوییچینگ استفاده از ترانزیستورهای 2N3904 یا 2N2222 یا ترانزیستورهای مشابه مناسب است . این مدار بیشتر در مواقعی استفاده می شود که ورودی به سرعت تغییر کند ، و گرنه ممکن است خروجی OUT در منطقه غیر مجاز ( نه "صفر" و نه "یک" ) قرار گیرد .
شکل 3-3 مدار ترانزیستوری
3-1-3مدار اشمیت تریگر
مدارهای سوییچینگ بالا با عبور از یک ولتاژ نقطه آتش سوییچ می کنند . این مساله ممکن است باعث دردسر شود . مثال قبلی را در نظر بگیرید ( خروجی سنسور نوری در محیط کاملاً سفید حدود 2/1 ولت و در محیط کاملاً مشکی حدود 8/3 ولت است و ولتاژ نقطه آتش را 5/2 ولت در نظر گرفته ایم .) فرض کنید سنسور در حال ورود به خط مشکی است ؛ بنابراین ولتاژ خروجی آن بالا رفته و سرانجام در حالی که حدود نیمی از سنسور وارد خط شده است ، از 5/2 ولت می گذرد . خروجی مدار سوییچینگ تغییر کرده و به قسمت کنترلی اعلام می کند سنسور وارد خط شده است . روبات تغییر جهت داده و می چرخد تا سنسور را از خط خارج کند . همین که بیش از نیمی از سنسور از خط خارج می شود ، ولتاژ خروجی آن از 5/2 ولت کمتر شده و خروجی مدار سوییچینگ به حالت قبل باز می گردد و به قسمت کنترلی اعلام می کند سنسور از خط خارج شده است . به محض این که روبات کمی از جای خود حرکت کند ، مجدداً خروجی سنسور از 5/2 ولت بیشتر شده و مدار سوییچ می کند ، باز سنسور از خط خارج می شود و مجدداً مدار سوییچ می کند و . . . .مشاهده می کنید که با حرکت سنسور در لبه خط که ولتاژ خروجی آن در حدود ولتاژ 5/2 ولت نوسان می کند ، مرتباً مدار سوییچ از "یک" به "صفر" و بر عکس تغییر می کند و باعث می شود هیچ گاه روبات به درستی تنظیم نشود .
برای حل این مشکل می توان به جای یک نقطه آتش ، دو نقطه آتش بالا ( UTP : Upper Trigger Point ) و نقطه آتش پایین ( LTP ) در نظر گرفت . در مثال قبلی ، به جای یک ولتاژ آتش 5/2 ولت ، یک ولتاژ آتش پایین به میزان 2 ولت و یک ولتاژ آتش بالا به میزان 3 ولت در نظر می گیریم . مداری طراحی می کنیم که وقتی ولتاژ ورودی آن از ولتاژ آتش بالا بیشتر شد ، خروجی آن "یک" و وقتی ولتاژ ورودی آن از ولتاژ آتش پایین کمتر شد ، خروجی آن "صفر" شود . به این
ترتیب مشکل قبلی حل می شود و دیگر مدار سوییچ پیرامون یک ولتاژ آتش مرتباً سوییچ نمی کند . به تکنیک فوق ، ایجاد هیسترزیس (Hysteresis) یا حافظه گفته می شود .
شکل 3-4 استفاده از دو نقطه آتش
با استفاده از مدار دارای هیسترزیس با LTP = 2 (v) , UTP = 3 (v) ، وقتی سنسور وارد خط می شود ، مدار سوییچ بلافاصله واکنش نشان نمی دهد ، بلکه صبر می کند تا سنسور قدری بیشتر وارد خط شود و ولتاژ خروجی آن از 3 ولت بیشتر شود . در این حالت به روبات فرمان چرخش داده می شود . هنگامی که کمی از سنسور از خط خارج شد ، باز مدار سوییچ بلافاصله دستور قطع چرخش می دهد .
از معروف ترین مدارات ایجاد هیسترزیس ، مدار اشمیت تریگر ( Schmitt Trigger ) است که شکل ترانزیستوری آن را در شکل زیر می بینید .
شکل 3-5 مداراشمیت تریگر
با تنظیم مقادیر مقاومت ها می توانید ولتاژ نقطه آتش بالا و نقطه آتش پایین را تنظیم کنید .
مدار اشمیت تریگر را با آپ-امپ با فیدبک مثبت نیز می توان ساخت . توجه کنید عملکرد این مدار عکس مدار اشمیت تریگر ترانزیستوری است ؛ یعنی با بیشتر شدن ولتاژ ورودی از UTP خروجی "صفر" و با کمتر شدن ولتاژ ورودی از LTP خروجی "یک" می شود .
تراشه 74LS14 مدار اشمیت تریگر آماده را ( البته با تنظیمات مفصل ) ارائه می کند .
شکل 3-6 مدار اشمیت تریگر با آپ ـ امپ
3-1-4تبدیل خروجی آنالوگ سنسور به ولتاژ دیجیتال به کمک A / D
مدارات سوییچینگ ، ولتاژ خروجی سنسور را به یک ولتاژ Vout ( با دو حالت "صفر" یا "یک" ) تبدیل می کنند ؛ به بیان دیگر ، به کمک خروجی دو حالته یک مدار سوییچینگ می توان تنها دانست آیا روبات وارد خط شده است یا خیر ؟ این در حالی است که ولتاژ خروجی سنسور از وقتی در زمینه سفید است تا زمانی که کاملاً وارد خط مشکی شود ، به مرور تغییر می کند . بنابراین اگر بتوانیم ولتاژ خروجی سنسور را نه به صورت یک رقم منطقی "صفر" یا "یک" ، که مثلاً به کمک یک عدد 8 بیتی بیان کنیم ، آن گاه می توان به کمک 256 عدد مختلفی که می توان با 8 بیت ساخت ، مقدار ورود سنسور به خط را نیز با دقت زیاد با عددی بین صفر تا 255 مشخص کرد . مدار مبدل آنالوگ به دیجیتال این کار را انجام می دهد .
مثال قبلی را ( خروجی سنسور نوری در محیط کاملاً سفید حدود 2/1 ولت و در محیط کاملاً مشکی حدود 8/3 ولت است ) مجدداً در نظر بگیرید ؛ به کمک یک A / D مداری طراحی می کنیم که اگر خروجی سنسور 2/1 ولت باشد خروجی A / D برابر صفر و اگر خروجی سنسور 8/3 ولت باشد خروجی A / D برابر 255 شود ؛ در این حالت می توان بر اساس عدد خروجی 8 بیتی A / D مقدار ورود سنسور به خط را دانست و براساس آن تصمیم لازم را اتخاذ کرد .
مدار تراشه ADC804 را درشکل زیر می بینید .
این مدار مرتباً ولتاژ Vin(+) – Vin(-) را به عدد 8 بیتی تبدیل کرده و روی پایه های DB0 تا DB7 نمایش می دهد . برای مثال بالا ، خروجی سنسور را به ورودی Vin(+) متصل کرده و به کمک یک پتانسیومتر ، ولتاژ 2/1 ولت را ساخته و به Vin(-) متصل می کنیم . در این حالت اگر سنسور در محیط کاملاً سفید باشد ( خروجی سنسور 2/1 ولت باشد ) ، خروجی A / D صفر
( DB7 – DBO = 00000000 ) و اگر سنسور در محیط کاملاً مشکی باشد ( خروجی سنسور 8/3 ولت باشد ) ، خروجی A / D برابر ( DB7 – DBO = 11111111 ) می شود . با اتصال DB7 – DBO به مدار کنترلی ( مثلاً میکرو کنترلر ) ، می توان بر اساس عدد 8 بیتی خروجی A / D تصمیم گیری لازم برای حرکت روبات را انجام داد . مثلاً می توان خروجی A / D 127
( DB7-DBO = 01111111 = 255/2 ) A / D را به عنوان نقطه آتش در نظرگرفت ؛ یعنی هر گاه میکرو کنترلر عدد 127 را از A / D دریافت کند ، می تواند نتیجه بگیرد که نیمی از سنسور وارد خط شده و عمل تغییر جهت روبات انجام دهد . اگر بخواهید هیسترزیس را در سوییچ رعایت کنید ، می توانید دو نقطه آتش ( مثلاً UTP برابر 200 و LTP برابر 100 ) در نظر بگیرید و برنامه میکروکنترلر را طوری بنویسید که این نقاط آتش رعایت شوند .
3-1-5 مدار سوییچ با آپ امپ
به کمک تراشه های مقایسه کننده که عموماً از نوع آپ امپ هستند و بدون فیدبک استفاده
می شوند ، نیز می توان عمل سوییچینگ را انجام داد .
ما نیز قصد داریم از این روش در روبات خود بهره گیریم پس ابتدا با ساختار اپ امپ ها اشنا می شویم
3-2آشنایی با تقویت کننده های عملیاتی (Opamp):
شکل 3-8 نمونه ای از تقویت کننده های عملیاتی
تقویت کننده های عملیاتی، تقویت کننده های کوپل مستقیم بوده، که دارای گین
(Gian) خیلی زیادی می باشند. که مقدار این گین را با کمک مقاومت فیدبک می توان کنترل نمود. این تقویت کننده ها اکثراً در مدارات خطی بکار می روند و اغلب در مدارات غیرخطی نیز از آنها استفاده می شود. یک تقویت کننده عملیاتی ایده آل بایستی شرایط زیر را دارا باشد:
1)مقاومت ورودی آن بی نهایت باشد (Ri= ∞).
2) مقاومت خروجی آن صفر باشد (Ro= O).
3) گین ولتاژ حلقه باز آن بی نهایت باشد (Av= -∞).
4) عرض باند آن بی نهایت باشد (BW= ∞).
5) هنگامی که اختلاف ولتاژ در ورودی صفر است، ولتاژ خروجی نیز صفر باشد.
6) منحنی مشخصه آن با درجه حرارت تغییر نکند.
تقویت کننده های عملیاتی اکثراً بصورت مدار مجتمع ساخته می شوند.
3-2-1اتصالات تغذیه تقویت کننده های عملیاتی
برای استفاده از رنج کامل تقویت کننده های عملیاتی، بایستی این تقویت کننده ها با دو منبع تغذیه بایاس شوند، که این عمل معمولاً با استفاده از دو منبع تغذیه مجزا صورت می گیرد. ولتاژ منبع اول نسبت به زمین (GND) برابر +VBB بوده در حالیکه ولتاژ منبع دوم نسبت به زمین برابر -VBB می باشد که غالباً مقدار این ولتاژها +15 ولت و -15 ولت انتخاب می شود.
شکل 3-9 تغذیه دوبل
معمولاً تقویت کننده های عملیاتی جهت تغذیه دو پایه دارند، چون زمین به تقویت کننده عملیاتی وصل نمی شود و فقط ولتاژهای +VBB و -VBB به تقویت کننده عملیاتی متصل
می شود. ولی با وجود این تمام اتصالاتی که بایستی زمین (GND) شوند، به نقطه بین دو منبع تغذیه زمین وصل می گردند.
همچنین هر تقویت کننده عملیاتی دو ورودی دارد؛ یکی ورودی مثبت که با V+ و دیگری ورودی منفی که با V- نشان داده می شود.
شکل تقویت کننده های عملیاتی و قراردادها:
تقویت کننده های عملیاتی به دو صورت یکی با ولتاژ تغذیه و دیگری بدون ولتاژ تغذیه مطابق شکل زیر نشان داده می شوند. در شکل روبرو اتصالات منابع تغذیه که بالایی ولتاژ تغذیه مثبت (+VBB) و پایینی ولتاژ تغذیه منفی(-VBB) است نشان داده شده و در شکل بعدی اتصالات منابع تغذیه حذف شده است. که هر دو سمبل، نشان دهنده شکل تقویت کننده عملیاتی می باشد. که در اینجا تمام مدارات مطابق شکل رسم شده است. در این سمبل ها یکی از ورودیها با علامت (+) و دیگری با علامت (-) مشخص شده است، که ورودی با علامت (+) را ورودی مثبت و ورودی با علامت (-) را ورودی منفی تقویت کننده عملیاتی گویند.
شکل 3-10 تقویت کننده عملیاتی
3-2-2 ولتاژ تفاضلی تقویت کننده های عملیاتی:
ولتاژ تفاضلی تقویت کننده های عملیاتی بصورت زیر تعریف می شود.
Vd= V+ – V-
یعنی اختلاف ولتاژ بین ورودی مثبت و ورودی منفی تقویت کننده عملیاتی را ولتاژ تفاضلی گویند. تقویت کننده های عملیاتی اکثراً با گین تفاضلی (حلقه باز) مشخص می شوند، که معمولاً گین این تقویت کننده ها با ورودیهای DC و در فرکانس های خیلی کم، برابر 100000 یا بیشتر می باشد و مقدار این گین را با Ad نشان می دهند.
ولتاژ خروجی تقویت کننده های عملیاتی در حالت ایده آل بصورت زیر می باشد.
Vo= Ad (V+ – V-) = Ad . Vd
بنابراین پاسخ خروجی تقویت کننده عملیاتی به اختلاف ولتاژ بین ورودیها بستگی دارد چرا که اساس تقویت کننده های عملیاتی، تقویت کننده های تفاضلی می باشند. در هنگام استفاده از تقویت کننده های عملیاتی، بایستی به پایه های ورودی مثبت و منفی آن دقت کافی داشت تا اشتباه وصل نشوند. ولتاژ اعمالی به پایه های ورودی مثبت و منفی تقویت کننده عملیاتی می تواند ولتاژی با دامنه مثبت یا منفی باشد. اگر ولتاژ به ورودی مثبت اعمال شود تقویت کننده عملیاتی در حالت ورودی مستقیم بوده و اگر ولتاژ به ورودی منفی اعمال شود، تقویت کننده عملیاتی در حالت ورودی معکوس خواهد بود.
شکل 3-11 نماد تقویت کننده عملیاتی
3-2-3 اشباع
ولتاژ اشباع مثبت: ماکزیمم ولتاژ مثبتی که خروجی تقویت کننده عملیاتی می تواند داشته باشد، که در حالت ایده آل برابر ولتاژ تغذیه مثبت (+VBB) است، به ولتاژ اشباع مثبت تقویت کننده عملیاتی معروف است، که با +Vsat نشان می دهیم.
ولتاژ اشباع منفی: ماکزیمم ولتاژ منفی از نظر قدر مطلق که خروجی تقویت کننده عملیاتی
می تواند داشته باشد، که در حالت ایده آل برابر ولتاژ تغذیه منفی(-VBB) است به ولتاژ اشباع منفی تقویت کننده عملیاتی معروف است که با -Vast نشان می دهیم.
چون در عمل تقویت کننده های عملیاتی ایده آل نیستند لذا ولتاژ اشباع مثبت همیشه کمتر از ولتاژ تغذیه مثبت بوده و ولتاژ اشباع منفی از نظر قدر مطلق کمتر از ولتاژ تغذیه منفی می باشد.
|-Vsat|<|-VBB| +Vsat< +VBB
که بطور نمونه مقادیر ولتاژهای اشباع مثبت و منفی با ولتاژ تغذیه ±15 ولت، برابر ±13 ولت می باشد. که این مقدار در تقویت کننده های عملیاتی متفاوت می باشد.
بنابراین در عمل بعلت کمتر بودن ولتاژ اشباع از ولتاژ تغذیه، ناحیه عملکرد فعال تقویت کننده های عملیاتی بین ولتاژهای -Vsat و+Vsat محدود می شود.
مثال:
مقدار گین تفاضلی، یک تقویت کننده عملیاتی برابر Ad= 120000 می باشد. اگر ولتاژ اشباع برابر 13.5 ولت باشد، مشخص کنید با چه اختلاف ولتاژی در ورودی، تقویت کننده عملیاتی به اشباع می رود.
حل:
مقدار ولتاژ خروجی برابر است با
Vo= Ad . Vd
پس اختلاف ولتاژ در ورودی برای به اشباع بردن تقویت کننده عملیاتی برابر است با
حال که با opamp اشنا شدیم به سراغ طراحی مدار تبدیل کننده مقدار انالوگ سنسورها به دیجیتال یعنی صفر(1 ولت) یا یک(5 ولت) می رویم.
هدف از این قسمت آشنا کردن شما با طرز کار یک تقویت کننده ی عملیاتی ساده و چگونگی استفاده از آن به عنوان مقایسه کننده ی ولتاژ در پروژه ی روبات تعقیب کننده ی خط برای تبدیل سیگنال های دریافتی از سنسور ها به صورت های منطقی 0 و 1 که برای تزریق به میکرو کنترلر به کار می رود می باشد.
امروزه انواع مختلفی از opamp ها به صورت آی سی و با قیمت های بسیار ارزان در دسترس طراحان میباشد. برای مثالLM324 یک نمونه از این آی سی ها است که با داشتن چهار تقویت کننده ی عملیاتی یکی از محبوبترین این آی سی ها می باشد.
تمام opamp ها دارای دو ورودی هستند یکی ورودی (-) و دیگری ورودی (+) .
چنانچه سیگنالی به ورودی (-) اعمال شود این سیگنال با فاز مخالف در خروجی ظاهر میشود همچنین اگر سیگنال را به ورودی (+) اعمال کنیم سیگنال خروجی به صورت همفاز با ورودی ظاهر میشود.
یکی از کاربردهای مهم opamp ها استفاده از آنها به عنوان مقایسه کننده ی ولتاژ میباشد به این معنی که یک تقویت کننده ی عملیاتی با بهره ی زیاد دو ولتاژ ورودی را با هم مقایسه کرده و در خروجی خود سیگنالی تولید میکند که برابر بودن و یا برابر نبودن ورودی ها را مشخص میکند.
یکی از دو ورودی opamp ها برای اعمال ولتاژ مرجع میباشد که معمولا به وسیله ی یک پتانسیومتر ایجاد میشود.
در صورتی که ولتاژ رفرنس به ورودی (-) اعمال شود 3 حالت زیر به وجود می آید :
1- اگر ولتاژ اعمال شده به ورودی برابر ولتاژ مرجع باشد آنگاه خروجی 0 میشود.
2- اگر ولتاژ اعمال شده به ورودی بیشتر از ولتاژ مرجع باشد خروجی ولتاژی مثبت است.
3- اگر ولتاژ اعمال شده به ورودی کمتر از ولتاژ مرجع باشد خروجی ولتاژی منفی است.
به دلیل بهره ی زیاد مقایسه کننده ها هنگامی که ولتاژ ورودی از ولتاژ مرجع میگذرد مقایسه کننده از خود عکس العمل ناگهانی نشان میدهد و از یک سطح ولتاژ به سطح دیگر میرود. به همین دلیل از این مقایسه کننده ها در مدارات شامل سنسور استفاده میشود.
حال در صورتی که ولتاژ رفرنس به ورودی (+) اعمال شود سیگنال خروجی در مقایسه با سیگنال ورودی معکوس میشود به این معنی که هنگامی که ولتاژ ورودی از ولتاژ مرجع بیشتر شودخروجی Low میشود.
شکل 3-12 مدار داخلی آی سی LM324 همراه سنسور
در شکل بالا مدار داخلی آی سی LM324 که دارای 4 تقویت کننده ی عملیاتی است و همچنین نحوه ی اتصال سنسورهای مادون قرمز به آن نشان داده شده همانطور که دیده میشود پایه های۳ , ۱۰,۵و 12 به یکدیگر و به ولتاژ رفرنس که توسط پتانسیومتر تولید میشود متصل میشود و از این طریق میتوان دقت سنسورها را تغییر داد.
پایه ی 4 از آی سی به ولتاژ +5 ولت و پایه ی 11 را به زمین متصل میکنیم در آخر پایه های ,۱ 7, 8و 14 از آی سی را میتوان به عنوان ورودی میکرو استفاده کرد.
قبل از اتصال این پایه ها به میکروکنترلر برای اطمینان از کارکرد آن و همچنین تنظیم پتانسیومتر میتوانید پس از اتصال منبع تغذیه با قرار دادن یک قطعه کاعذ سفید در فاصله ی معینی از سنسور ها آن را تنظیم کنید. در این صورت باید با قرار دادن کاغذ سفید مقابل هر سنسور دیود نورانی مربوط به آن سنسور روشن و با قرار دادن کاغذ سیاه خاموش شود.
توجه شود که در صورت حذف کردن مقاومت های متصل به دیودهای نورانی دیگر خروجی های آی سی برای میکرو کنترلر مطلوب نخواهد بود اما میتوانید 4 دیود نورانی و مقاومت های متصل به آن را از مدار حذف کنید.
در صفحه بعد قسمتی از datasheet ای سی lm324 را می توانید مشاهده کنید
موتور و مدارهای کنترل
مدار پردازشگر روبات ( چه مدار منطقی و چه میکروکنترلر ) باید به موتورها فرمان دهد . این فرمان بر حسب نوع موتور متفاوت خواهد بود که در ذیل به شرح انواع آن خواهیم پرداخت .
قبل از آن به نکته ای توجه کنید . هنگامی که به عنوان مثال روبات می خواهد به سمت چپ بپیچد ، باید موتور سمت چپ را خاموش و موتور سمت راست را روشن کنیم . در این حالت روبات در حین پیچیدن کمی به جلو نیز حرکت کرده و روی زمین کشیده می شود . برای این که روبات درجا به سمت چپ بپیچد باید موتور سمت چپ رو به عقب و موتور سمت راست رو به جلو بچرخد . به همین دلیل ضمن بررسی مدارهای کنترل موتور ، نحوه معکوس کردن جهت چرخش موتور را نیز بررسی می کنیم .
ابتدا به بررسی ساختار موتورDC و پله ای و نحوه حرکتشان می پردازیم وسپس مدارات درایو انها را بررسی می نماییم.
4-1موتور DC
آرمیچر ساده ترین نوع موتور است که آن را در ضبط صوت های کوچک یا اسباب بازی های برقی دیده اید . شکل رو به رو یک آرمیچر را نشان می دهد . هنگامی که V1 >V2 موتور به سمت راست و اگر V1 <V2 موتور به سمت چپ می چرخد .
شکل 4-1 آرمیچر
4-1-1مدار کنترلی آرمیچر
ساده ترین راه برای روشن و خاموش کردن آرمیچر ، استفاده از یک رله است .
رله یک قطعه الکتریکی است که دارای پنج پایه می باشد . در حالت عادی که ولتاژی به پایه های بوبین ( فرمان – coil ) متصل نیست ، پایه مشترک ( Common ) به پایه " معمولاً بسته "
( Normally Close ) متصل است . اگر فرمان به پایه های بوبین ( فرمان ) داده شود ( مثلاً ولتاژ 5 ولت به بیس ترانزیستور راه انداز رله متصل شود ) ، پایه مشترک به پایه ی " معمولاً باز "
( Normally Open ) متصل می شود . با قطع شدن فرمان ، مجدداً پایه مشترک به پایه " معمولاً بسته " متصل می شود . برای تشخیص این پنج پایه می توانید از اهم متر استفاده کنید . معمولاً پشت رله نیز با عبارات N.O و N.C و C و رسم تصویر یک سلف در کنار پایه های بوبین ، پایه ها از یکدیگر متمایز می شوند . هنگامی که پایه های فرمان را به ولتاژ متصل می کنید ، صدای " چسبیدن " رله از داخل آن به گوش می رسد . چون فرمان دادن به موتور جریان زیادی می خواهد و ممکن است به مدار منطقی یا پایه میکروکنترلر آسیب برساند ، از یک ترانزیستور برای فرمان استفاده
می کنیم .
شکل4-2 مدار کنترلی آرمیچر
در مدار بالا هر گاه فرمانی که از بخش پردازشگر می آید "صفر" باشد ، ترانزیستور و فرمان رله قطع است ؛ بنابراین پایه مشترک به پایه " معمولاً بسته " وصل بوده و ولتاژ موتور متصل و موتور روشن خواهد شد . اگر فرمان خروجی بخش پردازشگر "یک" باشد ، ترانزیستور و فرمان رله وصل می شود ؛ بنابراین پایه مشترک به پایه "معمولاً باز" وصل بوده و ولتاژ موتور قطع و موتور خاموش می شود . بنابراین بخش پردازشگر باید به نحوی طراحی شود که در حالت عادی برای کار کردن موتور به مدار کنترلی آن "صفر" و برای خاموش کردن موتور به مدار کنترلی آن "یک" بدهد . ولتاژ آرمیچر 12 یا 24 ولت است .
4-1-2معکوس کردن جهت چرخش موتور
اگر بخواهیم هنگام چرخیدن روبات به یک سمت ، موتور آن سمت خاموش نشود ، بلکه در جهت عکس بچرخد تا چرخش درجا و دقیق و سریعی داشته باشیم ، می توان از مدار زیر استفاده کرد :
شکل 4-3 مدار فرمان موتور DC
4-2موتور پله ای ( Stepper Motor )
یک استپ موتور وسیله ای الکتریکی است چرخش زاویه ای گسسته یا پله ای دارد و با اتصال به ضربان هایی در فرکانسی خاص کار می کند. هر ضربان فرستاده شده به موتور سبب حرکت محور موتور تا زاویه ای معین می شود که این زاویه ، زاویه استپینگ (Stepping Angle) نامیده
می شود.
شکل 1 ساختمان ساده شده یک استپ موتور "Bifilar" مگنت دائمی را نشان می دهد.
شکل 4-4 موتور پله ای
روتور از جنس آهنربای دائمی است و شش دندانه دارد که با فاصله های مساوی و یک در میان در قطب های N و S اطراف روتور قرار دارند.استاتور چهار قطب دارد که هر قطب دارای پیچه ای است که این پیچه از مرکز خروجی V را داراست.
پیچه های روی قطب های مختلف به هم وصلند بطوری که فقط پنج سیم A , B , C , D & +V از موتور خارج می شوند.پیچه با ارسال جریان به سیم +V و خروج آن از یکی از سیمهای دیگر فعال می شود.
سیم پیچ ها در دندانه های استاتور به روشی پیچیده می شوند به طوریکه نتایج زیر حاصل
می شود :
o اگر سیم B فعال باشد ، قطب 1 شمال و قطب 2 جنوب خواهند بود و اگر سیم A فعال باشد قطب 1 جنوب و قطب 2 شمال می شود.
o اگر سیم C فعال باشد قطب 3 شمال و قطب 4
جنوب و اگر سیم D فعال باشد قطب 3 جنوب و در عوض قطب 4 شمال خواهند بود.
عملکرد استپ موتورها براساس این قانون است که وقتی قطبهای مشابه دفع می شوند ، قطبهای مخالف جذب می شوند. اگر سیم پیچ ها در توالی صحیح فعال باشند روتور در مسیر و جهتی معین خواهد چرخید.
شکل 2 نشان می دهدکه روتور هنگامی که پیچه ها با توالی داده شده در جدول 1 فعال اند چگونه می گردد.همانطور که در شکل 2 مشاهده می شود ، ترتیب القاهای داده شده در در جدول 1 سبب چرخش روتور در جهت عقربه های ساعت می شود
اگر توالی این القا ها معکوس شود ، جهت حرکت نیز معکوس می شود.
اگر حتی همه القا ها متوقف شده و هیچ جریانی به موتور وارد نشود ، به علت وجود آهنرباهای دائمی در روتور بازهم مقداری جاذبه میان قطب ها و دندانه ها وجود دارد. از این رو حتی هنگامی هم که هیچ تغذیه ای به موتور متصل نیست ، بازهم قدری ((گشتاور نگه دارنده)) در موتور باقی می ماند.
از شکل 2 می توان مشاهده نمود که موتور زاویه استپینگ یا زاویه مرحله 30 درجه دارد و برای کامل کردن یک چرخه به 12 استپ یا مرحله نیاز دارد. تعداد مرحله ها در هر دور در یک موتور استپی با اضافه کردن دندانه های بیشتر روی روتور می تواند افزایش یابد و با اضافه کردن دندانه هایی به دندانه های استاتور ، زاویه استپینگ یا زاویه طی مرحله یک موتور استپی را می توان تا حد 1.8 درجه کوچک کرد به طوری که برای طی یک چرخه دویست مرحله نیاز باشد.
برنامه القای پیچه ها در شکل 2 به القای تک فاز معروف است ; از آنجا که در هر زمان فقط یکی از چهار پیچه فعال است.
در هر مرحله دندانه های روتور دقیقا در مقابل دندانه های فعال استاتور قرار می گیرند. با این حال راه اندازی موتور با دو پیچه حامل جریان در یک زمان امری ممکن است (القای دو فازی). در این حالت دندانه های روتور خود را در میان دوتا از دندانه های فعال استاتور قرار می دهند. جدول 2 برنامه کاری و موقعیت روتور را برای القای دو فاز و تک فاز نشان می دهد.توجه داشته باشید که زاویه مرحله یا همان Stepping Angle برای دو نوع القا یکی است بجز اینکه موقعیت های روتور با نصف زاویه مرحله تعیین می شوند.
اگر القای تک فاز و دو فاز با هم ترکیب شوند ، یک حالت نیم مرحله (Half Step mode) حاصل می شود. در این حالت تعداد مراحل یا استپ ها در هر چرخه دو برابر است ; به طوری که
اگر موتوری در حالت مرحله کامل یا Full – Step برای کامل کردن چرخه به دویست دور نیاز داشته باشد ، در حالت نیم مرحله یا Half – Step به چهارصد دور برای تکمیل آن نیاز دارد
جدول 3 توالی کارکرد برای حالت نیم مرحله نشان می دهد.
استپ موتوری که در بالا شرح داده شد از دو پیچه با در مقابل هم قرار دادن مگنت های همنام ر هر قطب استفاده می کند. به این دلیل است که این نوع ، استپ موتور "Bifilar" نامیده می شود.
کارایی و امکانات یک استپ موتور بسیار بیشتر از انواع دیگر الکترو موتورها می باشد. بدین لحاظ که بسیاری مکانیزم ها و حالات مختلف چرخش را می توان از آنها گرفت و همچنین این که کنترل این موتور ها بسیار آسان تر از سایرین است به طوری که عمدتا به وسایل کنترل سرعت اضافی از قبیل ترمز های الکتریکی و مکانیکی نیازی ندارند.
موتور DC کوچک و سرعت کارش بالاست و برای استفاده در روبات گزینه مناسبی است. اما تنظیم سرعت و دور موتور و عملکرد آن چندان ساده نیست . مواقعی که نیاز به کنترل دقیق سرعت و مقدار و جهت چرخش موتور داریم موتور پله ای گزینه بهتری است . ضعف موتور پله ای نسبت به آرمیچر ، حرکت پله ای و حجم و وزن بالاتر آن است . موتور پله ای همان طور که از اسمش بر می آید پله به پله حرکت می کند و برای چرخش هر پله باید فرمان جدیدی به آن داد ؛ بنابراین سرعت و مقدار چرخش موتور را می توان به راحتی با تنظیم سرعت و تعداد ارسال فرمان ها به موتور کنترل کرد .
حالت هر فرمان نسبت به فرمان قبلی ، جهت چرخش موتور را نیز تنظیم می کند . صدایی که از داخل فلاپی کامپیوتر می شنوید ، صدای چرخش پله به پله موتور پله ای داخل آن است .
ساختار یک موتور پله ای 6 سیمه به شکل رو به رو است :
دو سیم مشترک ( که معمولاً همرنگ هستند ) ، به ولتاژ موتور ( 5 یا 12 یا 24 ولت ) متصل می شوند . به چهار سیم دیگر ( A و B و C و D ) رشته های "صفر" و "یک" داده می شود که با تحت تاثیر قرار دادن سیم پیچ های داخلی باعث چرخش شافت موتور می شوند.
شکل4-5
این رشته های به ترتیب به صورت زیر باید به چهار سیم فرمان موتور داده شوند :
1100 , 0110 , 0011 , 1001 , 1100 , 0110 , . . .
همان طور که می بینید چهار رشته صفر و یک اصلی وجود دارد که هر کدام با یک شیفت چرخشی به راست از رشته قبلی به دست می آیند . هر رشته جدیدی که به سیم های فرمان موتور اعمال شود ، باعث می شود شفت موتور به اندازه یک پله بچرخد . میزان چرخش یک پله روی موتور پله ای نوشته می شود ( مثلاً 8/1 درجه ).
می بینید که کنترل این موتور بسیار ساده است :
* با کنترل تعداد رشته های صفر و یک که به موتور پله ای داده می شود ، می توان مقدار چرخش آن را به دقت تنظیم کرد .
* با تنظیم زمان بین ارسال رشته های صفر و یک ، می توان سرعت موتور را کنترل کرد .
* اگر رشته های صفر و یک را با شیفت چرخشی به چپ رشته قبلی به دست آوریم ، جهت چرخش موتور عکس می شود . رشته های ارسالی در این حالت عبارتند از :
1100 , 1001 , 0011 , 0110 , 1100 , 1001 , . . .
توجه کنید در پاراگراف بالا منظور از "صفر" اتصال به زمین و منظور از "یک" اتصال به ولتاژ موتور است .
4-2-1 مدار کنترلی موتور پله ای
بلوک دیاگرام مدار کنترل موتور پله ای به صورت زیر است :
هر کدام از بلوک ها را در زیر بررسی می کنیم .
تولید رشته های "صفر" و "یک"
4-2-2میکروکنترلر
رشته های صفر و یک گفته شده را می توان به کمک میکروکنترلر به سادگی تولید کرد . کد زیر ،رشته های صفر و یک را ایجاد کرده و به پورت P1 میکروکنترلر 8051 ارسال می کند :
MOV A, 11001100B
AGAIN :
MOV P1 , A
CALL DELAY
RR A
JMP AGAIN
با دنبال کردن گام به گام این برنامه به سادگی متوجه می شوید که روی پین های P1.3 – P1.0 رشته های صفر و یک با چرخش به راست تولید می شوند ( این بیت ها روی پین های P1.7 – P1.4 نیز تولید می شوند ). با تنظیم تاخیری که توسط زیر برنامه DELAY تولید می شود ، می توانید سرعت چرخش موتور را تنظیم کنید . اگر به جای دستور RR ( Rotat Right ) از دستور RL ( Rotat Left ) استفاده کنید ، رشته های صفر و یک به هدف چرخاندن موتور به سمت چپ روی پورت P1 تولید خواهند شد .
4-2-3 شیفت رجیستر
رشته های صفر و یک گفته شده را می توان به کمک یک تراشه شیفت رجیستر 74LS194 نیز تولید کرد . مدار رو برو را ببینید .
در ابتدای کار ورودی های S0 و S1 تراشه را "یک" می کنیم تا رشته 0011 روی پایه های خروجی تراشه شیفت رجیستر ظاهر شود . با قرار دادن ورودی های انتخاب S1 – S0 در حالت 01 ، با اعمال هر پالس ساعت ( که در این مدار به کمک یک کلید فشاری ایجاد می شود ) به پین CP ، خروجی شیفت رجیستر یک واحد به راست شیفت پیدا می کند که به دلیل اتصال ورودی سریال چپ به بیت کم ارزش خروجی ، این شیفت از نوع چرخشی خواهد بود . اگر می خواهید شیفت چرخشی به چپ داشته باشید کافی است ورودی های انتخاب S1 – S0 را در حالت 10 قرار دهید . با تنظیم سرعت اعمال پالس ساعت به پین CP تراشه ، می توان سرعت ایجاد رشته های صفر و یک ( و در نتیجه سرعت چرخش موتور ) را تنظیم کرد . مدار کنترلی روبات باید ورودی های انتخاب S0 و S1 را در مواقع لازم مقداردهی کند .
شکل4-6 شیفت رجیستر
لازم به ذکر است اگر بخواهیم در هنگام چرخیدن روبات به یک سمت ، موتور آن سمت در جهت عکس بچرخد ، باید با عکس کردن حالت ورودی های انتخاب S0 و S1 جهت چرخش بیت های خروجی را تغییر دهیم ؛ اما اگر بخواهیم در هنگام چرخیدن روبات به یک سمت ، موتور آن سمت تنها خاموش شود ، کافی است ورودی های S1 – S0 را در حالت 00 قرار دهیم . تا چرخش بیت های خروجی متوقف شود .
برای تولید متوالی پالس ساعت تراشه شیفت رجیستر ، از تراشه 555 در حالت "ناپایا" ( Astable ) استفاده می کنیم .
با تنظیم مقاومت ها و خازن هایی که به مدار پایه این تراشه متصل می شوند ، می توان سرعت تولید پالس ساعت ( و در نتیجه سرعت تولید رشته های صفر و یک و چرخش موتور ) را تنظیم کرد . با اتصال پایه 3 تراشه 555 به پایه CP شیفت ریجستر ، پالس ساعت مرتباً به شیفت ریجستر اعمال می شود .
شکل 4-7
4-2-4مدار تقویت جریان
چون جریان خروجی از پایه های میکروکنترلر محدود است ، برای راه اندازی موتور باید این جریان را تقویت کنیم . تراشه ULN2003 از پرکاربردترین تراشه ها برای این هدف است . شکل رو به رو نحوه استفاده از این تراشه برای راه اندازی یک موتور پله ای 12 ولت را نشان می دهد . برای تقویت بهتر جریان می توان خروجی های ULN2003 را با مقاومت های مناسب به ولتاژ موتور Pull – up کرد .
وجود LED هایی که در خروجی بافر کار گذاشته شده الزامی نیست ؛ اما بسیار به کار می آید . مدار روبات از چند مدار ساده تر تشکیل می شود که مجموع آن ها در کنار هم ، مدار پیچیده ای است که تحلیل و به ویژه یافتن محل بروز اشکال در مواقعی که روبات به درستی کار نمی کند ، کار ساده ای نیست . برای اشکال زدایی سریغ تر ، روی بورد کنترلی روبات خود در هر منطقه مهم ( خروجی مدارهای سوییچینگ سنسورها ، خروجی مدار فرمان رله ، ورودی CP شیفت ریجستر ، خروجی مدار تولید "صفر" و "یک" ، خروجی بافر برای راه اندازی موتور پله ای و . . . ) از LED استفاده کنید تا با توجه به خاموش بودن این LED بتوانید مشکل روبات را به سادگی بفهمید .
شکل 4-8 مدار تقویت جریان
4-2-5 بافر
میکروکنترلر یا شیفت ریجستر وظیفه تولید رشته های صفر و یک برای هدایت موتور را بر عهده دارند . اما اگر خروجی میکروکنترلر را مستقیماً به مدار تقویت جریان و موتور متصل کنیم ، ممکن است موتور جریان زیادی از مدار کنترل موتور بکشید وآن را بسوزاند . برای جدا کردن مدار راه اندازی موتور از مدار کنترل موتور ، از یک بافر ( مثلاً 74LS274 یا 74LS275 ) استفاده
می کنیم . این تراشه 8 بیت ورودی دارد که آن ها را عیناً در خروجی تولید می کند . اگر از خروجی بافر جریان زیادی کشیده شود تنها بافر را می سوزاند و مدار کنترل موتور سالم می ماند .
کاتالوگ تراشه های بافر در ضمیمه آمده است .
4-3 درایور ها (راه انداز)
در این قسمت برخی مدارات درایور ( راه انداز) موتور متداول با بیان نقاط قوت و ضعف هر کدام معرفی می شوند . علاوه بر آن چگونگی کنترل موتورهای dc و پله ای بیان خواهد شد .
4-3-1درایورهای H-bridge
مهم ترین اصل در کنترل موتورهای DC ، کنترل جهت آنها می باشد . مدارات H-bridge با استفاده از یک منبع تغذیه (vt و زمین ) موتور را در هر دو جهت حرکت می دهند قبل از بررسی اجزای تشکیل دهنده و چگونگی ساخت این مدارات به بررسی نحوه عملکرد آنها می پردازیم . ابتدا جهت ساعتگرد (CW) و پاد ساعتگرد (CCW) را به صورت قرار دادی تعریف می کنیم . اینکه کدام جهت ساعتگرد و کدام پاد ساعتگرد است . به صورت اختیاری انتخاب می شود .
جریان موتور پاد ساعتگرد جریان موتور ساعتگرد
شکل 4-9 مدار H-bridge
در شکل 1 یک مدار H-bridge رایج با استفاده از 4 ترانزیتسور ارائه شده است ( این ساختار برای توضیح مفاهیم ارائه شده است ، بنابراین از ساختن آن خودداری کنید ). برای ایجاد حرکت ساعتگرد ترانزیستورهای B,A باید روشن باشند . شکل 1 نحوه عبور جریان منفی به مثبت را نشان می دهد و ولتاژی که به موتور اعمال می شود در سمت راست منفی و در سمت چپ مثبت است . این مدار به دلیل ساختار ترانزیستور ها و موتور مدل H نامگذاری شده است . علاوه بر آن مدل H چگونگی اعمال ولتاژ ورودی به موتور با روشن و خاموش کردن ترانزیستورها را به صورت قطری نشان می دهد .
در شکل 2 با روشن شدن ترانزیستورهای C,B جریان پا ساعتگرد (CCW) در موتور ایجاد شده است. در این بخش نیز فلش ها جهت عبور جریان از ترانزیستورها و موتور را نشان می دهند مدارات H.bridge واقعی نیز به همین سادگی عمل می کنند .
4-3-2نیروی محرکه القایی بازگشتی و دیودهای حفاظتی
موتورهای DC به صورت ذاتی القاگرهای قدرتمندی هستند و خاصیت القای ( سلفی) انها مسائل بسیاری را در پروژه های روباتیک ایجاد می نماید .
القاگرها در برابر تغییرات جریان از خود مقاومت نشان می دهند . هنگامی که یک القاگر به منبع تغذیه متصل باشند و ولتاژ دو سر آن ناگهان قطع شود ، برای ثابت گه داشتن جریان عبوری تلاش می کند . هر چقدر جریان سریع تر قطع شود ( شدت میدان الکترومغناطیسی سریع تر کاشه یابد) القاگر تلاش بیشتری خواهد کرد . در نتیجه این تلاش اختلاف پتانسیلی ( ولتاژ) به اندازه 20 برابر
( یا بیشتر) ولتاژ اولیه در دو سر القاگر ایجاد می شود ( هنگام قطع جریان اصلی ) جهت ولتاژی که دو سر القاگر (موتور) القاء می شود عکس پلاریته ولتاژ اصلی می باشد و نیروی محرکه القایی بازگشتی یا CEMF نامیده می شود .
CEMF وقتی ایجاد می شود که میدان مغناطیسی که توسط جریان اولیه ایجاد شده است ناگهان از بین برود .
در این مبحث به پیچیدگی هایی که خواص فیزیکی این پدیده به همراه دارد وارد نمی شویم . معمولاً ترانزیستورها نوسانات ولتاژ CEMF راتحمل نمی کنند و می سوزند .
خوشبختانه می توان مدارها را در برابر CEMF محافظت نمود . متداولترین روش حفاظتی ، استفاده از دیودهای بازگشتی است . دیودها در این روش با عامل ایجاد کننده CEMF به صورت موازی نصب می شوند .
در شکل 3 و 4 مدار H- bridge فرضی با دیودهای بازگشتی نشان داده شده است . در شکل 3 چگونگی عبور جریان از دیودها وقتی کلیدها برای عبور جریان ساعتگرد خاموش می شوند نشان داده شده است . در شکل 4 جهت عبور جریان هنگامی که جریان تولید شده CEMF ( هنگام قطع شدن جریان پاد ساعتگرد) ایجاد می شود مشخص شده است . وظیفه دیودهای بازگشتی محافظت از ترانزیستور ها در برابر اثرات منفی CEMF است . این کار با کاهش ولتاژ تا 6/0 ولت که ولتاژ قابل اطمینانی است انجام می شود بهتر است که این دیودها از نوع سریع می باشند .
جریان CEMF پادساعتگرد جریان CEMFساعتگرد
شکل 4-10
4-3-3 شکل دیگر نیروی محرکه القایی بازگشتی
استفاده از دیودهای بازگشتی برای محافظت از ترانزیستورها مشکل دیگری را نیز ایجاد
می نماید . موازی شدن جریان با مسیر اصلی قدرت می تواند باعث ایجاد ولتاژ گذرا یا نویز بر روی برد مدار چاپی شود . علاوه بر آن ، اگر از PWM ( مدولاسیون پهنای پالس ) برای کنترل موتورها استفاده شود ، جریان CEMF در هر سیکل روشن و خاموش شدن وجود خواهد داشت . گاهی اوقات که ترانزیستور روشن می شود ، جریان CEMF هنوز برقرار است . این اتفاق در محلی که ترانزیستور مسیر مستقیمی را بین زمین و V+ ایجاد می کند رخ می دهد . زمان این رخداد به سرعت دیودهای بازگشتی بستگی دارد . این جریان، جریان گذرا نامید می شود و منبعی برای ایجاد نویز است . به این دلایل استفاده از خازن های بای پس سریع ( سرامیکی یا تانتالیم) در نزدیکی مدار H-bridge ( به منظور حفاظت از بقیه مدارات الکترونیک و باتری) اهمیت خاصی دارد . خازن بای پس یک خازن عادی است که برای صاف کردن ریپل ها( امواج کوچک) و نوسانات موقتی بر روی V+ ( مسیر قدرت)به کار می رود . مقدار خازن های بای پس بین 0.1_0.22 میکروفاراد است .
خازن، یک المان الکترونیکی است که در برابر تغییرات ولتاژ از خود مقاومت نشان می دهد و یک خازن بای پس به رسانای حامل قدرت( که در حالت عادی ولتاژ Vcc دارد) متصل می شود . وقتی نوسانات ولتاژ ایجاد می شود ، خازن به سرعت انرژی را جذب کرده و باعث تثبیت ولتاژ می شود . وقتی ولتاژ افت می کند خازن انرژی را که ذخیره کرده است در مدار تخلیه می کند و ولتاژ را افزایش می دهد . بنابراین وقتی خازن بای پس ( معمولاً 22/0 – 1/0 میکروفاراد) بر روی مدار H-bridge نصب شود اثرات جریان موازی به شکل قابل توجهی کاهش خواهد یافت .
4-3-4 یک مدار H-bridge ساده( با جریان پایین)
در اینجا یک مدار H-bridge ساده برای کار با موتورهای DC با جریان 100 میلی آمپر و یا کمتر ارائه شده است . ویژگی های این مدار در بخش های قبلی بیان شده است. مقادیر مقاومت ها بر مبنای بدترین گین( بهره) ترانزیستورها و در یک شرایط محافظه کارانه انتخاب شده اند . پس از آشنایی با عملکرد این مدار می توانید مدارات H-bridge با جریانهای بیشتری را طراحی کنید . برای انجام این کار باید ترانزیستورها و دیودها را با مقادیر دیگر ( که قابلیت عبور جریان بیشتری دارند) جایگزین نمود . علاوه بر آن باید مقادیر مقاومت ها را برای بای پس مناسب تغییر داد . طراحی یک مدار H-bridge جدید یک تمرین مناسب برای علاقمندان به روباتیک است .
در این مدار H-bridge از ترانزیستور 2N3904 – NPN در قسمت بالا و از ترانزیستور 2N3906,PNP در قسمت پایین استفاده شده است . این ترانزیستور ها از نظر بهره جرای ماکسیمم ( بیشینه) و سرعت روشن و خاموش شدن ویژگی های یکسانی دارند و این ترانزیستورها به علت ویژگی های نزدکی بهمی که دارند به عنوان ترانزیستورهای مکمل به کار می روند . دیودهای 1N5817 تحمل ولتاژهای بالا و توانایی عبور جریان هایی تا یک آمپر را داند . این مقدار معمولاً بیش از مقدار مورد نیاز ما می باشد . مقاومت های 4/1 وات با تلورانس پنج درصد در این شرایط به خوبی عمل می کنند . نتیجه نهایی یک مدار H-bridge قابل اطمینان است .
این مقدار H-bridge در عین سادگی بسیار قدرتمند و کار کردن با آن بسیار ساده است . زیرا فقط دو ورودی دارد (A,B) علاوه بر آن امکان اتصال کوتاه موقعی که هر دو مسیر روشن هستند و v+ به زمین متصل می شود وجود ندارد . زیرا روشن شدن ترانزیستور های بالا و پایین در یک زمان معین امکان پذیر نیست . استفاده از ترانزیستورهای PNP در قسمت بالا راندمان مدار را بالاتر
می برد .
برای استفاده از این مدار H-bridge ولتاژ از طرف A را تا v+ بالا برده و ولتاژ طرف B را به زمین متصل نمایید (شکل5) این حالت موتور در یک جهت شروع به چرخش می کند و برای چرخش موتور در جهت مخالف ولتاژ B,A را با هم عوض کنید و اگر به صورت همزمان B,A را به v+ یا زمین متصل کنید هیچ اتفاقی رخ نخواهد داد . در جدول 1-7 تمام وضعیت ها به شکلی کاربردی بیان شده است . صفر منطقی به معنی زمین و یک منطقی به معنی اتصال موتور به v+ است .
جدول 1 عملکرد H- bridge
4-3-5یک مدار H-bridge با عملکرد بهتر( با جریان پایین)
مدار H-bridge که در شکل 5 ارائه شده است دارای مشکلات بزرگی می باشد زیرا مدار فوق با میکروکنترلرها یا آی سی های CMOS , TTL عمل نمی کند سطح ولتاژ و میزان جریان مورد نیاز این مدار از سطح منطقی 5 ولت که توسط میکروکنترلر و یا آی سی های ذکر شده ارائه می شود بیشتر است . این مسئله با طراحی یک مدار جدید حل شده است و مدار H-bridge مورد نظر را می توان با میکروکنترلر نیز کنترل نمود.این مدار با استفاده از یک 74LSO6 خروجی میکروکنترلر را بافر می کند و ولتاژ و جریان مناسبی را در اختیار ترانزیستور ها قرار می دهد .
یادآوری می شود که این مدار از یک ورودی برای تغییر جهت جریان موتور استفاده می کند . توجه داشته باشید که موتور دائماً در حال چرخش است و وضعیت بی اهمیت مورد استفاده قرار نمی گیرد. اگر از PWM با فرکانس یک تاده کیلو هرتز برای راه اندازی مدار استفاد کنید می توانید چرخش در هر دو جهت و توقف را در یک مدارداشته باشید . نکته جالبی( در مورد pwm) در این طراحی وجود دارد . اینکه جریان عبوری از موتور مستقل از مقدار سرعت همواره ثابت است . از این نکته می توان نتیجه گرفت که گشتاور موتور همواره ثابت است و فقط سرعت آن تغییر می کند .
برای طراحی یک مدار H-bridge باید با مفاهیم کلی مدار و الکترونیک کاربردی آشنایی داشت . می توان برای راه اندازی یک مسیر فعال ساز پایین (active – low) مانند آنچه در شکل a6 نشان داده شده است استفاده کرد . در آی سی 74LSO6 شش بافر معکوس با خروجی کلکتور باز وجود دارد که سه تا از آنها استفاده نمی شوند . می توان دو تا از آنها را برای ایجاد مسیر فعال ساز مورد استفاده قرار داد . برای انجام این کار باید با استفاده از گیت های منطقی کلکتور باز ، یک گیت منطقی OR تشکیل داد . وقتی ورودی این مدار فعال ساز (enable) بالا می رود هم Q3 و هم Q4 روشن و Q2,Q1 هر دو خاموش می شوند و موتور به صورت آزادانه می چرخد . با این مدار فعال ساز می توان موتور را با بیشترین سرعت در هر دو جهت چرخاند و یا آن را خاموش کرد با استفاده از تغییرات PWM نیز می توان مسیر فعال ساز ایجاد کرد . جزئیات بیشتر در شکل b 6 نشان داده شده است .
4-3-6لسیت قطعات مورد نیاز برای مدار H-bridge ساده
در جدول 2 لیست قطعات مورد نیاز مدار H- bridge نشان داده شده است .
شکل 4-12 مدار H-bridge با کنترل دیجیتال
شکل 4-13 مدار H-bridge با مسیر فعال ساز
4-3-7 آی سی های H- Bridge
امروزه آی سی های H-bridge بسیاری در بازار موجود دارد و با استفاده از انها می توان در زمانی که برای طراحی و ساخت یک مدار H-bridgeصرف می شود صرفه جویی کرد . در این بخش چگونگی انتخاب یک آی سی مناسب و استفاده از آن رانشان داده می شود . بسیاری از این آی سی های راه اندز درایورهای پوش پول نامیده می شوند . علاوه بر آن چگونگی کنترل یک یا دو موتور توسط هر یک از این آی سی ها بیان می شود . تمام این درایورها با PWM نیز راه اندازی می شوند .
4-4آی سی های درایور موتور L293B , 754410 یا L293D
L293B درایور موتوری است که می تواند ولتاژ تغذیه 36-5/4 ولت را پشتیبانی نماید.
( شکل 7) این آی سی بر اثر اضافه حرارت به صورت خودکار خاموش می شود و هر موتور را تا جریان یک آمپر پشتیبانی می نمایند . L293D نیز درایور مشابهی است که دیودهای محدود کننده آن در داخل آی سی قرار دارند . آی سی 754410 جایگزین بسیار خوبی برای L293 به شمار می رود . دیودهای بازگشتی آن داخل آی سی قرار دارند و توان بالاتری دارند . علاوه بر دو تفاوت ذکر شده عملکرد کاملاً شبیه L293B عمل می کند ( شکل 8)
چگونگی استفاده ازL293B چگونگی استفاده از 754410
شکل 4-14
هنگام استفاده ار این آی سی ها ، اگر جریان بیش از 300 میلی آمپر از آنها عبور می کند پیشنهاد می شود که یک خنک کننده ( هیت سینک) بر روی آنها نصب شود . در هر دو آی سی ولتاژی که بر روی پایه 16 است Vcc1-75 4410 ) و Vss-L293B/L) به اندازه 5 ولت انتخاب شده است تا توان مصرفی بخش منطقی را به حداقل برساند . هر یک از این آی سی ها شامل چهار مدار پوش پول است که در کنار هم یک موتور DC راکنترل می کنند . هر جفت از خروجی ها یک مسیر فعال ساز (enable) مشترک دارند . عملکرد هر جفت از ورودی ها در جدول 1 بیان شده است . این آی سی ها برای ربات های کوچکی که با موتورهای DC یا پله ای کار می کنند بهترین گزینه هستند . پیشنهادمی شود که از دیود 1N5817 به عنوان دیود بازگشتی L293B استفاده نمایید .
در این پروژه از ای سی L293 استفاده می شود.
4-4-1درایور موتور L298
L298 یک درایور موتور چند منظوره است که برای راه اندازی موتورهای کوچک به کار می رود . با این آی سی می توان دو موتور Dc یا یک موتور پله ای دو قطبی را راه انداز ی نمود
( شکل 9) ولتاژهای بین 46-6 ولت را پشتیبانی کرده و جریان 2 آمپر را به صورت پیوسته و 3 آمپر را به صورت گذرا از خود عبور می دهد . بر اثر اضافه جریان به صورت خودکار خاموش شده و دارای حسگر می باشد ( در شکل 9 نشان داده نشده است ) در دیتاشیت L298 آنچه که باید انجام شود مشخص شده است . در این آی سی دیودهای محدود کننده برای داشتن عملکرد بهتر – در خارج آی سی قرار دارند . با در نظر گرفتن ورودی های ، عملکرد و شکل ظاهری L298 بسیار به 754410 , L293 شبیه است .
پیشنهاد می شود از دیود 1N5822 به عنوان دیودهای محدود کننده L298 استفاده شود .
شکل 4-15- چگونگی استفاده از L298
4-4-2درایور موتور LMD18200
این آی سی یکی از رایج ترین درایورهای موتور است . LMD18200 یک موتور DC و یا نیمی از یک موتور پله ای دو قطبی با ولتاژ 60-12 ولت و جریان تا سقف 3 آمپر را به صورت پیوسته راه اندازی می نماید . دیودهای محدود کننده آن در داخل آی سی قرار دارند . یک خروجی حسگر جریان داشته و در شرایط اضافه حرارت ( گرم شدن بیش از حد) به صورت خودکار خاموش می شود . LMD18200 یک پایه برای کنترل جهت و یک پایه PWM دارد. دارای ترمز کنترل شونده است که توسط پایه ورودی ( ترمز) فعال می شود . تا زمانی که PWM با فرکانس یک کیلو هرتز و یا کمتر کار می کند ، خازن های داخلی شارژ شده و ولتاژ بالاتری را تولید می کنند ( برای عملکرد بهتر MOSFET ها مورد استفاده قرار می گیرند .
در فرکانس های بالاتر PWM خازن های 0.01 میکروفارادی بین پایه های 1 و 2 و بین پایه های 10 و11 اضافه می شود . نحوه اتصال خازن ها در شکل 10 نشان داده شده است .
شکل 4-16 چگونگی استفاده از LMD18200
4-4-3 درایور موتور UCN 2998
این آی سی یک درایور H-bridge ساده و فشرده است ( شکل 11) از آنجائیکه UCN 2998 دیودهای محدود کننده داخلی دارد . برای راه اندازی به المان های خارجی کمتری نیاز دارد . این آی سی ولتاژهای 50-10 ولت را پشتیبانی کرده و جریان 2 آمپر را به صورت پیوسته و 3 امپر را به صورت گذرا از خود عبور می دهد . یک فعال ساز پایین (active low) داشته ( به این معنی که با منطق "0" روشن و با منطق "1" خاموش می شود ) و دارای پایه های فعال ساز (enable) و فاز ( جهت) برای کنترل موتور می باشد . UCN 2998 دارای خاموش کننده خودکار در شرایط اضافه حرارت ( گرم شدن بیش از حد) می باشد . هر H-bridge یک پایه برای کنترل جهت و یک پایه برای کنترل PWM دارد و هر H-bridge که خروجی حسگر و جریان دارد .
شکل 4-17 چگونگی استفاده از UCN2998
4-4-4درایور موتور UCN 3951
این آی سی به دو شکل ارائه می شود :
سری DIP SW و سری DIP SB 16 پایه . این آی سی از انواع قدیمی محسوب می شود ، اما معمولاً در اکثر فروشگاه ها یافت می شود . UCN 3951 قابلیت محدود کردن جریان با استفاده از یک مدار PWM داخلی را دارد ( البته در عمل نیازی به انجام این کار نیست و در مدار ارائه شده نیز از آن استفاده نشده است)این آی سی ولتاژ های تغذیه 50-10 ولت را پشتیبانی کرده و جریان 2 آمپر را به صورت پیوسته و جریان 3 آمپر را به صورت گذرا از خود عبور می دهد با استفاده از آن دو موتور DC را می توان راه اندازی کرد . در داخل خود دیودهای محدود کننده داشته . دارای خاموش کننده خودکار در شرایط اضافه حرارت ( گرم شدن بیش از حد) می باشد . برای راه اندازی به تغذیه منطقی 5 ولت نیاز دارد و دارای یک سیگنال فعال ساز می باشد.
4-5 مقدار جریان ماکسیمم یک سیم
این موضوع یکی از مسائل مهم است و از دیرباز در زمینه الکترونیک و روباتیک مطرح می باشد . از یک سیم چه مقدار جریان می توان عبور داد. اطلاعات مفیدی در جدول 3 ارائه شده است .
Amps
AWG
30
10
20
12
15
14
10
16
5
18
3. 3
20
1. 2
22
3. 1
24
8. 0
26
5. 0
28
جدول 3- رابطه ابعاد سیم با جریان مامسیمم آن
این اطلاعات برای سیم مسی استاندارد که دردمای اتاق (25C) و در فضای آزاد قرار دارد تعریف شده است . در جدول برای معرفی سیم ها از استاندارد آمریکایی (AWG) استفاده شد است . با تغییر هر سه سایز در سیستم AWG قطر سیم دو برابر / نصف می شود و مقاومت آن نیز متناسب با قطر سیم کاهش / افزایش می یابد . این اطلاعات از منابع مختلفی جمع آوری شده است . یادآوری می شود که با استفاده از سیم ها به صورت موازی مقادیر بالاتری از جریان را می توان عبور داد .
4-6مدولاسیون پهنای پالس PWM
موثرترین روش برای کنترل سرعت موتورهای DC است . تنها روش دیگری که برای کنترل سرعت یک موتور DC وجود دارد ، کنترل جریان موتور است که در آن مقدار زیادی از انرژی به صورت گرما تلف می شود . PWM با اصول بسیار ساده ای کار می کند . یک موتور ک در 20 درصد سیکل کاری خود روشن است نسبت به یک موتور مشابه که در 40 درصد سکیل کاری روشن است ولتاژ و جریان متوسط کمتری را دارد و هنگامی که موتور خاموش است انرژی مصرف نمی کند . این ویژگی باعث افزایش بازده روش PWM می گردد . در این روش موتور و آی سی درایور در دمای پایین تری کار می کنند و طول عمر باتری نسبت به سایر روشها طولانی تر است .
شکل 4-18 نمایش Pwm با سیکل های کاری مختلف
یک سیگنال PWM به دو روش تولید می شود : روش اول با فرکانس ثابت و سیکل کاری متغیر و روش دوم با پهنای پالس ثابت و فرکانس متغیر ( که مدولاسیون فرکانس پالس نامیده می شود ) انجام می گیرد . تجسم روش اول بسیار ساده است . یک سیگنال با دور زمانی ثابت را در ذهن خود تجسم کنید و در دوره زمانی ثابت فاصله زمانی که در آن موج بالا و پائین می رود ثابت است . حال سیگنال مورد نظر را در ذهن خود به گونه ای تغییر دهید که موج زمان بیشتری را در وضعیت بالا بماند . در این حالت سیکل کاری افزایش می یابد ( شکل 12)
روش دوم که با پهنای پالس ثابت و فرکانس متغیر انجام می شود ، در برخی موتورها پدیده تشدید ( رزونانس) ایجاد می کند و باعث تولید نویز و ارتعاش می گردد به همین دلیل کمتر از روش اول مورد استفاده قرار می گیرد .
دو نوع PWM برای موتورهای DC وجود دارد : مقدار – علامت و آنتی فاز قفل شده هر کدام از دو روش کاربردهای خاص خود را دارند .
4-6-1PWM مقدار ـ علامت
نام این روش از خطوط کنترلی که برای راه اندازی موتور به کار می رود گرفته شده است . یک مسیر برای کنترل جهت ( علامت ، مثبت یا منفی ) و مسیر دیگر برای کنترل مقدار به کار می رود که در حقیقت درصد دوره زمانی سیگنال PWM است . این مشخص سیکل کاری نامیده می شود شکل 12 رابطه بین سیکل های کاری مختلف PWM نشان داده شده است . برخی از آی سی های درایور موتور یک مسیر فعال ساز و فعال در حالت پایین (active – low) دارند . فعال در حالت پایین به این معتی است که وقتی ورودی مدار به زمین متصل است مدار روشن و وقتی ورودی مدار به v+ متصل است مدار خاموش می شود .
مطالب ذکر شده برای یک PWM ساده است . اما در عمل یک یا دو مسیر برای کنترل جهت و یک مسیر فعال کننده PWM نیز مورد نیاز است . برای خاموش کردن موتور می توان به سادگی ارسال سیگنال PWM به موتور را متوقف کرد و مسیر را غیر فعال نمود . می توان از خطوط حسگر جریان ( که معمولاً در بیشتر H-bridge جود دارد ) برای کنترل PWM استفاده کرد .
4-6-2 PWM آنتی فاز قفل شده
PWMآنتی فاز قفل شده از یک مسیر I/O برای ایجاد حرکت مستقیم / معکوس و ارسال اطلاعات دامنه نوسان به یک درایور H- bridge استفاده می کند .PWM با هیچ کدام از مدارات H- bridge ذکر شده با یک مسیر تعیین جهت و یک مسیر فعال کننده PWM کار نمی کند .
شکل 4-19 PWM آنتی از قفل شده
برای آگاهی از چگونگی عملکرد PWM آنتی فاز قفل شده به شکل موج خروجی دقت کنید وقتی سیکل کاری 50 درصد است ، موتور در جهت ساعتگرد و پاد ساعتگرد جریان یکسانی را دریافت می کند و برآیند جریان ها برابر صفر است. موتور در این حالت حرکت نمی کند . اگر یک PWM با سیکل کاری 25 درصد ایجاد شود . برای مثال در طرف A،25 درصد سیکل کاری و در طرف B،75 درصد سیکل کاری روشن باشد، برایند جریان ها باعث چرخش موتور در آن جهت
می گردد . اگر در طرف A،75 درصد سیکل کاری و در طرف B ، 25 درصد سیکل کاری روشن باشد برآیند جریان ها باعث چرخش موتور در جهت مخالف خواهد شد . این روش با جریان بیشتر در شکل 13 نشان داده شده است. روش آتی فاز قفل شده تغییر وضعیت سریع موتور را امکان پذیر می سازد . زیرا در این روش دو ترانزیستور همیشه روشن هستند ( همیشه از آنها جریان عبور می کند) و فقط یک مسیر کنترلی برای کنترل جهت و آنتی فاز مورد نیاز است . در این روش امکان استفاده از حسگر وجود ندارد .
4-6-3بهترین فرکانس PWM
فرکانس های بالای PWM می توانند باعث تشدید مکانیکی در موتور شوند . تشدید پدیده است که باعث ارتعاش در سازه مکانیکی موتور می شود . فرکانسهای پایین فرکانس PWM یک موتور با استفاده از مشخصه های آن تعیین می شود . اگر مقاومت سیم پیچ های یک موتور در مقایسه با اندوکتانس آن بالا باشد، موتور ( هنگامی که سیگنال PWM) روشن است قادر به تولید جریان ماکسیمم ( پیشینه) نبود و دسترسی به سرعت و بازده ماکسیمم ( بیشینه) امکان پذیر نخواهد بود . بیشتر موتورها ، مشخصه اندوکتانسی که از آنها انتظار می رود را ندارد.
عامل دیگری که استفاده از PWM را محدود می کند به نرم افزار یا سخت افزار تولید کننده PWM مربوط است . در حقیقت نرم افزار عامل محدود کننده اصلی است . زیرا نرم افزار سریعتر از موتورعمل می کند و دستورات پیش از اجرای کامل آن توسط موتور تغییر می دهد . در هر صورت ، فرکانسهای PWM کمتر از یک کیلو هرتز توصیه نمی شوند . زیرا موتور در فرکانس های کمتر از مقدار ذکر شده بسیار پر تلاطم بوده و در سیکل های کاری نزدیک 50 درصد صدا تولید می کند . اما در فرکانس های بالاتر ( 8 کیلو هرتز و بیشتر) این صدا از بین می رود . بیشتر موتورهای DC که به صورت یکنواخت با فرکانس 20-10 کیلو هرتز آزمایش می شوند صدا تولید نمی کنند .
اگر واقعاً به محاسبه بیشترین فرکانس PWM علاقمند هستید، باید اطلاعات مربوط به مشخصه های موتور را با تمام جزئیات داشته باشید . فرمول زیر برای تعیین بیشترین فرکانس به کار می رود . برای محاسبه فرکانس ، طرف چپ رابطه باید حداقل 10 برابر بزرگتر از طرف راست رابطه باشد . در غیر این صورت ، موتور گشتاور ماکسیمم را تولید نخواهد کرد .
در اینجا فرکانس قطع و وصل ، L، اندوکتانس روتور و R مقاومت آن می باشد . اندازه گیری مقاومت روتور با یک ولت متر ساده دیجیتال امکان پذیر است . در صورتی که دیتاشیت اندوکتانس روتور (L) داده نشده است ، باید از پل اندوکتانس(ابزار تک منظوره ای که برای اندازه گیری اندوکتانس به کار می رود) برای محاطبه Lاستفاده کرد.
4-6-4شبکه اسنابر
شبکه اسنابر به جای دیودهای بازگشتی و یا همراه با آنها به کار می رود . اسنابر ولتاژی که CEMF( نیرو محرکه القایی بازگشتی) تولید می کند را از بین می برد . شبکه اسنابر شامل یک مدار RC است که در آن خازن تغییرات ولتاژ و مقاومت جریان – بیشینه ای که از میان ترازیستور عبور می کند – را مهار می کند .
در ابتدا و پس از خاموش شدن ترانزیستورها ولتاژ دو سر اسنابر به مقدار پیش بینی شده افزایش می یابد . مقدار ولتاژ از ضرب کردن جریان عبوری از ترانزیستور در مقاومت دو سر آت محاسبه
می شود . سپس با شارژ شدن خازن ، مقدار ولتاژ تا حد مشخصی افزایش می یابد . برای انتخاب مقادیر شبکه اسنابر، مقدار مقاومت باید به گونه ای انتخاب شود که پس از عبور جریان ماکسیمم موتور از آن ، ولتاژ آن به مقداری کمتر از ولتاژ منبع تغذیه کاهش یابد . اگر مقدار مقاومت بیش از حد بزرگ انتخاب شود ،شبکه اسنابر قادر به خنثی کردن ولتاژ افزایش یافته نبوده و به هدف اصلی خود دست نخواهد یافت . ولتاژ مینیمم توسط شما و جریان پیک ( بیشینه ) توسط موتور تعیین می شود . مقدار جریان مهار شده نیز به مدار H- bridge BRIDGE بستگی دارد . مقدار مقاومت از رابطه زیر به دست می آید :
مقدار ظرفیت خازن شبکه اسنابر به جریان پیک ( بیشینه ) و زمان صعود مدار بستگی دارد . زمان صعود که با نشان داده می شود از مشخصه های آی سی H- bridge ، MOSFET یا ترانزیستور های به کار رفته می باشد . تغییرات ولتاژ از کم کردن ولتاژ موتور از ولتاژی که در درایور ترانزیستوری کاهش می یابد ( تلف می شود) محاسبه می شود .
مقدار این تلفات در دیتاشیت H- bridge یا ترانزیستور ذکر می شود . از تقسیم ولتاژ ماکسیمم موتور بر مقاومت سیم پیچ آن قابل محاسبه است و براحتی توسط یک ولت متر دیجیتال اندازه گیری می شود .مقدار ظرفیت خازن از رابطه زیر به دست می آید:
اجرای مناسب شبکه اسنابر گرمایی را که بر اثر جابجایی جریان حاصل از CEMF در ترانزیستور ها ایجاد می شود را کاهش داده و پاسخ های موتور به تغییرات ولتاژ را خطی می نماید .
4-7آی سی های دیگر برای راه اندازی موتور پله ای
در اینجا دو آی سی دیگر نیز معرفی می شوند . این آی سی ها کاملاٌ مفید بوده و یک موتور پله ای را به صورت کامل پشتیبانی می نمایند .
4-7-1راه اندازه موتور پله ای تک قطبی با استفاده از ULN 2004 و TULN 2003
ULN 2004/ULN 2033 یک آی سی16 پایه با 7 درایور 500 میلی آمپری می باشد . در داخل آن دیودهای بازگشتی به کار رفته است که به خروجی آی سی متصل می باشند . مدل 2033 با ولتاژ 5 ولت تغذیه شده و هم با آی سی های TTL و هم CMOS سازگار است . هر دو مدل سیم پیچ های موتور را تا 50 ولت پشتیبانی می کنند .
شکل 4-20 راه اندازی موتور پله ای تک قطبی ULN 2003
همان گونه که شکل 14 نشان داده شده است ، دیود زنر برای از بین بردن و اصلاح سریعتر جریان به کار رفته است و به بهبود عملکرد موتور پله ای کمک می کند . در این مدار قطعه IN3024 به عنوان دیود زنر پیشنهاد می شود .
4-7-2راه اندازی موتور پله ای تک قطبی با استفاده از UDN 2540 , UDN 2544
این مدارات درایور برای مقادیر بالای ولتاژ و جریان طراحی شده اند و برای راه اندازی یک موتور پله ای با چهار سیم ایده آل هستند . هر دو آی سی می توانند سیم پیچ ها تا ولتاژ 50 ولت را پشتیبانی کرده و جریان پیوسته 5/2 آمپر را از هر سیم پیچ عبور دهند و هر دو آی سی دیودهای بازگشتی داخلی دارند . در شکل 15 یک موتور پله ای و یک درایور موتور پله ای به هم متصل شده اند . مانند ULN 2003 ، همراه این درایور نیز یک دیود زنر 15 ولت ( برای اصلاج عملکرد ساختار موتور پله ای ) به کار رفته است . در داخل UDN 2544 تعدادی معکوس کنند وجود دارد.
شکل 4-21 راه اندازی موتور پله ای تک قطبی با UDN 2540
4-7-3راه اندازی موتور پله ای دو قطبی با استفاده از L298
درایور L298 علاوه بر راه اندازی موتورهای DC قادر به راه اندازی موتورهای پله ای دو قطبی نیز می باشد . این درایور حجم کمی اشغال کرده و قادر به راه اندازی موتورها تا ولتاژ 46 ولت و جریان پیک ( ماکسیمم) 2 آمپر می باشد . دارای حسگر جریان خروجی بوده و در شرایط اضافه حرارت به صورت خودکار خاموش می شود .
آی سی L297 , L298 هم تراز و برابر می باشند و هر دو به شکل گسترده ای برای راه اندازی موتورهای پله ای جریان بالا که در CNC و ماشینهای تراش استفاده می شوند . به کار
می روند . در شکل 16 یک موتور پله ای به آی سی L298 متصل شده است .
شکل 4-22 راه اندازی موتور پله ای به دو قطبی L298
4-8حسگر جریان و محافظت در برابر اضافه جریان
اگر تاکنون حسگر جریان را بر روی سیستم کنترل موتور نصب نکرده اید تصویه می شود که حتماً آن را به درایور اضافه کنید تشخیص و محافظت در برابر اضافه جریان به دلایل زیر ضروری می باشد:
4-9طول و عمر موتور
هنگامی که یک موتور با حداکثر سطح جریان و در یک بازه طولانی مدت می چرخد ، طول عمر آن به شدت کاهش می یابد . در صورتی که اگر اضافه جریان مشخص شده و موتور به صورت خودکار خاموش شود، طول عمر آن به شکل قابل توجهی افزایش می یابد .
4-10حفاظت در برابر اضافه حرارت
هنگامی که یک روبات طراحی می شود ، حداکثر سطح جریان یکی از پارامترهای مهم طراحی است . این عامل بر روی نحوه سیم کشی ( انتخاب ابعاد سیم ها) و انتخاب هیت سینکها( خنک کننده ها) تاثیر به سزایی دارد . در صورت عبور جریان بیش از حد و عدم تشخیص آن ، این عمل باعث ایجاد آسیب های جدی به مدار کنترلر و سیم کشی می گردد . علاوه بر آن ، در این وضعیت امکان آتش سوزی نیز وجود دارد . اضافه حرارت مهم ترین عامل ایجاد اشتعال در روبات هاست .
4-11شناسایی موانع
یکی از عوامل اصلی عبور جریان بالا از موتور ، قرار گرفتن آن در شرایط توقف ( شرایطی که بار زیادی بر روی موتور قرار می گیرد و آن متوقف می کند) است . در این وضعیت موتور گشتاور ماکسیمم (بیشینه) را در رویات RPM صفر فراهم می کند .
با وجود اینکه گاهی اوقات شرایط به علت گیر کردن چرخ ها و یا سایر مشکلات مکانیکی ایجاد می شود ، اما در اکثر موارد توقف بر اثر برخورد روبات با موانعی که توسط سنسورها قابل شناسایی نیستند ایجاد می شود . با اضافه کردن حسگر جریان ، روبات قادر به تشخیص این وضعیت و داد پاسخی متناسب با آن خواهد بود . یادآوری می شود که همیشه وجود موانع باعث توقف کام روبات نمی شوند، بلکه در بعضی شرایط باعث چرخش در جا می گردند( ربات ثابت بوده و چرخ ها در جای خود می چرخند) . به هر حال باید به این قانون مهم توجه داشته باشید که افزایش جریانی که از موتور کشیده می شود ، برای غلبه بر اصطکاک بین چرخ و زمین به کار می رود . با شناسایی این اضافه جریان روبات قادر به تشخیص موانع و جبران اشتباهات و خطاهای سنسورها خواهد بود .
بخش پردازشگر
بلوک دیاگرام بخش پردازشگر به شکل زیر است:
همان طور که مشاهده می کنید ، بخش پردازشگر روبات که یک مدار منطقی یا میکرو کنترلر است ، بر حسب سیگنال های منطقی "صفر" و "یک" که از سنسورها و مدارهای سوییچینگ دریافت می کند ، باید تصمیمی مناسب برای حرکت مستقیم یا پیچیدن روبات به جهت مناسب را اتخاذ نماید و به کمک فرمان هایی که به موتورهای چپ و راست می دهد ، تصمیم خود را عملی کند .
5-1مدار منطقی
بخش پردازشگر روبات تعقیب خط می تواند به سادگی یک مدار منطقی با گیتهای NOTباشد. مثلا فرض کنید تنها از دو سنسور نوری در سمت چپ و راست خط استفاده کردیم. همچنین فرض کنید مدارات سوئیچینگ به صورتی طراحی شده اند که اگر سنسور در زمینه سفید باشد خروجی مدار سوئیچینگ صفر و با ورود سنسور به خط مشکی مدار سوئیچینگ یک می شود. فرض دیگر این است که برای روشن کردن یک موتور باید به مدار کنترلی ان موتور یک و برای خاموش کردن ان باید به مدار کنترلی ان صفر ارسال شود.
مدار کنترلی روبات می تواند به شکل روبرو باشد.
شکل 5-1 مدار منطقی
این مدار بر اساس این واقعیت طراحی شده است که اگر سنسور سمت راست وارد خط شود به معنای انحراف خط به سمت راست است بنا براین روبات باید به سمت راست بپیچد.برای این کار باید موتور سمت راست خاموش شده و موتور سمت چپ به کار خود ادامه دهد. یعنی اگر سنسور سمت راست یک شود باید به مدار کنترل ان صفر ارسال شود. با خارج شدن سنسور سمت راست از خط (خروجی سنسور صفر شود) موتور سمت راست باید مجددا روشن شود (به مدار کنترلی ان یک ارسال شود). روند پیچیدن روبات به سمت چپ نیز به همین شکل خواهد بود.
به نظر بیش از حد ساده می اید! این مدار کنترلی عملا پاسخ می دهد البته مشروط به اینکه مکانیک و سرعت پیچیدن روبات شما در حد مطلوب باشد. توجه کنید اگر مدار کنترل موتور طوری طراحی شده باشد که لازم باشد برای روشن کردن موتور صفر و برای خاموش کردن یک به ان ارسال کنیم حتی به ان گیتهای NOT نیز نیازی نیست! در مورد نحوی طراحی مدار کنترل موتور بعدا صحبت خواهیم کرد.
البته بهره گیری از این شیوهای کنترلی محدودیت های زیادی به همراه دارد.
5-2میکروکنترلر
اگر ضعفی در بخشهای دیگر وجود داشته باشد شاید بهتر است برای ان ضعفها و برنامه ریزی دقیقتر بخش پردازشگر از یک میکرو کنترلر استفاده کنیم. به علاوه گاهی برای افزایش دقت عملکرد روبات بیش از دو سنسور نوری استفاده می شود (مثلا دو سنسور در جلو یا دو سنسور در سمت راست و دو سنسور در سمت چپ و….) مطابق انچه در بخش سنسور ها گفته شد. در این حالت اگر بخواهید برای بخش پردازشگر از مدار منطقی استفاده کنید. باید جدول درستی مدار فوق را رسم کرده و ساده کنید و سپس بر اساس ان مدار را طراحی کنید. که استفاده از میکروکنترلر کاری ساده تر و با انعطاف بیشتر می باشد.
همانطور که قبلا نیز گفته شد ما در این پروژه قصد استفاده از 5 سنسور و میکروکنترلر AVR را داریم پس در ادامه به معرفی این میکرو کنترلر می پردازیم.
5-2-1میکرو کنترلر AVR
ساده ترین معماری میکرو کنترلر، متشکل از یک ریز پردازنده، حافظه و درگاه ورودی/خروجی است. ریز پردازنده نیز متشکل از واحد پردازش مرکز (CPU) و واحد کنترل (CU)است.
CPU درواقع مغز یک ریز پردازنده است و محلی است که در آنجا تمام عملیات ریاضی و منطقی ،انجام می شود. واحد کنترل ، عملیات داخلی ریز پردازنده را کنترل می کند و سیگنال های کنترلی را به سایر بخشهای ریز پردازنده ارسال می کند تا دستورالعمل ها ی مورد نظر انجام شوند.
حافظه بخش خیلی مهم از یک سیستم میکرو کامپیوتری است. ما می توانیم بر اساس به کارگیری حافظه، آن را به دو گروه دسته بندی کنیم: حافظه برنامه و حافظه داده . حافظه برنامه ، تمام کد برنامه را ذخیره می کند. این حافظه معمولاً از نوع حافظه فقط خواندنی (ROM) می باشد. انواع دیگری از حافظه ها نظیر EPROM و حافظه های فلش EEPROM برای کاربردهایی که حجم تولید پایینی دارند و همچنین هنگام پیاده سازی برنامه به کار می روند . حافظه داده از نوع حافظه خواندن / نوشتن (RAM) می باشد . در کاربردهای پیچیده که به حجم بالایی از حافظه RAM نیاز داریم ، امکان اضافه کردن تراشه های حافظه بیرونی به اغلب میکرو کنترلر ها وجود دارد.
درگاهها ورودی / خروجی (I/O )به سیگنال های دیجیتال بیرونی امکان می دهند که با میکرو کنترلر ارتباط پیدا کند. درگاههای I/O معمولاً به صورت گروههای 8 بیتی دسته بندی می شوند و به هر گروه نیز نام خاصی اطلاق می شود. به عنوان مثال ، میکروکنترلر 8051 دارای 4 درگاه
ورودی / خروجی 8 بیت می باشد که P3, P2, P1, P0 نامیده می شوند. در تعدادی از میکرو کنترلر ها ، جهت خطوط درگاه I/O قابل برنامه ریزی می باشد. لذا بیت های مختلف یک درگاه را می توان به صورت ورودی یا خروجی برنامه ریزی نمود. در برخی دیگر از میکروکنترلرها (از جمله میکروکنترلرهای 8051) درگاههای I/O به صورت دو طرفه می باشند. هر خط از درگاه I/O این گونه میکرو کنترلرها را می توان به صورت ورودی و یا خروجی مورد استفاده قرار داد . معمولاً ، این گونه خطوط خروجی ، به همراه مقاومتهای بالا کش بیرونی به کار برده می شوند.
میکرو کنترلر AVR به منظور اجرای دستورالعملهای قدرتمند در یک سیکل کلاک (ساعت) به اندازه کافی سریع است و می تواند برای شما آزادی عملی را که احتیاج دارید به منظور بهینه سازی توان مصرفی فراهم کند.
میکروکنترلر AVR بر مبنای معماری RISCکاهش مجموعه ی دستورالعملهای کامپیوتر پایه گذاری شده و مجموعه ای از دستورالعملها را که با 32 ثبات کار میکنند ترکیب می کند.
به کارگرفتن حافظه از نوع Flash که AVR ها به طور یکسان از آن بهره می برند از جمله مزایای آنها است.
یک میکرو AVR می تواند با استفاده از یک منبع تغذیه 2.7 تا 5.5 ولتی از طریق شش پین ساده در عرض چند ثانیه برنامه ریزی شود یا Program شود.
میکروهای AVR در هرجا که باشند با 1.8 ولت تا 5.5 ولت تغذیه می شوند البته با انواع توان پایین (Low Power)که موجودند.
راه حلهایی که AVR پیش پای شما می گذارد، برای یافتن نیازهای شما مناسب است.
با داشتن تنوعی باور نکردنی و اختیارات فراوان در کارایی محصولات AVR، آنها به عنوان محصولاتی که همیشه در رقابت ها پیروز هستند شناخته شدند.در همه محصولات AVR مجموعه ی دستورالعملها و معماری یکسان هستند بنابراین زمانی که حجم کدهای دستورالعمل شما که قرار است در میکرو دانلود شود به دلایلی افزایش یابد یعنی بیشتر از گنجایش میکرویی که شما در نظر گرفته اید شود می توانید از همان کدها استفاده کنید و در عوض آن را در یک میکروی با گنجایش بالاتر دانلود کنید.
ابعاد مختلف میکروهای AVR را در اشکال زیر مشاهده می کنید:
5-2-2 AVR های مدل tiny
به خود اجازه ندهید که نام آن شما را گول بزند. میکروهای مدل tiny توانایی های عظیمی دارند.به خاطر کوچک بودن و داشتن MCU بسیار پر قدرت به اینگونه میکروها نیاز فراوانی هست آنها به هیچ منطق خارجی نیاز نداشته و به همراه یک مجتمع مبدل آنالوگ به دیجیتال و یک حافظه قابل برنامه ریزی EEPROM قابلیتهای خود را ثابت می کنند.
نکات کلیدی و سودمند مدل Tiny :
آنها به منظور انجام یک عملیات ساده بهینه سازی شده و در ساخت وسایلی که به میکروهای کوچک احتیاج است کاربرد فراوان دارند.
کارایی عظیم آنها برای ارزش و بهای وسایل موثر است.
5-2-3AVR های مدل Mega
اگر شما به میکرویی احتیاج دارید که دارای سرعت و کارایی بالا باشد و توانایی اجرای حجم زیادی از کد برنامه را داشته و بتواند داده های زیادی را سروسامان دهد باید از AVR های مدل Mega استفاده کنید آنها به ازای هر یک مگا هرتز سرعت ، توانایی اجرای یک میلیون دستورالعمل در هر یک ثانیه را دارند همچنین قابل برنامه ریزی و بروزرسانی کدها با سرعت و امنیت بسیار بالایی هستند.
نکات کلیدی و سودمند مدل Mega :
حافظه سریع از نوع فلش با عملکرد خود برنامه ریز و بلوکه ی بوت (Boot Block)
دقت بسیار بالای 8-کانال در تبدیل آنالوگ به دیجیتال 10 بیتی
USART و SPI و TWI بر طبق واسطه های سریال
واسطه ی JTAG بر طبق IEEE 1149.1
توان مصرفی پایین: توان مصرفی پایین آنها برای استفاده بهینه از باتری و همچنین کاربرد میکرو در وسایل سیار و سفری طراحی شده که میکروهای جدید AVR با توان مصرفی کم از شش روش اضافی در مقدار توان مصرفی ، برای انجام عملیات بهره می برند.
این میکروها تا مقدار 1.8 ولت قابل تغذیه هستند که این امر باعث طولانی تر شدن عمر باتری می شود.
در میکروهای با توان پایین ، عملیات شبیه حالت Standby است یعنی میکرو می تواند تمام اعمال داخلی و جنبی را متوقف کند و کریستال خارجی را به همان وضعیت شش کلاک در هر چرخه رها کند!
نکات کلیدی و سودمند حافظه ی فلش خود برنامه ریز:
* قابلیت دوباره برنامه ریزی کردن بدون احتیاج به اجزای خارجی
* 128بایت کوچک که به صورت فلش سکتور بندی شده اند
داشتن
* مقدار متغیر در سایز بلوکه ی بوت (Boot Block)
* خواندن به هنگام نوشتن
* بسیار آسان برای استفاده
* کاهش یافتن زمان برنامه ریزی
* کنترل کردن برنامه ریزی به صورت سخت افزاری
راههای مختلف برای عمل برنامه ریزی:
موازی یا Parallel
* یکی از سریعترین روشهای برنامه ریزی
* سازگار با برنامه نویس های(programmers) اصلی
خود برنامه ریزی توسط هر اتصال فیزیکی:
* برنامه ریزی توسط هر نوع واسطه ای از قبیل TWI و SPI و غیره
* دارا بودن امنیت صد درصد در بروزرسانی و کدکردن
ISP
* واسطه سه سیمی محلی برای بروزرسانی سریع
* آسان و موثر در استفاده
واسطه JTAG
* واسطه ای که تسلیم قانون IEEE 1149.1 است و می تواند به صورت NVM برنامه ریزی کند یعنی هنگام قطع جریان برق داده ها از بین نروند.استفاده از فیوزها و بیتهای قفل.
* بیشتر برای دیباگ کردن آنچیپ و به منظور تست استفاده می شود
5-2-4مقایسه AVR با 8051
مقایسه ما با تمام میکروهای 8 بیتی هست یعنی در مجموع میشه گفت AVR یه رقیب قدرتمند برای بقیه میکروهای قوی است و یه انقلاب بزرگ هم به شمار میره. هنوز هیچ میکرویی به سرعت بالای AVR در محاسبات دست پیدانکرده .در ضمن AVR قادره که محاسبات 16 بیتی رو هم انجام بده. شعار ATMEL هم اینکه شما پول یه میکرو 8 بیتی رو میدید ولی میتونید از قایلیتهای یک میکرو 16 بیتی استفاده کنید.
AVR از معماری RISC با تعداد دستورالعمل بالا بهره می بره که دربین میکروها کم نظیر هست. اکثر دستورالعمل های آن باوجود زیاد بودن تعداد دستورالعملها در یک سیکل انجام می شد.
این میکرو از مدهای کاهش توان به خوبی بهره برده و تایید کننده آن زیاد بودن مدهای کاهش توان آن و استفاده از تقسیم کلاک به صورت نرم افزاری است که در کمتر میکرویی دیده می شود.
AVR حتی برعکس میکروهای دیگر هیچ تقسیم کلاکی انجام نمی دهد(مثلا 8051 کلاک رو بر 12 و PIC که یه میکرو قدرتمند هست کلاک رو بر 4 تقسیم میکند). این امر که AVR کلاک رو تقسیم نمی کند موجب کاهش مصرف انژی و افزایش MIPS شده.
تکنولوژی بکار رفته در AVR موجب شده که حتی می توان از آن در محیط های صنعتی و پر نویز براحتی از آن استفاده کرددر ضمن AVR مجهز به آخرین امکانات مثل تایمر واچ داگ و برون اوت دیتکتور و مبدل های ADC و PWM است.
یکی از مهمترین بخشی که کمتر در هر میکرویی دیده می شود مقایسه کننده آنالوگ با گین 1 و 10 و 200 و .. است که بسته به میکرو فرق می کند.
این مقایسه کننده می تواند در ورودی مبدل ADC قرار بگیرد . این بخش برای بعضی طراحان خیلی مهم است.
خانواده میکروکنترلرهای AVR شامل طیف گسترده ای از آی سی ها است که از 8 پایه شروع و به 64 پایه ختم می شود. اما در بین این طیف گسترده تعدادی استفاده عمومی تری دارند مانند ATMEGA32 که در تمام مثالهای آورده شده از این آی سی استفاده شده است .
ما نیز در روبات از ATMEGA32 استفاده می کنیم.
حال که با میکرو کنترلر های AVR اشنا شدیم قصد داریم به سراغ نوشتن برنامه برای میکرو برویم. در واقع این قسمت هوش روبات محسوب شده و تصمیمات جهت کنترل و هدایت روبات را صادر می کند.
برای نوشتن برنامه خود و کامپایل ان از نرم افزار bascam که به زبان basic می باشد استفاده می کنیم. پس نخست کمی با این برنامه و دستوراتی که مورد استفاده ما قرار خواهد گرفت اشنا
می شویم.
5-3BASCOM
برای اشنایی کامل با bascame و میکرو کنترلر AVR توصیه می شود کتاب میکروکنترلر AVR نوشته علی کاهه مطالعه شود.
5-3-12نوشتن برنامه
حالا که با bascame و برخی دستورات ان اشنا شدیم به سراغ نوشتن برنامه برای میکرو می رویم. یاداوری می شود که روبات ما دارای 5 سنسور به شکل مقابل است و از ICدرایور شماره L293 بهره می گیریم پس برنامه روبات خود را مبتنی بر این معماری خواهیم نوشت:
$regfile = "m32def.dat"
$crystal = 8000000
Config Portd = Output
Config Porta = Input
Config Debounce = 30
Porta = 255
Dim Sen1 As Bit
Dim Sen2 As Bit
Dim Sen3 As Bit
Dim Sen4 As Bit
Dim Sen5 As Bit
Sta:
Reset Portd.6
Reset Portd.5
Waitms 500
Do
Debounce Pina.5 , 0 , Roshan
Loop
Roshan:
Waitms 500
Do
Sen1 = Pina.0
Sen2 = Pina.1
Sen3 = Pina.2
Sen4 = Pina.3
Sen5 = Pina.4
If Sen1 = 0 Then
Set Portd.6
Set Portd.5
Set Portd.4
Reset Portd.3
Set Portd.2
Reset Portd.1
Elseif Sen2 < Sen3 Then
Set Portd.6
Set Portd.5
Reset Portd.4
Set Portd.3
Set Portd.2
Reset Portd.1
Elseif Sen2 > Sen3 Then
Set Portd.6
Set Portd.5
Set Portd.4
Reset Portd.3
Reset Portd.2
Set Portd.1
Elseif Sen4 < Sen5 Then
Set Portd.6
Set Portd.5
Reset Portd.4
Set Portd.3
Set Portd.2
Reset Portd.1
Elseif Sen4 > Sen5 Then
Set Portd.6
Set Portd.5
Set Portd.4
Reset Portd.3
Reset Portd.2
Set Portd.1
Elseif Sen2 = Sen3 Then
Set Portd.6
Set Portd.5
Set Portd.4
Reset Portd.3
Set Portd.2
Reset Portd.1
Elseif Sen4 = Sen5 Then
Set Portd.6
Set Portd.5
Set Portd.4
Reset Portd.3
Set Portd.2
Reset Portd.1
End If
Debounce Pina.5 , 0 , Sta
Loop
End
5-3-13توضیح برنامه
در خط اول نوع میکرو یعنی ATmega32 معرفی می شود. در خط بعدی فرکانس کار میکرو تعیین می شود. در 2 خط بعدی مشخص می کنیم که پورت D خروجی و پورت ورودی خواهد بود.
دستور Config Debounce=30 برای معرفی دکمه به میکرو استفاده می شود به این صورت که کلیدی که به میکرو وصل می شود اگر برای مدت 30 ms وصل باشد میکرو ان را
می خواند.
با دستور porta=255 تمام پین های پورت A یعنی A0 A1………A7 برابر 1 می شود.
در قسمت بعدی یعنی با دستورات Dim .. As Bit به ترتیب 5 متغییر به صورت Bit
(یعنی صفر و یک ) به میکرو تعریف می شود که در واقع این 5 متغییر همان سنسور های ما می باشد.
از پورت D برای فرستادن دستورات به IC درایور موتورها استفاده می شود همان طور که در چند خط بالاتر این پورت به صورت خروجی تعیین شده است. نحوه اتصال پین های پورت D به IC درایور L293 را در نقشه کامل روبات در ادامه مشاهده می کنیم.
از این قسمت برنامه وارد یک حلقه Do-Loop می شود تا زمانی که دکمه pina.5 فشار داده شود در این حلقه می ماند به محض فشار این دکمه برنامه به زیر برنامه Roshan پرش می کند ابتدا 5 متغیر که با نام های sen1 تا sen5 معرفی کردیم با مقدار ارسالی سنسورها به پورت A برابر قرار داده می شود.در واقع میکرو داده های سنسورها را خوانده و در متغیرهای sen1 تا sen5 قرار
می دهد.
حالا باید برنامه بر اساس وضعیت سنسورها دستورات خاصی را به IC درایور موتور ارسال کند در مرحله اول با یک دستور IF بررسی می کند که ایا sen1 (یعنی همان سنسور نوک) از خط خارج شده است یا نه اگر از خط خارج نشده بود دستور حرکت مستقیم را به موتورها می دهد در این صورت برنامه IF پایان می یابد و دوباره به سراغ اول حلقه Do می رود و وضیعت سنسورها را چک می کند. یعنی دوباره مقدار جدید انها را به متغیر های sen1 تا sen5 می دهد اگر سنسور اول از خط خارج شده باشد برنامه به ترتیب وارد elseif ها می شود و بررس می کند که کدام سنسور وارد خط شده است و دستورات مربوط به پیچیدن به سمت راست یا چپ را به IC درایورها ارسال خواهد کرد.
نقشه کامل روبات را می توانید در صفحه بعد مشاهده کنید.
5-4 نقشه کامل روبات
ضمیمه الف)
منابع
1-اصول و راهنمای رباتیک (محمد مشاقی طبری) انتشارات نگین دانش
2-ساخت محرک های ربات (clark,dennis مترجم عابد ناصری) انتشارات نشر علوم
3-میکروکنترلرهای AVR (علی کاهه) انتشارات نص
4-ربات تعقیب خط (عابد ناصری) انتشارات فنی حسینیان
5- www.iranmedar.com
6- mechatronics.blogfa.com
7- www.arsanjan.blogfa.com
8- www.hupaa.com
92