
براي تبادل لينک ابتدا لينک مارو بانام:E.l.e.B.o.y.s - آموزش ساخت ربات (برنامه نویسی 3) در
وبلاگ ياسايتتان قراردهيد ،
سپس از طریق فرم نظرات به ما خبر دهيد تاما هم اين کار رو براي شما بکنيم.
فروردین 1387
آذر 1386
آبان 1386
آبان 1385
شهریور 1385
مرداد 1385
اردیبهشت 1385
فروردین 1385
اسفند 1384
بهمن 1384
دی 1384
آذر 1384
دوستان خوبم سلام. یواش یواش داریم به شروع مسابقات رباتیک مختلف از جمله حلی کاپ، رباتهای شهری و مسابقات دانشجویی و دانش آموزی مشهد نزدیک میشیم و شوروحال عجیبی بین شرکت کننده ها و علاقمندان رباتیک راه افتاده!! بعضی از دوستان لطف کرده بودن و حتی سوالاتشون رو از من پرسیده بودند. من هم تصمیم گرفتم یه بخش معرفی کتاب تو وبلاگ راه بندازم و کتابهای مفید در این زمینه که حتی می تونه جوابگوی خیلی از سوالات من و شما باشه رو معرفی و لینک دانلودشون رو قرار بدم. اولیش رو که ملاحضه می کنید (یکم پایین تر سمت راست). منتظر کتابهایی در مورد مکانیک، الکترونیک و ... ربات هم باشید.
اما آموزش های خودمون رو پی میگیریم با یه بخش مقدماتی دیگه که مربوط میشه به گرفتن خروجی سنسورها و تصمیم گیری بر مبنای این خروجی. اینم کد کامل و توضیح بخش به بخش:
$crystal = 1000000
$regfile = "m32def.dat"
Config Pinc.0 = Input
Config Pinc.1 = Output
Dim Sensor As Byte
Do
Sensor = Pinc.0
If Sensor = 1 Then
Pinc.1 = 1
Else
Pinc.1 = 0
End If
Loop
End
کارکرد این کد: همونطور که گفتم در این کد قصد داریم از پینهای میکرو به عنوان ورودی ۰ یا ۱ استفاده کنیم و بر اساس ۰ یا ۱ بودن اون نتیجه گیری کنیم. شما باید سر خروجی یکی از سنسورهاتون رو که مدارش رو در پست شماره 14 و 15 گذاشتم به واسطه یک مقاومت قرمز-قرمز-نارنجی، به پین ۰ از پورت C میکرو تون وصل کنید سپس سر کاتد یک LED ساده رو (پایه کوتاهه کاتد و بلنده آند هستش) بواسطه یک مقاومت نارنجی-نارنجی-نارنجی به پین ۱ از پورت C میکرو و سر آند اون رو مستقیما به ۵ ولت وصل کنید تا بتونیم به این طریق ورودی و خروجی های این برنامه رو شبیه سازی کنیم.
گفتیم که از Config PortX = Input/Output برای پیکربندی پورت به عنوان ورودی یا خروجی استفاده می کنیم. اما می توانیم هر کدام از پینهای یک پورت را هم به صورت جدا گانه به عنوان ورودی یا خروجی پیکربندی کنیم. فرمت کلی آن به صورت Config PinX.Y = Input/Output هستش و نمونه اون رو هم که در کد بالا ملاحضه می کنید. در اینجا پین ۰ از پورت C به عنوان ورودی و پین ۱ از همان پورت خروجی معرفی شده. ما سنسورمان را به پین ۰ که ورودی است وصل کردیم و LED رو هم به پین ۱ که خروجی است وصل نمودیم.
Dim Sensor as Bit
Do
Sensor = Pinc.0
...
Loop
در پست قبل گفتم از کلمه Dim برای معرفی متغییر استفاده میشه در اینجا متغیر Sensor از نوع Bit معرفی شده (بیت فقط می تواند ۰ یا ۱ باشد). کاربرد حلقه Do...Loop رو هم در پست قبل گفتم. اما کد میانی در واقع مقدار گرفته شده از Pinc.0 که به سنسور متصل است را در متغیر Sensor قرار می دهد. اگر جسم سفیدی مقابل پک سنسورها قرار دهیم این مقدار ۰ و اگر جسم تیره استفاده کنیم این مقدار ۱ خواهد بود. درست مثل حالتی که خط سیاهی روی زمینه سفید داریم (یاد مسابقات رباتیک افتادم
)
در بیسیک با استفاده از IF (expression) Then عبارات شرطی درست می کنیم که Expression همان شرت ماست. در اینجا می گوییم اگر Sensor مساوی ۱ بود یعنی جسم سیاهی مقابل سنسورمان بود کد بعد از Then را که Pinc.1=1 است را اجرا کن! این کد در واقع مقدار ۱ را به پین ۱ از پورت C میکرو ارسال می کند. در واقع این کار باعث خاموش شدن LED متصل به این پین می شود. کلمه Else نیز از موارد اختیاری عبارت شرطی است بدین معنا که اگر شرط برقرار نبود کد بعد از Else را اجرا کن. در این شرط ۱ بودن متغییر سنسور بررسی می شد، اگر یک نبود (یعنی ۰ بود) کد Pinc.1=0 اجرا می شود. اینکار باعث روشن شدن LED ما خواهد شد.
امیدوارم میکروتون رو با این کد پروگرام کنید و از نتیجه حاصله هرچند پیش پا افتاده لذت ببرید! (من که هنوزشم خیلی لذت می برم). نمی دونم چطور توضیح میدم! خوب یا بد؟ لطفا بهم بگید که اصلا متوجه میشید و استفاده می کنید یا نه؟ منتظر نظر شما هستم. پس تا پست بعد خدانگهدار
[+]
نوشته شده توسط نیما در 14:36
|
|