PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : روبات مسیر یاب - دنبال کننده خط



PHANTOM ™
04-09-2011, 11:32 AM
روبات مسیر یاب


شرح عملکرد روبات

روباتي که در اينجا تصميم به تو ضيح نحوه ساخت آنرا دارم بروي زمينه سفيد بدنبال خط مشکي حرکت ميکند. ميکروکنترلر مورد استفاده در روبات ATmega8 می باشد. و کدهای برنامه روبات با استفاده از نرم افزار BASCOM ایجاد شده اند.

روبات شامل دو موتور در طرفين خود مي باشد، که جهت حرکت به جلو هر دو موتور را روشن مي کند، زمان دور زدن به چپ موتور سمت چپ خاموش و موتور سمت راست روشن مي شود و برای دور زدن به سمت راست موتور سمت راست خاموش و موتور سمت چپ روشن می شود. البته موتورهای بکار رفته DC موتور بوده و جهت کاهش سرعت و در نتیجه کنترل دقیق تر روبات از موتورهايي با گیربکس سرخود استفاده شده، که قیمت آن در بازار جمهوری تهران 7000 تومان است در صورتی که به این نوع موتور دسترسی ندارید ميتوانید از موتورهای اسباب بازی گیربکس دار استفاده کنید، در غير اين صورت بايستي خودتان گیربکس را بسازيد دقت داشته باشيد که دور نهايي چرخش چرخهاي روبات 60 دور بر دقیقه باشد.

برای تشخيص مسير از دو LED پر نور استفاده شده که سطح مسير حرکت را روشن مي کنند و انعکاس نور به فتو رزيستورهای قرار گرفته در زیر روبات برخورد مي کند. اگر روبات روی خط باشد مقدار نور منعکس شده حداقل بوده و در نتيجه مقدار مقاومت آن افزايش ميابد و ولتاژ دو سر آن افزايش مي يابد و میکروکنترلر از روی اين تغيير ولتاژ متوجه وجود خط مي گردد.(در غیر اين صورت نور منعکس شده زياد بوده، مقدار مقاومت فتورزيیستور کاهش ميابد و ولتاژ دوسر آن کاهش ميابد.)پس همانطور که ذکر شد میکرو کنترلر تغييرات ولتاژ فتورزيستور را احساس ميکند. من براي اين کار از مبدل های درونی آنالوگ به ديجیتال ميکرو استفاده کردم. البته دو عدد فتورزیستور به همراه دو LED جهت تشخیص طرفین مسير استفاده شده.

برنامه روبات به زبان BASIC نوشته شده در محیط BASCOM :

$regfile = "m8def.dat"
$crystal = 8000000


Config Portd = Output 'Portd used for control motor
Config Adc = Single , Prescaler = Auto
Start Adc 'Start Analog to Digital Converter

Dim S1 As Word 'S1 Right Sensor
Dim S2 As Word 'S2 Left Sensor

Portd = 0
Wait 3

Do

S1 = Getadc(3) 'Read Sensor 1
S2 = Getadc(5) 'Read Sensor 2


'portd.0 right motor
If S2 > 400 Then Set Portd.0
If S2 < 300 Then Reset Portd.0

'portd.2 left motor
If S1 > 400 Then Set Portd.2
If S1 < 300 Then Reset Portd.2

Loop
End 'end program

http://www.daneshju.ir/forum/images/statusicon/wol_error.gifاین عکس کوچک شده است برای مشاهده ی سایز اصلی کلیک کنیدhttp://www.hlachini.com/Projects/robotic/robot.GIF
ليست قطعات مدار روبات:
میکرو کنترلر ATmega8 یک عدد

--آی سی رگولاتور7805 یک عدد

--آی سی ULN2803 یک عدد

--موتور 5 ولتی با گیربکس و دور بر دقیقه 60 دو عدد

--رله 5 ولتی دو عدد

--دیود 1N4001 دو عدد

--مقاومت 10کیلو اهمی دو عدد

--مقاومت 330 اهمی دو عدد

--فتورزیستور کوچک دو عدد

--دیود نورانی سفید پر نور دو عدد

--خازن 330 میکروفاراد دو عدد

--برد هزار سوراخ 11.5 در 6.5 سانتی متر

.::ليست قطعات مکانیک روبات::.

--چرخ ماشین اسباب بازی کوچک دو عدد

--فولی ضبط صوت جهت چرخ وسط یک عدد

--پیچ اسپیسر (Spacer) سه سانتی به همراه مهره چهار عدد

--ترمینال برق چهار خانه یک عدد

--تخته سه لا 12 در 12 سانتی متر

مراحل ساخت مکانیک روبات :
http://www.daneshju.ir/forum/images/statusicon/wol_error.gifاین عکس کوچک شده است برای مشاهده ی سایز اصلی کلیک کنیدhttp://www.hlachini.com/Projects/robotic/Robot04.jpg
http://www.hlachini.com/Projects/robotic/Robot03.jpg
http://www.hlachini.com/Projects/robotic/Robot02.jpg