منو
 کاربر Online
778 کاربر online

روبات دنبال کننده خط توسط سنسورهای مادون قرمز IR

تازه کردن چاپ
مهندسی و فن‌آوری
(cached)



دراین پروژه با نحوه عملکرد روبات دنبال کننده مسیر آشنا می شوید.

قطعات مورد نیاز

  1. 3 عدد سنسور مادون قرمز CNY70
  2. 1 عدد میکروکنترلر PIC 16F84A
  3. 3 عدد پتانسیومتر 10K
  4. 2 عدد خازن 22 پیکو فاراد
  5. 2 عدد آیسی LM358
  6. 6 عدد مقاومت 220 اهم
  7. 5 عدد مقاومت 5 مگا اهم
  8. 3 عدد خازن 0.1 الکترولیت
  9. 1 عدد کریستال 4 مگا هرتز
  10. 1 عدد 1مقاومت 4.7 کیلو اهم
  11. 1 عدد منبع تغذیه 6 لتی
  12. 1 عدد رگولاتور 7805
  13. 2 موتور 7 تا 9 ولت dc
  14. 1 عدد آیسی ULN2803
  15. 2 عدد دیود 1N5817
  16. 1 عدد کلید کشویی سه حالته
  17. 2عدد کانکتور مخابراتی 7 پین

سنسور CNY70

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

img/daneshnameh_up/e/ed/cny70.jpg


img/daneshnameh_up/c/c0/hamz.gif

میکروکنترلر PIC 16F84A

این میکرو کنترلر از ساده ترین انواع میکروکنترلر از لحاظ برنامه نویسی است .اما فوق العاده قدرتمند می باشد.زبان برنامه نویسی این میکروکنترلرغالبا زبان برنامه نویسی سی(C)زبان برنامه نویسی بیسیک(BASIC)
زبان برنامه نویسی پاسکال (PASCAL) میباشد.که شما می توانید با تهیه کمپایلر هر کدام از این زبانها،با برنامه ای که به آن تسلط دارید.، اقدام به برنامه نویسی آن کنید.
برای کار با این میکروکنترلر احتیاج به پروگرامر خانواده گروه PIC دارید.،به همراه کمپایلر زبان برنامه نویسی که به آن علاقه دارید.

img/daneshnameh_up/9/93/PIC16F84a.gif



آیسی LM358

آیسی ULN2803

این آیسی حاوی دو عدد آپ امپ(DUAL AP-AMP)است.،این آپ امپ ها جهت مقایسه ولتاژ های ایجاد شده از سنسورها به کار می رود.پایه 4 آن منفی ،پایه 8 آن مثبت،پایه 2 و6ورودی منفی پایه 3و5 ورودی مثبت،وپایه های 1و7 خروجی است.این آیسی اختلاف ولتاژهای منفی ومثبت ورودی را در خروجی آشکار می کند.
آیسی ULN2803 حاوی بافر NOT است پایه 9 آن تغذیه منفی و پایه 18 آن تغذیه مثبت است.جریان خروجی آن در حدود 500 میلی آمپر است.این آیسی بیشتر برای درایو کردن موتور پله ای (STEPPER MOTOR) مورد استفاده قرار می گیرد

img/daneshnameh_up/a/af/lm358.jpg

img/daneshnameh_up/2/2a/280333.gif




رگولاتور 7805

کریستال

رگولاتور LM7805 یک تنظیم کننده ولتاژ است.زمانیکه ولتاژ پایه ورودی آن در حدود 2 تا 2.5 ولت بیشتر از 5 ولت باشد.،ولتاژ تنظیم شده 5 ولت را در خروجی ایجاد می کند.
کریستال جهت تولید پالس برای میکروکنترلر مورد استفاده قرار می گیرد.در شکل زیر کریستال 10 مگاهرتز را مشاهده می کنید.
img/daneshnameh_up/5/52/7805.jpg

img/daneshnameh_up/1/13/S8841136560.jpg





توضیحات مدار

در شکل زیر نحوه اتصال سنسور CNY70 به آیسی LM358 را مشاهده می کنید.سمتی از این سنسور که نوشته دارد پایه بالا یی و پایینی مربوط به LED فرستنده و دو پایه قسمتی که نوشته ندارد.،مربوط به گیرنده است.پایه بالایی قسمتی که نوشته دارد.،به تغذیه 5 ولت و پایه زیر این پایه را با یک مقاومت 220 اهم به منفی وصل کنید.قسمتی از این سنسور که نوشته ندارد.پایه بالایی را به تغذیه 5 ولت و پایه پایینی را با یک مقاومت 5 مگا اهم به منفی وصل کنید.از اشتراک مقاومت 5 مگا اهم با پایه پایینی قسمت گیرنده سنسور به ورودی مثبت آیسی LM358 که پایه 3 می باشد وصل کنید.
یک سر پتانسیومتر 10K را به مثبت 5 ولت ویک سر دیگر آن را به منفی منبع تغذیه یا باطری وصل کنید.سر دیگر پتانسیومتر را به ورودی منفی آیسیLM358 که پایه 2 می باشد.، وصل کنید.پایه 4 آیسی LM358 را به منفی ،پایه 8 آیسی LM358 را به مثبت منبع تغذیه وصل کنید.،پایه 1 آیسی LM358 را توسط مقاومت 220 اهم به ورودی پایه های میکروکنترلر وصل کنید.این کار را برای هر سه سنسور CNY70 انجام دهید.

img/daneshnameh_up/9/97/esquemaCNY70.gif


همانطور که در نقشه نگاه می کنید.پایه های خروجی آیسی LM358 توسط مقاومتهای 220 اهم به پایه های RB3,RB1,RB2 میکروکنترلر وصل می شوند.میکروکنترلر بر اساس HIGH یا LOW شدن این پایه ها تصمیم گیری می کند.،وپایه های RB6 یا RB7 را که به یک سر موتور وصل هستند. را HIHG یا LOW می کند.دیود در خروجی آیسی ULN2803 نقش محافظتی را دارد.خازنهای دو سر موتور نیز جهت از بین بردن نویز وکارکرد بهتر موتور مورد استفاده قرار می گیرند.البته در عمل یکی از خروجی هاآیسی LM358 از پایه 7 این آیسی گرفته شده است.پایه 5 میکروکنترلر را حتما به تغذیه منفی وصل کنید.
با تنظیم پتانسیومترها می توانید.،فاصله وحساسیت سنسورها را تعیین کنید.قبل از اینکه سنسورها را در زیر ماشین روباتی خود بگذارید.از سالم بودن وعملکرد صحیح سنسورها مطمئن شوید.قبل از هر کاری مدار خود را بر روی برد بورد پیاده سازی کنید.وخرجی دو عدد آیسی LM358
را که پایه های 1 و7 و1 می باشندرا توسط مقاومتهای 220 اهم به صورت مجزا به سه LED وصل کنید.زمانیکه کاغذ سفید رنگ را به قسمت بالایی این سنسورها نزدیک می کنید.،LED مربوط به هر سنسور روشن می شود.شما می توانی با تنظیم پتانسیومترها شدت نور LED ها و میزان فاصله پاسخگویی سنسورها را تعیین کنید.زمانیکه از عملکرد صحیح سنسورها وتنظیم آنها مطمئن شدید سه خروجی آیسی LM358 را به ورودیهای RB3,RB2,RB1 از میکروکنترلر وصل کنید.تصمیم گیری میکروکنترلر بر اساس HIGH یا LOW شدن این پایه های میکروکنترلر می باشد.،خروجیهای RB6,RB7 میکروکنترلر را قبل از اتصال به پایه های 1و2 ورودی آیسی ULN2803 به دو عدد LED وصل کنید وپس از مطمئن شدن از عملکرد صحیح برنامه ای که در میکروکنترلر توسط پرگرامر LOAD شده است آترا به ورودی 1و2 آیسی وصل کنید.،سپس خروجی 18 آیسی ULN2803 را به سر یک موتور وسر دیگر موتور را به مثبت منبع تغذیه وصل کنید.در واقع میکروکنترلر منفی یک سر موتور را می دهد.،خروجی 17 آیسی ULN2803 را به یک سر موتور دیگر وصل کنید.،وسر دیگر این موتور را به مثبت منبع تغذیه وصل کنید.

تغذیه روبات

برای تغذیه مدار از 6 عدد باطری 1.2 ولت آمپر بالا استفاده کنید.قبل از اتصال باطری به روبات عمل تغذیه را توسط منبع تغذیه DC انجام دهید.،واز سیمهای سوسماری بلند جهت اتصال مثبت ومنفی منبع تغذیه به روبات استفاده کنید.
در این مدار بهتر است.،از رگولاتور 7805 استفاده کنید.،تغذیه مثبت کل مدار به غیر از موتورها از رگولاتور 7805 می باشد.،اگر تغذیه موتورها را از رگولاتور 7805 بگیرید.موتورها آمپر لازم را جهت حرکت کردن نخواهند داشت.

مسیر روبات


برای درست کردن مسیری که روبات بتواند در آن صحیح حرکت کند و مسیر را درست تشخیص دهد.،حداقل از دو عدد مقوای مشکی استفاده کنید .،وجاده خود را که ورق سفید رنگ براق است.،
را بر روی آن بچسبانید.
جاده شما نباید دارای پیچهای 90 درجه باشد.،واندازه ورق سفید که جاده شما می باشد حدودا 2.5 سانتی متر باشد.سنسورها را طوری کنار یکدیگر قرار دهید.،که فاصله اولین سنسور با آخرین سنسور حدود 4.5 سانتی متر باشد.سنسور وسطی در جاده سفید رنگی که بر روی مقوای مشکی درست کرده اید.،قرار می گیرد.ما دامی که این سنسور برروی این خط سفید باشد.دو موتور همزمان حرکت می کنند.زمانیکه این سنسور به همراه یکی از سنسورهای کناری یا یکی از سنسورهای کناری به طور مجزا بر روی خط سفید قرار می گیرد.،یکی از موتورها خاموش می شود.،وموتور دیگر روشن می شود.،تا اینکه روبات بتواند.،مسیر صحیح خود را پیدا کند.و دو موتور بتوانند به طور همزمان حرکت کنند.اگر شما این موارد را رعایت کنید.،مطمئن باشید که روبات شما صحیح عمل خواهد کرد. سعی کنید برای اولین تست جاده شما به صورت بیضی باشد.اندازه جاده شما می بایست متناسب با اندازه روبات شما باشد.
جاده شما می تواند مشکی نیز باشد.،فقط نحوه برنامه نویسی میکروکنترلر متفاوت خواهد بود.





نمونه مسیر روبات





img/daneshnameh_up/0/04/ChiBots01MarCourse.jpg





نقشه مدار


img/daneshnameh_up/a/ad/shematic_infra_robotic_circ.jpg


برنامه میکروکنترلر

برنامه میکروکنترلر در این پروژه به زبان بیسک است.
همانطور که در برنامه مشاهده می کنید.،سه عدد متغییر m,l,r در اول برنامه معرفی شده اند.،این سه متغییر در خطوط بعدی برنامه توسط پورتهای،portb.1,portb.2 ,portb.3 بارگذاری می شوند.،high یا low شدن این پورتها به صورت مستقیم وابسته به سنسورهای CNY70 است.،در صورت HIGH شدن سنسور وسطی دو موتور HIGH می شوند.،وحرکت خواهند داشت.HIGH یا LOW شدن هر کدام از موتورها سمت راست یا چپ یا هر دو موتور در برنامه کاملا مشخص شده است.



  1:  
  2:  m var byte
  3:  l var byte
  4:  r var byte
  5:  m=portb.2
  6:  l=portb.1
  7:  r=portb.3
  8:  if m=1 and l=0 and r=0 then
  9:                             high portb.6
 10:                             high portb.7
 11:  endif
 12:  if r=0 and l=1 and (m=0 or m=1) then
 13:                                      high portb.7
 14:                                      low portb.6
 15:  endif
 16:  if l=0 and r=1 and (m=0 or m=1) then
 17:                                      high portb.6
 18:                                      low portb.7
 19:  endif


نحوه کار با میکروکنترلر


برای کار با میکروکنترلر احتیاج به دو مرحله دارید.اول کمپایل کردن برنامه ای که به طور مثال با زبان بیسیک نوشته شده.دوم پروگرام کردن آیسی،‌برای کمپایل کردن میتوانید.ورژن 2.32 این کمپایلر را در خط زیر دانلود کنید.
برای دانلود برنامه کمپایلر بیسیک اینجا را کلیک کنید.
پس از اینکه این فایل فشرده را باز کردید.به مراحلی که راجب نصب گفته شده دقت کنید.تا این برنامه درست نصب شود.
شما می توانید برنامه تان را در محیط edit داس (dos) یا در محیط word یا notpad ویندوز وارد کنید.پس از وارد کردن برنامه بهتره آنرا در محلی که برنامه کمپایلر را نصب کردید وفایل pbp.exe در آن وجود دارد.با پسوندbas ذخیره کنید.pbp مخفف pic basic pro compiler است.برای کمپایل کردن برنامه پیشنهاد میکنم به جای استفاده از محیط ویندوز وارد محیط command بشوید ومسیری که برنامه کمپایلر را در آن ذخیره کردید با استفاده از دستورات dos پیدا کنید.این محیط می بایست شامل فایلpbp.exe باشد.اگر برنامه تان نیز در همین مسیر باشد.احتیاجی به دادن مسیر یا path برنامه ندارید.pbp را تایپ می کنید.بعد از آن با یک فاصله علامت - وسپس بدون فاصله نام میکرو مورد نظر از خانواده PIC را وارد می کنید.حال نام برنامه را وارد کنید پسوند bas آنرا فراموش نکنید.به طور مثال اگر برنامه شما وکمپایلر در مسیری مانند مسیر روبرو قرار گرفته باشند.و اسم برنامه ای که نوشته ای به طور مثال blink با پسوند bas باشد.،داریم. c:\pic\pic1\pbp -16f84a blink.bas در اینجا فرض کردیم میکرو از نوع PIC16F84A است.اگر میکرو PIC16F873 باشد.به جای 16F84A- خواهیم داشت 16F873- اگر برنامه بدون خطا باشد.فایل HEX آن در درایو ی که برنامه در آن قرار دارد.ایجاد می شود.حال می توانید آنرا از طریق پروگرامر وارد میکرو کنید.در پروگرامر نیز نوع میکرو را حتما درست انتخاب کنید.وبه دستورات و نحوه استفاده از پروگرامری که تهیه کرده اید.به دقت توجه کنید.

فیلم مربوط به دو روبات نمونه


متاسفانه من دوربین در اختیار نداشتم تا از روباتی که ساختم برای شما عزیزان فیلم تهیه کنم.به همین خاطر دو فیلمی که مربوط به دو روبات هست.، را از اینترنت پیدا کردم تا شما عزیزان با نحوه کار اینگونه روبات ها بیشتر آشنا بشوید.

sandvich robot
lego robot

مکانیک یک روبات نمونه


همانطور که در شکل مشاهده می کنید.،پس ازلحیم کردن سیم به سر موتورها برای جلوگیری از برخورد سیمها به یکدیگر از وارنیش استفاده شده است.شما می توانید برد الکترونیکی خود را بر روی این روبات نمونه پیاده سازی کنید.
در قسمت جلویی این روبات ، طلقی L شکل را قرار دهید.،و محل پیچ شدن آنرا به روبات با مته 3 سوراخ کنید.، و با سوراخ کردن آن به صورت عرضی به آن قابلیت رگلاژ شدن بدهید.،سپس آنرا با پیچ و مهره 3 به قسمت جلوی روبات متصل کنید.
سنسورهای CNY70 بر روی برد مسی به گونه ای لحیم کنید.،که فاصله اولین سنسور با آخرین سنسور حدود 4.5 سانتی متر باشد.این سنسورها می بایست در وسط یکی از عرضهای برد مسی لحیم شود.سرهای مثبت سنسورهای CNY70 را به یکدیگر لحیم کنید.،سپس این سر مشترک را با سیم به یک سر کانکتور مخابراتی که بر روی برد مسی لحیم شده است.،لحیم کنید.این کار را برای تمامی پایه های سنسورها انجام دهید.،وآنها را به کانکتور مخابراتی دیگری که روی بدنه روبات قرار گرفته متصل کنید.برد مسی را که سنسورها روی آن قرار دارند.،را به زیر طلق L شکل متصل کنید.و با استفاده از کانکتور مخابراتی 7 پین به برد الکترونیکی که بر روی این روبات یا هر روبات دیگر سوار کرده اید.،متصل کنید
در واقع این قسمت کار مسیر یابی روبات شما را انجام میدهد.


img/daneshnameh_up/0/0c/MOTORDC11.JPG

img/daneshnameh_up/e/e7/motordc2.bmp













img/daneshnameh_up/1/1a/dandeh.JPG







img/daneshnameh_up/d/d3/robot2.JPG





















همچنین ببینید


فهرست پروژه های الکترونیک



تعداد بازدید ها: 188024


ارسال توضیح جدید
الزامی
big grin confused جالب cry eek evil فریاد اخم خبر lol عصبانی mr green خنثی سوال razz redface rolleyes غمگین smile surprised twisted چشمک arrow



از پیوند [http://www.foo.com] یا [http://www.foo.com|شرح] برای پیوندها.
برچسب های HTML در داخل توضیحات مجاز نیستند و تمام نوشته ها ی بین علامت های > و < حذف خواهند شد..