X
تبلیغات
آموزش ساخت روبات مسیر یاب
با سلام

باید به حضور تمامی بازدید کنندگان برسانم که قوانین حلی کاپ 85 رو دانلود کنند

http://www.iranrobotic.com/files/news/helli85.zip



www.robotic.yazd-soft.com
  • جمعه بیستم بهمن 1385
  • نویسنده: علی فتاحی

 

با سلام خدمت تمام دوستان عزیز شرمنده اگه من اینقدر دیر دیر آپدیت میکنم

اینم آخرین پست L ربات مسیر یابه ولی بگم که باید فکر کنم که مبحث بعدی رو در مورد چی آموزش بدم  و فکر مینک که آتش نشانه J

خوب بریم سر اصل مطب

در بیسیک یک دستور برای چک کردن شرطه که چک میکنه که آیا این شرط برقراره یا نه

اگه بود فلان کاری رو بکن و اگه نبود فلان کارو بکن

 

دستور شرط : If   . . .   Then

در غری اینصورت : Else

 

دستور بعدی هم حلقه تکراره :

Do   . . .  Loop

 

For   . . . Next

 دستور اولی حلقه تکرار بی نهایته و لی دستور دومی حلقه به تهداد مورد نظر شما اجرا میشه

 

خوب حالا برنامه نویسی رو شروع میکنیم

شرط های ما :

1 - اگر سنسور وسطی ما روی خط سیاه بود به جلو حرکت کن

2 - اگر سنسور سمت چپ روی خط بود موتور سمت چب خاموش و موتور سمت راست روشن باشد

3 - اگر سنسور سمت راست روی خط بود موتور سمت راست خاموش و سنسور سمت چب روشن باشد

 این شرط ها باید مرتباً تکرار و چک شود

خوب حالا الگوریتم های بالا رو به کد نویسی تبدیل میکنیم

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

اول از همه یاد آوری کنم که M1,M2,M3,M4 موتور های ما هستند یعنی 1و 2 موتور سمت راست و 3و 4 موتور سمت چپ  و S1,S2,S3 سنوسور های ما هستند که  S1 سنسور چپ  و S2 سنسور وسطی و اون یکی هم سنسور سمت راست ما است

 

 

Do

If S2=1 Then

M1= 1

M2= 1

M3= 1

M4= 1

ElseIf S1=1 Then

M1= 1

M2= 1

M3= 0

M4= 0

ElseIf S3=1 Then

M1= 0

M2= 0

M3= 1

M4= 1

End If

Loop

1 جواب مثبت و 0 جواب منفی

 

 

و در آخر

برای آموزش بعدی شبیه سازی فوتبال دو بعدی یاد بدم

پس هر کی دوست داره از الان براه قشنگ به برنامه نویسی ++C مسلط بشه که من فرض رو بر این میزارم که شما قشنگ شما به برنامه نویسی مسلط هستید

فعلا یا حق

Soccer Simulation 2D

  • پنجشنبه پنجم بهمن 1385
  • نویسنده: علی فتاحی
سلام به بازدید کنندگان عزیز

۵ شنبه همین هفته مطالب جدید رو میریزم توی وبلاگ و از نو وبلاگ رو راه اندازیش میکنم

( مطالب پایانی برنامه نویسی )

بای

 

  • سه شنبه بیست و ششم دی 1385
  • نویسنده: علی فتاحی

با سلام خدمت دوستان عزیز ببخشید که من اینقد دیر این وبلاگ رو اپدیت میکنم

اول از همه جواب اون دوست عزیز که پرسیده بو که من قراره تا آخر مطالب رو بگم یا نه که تکلیفش روشن بشه که بره قطعات رو بخره یا نه , باید بگم  که اون میتونه بره قطعات رو بخره منم تا آخرش ادامه میدم

خوب بریم سر اصل مطلب که ادامه مبحث برنامه نویسی رباتمونه

در پست قبلی در مورد تعریف کردن نوع میکرو کنترلر صحبت کردیم و در این مورد میخوایم در مورد تعریف متغیر ها در بیسیک و تعریف پورت های وروردی و خروجی صحبت کنم

 

Dim

این  دستور برای تعریف نوع متغیر میباشد که انواع متغیر های عبارتند از :

Integer     è -32767 -> 32768

Byte è 255

Bit è 0 or 1 کوچکترین واحد حافظه که فقط مقدار 0 یا 1 میگیرد

Variant این برای مواقعی است که متغیر معلوم نیست از چه نوعیه

Booliean این برای مواقعی است که مقدار بر کشتی متغیر صحیح یا غلط باشه یعنی فقط مقدار درستس و نادرستی می پذیره

Long  این برای تعریف اعداد خیلی بزرگ تا چند رقم اعشار میباشد که الان دقیقا یادم نیست مقدار دقیقش و دقتش تا چند رقم اعشاره

String این برای تعریف متغیر هایی از نوع رشته ای میباشد مثلا میخواید داخل یه متغیر یه متن بریزید

و ....

 

مثال

اول از همه بگم که اون حرف هایی که در متغیر های زیر قرمز رنگ میباشند اسم خاصی نیستند م شما میتوانید هر نامی که مورد نظرتان است را جای گزین کنید تا توی برنامه نویسی از انا استفاده کنید

Dim  a  As Integer

در بالا ما متغیری تعریف کردیم به نام A و از نوع Integer  میباشد یعنی عدد صحیح  که مقدار -32767 تا 32768 را میتواند در خود جای دهد

Dim  s  As String

در این مثال ما متغیری به نام s  تعریف کردیم که از نوع رشته ای میباشد و فقط میتوان در آن رشته ای ریخت

 Dim  b As Byte

در مثال بالا ما یک متغیر از نوع Byte  تعریف کردیم به اسم b  که میتوان تا مقدار 255 را در اون ریخت

 

به همین ترتیب متغیر های مورد نیاز رو تعریف میکنیم

ولی ما در این برنامه نویسی بیشتر به Integer  و Byte  نیاز داریم

 

خوب ها میخویم تعریف کنیم که کدوم پورت ها ورودی یا خروجی باشه که به این ترتیب عمل میکنیم

Config  PortA = Input

Config PortD= OutPut

خوب ما در بالا تعریف کردیم که پین های پورت A به عنوان ورودی میکرو در نظر گرفته بشه و پین های پورت  D به عنوان خروجی در نظر کرفته بشه که من در بالا نام پورت ها رو با رنگ قرمز و سبز مشخص  کردم Input یعنی ورودی و OutPut  یعنی خروجی که ما میتونیم برای هر پورتی تعریف کنیم یا میتونیم پین های ورودی و خروجی رو به صورت دونه دونه تعریف کنیم که به ای صورته :

 

 

 

Config pina.0 =input

Config pina.1 = input

‘----------------------------

Config pinD.4 =Output

Config PinD.5 =Out Put

 D.5 یعنی پین شماره 5 از پورت D  مثال بلای سرش همین طور

 به همین منوال پین ها رو تعریف میکنیم

 

خوب حالا ما میخوایم که برنامه نویسی با 3 سنسور را را شروع کنیم که بدین صورت عمل میکنیم

 

Dim s1 As integer    ‘ Sensore samte rast   سنسور ها

Dim s2 As integer    ‘ Sensore Vasati

Dim s3 As integer    ‘ Sensore Samte Chap

‘===============================

Config pinA.0 = Input  ‘ Port a ; pin 0 ro be onvane voroodi dar nazar gereftim

Config pinA.1 = Input   ‘ Port a ; pin 0 ro be onvane voroodi dar nazar gereftim

Config pinA.2 = Input    ‘ Port a ; pin 0 ro be onvane voroodi dar nazar gereftim

‘-----------------------------------

Config pinD.4 = Output    Port D ;Pin 4 --- > Ro Be Onvane Khorooji Dar Nazar Migiri

Config pinD.5  = Output

Config pinD.6  = Output

Config pinD.7  = Output

‘===============================

M1 Alias PinD.4

M2 Alias PinD.5

M3 Alias PinD.6

M4 Alias PinD.7

‘==================================

S1 = pinA.0

S2 = pinA.1

S3 = pinA.2

 خوب فعلا تا اینجا دیگه بسه بقیش باشه برای پست بعد و حالا میخوام درباره  کد هایی که نوشتم توضیح بدم

اون کد هایی که با رنگ سبز مشخص شده که اصلا ربطی به کد های بر نامه نداره و فقط جنبه توضیحی داره که در کار کرد برنامه تاثیری نداره برای این کار هم شما میتونید توی برنامه نویسی برای اضافه کردن توضیحات که بیشتر متوجه کد نویسی بشید و سر در گم نشید از این علامت در اول و بعد از اون توضیحات رو بنویسید که خود به خود سبز رنگ میشه

 

فکر نکنم دیگه جایی مبهم مونده باشه به غیر از چند خط آخری که توضیح میدم

دستور Alias میاد و اون اسمی رو که برای پینی که در جلوی اون تعریف کرید در نظر میگیره که توی برنامه میتونید اون پین رو با اون اسمی که براش تعریف کردید صدا بزنید مثلا اگه میخواید توی برنامه pina.0 رو صدا بزنی اسم معادل اون رو که M1 گذاشتی صدا میزنی

Port D هم که به عنوان خروجی تعریف کردیم که به درایور موتور وصل میشه و به اون دستور میده

S1 = pinA.0

این هم که معلومه S1  رو به عنوان سنسور شماره 1 که در بالا تعریفش کردیم که کدوم پینه رو در نظر میگیره که توی برنامه سنسور شماره 1 رو به این اسم میشناسم

خوب برای امروز دیگه بسه اگه چیزی نا مفهوم مونده در قسمت نظرات بگید تا بر طرف بشه

  • پنجشنبه دوم آذر 1385
  • نویسنده: علی فتاحی
با سلام خدمت دوستان عزیز

ببخشید من نمیدونم که کی پست قبلی رو فرستاده بوده و هر کی بوده من نبودم

بالاخره  من تا آخرش ادامه میدم  و تا آخر همین هفته ادامه مطالب رو مینویسم تا تموم بشه

و دلیلی که من یه چند وقتی وبلاگ رو اپ نمیکردم مشغله ی زیاد و سال کنکورمه

فعلا بای

 

  • یکشنبه بیست و هشتم آبان 1385
  • نویسنده: علی فتاحی

با سلام خدمت تمام بازديد كنندگان عزيز

شرمنده كه من يه مدتي وبلاگ رو آپديت نميكردم آخه درگير برنامه نويسي پروژم بوم ( برنامه نويسي امنيتي ) و مسافرت و مشكلات ديگه دليليم كه اومدم وبلاگ رو دباره راش انداختم اين بود كه داشتم توي اينترنت ميگشتم كه يهو زد به سرم و گفتم ببينم وبلاگم چند تا بازديد كننده داره و وقتي وبلاگم رو ديدم ياد و خاطره اون وقتا رو زنده كرد و كمي بغزي شدم بعد اومدم توي قسمت نظرات كه چشمم به يه نظر افتاد كه نوشته بود كه كارشو با وبلاگ من آغاز كرده و من هم عذاب وجدان گرفم و گفتم كه همين الان وبلاگمو هر صور كه شده آپديت ميكنم

بريم سر اصل مطلب كه برنامه نويسي بود

برنامه نويسي يك ربات مسير ياب معمولا يا با زبان برنامه نويسي Basic و يا با زبان برنامه نويسي C برنامه نويسي ميشه كه براي برنامه نويسي با زبان بيسيك از نرم افزار Bascom Avr و برنامه نويسي C از برنامه Codevision استفاده ميشه و من فعلا توي اين وبلاگ برنامه نويسي بيسك مقدماتي تا پيشرفته رو شروع ميكنم و دليل انكه اين زبان رو انتخاب كردم اين بود كه چون برنامه نويسي سي براي بعضي از بازديد كنندگان سخت و نا مفهومهو بيسك براي استارت كار راحت تره و بعدا هم سي رو شروع ميكنم ولي من توصيه ميكنم بعدا برنامه نويسي C++ رو شروع كنيد

شروع مبحث برنامه نويسي ( مقدماتي بيسك )

در ابتداي برنامه نويسي باسد نوع ميكرو و كريستال خودتون رو به برنامه معرفي كنيد براي اين كار از دستور زير استفاده ميكنيم

$ RegFile ="x"

x در اين مثال نوع ميكرو مورد استفاده شماست مثلاً

$RegFile ="M32Def.Dat"

يا

$ Regfile ="M16Def.Dat"

مثال اولي براي ميكروهاي سري اتمگا 32 هست و مثال دومي براي ميكرو هاي سري اتمگا 16 براي درك بهتر من اين مثال ها رو با 2 رنگ نوشتم توجه داشته باشيد كه بايد نام معرفي ميكرو تون رو داخل دابل كوتيشن " " قرارگيرد

براي معرفي كريستال هم از دستور زير استفاده ميكنيم

$Crystal = 8000000

8000000 نوع كرستال شماست كه ميتونيد بنا به كريستالي كه داريد اونو تغيير بديد

مقدار پيش فرض رو همين مقدار 8000000 قرار بديد چون كريستال داخلي خود ميكرو 16 و 32 همين مقدار است ولي اگر از كريستال بيروني استفاده ميكنيد مقدار اون رو مطابق با كريستالدون تغيير بديد

توجه كنيد كه مقدار اين كرستال داخل دابل كوتيشن " " نمي باشد

براي اين كه بخواهيد در قسمتي از برنامه خود توضيحاتي اضافه كنيد كه فقط جنبه راهنمايي داشته باشد تا سر در گم نشيد و در عملكرد برنامتون تاثير نداشته باشد اول خط يك ' كوتيشن براريد كه متن شما سبز رنگ ميشه ماند مثال زير

 

' www.Robotic-Pro.blogfa.com

' Line Follower Programming

الان اين فقط جنبه توضيحي داره و هيج تاثيري روي عملكرد برنامه ندارد و حتي ميتونيد توضيحات فارسي هم اضافه كنيد تا خودتون متوجه بشيد

خوب فعلا بريد اينا رو ياد بگيريد تا پست بعدي

نظر يادتون نره

همش به خاطر نظر ندادن شماست كه وبلاگ دير آپديت ميشه :D

  • یکشنبه سی ام مهر 1385
  • نویسنده: علی فتاحی
 برنامه نویسی  ربات مسیر یاب

با سلام خدمت دوستان گل و کامنت نزار خودم هی فقط مطلب میگیرن و نظر ....

قبل از این که بحث برنامه نویسی رو شروع کنم باید یه سری تنظیماتی رو روی میکروتون و برنامه  انجام بدید  که تنظیم فیوز بیت های میکرو  و پرو گرامره J

ابتدا باید برنامه BASCOM AVR   رو تهیه یا دانلود کنید و بعد نصب و کرک اون این مبحث رو ادامه بدید

اول نحوه تنظیم پروگرامر رو توضیح میدم

اول برنامه رو باز کنید و بعد از منوی Option  گزینه Programmer  رو انتخاب کنید و بعد از اون صفحه ای باز میشه که باید نوع پروگرامرتون رو مشخص کنید که شما از لیست اون گزینه STK200/STK300 Programmer رو انتخاب کنید تا نوع پروگرامرتون رو بشناسه

تنظیم دوم

میکرو خود را به مدار پروگرامرتون وصل کرده و برق پروگرامرتون تامین کنید

وارد محیط برنامه BASCOM AVR  شوید و بعد از اون از منوی  File  گزینه New را انتخاب کنید

بعد از اون روی کلیک کنید و بعد از اون روی گزینه Manual Program  کلیک کنید و بعد از اون وارد محیطی شبیه محیط زیر میشوید که زبانه Lock and Fuse Bits  رو انتخواب کنید

 

و طبق تصویر بالا تنضیمات رو انجام بدید  و بعد از اون  روی کلید های  Write FSو Write FSH  کلیک کنید تا تنظیمات اعمال شود

حالا میکرو شما آماده برنامه نویسی شده

فعلا تا پست بعدی خدا نگه دار

 

  • چهارشنبه پانزدهم شهریور 1385
  • نویسنده: علی فتاحی

 

پروگرامر

 سلام دوستان گلم که نظر نمیدن

خوب دوستان کم کم داریم به برنامه نویسی میکرو کنترلر نزدیک میشیم و میخوام امروز نحوه ساخت پروگرامر STK200/300 رو توضیح بدم

میکرو کنترلر AVR ATMEGA 16 or 32 دارای پروگرامر داخلی میباشد و پروگرامر اون خیلی خیلی ساده است

این پروگرامر از اتصالات SP1 برای برنامه ریزی میکروکنترلر استفاده میکند بنابراین میکرو کنترلر هایی که قابلیت اتصال به به SPI رو دارند میشه با این پرو گرام کرد

 

                                              

 

 

پایه های میکرو برای پروگرام کردن :

GND   ,   VCC   ,   MOSI   ,    MISO  ,  RESER  ,SCK

همون طور که میبینید  ما در اینجا از یک پورت پرینتر 25 پین استفاده کردیم که پین های 18 الی 25 اون به هم دیگه و به زمین وصل میشه

پین شماره 6 پورت رو بهSCK(8)  میکرو  و پین شماره 7 به MISO (7) و پین شماره 9 به RESET (9)   و 10 اون به MOSI(6)  و پین 24 اون هم به زمین میکرو وصل بشه

و در آخر هم پین VCC میکرو و GND پورت رو به برق 5 ولت وصل بشه

 

مدار دوم

 

 

 

 

این مدار هم مثل مدار قبلیه و تنها تفاوتی که با مدار قبل داره اینه که این پروگرامر فقط با یه ای سی بافر74HC244  بهینه شده و شکل اولی نوع ساده شده این مداره

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

عکس قطعات مورد نیاز

 

                                                                                

 

 

در بخش بعدی آموزش BASCOM AVR که باز زبان برنامه نویسی بیسیک رو شروع میکنیم و بعد از این که خوب یاد گرفتید میریم سر CodeVisionAVR C Compiler رو که با زبان برنامه نویسی C شروع میکنیم

فعلاً تا پست بعد خدا نگه دار

 

 

 

 

 

  • شنبه یازدهم شهریور 1385
  • نویسنده: علی فتاحی

 

 

خوب امروز میخوام در مورد ساخت برد سنسور توضیح بدم البته یه جور دیگه که هزینش هم خیلی کمتر از برد قبلیه ( سنسو ها ارزون تر هستند)

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

سنسور های مورد نیاز ما سنسور های فرستنده و گیرنده  معمولی IR   -  سه میلییمتری میباشند که هر کدوم دو پایه دارند که توضیح میدم

نوع سنسور : IR  یا همون سنسور های کنترل و تلویزیون

فرستنده :سنسور بی رنگ

گیرنده : سنسور تیره رنگ

فاصله بین سنسور فرستنده و گیرنده 2 تا 3 میلیمتر

 

نحوه بستن مدار

برای بستن مدار فرستده باید پایه بلند رو به یک مقاومت 330 و به VCC یا همون برق استانداردمون و پایه کوتاه اون رو به  GND وصل کنیم

برای بستن مدار گیرنده باید پایه بلندشو به GND و پایه کوتاه اون رو به یک مقاومت 2 کیلو اهمی و به VCC وصل کره

و از وسط پایه کوتاه و مقاومت گیرنده ولتاژ مورد نظر برای میکرو کنترلر گرفته میشود

کل این مدار همین بود O  بس !  :D

خوب پست امروز هم همین بئ به همین سادگی که دیدید

حالا میتونید برید این برد رو بسازید و نتیجه گیری کنید و اگه مشکلی داشتید در قسنت نظرات بیان کنید تا بهتون کمک کنم

فعلاً تا پست بعد خدا نگه دار

 

 

  • چهارشنبه هشتم شهریور 1385
  • نویسنده: علی فتاحی

 

برد سنسور

با سلام خدمت دوستان نظر نده خودم که میان اینجا فقط مطلب میگیرنO  بس

 

امروز میخوام در مورد برد سنسور توضیح بدم خوب بریم سر اصل مطلب .

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

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

سنسور های مادون قرمز (IR) زیادی در بازار موجود میباشند که در دو نوع فرستنده و گیرنده میباشد که نمونه اون رو میتونید در کنترل تلویزیون و خود تلویزیون مشاهده کنید که سنسوری که در کنترل میباشد و دارای رنگ روشنی میباشد فرستنده  و سنسوری که در جلوی تلوزیون میباشد تیره رنگ میباشد گیرنده اون به شمار میرود

این نوع سنسور ها هنگامی که رنگی ( سیاه , سفید ) را تشخیص میدهند و مقدار بار الکترونیکی معینی به میکرو کنترلر میفرستند و از اونجایی که شما سنسور هادون رو به پورت a میکرو وصل کردین از آنالوگ به دیجیتال تبدیل میشه و مقدار منطقی به میکرو فرستاده میشه که میکرو کنترلر تصمیم کاری میگیره 

اما امروز میخواهیم در مورد سنسوری صحبت کنیم که رنگ مشکی و سفید رو به خوبی تشخیص میده و در یک پک میباشد

یعنی سنسور فرستنده و گیرنده در یک پک کوچک و کم حجم میباشدند که دارای حساسیت خوب و یکی از بهترین سنسور ها برای یک ربات مسیر یاب میباشد و نور محیط تاثیر زیادی در عملکرد آن ندارد ( مادون قرمز )و اسم این سنسور GP2S04-6

نکته : بهترین بازده این سنسور در فاصله 4 الی 6 میلیمتر از صطح زمین میباشد

 

در عکس زیر نمونه ای از این سنسور و نمونه ای از برد سنسور رو میبینید

 

 

خوب حالا بریم سر اصل مطلب که بستن مدارمونه

این سنسور دارای 4 پایه میباشد که دوتای اون به زمین وصل میشه و اون دوتای دیگر هر کدوم به مقاومت وصل میکنیم

پایه مثبت فرستنده به مقاومت ۳۳0 اهم و پایه مثبت گیرنده به مقامت 470 کیلو اهم وصل میشن

توجه کنید که اون گوشه سمت چپ بالا که شیار داره فرستنده هست

 

خروجی این سنسور بین پایه گیرنده و مقاومت 470 کیلیو اهم گرفته میشود

 

 

زمانی که زیر سنسور رنگ سفید باشد مقدار خروجی حدود 2/0 –0.7   ولت میباشد و زمانی که رنگ زیر آن سیاه باشد خروجی آن حدود 3/3 – 4/3 ولت میباشد

 

منبع : این چها خط آخری رو از سایت ایران رباتیک کپی کردم :D

 

شماتیک مدار با 3 سنسور

خوب واسه امروز دیگه بسه  

نظر یادتون نره

 

آموزش نظر دهی :

1 شما برای نظر دادن به ای وبلاگ میتوانید به طرف چپ آخر همین مطلب مراجعه کنید و روی لینک ( نظر بدهید ) کلیک کنید

2 صفحه جدید ی باز میشود که شما میتوانید نظر یا سوال و ... خود را در آن بنویسید

3 کلید ثبت نظر با بزنید

4 کار تمام شد – به همین سادگی به همین خوبی

 

  • شنبه چهارم شهریور 1385
  • نویسنده: علی فتاحی