mohamad.s
04-14-2011, 10:35 AM
http://up.iranblog.com/images/ryxjd6niplo5tvfzp0g3.jpg
مقدمه
برای ساخت یک ربات مسیریاب باید با سه رشته مکانیک , الکترونیک , برنامه نویسی آشنایی مقدماتی داشته باشیم. در این پروژه سعی میشود نحوه ساخت یک ربات مسیر یاب تشخیص رنگ به طور كلی توضیح داده شود.در این مقاله با الكترونیك ربات آشنا می شویم.
الكترونیك ربات
مقاومت نوری
مقاومت نوری المانی الکترونیکی است که با تابش نور به آن مقاومتش تغییر میکند. تا قبل از تابش نور به آن جریانی از آن عبور نخواهد کرد. در این حالت مقاومت زیادی دارد. هر چه میزان شدت نور بیشتر باشد مقدار مقاومت آن کمتر می شود. درواقع مقدار مقاومت با تابش نور رابطه عکس دارد. مقاومت متغیر همان پتانسیومتر است. در پتانسیومتر با یك پیچگوشتی میتوان مقدار مقاومت را تنظیم کرد. در اینجا شدت نور است که میزان مقاومت را تنظیم میکند. .هرچه میزان شدت نور بیشتر باشد مقدار مقاومت حاصل از مقاومت نوری کمتر ودر صورت نبودن نور، مقدارمقاومت زیاد میشود.
برای استفاده از این سنسور در ربات مسیریاب در کنار هر سنسور باید یک دیود نوری یا LED قرار گیرد بطوری کهLED به زمین بتابد و انعکاس نور آن به سنسور بازتابش کند. با استفاده از مدار ساده زیر میتوان خروجی 0 ولت برای زمین سفید و خروجی 5 ولت برای زمینه سیاه بدست آورد. برای تنظیم میتوان با استفاده از پتانسیومتراین کار را انجام داد.
با تحریک مقاومت نوری توسط نور بازگشتی از زمین مقاومت آن کم شده و جریان مورد نیاز برای تحریک بیس ترانزیستور از آن عبور میکند و خروجی 0 ولت میشود. از مزایای استفاده ازLDR در ربات مسیریاب فاصله مناسب آن از سطح زمین و سادگی آن میباشد. و از معایب آن، چون این سنسور حساس به نور معمولی میباشد احتمال تداخل نور محیط و اشتباه کردن ربات زیاد میباشد و اطراف این سنسور باید طوری عایقبندی شود که نور محیط به آن نتابد.در ربات به جای اینکه ما از سنسور هایی که در یک Pack هستند استفاده کنیم از دو سنسور IR معمولی استفاده میکنیم. سنسور های مورد نیاز ما سنسورهای فرستنده و گیرنده معمولی
IR - سه میلییمتری میباشند که هر کدام دو پایه دارند.
نوع سنسور: IR یا همان سنسور های مادون قرمز
فرستنده: سنسور بی رنگ
گیرنده: سنسور تیره رنگ
فاصله بین سنسور فرستنده و گیرنده 2 تا 3 میلیمتر
http://up.iranblog.com/images/etisj8dxu5v9xldbl4u6.bmp
نحوه بستن مدار
برای بستن مدار فرستده باید پایه بلند(آند) را به یک مقاومت 330 و به VCC یا همان برق استاندارد مدار و پایه کوتاه (كاتد) آن را به GND وصل کنیم.
برای بستن مدار گیرنده باید پایه بلند آن(كاتد) را به GND و پایه کوتاه آن(آند) را به یک مقاومت 2 کیلو اهمی و به VCC وصل کرده و از وسط پایه کوتاه و مقاومت گیرنده ولتاژ مورد نظر برای میکروکنترلر گرفته شود.
فرستنده و گیرنده مادون قرمز
سنسور های مادون قرمز (IR) زیادی در بازار موجود میباشند که در دو نوع فرستنده و گیرنده میباشد که نمونه آن را میتوانید در کنترل تلویزیون و خود تلویزیون مشاهده کنید که سنسوری که در کنترل میباشد و دارای رنگ روشنی است فرستنده و سنسوری که در جلوی تلویزیون است و تیره رنگ میباشد گیرنده آن است. این نوع سنسورها هنگامیکه رنگی ( سیاه , سفید ) را تشخیص می دهند و مقدار بار الکترونیکی معینی به میکرو کنترلر می فرستند.
نکته: بهترین بازده این سنسور در فاصله 4 الی 6 میلیمتر از سطح زمین می باشد.
اما همین سنسورها در پکهای بصورت آماده وجود دارند که کار کردن با آنها بسیار آسان میباشد كه در زیر چند نمونه از آنها و نحوه استفاده از آنها را آورده ایم.
سنسور GP2S09
این سنسور یک پک آماده ( فرستنده و گیرنده ) میباشد. سایز این سنسور بسیار کوچک و دارای 4 پایه است.
این سنسور ساده قیمت مناسبی دارد و عیب آن هم فاصله بسیار کم آن از سطح زمین میباشد (تقریبا چسبیده به زمین ) برای افزایش فاصله میتوانیم مقاومت روی فرستنده (220 اهم ) را کمتر گرفت (مثلا اهم150 ) تا ولتاژ فرستنده بیشتر شود.
سنسور های دیگری از این نوع وجود دارند که تقریبا مشابه می باشند ولی با اندک تفاوتی در چینش پایه های آنها مانند :
GP2S10 - GP2S09 - GP2S08 - GP2S07 - GP2S06
سنسور CNY07
این سنسور شامل یک دیود فرستنده مادون قرمز یاIR و یک ترانزیستورنوری (phototransistor) گیرنده می باشد که با طول موج 950 نانومتر کار میکند . این ترانزیستور مانند ترانزیستور معمولی است که به جای تحریک بیس ،جریان بیس آن با نورتحریک میشود. این سنسور از بهترین سنسور های موجود در بازار میباشد که مزایای همه سنسورهای بالا را دارا میباشد و عیب آن هم قیمت گران آن میباشد.
آیسی L298 به عنوان راه انداز موتور
درایور L298 یکی از قطعات مناسب جهت راه اندازی موتور است که با توجه به جریان دهی مناسب (تا یک آمپر در هر کانال ) می تواند نیاز بسیاری از پروژه ها را مرتفع سازد. این قطعه شده می تواند دو موتور را به صورت مجزا راه اندازی کرده و جهت گردش آنها را کنترل نماید. که این کنترل توسط اعمال ولتاژ به چهار ورودی منطقی این قطعه صورت می گیرد. ( برای هر موتور دو ورودی ) که می توان خروجی میکروکنترلر یا مدارات حسگر را به صورت مستقیم به این چهار ورودی متصل نمود و به راحتی موتور را کنترل کرد. در صورتی که از این قطعه برای راهاندازی موتورهای روبات خود بهره میگیرید دقت کنید که حتماً بر روی آن حرارتگیر مناسب وصل نمایید.
همچنین کنترل سرعت را می توان به روش مدلولاسیون پهنای باند یا PWM و با اعمال فرکانس به پایه های 6 و 11 انجام داد که با اعمال 5+ ولت موتور روشن و با اعمال 0 ولت موتور خاموش می گردد.
آِی سی ULN2003
این آی سی یك درایور موتور با 7 كانال است كه هر كانال م آن می تواند تا 600 میلی آمپر را ایجاد كند.یكی از كاربردهای این آی سی به عنوان درایور در مدارهای كنترل موتور است و بیشتر برای كنترل استپ موتورهای كوچك مورد استفاده قرار می گیرد.
با توجه به اینكه جریان ورودی هر كانال در حالت یك منطقی حدود 25 میلی آمپر است، اگر این آی سی را مستقیماً به یك میكروكنترلر با جریان خروجی كمتر از 25میلی آمپر مثل AT89C51 وصل كنیم بعد از چند دقیقه میكرو Reset می شود. بهترین راه حل این است كه از یك آی سی بافر مثل 74HC244 در مسیر اتصال میكرو (یا هر مدار دیجیتال دیگر) به ULN2003 استفاده كنیم.
AVR میكروكنترلر
میکرو کنترلر در اصل مغز ربات به حساب می آید و باید دارای حافظه کافی و پایدار برای برنامه ریزی باشد که با استفاده از فرمان هایی که ما برنامه نویسی کردیم وظیفه اش را انجام می هد و ربات را کنترل میكند.
میکرو کنترلی که ما از آن در ساخت ربات استفاده میکنیم میکرو کنترلر ATMEGA 32 از خانواده AVR که در دو نوع ATMEGA32 , ATMEGA32L میباشد که دارای 32KB حافظه پایدار و قابل برنامه ریزی می باشد به توضیحاتی مختصر در مورد این میکرو کنترل می پر دازیم.
میکرو کنترل AVR ATMEGA 32 دارای 40 پایه که 32 پایه از آن مربوط به بخش های ورودی و خروجی میباشد و 8 پایه دیگر آن مربوط به تغذیه و غیره می باشد.
بخش های ورودی و خروجی میکرو کنترل :
این میکرو دارای چهار PORT میباشد که به پورت های A,B,C,D تقسیم میشوند. هر پورت آن دارای هشت PIN می باشد که در مجموع دارای32 پایه های ورودی خروجی میباشد.(شماره پین ها از 0 تا 7 میباشند.)
مثلاٌ اگر بخواهیم پین شماره 4 از پورت A را صدا بزنیم که به این صورت نام میبریم : PIN A.3 یا PORT A.3 .
تشریح پایههای میكرو كنترلر ATMEGA32
VCC: این پایه برای تغذیه منطقی این میکروکنترل است که باید با برق5 ولت رگوله شده از منبع تغذیه ، تغذیه شوند. که میتوان از برق 2.7 تا 5.5 در این میکرو استفاده کرد.
GND: این پایه باید به شا سی یا زمین مدار وصل شود.
RESET: این پایه برای RESET کردن میکرو به کار میرود که اگر به پین GND وصل شود میکروRESET میشود که معمولا با یک میکرو سویچ به سر زمین وصل میشودکه یک لحظه به زمین اتصال داده میشود.
XTAL1: این پایه ورودی یک تقویت کننده اسیلاتور یا کریستال میباشد. كه معمولا یك كریستال خارجی به آن وصل میشود.
XTAL2: خروجی XTAL1 میباشد که همرا ه با آن به كریستال خارجی و دو خازن وصل میشود.
AVCC: پین های پورت A دارای مدار ADC (Analog to Digital Converter) یا مبدل آنالوگ به دیجیتال میباشند که در داخل میکرو این مدار جا سازی شده است که این پایه برق پورت Aرا تامین میکند که باید به همان برق 5 ولت رگوله شده وصل شود.
http://up.iranblog.com/images/0zsimexygspb975534t.jpg
مدار قسمت مسیریاب:
این مدار شامل یک آی سی lm324 و میکرو کنترلر atmega32 و یک آی سی l298 و دو مقاومت متغیر و دو موتور و همچنین دو عدد سنسور گیرنده و دو عدد فرستنده است.
همانطور که در بالا ذکر شد یک سنسور گیرنده ویک سنسور فرستنده تشکیل یک سنسور کامل مسیر یاب را می دهد.مشخصات سنس شده به lm324 ارسال می شود.
صفر یا یک های ارسال شده از lm324 به میکرو ارسال می شودومیکرو با استفاده از برنامه هایی که برایش نوشته ایم دستور العمل های لازم را به خروجی می فرستد.
مدار قسمت کنترل دستی:
این مدار هم شامل شش سوییچ است که شرح کار هر کدام به صورت زیر است:
:S1انتخاب حالت کنترت دستی :s2 ,انتخاب حالت مسیر یاب ,
:s6,s5,s4,s3هرکدام به ترتیب حالت های جلو وعقب و راست و چپ را انتخاب می کنند.
میکرو هم با توجه به ورودی های ارسال شده به آن l298 و موتورها را کنترل می کند.
پروگرامر
نحوه ساخت پروگرامرSTK200/300:
میکرو کنترلرهای AVR ATMEGA16 یا 32دارای پروگرامر داخلی میباشد و پروگرامر آن ساده است. این پروگرامر از اتصالات SP1 برای برنامه ریزی میکروکنترلر استفاده میکند ، بنابراین میکرو کنترلر هایی که قابلیت اتصال به به SPI را دارندرا می توان با این پرو گرامر، پروگرام كرد.
http://up.iranblog.com/images/0zsimexygspb975534t.jpg
مقدمه
برای ساخت یک ربات مسیریاب باید با سه رشته مکانیک , الکترونیک , برنامه نویسی آشنایی مقدماتی داشته باشیم. در این پروژه سعی میشود نحوه ساخت یک ربات مسیر یاب تشخیص رنگ به طور كلی توضیح داده شود.در این مقاله با الكترونیك ربات آشنا می شویم.
الكترونیك ربات
مقاومت نوری
مقاومت نوری المانی الکترونیکی است که با تابش نور به آن مقاومتش تغییر میکند. تا قبل از تابش نور به آن جریانی از آن عبور نخواهد کرد. در این حالت مقاومت زیادی دارد. هر چه میزان شدت نور بیشتر باشد مقدار مقاومت آن کمتر می شود. درواقع مقدار مقاومت با تابش نور رابطه عکس دارد. مقاومت متغیر همان پتانسیومتر است. در پتانسیومتر با یك پیچگوشتی میتوان مقدار مقاومت را تنظیم کرد. در اینجا شدت نور است که میزان مقاومت را تنظیم میکند. .هرچه میزان شدت نور بیشتر باشد مقدار مقاومت حاصل از مقاومت نوری کمتر ودر صورت نبودن نور، مقدارمقاومت زیاد میشود.
برای استفاده از این سنسور در ربات مسیریاب در کنار هر سنسور باید یک دیود نوری یا LED قرار گیرد بطوری کهLED به زمین بتابد و انعکاس نور آن به سنسور بازتابش کند. با استفاده از مدار ساده زیر میتوان خروجی 0 ولت برای زمین سفید و خروجی 5 ولت برای زمینه سیاه بدست آورد. برای تنظیم میتوان با استفاده از پتانسیومتراین کار را انجام داد.
با تحریک مقاومت نوری توسط نور بازگشتی از زمین مقاومت آن کم شده و جریان مورد نیاز برای تحریک بیس ترانزیستور از آن عبور میکند و خروجی 0 ولت میشود. از مزایای استفاده ازLDR در ربات مسیریاب فاصله مناسب آن از سطح زمین و سادگی آن میباشد. و از معایب آن، چون این سنسور حساس به نور معمولی میباشد احتمال تداخل نور محیط و اشتباه کردن ربات زیاد میباشد و اطراف این سنسور باید طوری عایقبندی شود که نور محیط به آن نتابد.در ربات به جای اینکه ما از سنسور هایی که در یک Pack هستند استفاده کنیم از دو سنسور IR معمولی استفاده میکنیم. سنسور های مورد نیاز ما سنسورهای فرستنده و گیرنده معمولی
IR - سه میلییمتری میباشند که هر کدام دو پایه دارند.
نوع سنسور: IR یا همان سنسور های مادون قرمز
فرستنده: سنسور بی رنگ
گیرنده: سنسور تیره رنگ
فاصله بین سنسور فرستنده و گیرنده 2 تا 3 میلیمتر
http://up.iranblog.com/images/etisj8dxu5v9xldbl4u6.bmp
نحوه بستن مدار
برای بستن مدار فرستده باید پایه بلند(آند) را به یک مقاومت 330 و به VCC یا همان برق استاندارد مدار و پایه کوتاه (كاتد) آن را به GND وصل کنیم.
برای بستن مدار گیرنده باید پایه بلند آن(كاتد) را به GND و پایه کوتاه آن(آند) را به یک مقاومت 2 کیلو اهمی و به VCC وصل کرده و از وسط پایه کوتاه و مقاومت گیرنده ولتاژ مورد نظر برای میکروکنترلر گرفته شود.
فرستنده و گیرنده مادون قرمز
سنسور های مادون قرمز (IR) زیادی در بازار موجود میباشند که در دو نوع فرستنده و گیرنده میباشد که نمونه آن را میتوانید در کنترل تلویزیون و خود تلویزیون مشاهده کنید که سنسوری که در کنترل میباشد و دارای رنگ روشنی است فرستنده و سنسوری که در جلوی تلویزیون است و تیره رنگ میباشد گیرنده آن است. این نوع سنسورها هنگامیکه رنگی ( سیاه , سفید ) را تشخیص می دهند و مقدار بار الکترونیکی معینی به میکرو کنترلر می فرستند.
نکته: بهترین بازده این سنسور در فاصله 4 الی 6 میلیمتر از سطح زمین می باشد.
اما همین سنسورها در پکهای بصورت آماده وجود دارند که کار کردن با آنها بسیار آسان میباشد كه در زیر چند نمونه از آنها و نحوه استفاده از آنها را آورده ایم.
سنسور GP2S09
این سنسور یک پک آماده ( فرستنده و گیرنده ) میباشد. سایز این سنسور بسیار کوچک و دارای 4 پایه است.
این سنسور ساده قیمت مناسبی دارد و عیب آن هم فاصله بسیار کم آن از سطح زمین میباشد (تقریبا چسبیده به زمین ) برای افزایش فاصله میتوانیم مقاومت روی فرستنده (220 اهم ) را کمتر گرفت (مثلا اهم150 ) تا ولتاژ فرستنده بیشتر شود.
سنسور های دیگری از این نوع وجود دارند که تقریبا مشابه می باشند ولی با اندک تفاوتی در چینش پایه های آنها مانند :
GP2S10 - GP2S09 - GP2S08 - GP2S07 - GP2S06
سنسور CNY07
این سنسور شامل یک دیود فرستنده مادون قرمز یاIR و یک ترانزیستورنوری (phototransistor) گیرنده می باشد که با طول موج 950 نانومتر کار میکند . این ترانزیستور مانند ترانزیستور معمولی است که به جای تحریک بیس ،جریان بیس آن با نورتحریک میشود. این سنسور از بهترین سنسور های موجود در بازار میباشد که مزایای همه سنسورهای بالا را دارا میباشد و عیب آن هم قیمت گران آن میباشد.
آیسی L298 به عنوان راه انداز موتور
درایور L298 یکی از قطعات مناسب جهت راه اندازی موتور است که با توجه به جریان دهی مناسب (تا یک آمپر در هر کانال ) می تواند نیاز بسیاری از پروژه ها را مرتفع سازد. این قطعه شده می تواند دو موتور را به صورت مجزا راه اندازی کرده و جهت گردش آنها را کنترل نماید. که این کنترل توسط اعمال ولتاژ به چهار ورودی منطقی این قطعه صورت می گیرد. ( برای هر موتور دو ورودی ) که می توان خروجی میکروکنترلر یا مدارات حسگر را به صورت مستقیم به این چهار ورودی متصل نمود و به راحتی موتور را کنترل کرد. در صورتی که از این قطعه برای راهاندازی موتورهای روبات خود بهره میگیرید دقت کنید که حتماً بر روی آن حرارتگیر مناسب وصل نمایید.
همچنین کنترل سرعت را می توان به روش مدلولاسیون پهنای باند یا PWM و با اعمال فرکانس به پایه های 6 و 11 انجام داد که با اعمال 5+ ولت موتور روشن و با اعمال 0 ولت موتور خاموش می گردد.
آِی سی ULN2003
این آی سی یك درایور موتور با 7 كانال است كه هر كانال م آن می تواند تا 600 میلی آمپر را ایجاد كند.یكی از كاربردهای این آی سی به عنوان درایور در مدارهای كنترل موتور است و بیشتر برای كنترل استپ موتورهای كوچك مورد استفاده قرار می گیرد.
با توجه به اینكه جریان ورودی هر كانال در حالت یك منطقی حدود 25 میلی آمپر است، اگر این آی سی را مستقیماً به یك میكروكنترلر با جریان خروجی كمتر از 25میلی آمپر مثل AT89C51 وصل كنیم بعد از چند دقیقه میكرو Reset می شود. بهترین راه حل این است كه از یك آی سی بافر مثل 74HC244 در مسیر اتصال میكرو (یا هر مدار دیجیتال دیگر) به ULN2003 استفاده كنیم.
AVR میكروكنترلر
میکرو کنترلر در اصل مغز ربات به حساب می آید و باید دارای حافظه کافی و پایدار برای برنامه ریزی باشد که با استفاده از فرمان هایی که ما برنامه نویسی کردیم وظیفه اش را انجام می هد و ربات را کنترل میكند.
میکرو کنترلی که ما از آن در ساخت ربات استفاده میکنیم میکرو کنترلر ATMEGA 32 از خانواده AVR که در دو نوع ATMEGA32 , ATMEGA32L میباشد که دارای 32KB حافظه پایدار و قابل برنامه ریزی می باشد به توضیحاتی مختصر در مورد این میکرو کنترل می پر دازیم.
میکرو کنترل AVR ATMEGA 32 دارای 40 پایه که 32 پایه از آن مربوط به بخش های ورودی و خروجی میباشد و 8 پایه دیگر آن مربوط به تغذیه و غیره می باشد.
بخش های ورودی و خروجی میکرو کنترل :
این میکرو دارای چهار PORT میباشد که به پورت های A,B,C,D تقسیم میشوند. هر پورت آن دارای هشت PIN می باشد که در مجموع دارای32 پایه های ورودی خروجی میباشد.(شماره پین ها از 0 تا 7 میباشند.)
مثلاٌ اگر بخواهیم پین شماره 4 از پورت A را صدا بزنیم که به این صورت نام میبریم : PIN A.3 یا PORT A.3 .
تشریح پایههای میكرو كنترلر ATMEGA32
VCC: این پایه برای تغذیه منطقی این میکروکنترل است که باید با برق5 ولت رگوله شده از منبع تغذیه ، تغذیه شوند. که میتوان از برق 2.7 تا 5.5 در این میکرو استفاده کرد.
GND: این پایه باید به شا سی یا زمین مدار وصل شود.
RESET: این پایه برای RESET کردن میکرو به کار میرود که اگر به پین GND وصل شود میکروRESET میشود که معمولا با یک میکرو سویچ به سر زمین وصل میشودکه یک لحظه به زمین اتصال داده میشود.
XTAL1: این پایه ورودی یک تقویت کننده اسیلاتور یا کریستال میباشد. كه معمولا یك كریستال خارجی به آن وصل میشود.
XTAL2: خروجی XTAL1 میباشد که همرا ه با آن به كریستال خارجی و دو خازن وصل میشود.
AVCC: پین های پورت A دارای مدار ADC (Analog to Digital Converter) یا مبدل آنالوگ به دیجیتال میباشند که در داخل میکرو این مدار جا سازی شده است که این پایه برق پورت Aرا تامین میکند که باید به همان برق 5 ولت رگوله شده وصل شود.
http://up.iranblog.com/images/0zsimexygspb975534t.jpg
مدار قسمت مسیریاب:
این مدار شامل یک آی سی lm324 و میکرو کنترلر atmega32 و یک آی سی l298 و دو مقاومت متغیر و دو موتور و همچنین دو عدد سنسور گیرنده و دو عدد فرستنده است.
همانطور که در بالا ذکر شد یک سنسور گیرنده ویک سنسور فرستنده تشکیل یک سنسور کامل مسیر یاب را می دهد.مشخصات سنس شده به lm324 ارسال می شود.
صفر یا یک های ارسال شده از lm324 به میکرو ارسال می شودومیکرو با استفاده از برنامه هایی که برایش نوشته ایم دستور العمل های لازم را به خروجی می فرستد.
مدار قسمت کنترل دستی:
این مدار هم شامل شش سوییچ است که شرح کار هر کدام به صورت زیر است:
:S1انتخاب حالت کنترت دستی :s2 ,انتخاب حالت مسیر یاب ,
:s6,s5,s4,s3هرکدام به ترتیب حالت های جلو وعقب و راست و چپ را انتخاب می کنند.
میکرو هم با توجه به ورودی های ارسال شده به آن l298 و موتورها را کنترل می کند.
پروگرامر
نحوه ساخت پروگرامرSTK200/300:
میکرو کنترلرهای AVR ATMEGA16 یا 32دارای پروگرامر داخلی میباشد و پروگرامر آن ساده است. این پروگرامر از اتصالات SP1 برای برنامه ریزی میکروکنترلر استفاده میکند ، بنابراین میکرو کنترلر هایی که قابلیت اتصال به به SPI را دارندرا می توان با این پرو گرامر، پروگرام كرد.
http://up.iranblog.com/images/0zsimexygspb975534t.jpg