برنامه ای ساده برای کنترل ربات مسیریاب
دوستان خوبم، سلام به روی ماهتون .... شرمنده از اینکه یکم نه!!! بلکه خیلی دیر کردم. آخه این چند روز خیلی bussy بیدم :)) از صبح ساعت ۵ تا شب ساعت ۹ بعدشم لالا....... حالاشم اینترنتم قطعه و ندید، فقط بخاطر اینکه خیلی دلم براتون تنگ شده بود دارم مینویسم. اگر با نظراتتون ابراز لطف کردید که دمتون گرم! خستگیم دراومد اگر نه خیلی بدید .
امروز دیگه می خوام یجورایی این مباحث مقدماتی رو جمعش کنم و ایشالله اگر عمری بود از دفعات بعد بریم برا کارای حرفه ای تر. تو پست امروز می خوام کد کامل یک روبات ساده مسیر یاب رو تحلیل کنم که در واقع اشتراک چند مقاله قبلی مربوط به برنامه نویسی هستش. اول کد رو ببینید بعد توضیح میدم:
$crystal = 1000000
$regfile = "m32def.dat"
Config Portd = Output 'right motor
Config Portd = Output 'left motor
Config Pinc.0 = Input
Config Pinc.1 = Input
Dim Rm As Byte 'right motor
Dim Lm As Byte 'left motor
Dim Ls As Bit 'left sensor
Dim Rs As Bit 'right sensor
Rm = &B10001000
Lm = &B10001000
Declare Sub Left_step()
Declare Sub Right_step()
Declare Sub Turn_left()
Declare Sub Turn_right()
Declare Sub Forward()
Do
Ls = Pinc.0
Rs = Pinc.1
If Ls = 1 Then 'Left sensor trigered?
Call Turn_left()
End If
If Rs = 1 Then 'Right sensor trigered?
Call Turn_right()
End If
If Pinc.0 = 1 And pinc.1 = 1 Then 'Thanx 2 Rahim!
Call Forward()
End If
If Pinc.0 = 0 And Portc.1 =0 Then
Call Forward()
End If
Waitms 10
Loop
Sub Forward() 'Goes forward 1 step
Call Left_step()
Call Right_step()
End Sub
Sub Turn_right()
Call Left_step()
End Sub
Sub Turn_left()
Call Right_step()
End Sub
Sub Left_step() 'rotates left motor n step
Rotate Lm , Right
Portd = Lm
End Sub
Sub Right_step() 'Rotates Right motor n steps
Rotate Rm , Right
Portb = Rm
End Sub
End
خوب همونطور که گفتم این کد درواقع اشتراکی هست از مقالات قبلی برای همین موضوع جدید و مهمی نداره بجز استفاده از روال ، زیربرنامه یا Sub. این ویژگی از زبان بیسیک کامپایلر Bascom به شما اجازه میده تا برنامتون رو به چند قسمت ساده تر تقسیم کنید و هر کدوم رو با بکار بردن نامش بعد از کلمه کلیدی CALL به دفعات دلخواه در برنامتون استفاده کنید. (فکر کنم دیگه همه قبلا برنامه نویسی کردن و با مفهوم روال و تابع آشنایی دارند برای همین توضیح اضافی نمیدم فقط کار هر روال این برنامه رو تیتر وار می نویسم:
- Left_Step(): روالی برای چرخش موتور چپ به اندازه یک استپ
- Right_Step(): برای چرخش موتور سمت راست به اندازه یک استپ
- Turn_left(): برای چرخش روبات به سمت چپ (موتور راست ۱ استپ)
- Turn_right(): برای چرخش ربات به سمت راست (موتور چپ ۱ استپ)
- Forward(): برای حرکت ربات به سمت جلو (موتور چپ و راست هر کدام ۱ استپ)
راستی برای استفاده از توابع یا روالها باید ابتدا در بالای برنامه با فرمت Declare Sub subname() اونها رو تعریف کنیم تا بتونیم در قسمتها مختلف برنامه از اونها استفاده کنیم... شاید در اینجا استفاده از زیربرنامه ها حتی باعث طولانی تر شدن کد هم شده باشه اما در کل هم باعث خواناتر شدن و هم باعث آسانتر شدن امکان تغیرات در برنامه میشه، که البته در برنامه های حجیم تر باعث کوتاهتر شدن برنامه هم خواهد شد.
شرح کلی: طبق کد موتور سمت چپ رو باید بواسطه درایور به پورت D و موتور سمت راست رو به پورت B وصل کنید (قبلا توضیح داده شده چطور). دو سنسور چپ و راست رو هم به ترتیب به پین ۰ و ۱ از پورت C وصل کنید (اینم قبلا آموزش دادم). حالا طبق کد اگر سنسور سمت چپ خط سایه رو سنس کنه موتور سمت راست حرکت میکنه که باعث حرکت ربات به سمت چپ و اگر سنسور سمت راست خط سیاه رو سنس کنه موتور سمت چپ حرکت میکنه و ربات رو به سمت راست می راند. تا همواره ربات بین خطوط حرکت کنه... در صورتی که دو سنسور همزمان سطح تیره یا روشن سنس کنند هردو موتور حرکت می کنند تا ربات مستقیم بره!
این بود یکی از ساده ترین کدها برای ربات مسیر یاب شما. ایشاالله از جلسات بعدی مباحث پیشرفته تری رو شروع می کنیم. البته بعد از پست بعدی که قراره تصاویری از مدارات و ربات خودم بهمراه ربات دوستانم که در مسابقات حلی کاپ همین دوره هم شرکت کرده بودند تو وبلاگ بزارم. پس تا اونموقع یا حق......
مطالب مشابه :
اموزش ساخت ربات مسیریاب
بخش دیگر در رابطه با برنامه نویسی ربات مسیریاب کسانی که با برنامه نویسی اشنایی
ساخت ربات مسیریاب
چگونه یک ربات مسیریاب برنامه نویسی : برنامه یک ربات مسیریاب می تواند شامل چند بخش باشد که
آموزش ساخت روبات مسیر یاب
مقدمه. برای ساخت یک ربات مسیریاب باید با سه رشته مکانیک , الکترونیک , کامپیوتر ( برنامه نویسی
آموزش ساخت ربات مسیر یاب
موتور یک ربات مسیریاب قبل از این که بحث برنامه نویسی رو شروع کنم باید یه سری تنظیماتی رو
معرفی کتاب ربات مسیر یاب
ساده و نحوه برنامه نویسی باعث شده حتی برنامه نویسی یک ربات مسیریاب عملی را
برنامه ای ساده برای کنترل ربات مسیریاب
آموزش ساخت ربات مسیریاب و سایر پروژه های چند مقاله قبلی مربوط به برنامه نویسی
برچسب :
برنامه نویسی ربات مسیریاب