PDA

View Full Version : حرفه ای: برنامه شبیه ساز روبات خط-زن ، Line Follower Robot Simulator



RED-C0DE
شنبه 17 بهمن 1388, 14:40 عصر
سلام

http://img69.imageshack.us/img69/1498/rccrazyrobo.png

این برنامه شبیه ساز روبات خط-زن (ب زبان C#‎ ) هستش،پروژه درس "مباحث ویژه - آشنایی با روباتیک" استاد بسیار خوبمون دکتر احد هراتی ، که این ترم انجامش دادیم...
هنوز با دنیای واقعی خیلی فاصله داره، باید آرایش سنسورها رو کمی تغییر بدیم و حرکات نرم تری داشته باشه، همینطور میزان نویز احتمالی از محیط و بعضی موارد دیگه از این دست...

روبات در Component ای به نام RCCrazyLineFollowerRobot طراحی شده...همواره با داشتن مختصات (PointF) سه نقطه رئوس مثلث (شکل ربات بصورت مثلث متساوی الاضلاع طراحی شده) ، روبات می تونه خودش رو Draw کنه بصورت مثلث...
یک Class به نام clsSensor وجود داره که ربات 6 تا سنسور روی محیط خودش داره، در هر تیک timer4Moving_ ، روبات یک Step (یا همون Speed در اینجا) در سمتی که rotate کرده حرکت می کنه ب جلو، تمام سنسورها (در صورتی که IsDisabled نباشن) بررسی می شن تا آیا خط رو حس کردن زیرشون یا خیر، در اینصورت بر اساس اولویتی ک تعیین شده، روی یک سنسور خاص زاویه ای ک می ده رو برمی گردونه و بر اساس این زاویه کل ربات حول دایره می چرخه (مختصات جدید 3 نقطه رئوس مثلث حساب می شن) و سپس روبات در همین راستا یک Step ب جلو حرکت می کنه و دوباره سنسورها رو می خونه و به همین صورت ادامه می ده.... و البته هر دفعه هم روبات دوباره Draw می شه در مکان جدیدش...سرعت روبات ناگهانی تغییر نمی کنه، مثلا اگه سرعت 3 واحد باشه و یکدفعه عدد 10 رو وارد کنین، از 3 تا 10 در یک Queue اضافه می شن و در هر تیک این سرعت ها روی موتور حرکتی اِعمال می شن...

Component ِ دیگه، RCCrazyLineFollowerRobotSimulatorPanel هستش ک سطح حرکت روبات هست، یا بصورت دستی مسیری کشیده می شه توسط کاربر یا یک مسیر ک قبلا کشیده شده می شه Load بشه در Panel.BackgroundImage . یک محیط ساده برای طراحی (مداد، پاک کن، تغییر قطر مداد ، رسم خط و ذخیره مسیر ) مسیر داره و 3 تا Button برای حرکت (حرکت، توقف و گام ب گام ) ...
سمت راست هم نمایشی از بدنه روبات ب همراه سنسورها هستش ک امکان Disable/Enable کردن اونا وجود داره...همچنین امکان ی سری تغییرات دیگه (سرعت ، تاخیر زمانی Timer حرکتی، فاصله بین چرخها ،... ) هم وجود داره ، و البته تاثیرات این تغییرات در سرعت هر چرخ قابل مشاهده هست (سر پیچ ها) ، البته با مقادیر دنیای واقعی خیلی فاصله داره، و بیشتر روش کار می کنیم...

و یک برنامه WinForm هم ب نام RCCrazyLineFollowerRobotViewer برای تست این شبیه ساز اجرا می شه...

--
بعلت اینکه نمی ذارن بالای 500 ک.ب آپ کنیم اینجا و جای دیگه ای هم حسش نبود ت دو تا part گذاشتم ... (برای دانلود به این لینک در بخش C#‎ برید : http://barnamenevis.org/forum/showpost.php?p=904107&postcount=437)

موفقیت باشید...