بارگذاری...

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

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

  1. ۳ عدد سنسور مادون قرمز CNY70
  2. ۱ عدد میکروکنترلر PIC 16F84A
  3. ۳ عدد پتانسیومتر ۱۰K
  4. ۲ عددخازن ۲۲ پیکو فاراد
  5. ۲ عدد آیسی LM358
  6. ۶ عددمقاومت ۲۲۰ اهم
  7. ۵ عدد مقاومت ۵ مگا اهم
  8. ۳ عدد خازن ۰٫۱ الکترولیت
  9. ۱ عدد کریستال ۴ مگا هرتز
  10. ۱ عدد ۱مقاومت ۴٫۷ کیلو اهم
  11. ۱ عدد منبع تغذیه ۶ لتی
  12. ۱ عدد رگولاتور ۷۸۰۵
  13. ۲موتور ۷ تا ۹ ولت dc
  14. ۱ عدد آیسی ULN2803
  15. ۲ عدددیود ۱N5817
  16. ۱ عدد کلید کشویی سه حالته
  17. ۲عدد کانکتور مخابراتی ۷ پین

 

سنسور 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)است.،این آپ امپ ها جهت مقایسه ولتاژ های ایجاد شده از سنسورها به کار می رود.پایه ۴ آن منفی ،پایه ۸ آن مثبت،پایه ۲ و۶ورودی منفی پایه ۳و۵ ورودی مثبت،وپایه های ۱و۷ خروجی است.این آیسی اختلاف ولتاژهای منفی ومثبت ورودی را در خروجی آشکار می کند.
آیسی ULN2803 حاوی بافر NOT است پایه ۹ آن تغذیه منفی و پایه ۱۸ آن تغذیه مثبت است.جریان خروجی آن در حدود ۵۰۰ میلی آمپر است.این آیسی بیشتر برای درایو کردن موتور پله ای(STEPPER MOTOR) مورد استفاده قرار می گیرد
img/daneshnameh_up/a/af/lm358.jpg                      img/daneshnameh_up/2/2a/280333.gif

 

رگولاتور ۷۸۰۵

کریستال

رگولاتور LM7805 یک تنظیم کننده ولتاژ است.زمانیکه ولتاژ پایه ورودی آن در حدود ۲ تا ۲٫۵ ولت بیشتر از ۵ ولت باشد.،ولتاژ تنظیم شده ۵ ولت را در خروجی ایجاد می کند.
کریستال جهت تولید پالس برای میکروکنترلر مورد استفاده قرار می گیرد.در شکل زیر کریستال ۱۰ مگاهرتز را مشاهده می کنید.

img/daneshnameh_up/5/52/7805.jpgimg/daneshnameh_up/1/13/S8841136560.jpg

توضیحات مدار

در شکل زیر نحوه اتصال سنسور CNY70 به آیسی LM358 را مشاهده می کنید.سمتی از این سنسور که نوشته دارد پایه بالا یی و پایینی مربوط به LED فرستنده و دو پایه قسمتی که نوشته ندارد.،مربوط به گیرنده است.پایه بالایی قسمتی که نوشته دارد.،به تغذیه ۵ ولت و پایه زیر این پایه را با یک مقاومت ۲۲۰ اهم به منفی وصل کنید.قسمتی از این سنسور که نوشته ندارد.پایه بالایی را به تغذیه ۵ ولت و پایه پایینی را با یک مقاومت ۵ مگا اهم به منفی وصل کنید.از اشتراک مقاومت ۵ مگا اهم با پایه پایینی قسمت گیرنده سنسور به ورودی مثبت آیسی LM358 که پایه ۳ می باشد وصل کنید.
یک سر پتانسیومتر ۱۰K را به مثبت ۵ ولت ویک سر دیگر آن را به منفی منبع تغذیه یا باطری وصل کنید.سر دیگر پتانسیومتر را به ورودی منفی آیسیLM358 که پایه ۲ می باشد.، وصل کنید.پایه ۴ آیسی LM358 را به منفی ،پایه ۸ آیسی LM358 را به مثبت منبع تغذیه وصل کنید.،پایه ۱ آیسی LM358 را توسط مقاومت ۲۲۰ اهم به ورودی پایه های میکروکنترلر وصل کنید.این کار را برای هر سه سنسور CNY70 انجام دهید.

https://www.icpulse.ir

 

(   https://www.icpulse.ir   )

همانطور که در نقشه نگاه می کنید.پایه های خروجی آیسی LM358 توسط مقاومتهای ۲۲۰ اهم به پایه های RB3,RB1,RB2 میکروکنترلر وصل می شوند.میکروکنترلر بر اساس HIGH یا LOW شدن این پایه ها تصمیم گیری می کند.،وپایه های RB6 یا RB7 را که به یک سر موتور وصل هستند. را HIHG یا LOW می کند.دیود در خروجی آیسی ULN2803 نقش محافظتی را دارد.خازنهای دو سر موتور نیز جهت از بین بردن نویز وکارکرد بهتر موتور مورد استفاده قرار می گیرند.البته در عمل یکی از خروجی هاآیسی LM358 از پایه ۷ این آیسی گرفته شده است.پایه ۵ میکروکنترلر را حتما به تغذیه منفی وصل کنید.
با تنظیم پتانسیومترها می توانید.،فاصله وحساسیت سنسورها را تعیین کنید.قبل از اینکه سنسورها را در زیر ماشین روباتی خود بگذارید.از سالم بودن وعملکرد صحیح سنسورها مطمئن شوید.قبل از هر کاری مدار خود را بر رویبرد بورد پیاده سازی کنید.وخرجی دو عدد آیسی LM358
را که پایه های ۱ و۷ و۱ می باشندرا توسط مقاومتهای ۲۲۰ اهم به صورت مجزا به سه LED وصل کنید.زمانیکه کاغذ سفید رنگ را به قسمت بالایی این سنسورها نزدیک می کنید.،LED مربوط به هر سنسور روشن می شود.شما می توانی با تنظیم پتانسیومترها شدت نور LED ها و میزان فاصله پاسخگویی سنسورها را تعیین کنید.زمانیکه از عملکرد صحیح سنسورها وتنظیم آنها مطمئن شدید سه خروجی آیسی LM358 را به ورودیهای RB3,RB2,RB1 از میکروکنترلر وصل کنید.تصمیم گیری میکروکنترلر بر اساس HIGH یا LOW شدن این پایه های میکروکنترلر می باشد.،خروجیهای RB6,RB7 میکروکنترلر را قبل از اتصال به پایه های ۱و۲ ورودی آیسی ULN2803 به دو عدد LED وصل کنید وپس از مطمئن شدن از عملکرد صحیح برنامه ای که در میکروکنترلر توسط پرگرامر LOAD شده است آترا به ورودی ۱و۲ آیسی وصل کنید.،سپس خروجی ۱۸ آیسی ULN2803 را به سر یک موتور وسر دیگر موتور را به مثبت منبع تغذیه وصل کنید.در واقع میکروکنترلر منفی یک سر موتور را می دهد.،خروجی ۱۷ آیسی ULN2803 را به یک سر موتور دیگر وصل کنید.،وسر دیگر این موتور را به مثبت منبع تغذیه وصل کنید.

تغذیه روبات

برای تغذیه مدار از ۶ عدد باطری ۱٫۲ ولت آمپر بالا استفاده کنید.قبل از اتصال باطری به روبات عمل تغذیه را توسط منبع تغذیه DC انجام دهید.،واز سیمهای سوسماری بلند جهت اتصال مثبت ومنفی منبع تغذیه به روبات استفاده کنید.
در این مدار بهتر است.،از رگولاتور ۷۸۰۵ استفاده کنید.،تغذیه مثبت کل مدار به غیر از موتورها از رگولاتور ۷۸۰۵ می باشد.،اگر تغذیه موتورها را از رگولاتور ۷۸۰۵ بگیرید.موتورها آمپر لازم را جهت حرکت کردن نخواهند داشت.

مسیر روبات

برای درست کردن مسیری که روبات بتواند در آن صحیح حرکت کند و مسیر را درست تشخیص دهد.،حداقل از دو عدد مقوای مشکی استفاده کنید .،وجاده خود را که ورق سفید رنگ براق است.،
را بر روی آن بچسبانید.
جاده شما نباید دارای پیچهای ۹۰ درجه باشد.،واندازه ورق سفید که جاده شما می باشد حدودا ۲٫۵ سانتی متر باشد.سنسورها را طوری کنار یکدیگر قرار دهید.،که فاصله اولین سنسور با آخرین سنسور حدود ۴٫۵ سانتی متر باشد.سنسور وسطی در جاده سفید رنگی که بر روی مقوای مشکی درست کرده اید.،قرار می گیرد.ما دامی که این سنسور برروی این خط سفید باشد.دو موتور همزمان حرکت می کنند.زمانیکه این سنسور به همراه یکی از سنسورهای کناری یا یکی از سنسورهای کناری به طور مجزا بر روی خط سفید قرار می گیرد.،یکی از موتورها خاموش می شود.،وموتور دیگر روشن می شود.،تا اینکه روبات بتواند.،مسیر صحیح خود را پیدا کند.و دو موتور بتوانند به طور همزمان حرکت کنند.اگر شما این موارد را رعایت کنید.،مطمئن باشید که روبات شما صحیح عمل خواهد کرد. سعی کنید برای اولین تست جاده شما به صورت بیضی باشد.اندازه جاده شما می بایست متناسب با اندازه روبات شما باشد.
جاده شما می تواند مشکی نیز باشد.،فقط نحوه برنامه نویسی میکروکنترلر متفاوت خواهد بود.

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

 

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 شدن هر کدام از موتورها سمت راست یا چپ یا هر دو موتور در برنامه کاملا مشخص شده است.

  ۱: https://www.icpulse.ir  
  ۲:  m var byte
  ۳:  l var byte
  ۴:  r var byte
  ۵:  m=portb.2
  ۶:  l=portb.1
  ۷:  r=portb.3
  ۸:  if m=1 and l=0 and r=0 then
  ۹:                             high portb.6
 ۱۰:                             high portb.7
 ۱۱:  endif
 ۱۲:  if r=0 and l=1 and (m=0 or m=1) then
 ۱۳:                                      high portb.7
 ۱۴:                                      low portb.6
 ۱۵:  endif
 ۱۶:  if l=0 and r=1 and (m=0 or m=1) then
 ۱۷:                                      high portb.6
 ۱۸:                                      low portb.7
 ۱۹:  endif

 

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

برای کار با میکروکنترلر احتیاج به دو مرحله دارید.اول کمپایل کردن برنامه ای که به طور مثال با زبان بیسیک نوشته شده.دوم پروگرام کردن آیسی

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

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

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

img/daneshnameh_up/e/e7/motordc2.bmpimg/daneshnameh_up/d/d3/robot2.JPGimg/daneshnameh_up/1/1a/dandeh.JPGimg/daneshnameh_up/0/0c/MOTORDC11.JPG

 

 

دیدگاهتان را بنویسید

  • سبد خریدتان خالی است.
بالا