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

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

اطلاعات در مورد الکترونیک و مدارات الکترونیک
الکترونیکیها

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

اطلاعات در مورد الکترونیک و مدارات الکترونیک

آموزش ربات تعقیب خط با میکروکنترلر AVR - قسمت چهارم


قسمت ٤

نحوه تشخیص جهت خطوط مشکی

تو این قسمت قصد داریم تا با نوشتن سورس برنامه و چیدن سنسور ها(نوع چیدمان سنسورها)جهت خطوط مشکی رو تشخیص بدیم ،که سمت چپ ،راست یا مستقیم هستش.

  

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

حالا بیاید باهم دیگه نحوه کار رو بررسی کنیم طبق اون اموزشی که در قسمت دوم دیدین میشه خیلی راحت حدس زد که ربات چطوری میتونه جهت خطوط رو تشخیص بده!

اگه یادتون باشه گفته بودیم که اگه رنگ خط مشکی باشه خروجی یک میشه!

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

R(راست)

L(چپ)

C(وسط)

خب حالا فرض کنیم که خط مشکی مستقیم باشه خروجی سنسور ها به این شکل میشه

LCR

010

حالا اگه خط مشکی سمت راست باشه :

RCL

100

و اگه سمت چپ باشه میشه :

RCL

001

میبینید که سه حالت چپ و راست و مستقیم


خب بریم سراغ برنامه نویسی ،برای اینکه بتونیم اطلاعات سنسور ها رو بخونیم باید به میکرو وصلشون کنیم ،چون از میکروکنترلر ATmega8 استفاده میکنیم من سه تا خروجی آپ امپ های سنسورها رو به پورت B وصل کردم به پایه های PINB.0 (چپ) ،PINB.1 (وسط همون مستقیم) و PINB.2 (راست).

درضمن به سه تا از پایه های میکرو ال ای دی متصل کرده ایم که در صورت ارسال اطلاعات از سنسور ها اون ها هم روشن بشن اگه سنسور چپ یک شد ال ای دی چپ روشن بشه پایه های متصل به ال ای دی

خب حالا کد اصلی برنامه

#include <mega8.h>void main(){DDRB=0x0f;while(1){if(PINB.0 == 1)   {   PORTB.4=1;   PORTB.5=0;   PORTB.6=0;   }if(PINB.1 == 1)   {   PORTB.4=0;   PORTB.5=1;   PORTB.6=0;   }if(PINB.2 == 1)   {   PORTB.4=0;   PORTB.5=0;   PORTB.6=1;   }}}


میتوانید فایل سورس برنامه را از اینجا دانلود کنید

http://s7.picofile.com/file/8258339626/main.c.html

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد