# برنامه نویسی میکروکنترلر (MicroController) ها و MicroProcessor ها > برنامه نویسی سیستم های Embeded > سوال: برنامه نويسي ميكرو (سي ) براي ربات مسير ياب

## آزاد87

با سلام خدمت اساتيد محترم.
من مي خواستم يك ربات درست كنم (مسير ياب) ولي نمي توانم برنامه اش را بنويسيم البته با كد ويژن (سي).
ما مي خواهيم يك ربات براي مسابقات رباتيك دانشگاه بسازيم.من تا حالا برنامه هاي زيادي را نوشتم ( با كد ويژن ) ولي اين ديگر خيلي تازه است خصوصا  حالا كه مهندس برق گروه از ادامه همكاري با ما انصراف داده.
مدارش  را توانستيم درست كنيم ولي برنامه نويسي آي سي ( كه متاسفانه به عهده ي من است ) مونده.(mega32)
مي خواستم اگر كسي از دوستان سايتي يا مطلبي آموزشي در اين مورد دارن لطف كنند به من نشان دهند.
با تشكر .

----------


## MASTERS

لطفاٌ یک نقشه سه بعدی از قطعات ربات برام بفرستید

----------


## علي رحماني گلزرد

> با سلام خدمت اساتيد محترم.
> من مي خواستم يك ربات درست كنم (مسير ياب) ولي نمي توانم برنامه اش را بنويسيم البته با كد ويژن (سي).
> ما مي خواهيم يك ربات براي مسابقات رباتيك دانشگاه بسازيم.من تا حالا برنامه هاي زيادي را نوشتم ( با كد ويژن ) ولي اين ديگر خيلي تازه است خصوصا حالا كه مهندس برق گروه از ادامه همكاري با ما انصراف داده.
> مدارش را توانستيم درست كنيم ولي برنامه نويسي آي سي ( كه متاسفانه به عهده ي من است ) مونده.(mega32)
> مي خواستم اگر كسي از دوستان سايتي يا مطلبي آموزشي در اين مورد دارن لطف كنند به من نشان دهند.
> با تشكر .


 سلام  :گریه: 
    همكلاسي من برات بميرم اگه  گيرش آوردي ما هم هستيم

----------


## bahman_akbarzadeh

برنامه اي كه مينويسد بستگي داره به طراحي شما.
من هم اين كارو كردم، اما اين دفعه افراد الكترونيك گروه نتونستن كارشونو انجام بدن.
طراحي ورودي و خروجي هم از من بود. اگه مدار شما از 3 سنسور نوري بصورت مثلثي استفاده ميكنه، من برنامه مو بهتون بدم. ( حداقل يه جا استفاده بشه  :بامزه: )
لازم به ذكره كه برنامه من تله هايي رو كه حتي تو مسابقات نيست جواب ميده و يه جورايي الگوريتمش متفاوته.
اينو هم با codeVision نوشتم و هم با basCom .
البته براي ميكرو كنترلر AVR ، ولي زياد فرقي نميكنه.

----------


## SamaPic

با سلام.
به جای اینکه فقط صحبت کنید ، کمی به این بنده ی خدا کمک کنید.

----------


## skflower

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

----------


## aynehband

اصول طراحی مدارات مسیر یاب اینگونه است:
اولا باید سنسورهایت را مشخص کنی، معمولا از مادون قرمز استفاده میشه. خوب حالا باید گیرنده هات رو به میکرو متصل کنی، بستگی به تعداد سنسورهات، و تعداد پایه میکروت باید،اون ها را متصل کنی و اگر زیاد تر بودند باید باس درست کنی که راحت تر از همه IC 73ls373 است که یک لچه و باید با یک پورت ورودی بگیری با یک پورت هم کنترلش کنی.
خوب حالا باید بیای و از سنسورهات یک ماتریس درست کنی
برای این کار یک آرایه دو بعدی کفایت می کنه.
حالا باید با وقفه های زمانی مشخص بیای و ماتریست رو چک کنی. برای این کار یک جدول بکش و خونه های سفید و سیاهت را بر اساس سنسورهات رسم کن.
حالا ببین به ازای هر حالت کدوم موتور باید چیکار کنه، هر کدوم را توی یک برگه بنویس.
حالا برو یک تابع بنویس که ماتریس را بگیره و خروجی های موتور را بهت بده.
--------------------------------------------
حالت های مورد نظرت را توی یک ماتریس تست بگذار بعد با یک حلقه for با حالت جاری سیستم قیاس کن اگر برابر بود خروجی موتورت را ست کن.
خوب اگر برابر نبود برو و حالت بعدی را چک کن.

امیدوارم به کارت اومده باشه

----------


## alimooghashang

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


من در مورد الگوریتم مسیریابی و تشخیص شکستگی،بریدگی،حلقه و ... مشکل دارم
اگه میشه کمک کنید که چطوری باید این کار رو انجام داد

----------


## skflower

> من در مورد الگوریتم مسیریابی و تشخیص شکستگی،بریدگی،حلقه و ... مشکل دارم
> اگه میشه کمک کنید که چطوری باید این کار رو انجام داد


شکستگی که یک نوع پیچه و الگوریتمی جدا از پیچ معمولی نداره.
بریدگی هم مشکلی نداره. چون معمولاً به دلیل سرعت ربات اصلاً بریدگی حس نمیشه. اصطلاحاً Sense نمیشه. البته بستگی به برنامتون داره. باید حرفه ای نوشته باشیدش.
حلقه اگه منظورتون همون Loop باشه که خودش کلّی ماجرا داره.
میمونه الگوریتم مسیریابی که اون رو هم aynehband توضیح دادن. البته الگوریتم ایشون بیشتر برای کسایی که تازه شروع کردن استفاده داره و تو مسابقات جواب نمیده.
حالا من چی رو بگم؟

----------


## alimooghashang

> شکستگی که یک نوع پیچه و الگوریتمی جدا از پیچ معمولی نداره.
> بریدگی هم مشکلی نداره. چون معمولاً به دلیل سرعت ربات اصلاً بریدگی حس نمیشه. اصطلاحاً Sense نمیشه. البته بستگی به برنامتون داره. باید حرفه ای نوشته باشیدش.
> حلقه اگه منظورتون همون Loop باشه که خودش کلّی ماجرا داره.
> میمونه الگوریتم مسیریابی که اون رو هم aynehband توضیح دادن. البته الگوریتم ایشون بیشتر برای کسایی که تازه شروع کردن استفاده داره و تو مسابقات جواب نمیده.
> حالا من چی رو بگم؟


خوب من پیچ رو بلد نیستم، چه برسه به شکستگی
منظور من اینه که در موردش صحبت کنید که مثلا چطوری میشه تشخیص داد  که پیچ داریم
بریدگی هم باید سنس بشه، چون مسیری که ما قراره توش مسابقه بدیم، با بریدگی کد گزاری شده
پس باید سرعت ربات کم باشه که سنس بشه! ایول
کلا میشه بگید الگوریتم خاصی وجود داره یا نه؟ (برای مسیریاب)

----------


## skflower

> خوب من پیچ رو بلد نیستم، چه برسه به شکستگی
> منظور من اینه که در موردش صحبت کنید که مثلا چطوری میشه تشخیص داد  که پیچ داریم
> بریدگی هم باید سنس بشه، چون مسیری که ما قراره توش مسابقه بدیم، با بریدگی کد گزاری شده
> پس باید سرعت ربات کم باشه که سنس بشه! ایول
> کلا میشه بگید الگوریتم خاصی وجود داره یا نه؟ (برای مسیریاب)


الگوریتم ها معمولاً سلیقه ایه. مثلاً دوستمون aynehband جان از ماتریس استفاده میکنن.
من میام سنسور ها رو بصورت \/ کف روبات میچینم. مدار سنسور ها رو هم طوری طراحی میکنم که وقتی رفت روی سیاه خروجی 1 بده و روی سفید 0 (که تغییر رنگ رو هم رد کنه).
بعد میام مقدار هر سنسور (که 1 یا 0 هستش) رو توی یه متغیر از نوع int میریزم.
حالا با فرض اینکه 10 تا سنسور داریم (5 تا سمت چپ و 5 تا سمت راست) مقادیر سنسورها رو با هم جمع میکنم. یعنی جمع 5 تا سنسور چپ، جمع 5 تا سنسور راست و جمع هر دو طرف با هم و اونا رو توی 3 تا متغیر جداگانه میریزم.
حالا میدونم که وقتی هر طرف روی سفید باشه مقدار سنسور ها و در نتیجه مقدار متغیر جمعشون برابر صفره.
توی یه if چک میکنم که وقتی یکی از متغیر ها از اون یکی بیشتر شد، روبات به اون سمت بپیچه.
ok?

----------


## amirtebyan

میشه راجع به loop و پیچ های تند توضیح بدین؟

----------

