با سلام.
من یه ربات مسیریاب دارم که چیدمان سنسور مدل 8 داره.
پیچ های 90 و بیشتر رو رد میکنه اما پبچ های کمتر از 90 رو نمیتونه رد کنه (البته سنسورها میبینن).
من یه جا تو برنامه یه حلقه گذاشتم که وقتی سنسور کنار دید اونقدر بچرخه تا سنور نوک ببینه اما بازم نشد.
آیا مشکل چیدمان سنسوره یا برنامم اشکال داره؟
لطفاً راهنمایی کنین.
با تشکر
چیدمان سنسورت خوبه باید توی برنامه مشکلش را حل کنی
(۰۳-آذر-۱۳۸۸, ۲۳:۴۹:۵۰)iman-63 نوشته است: [ -> ]با سلام.
من یه ربات مسیریاب دارم که چیدمان سنسور مدل 8 داره.
پیچ های 90 و بیشتر رو رد میکنه اما پبچ های کمتر از 90 رو نمیتونه رد کنه (البته سنسورها میبینن).
من یه جا تو برنامه یه حلقه گذاشتم که وقتی سنسور کنار دید اونقدر بچرخه تا سنور نوک ببینه اما بازم نشد.
آیا مشکل چیدمان سنسوره یا برنامم اشکال داره؟
لطفاً راهنمایی کنین.
با تشکر
برنامتو بذار این طوری بهتر می شه راهنمایی کرد
کد php:
while (1)
{
if(PINC.7==1)
{
Forward();
}
if (PINC.6==1)
{
Right();
}
if (PINC.5==1)
{
Left();
}
else if (PINA.4==1 || PINA.5==1 || PINA.6==1 || PINA.7==1 )
{
do
{
Super_Right();
} while(PINC.6==1);
}
else if (PINA.0==1 || PINA.1==1 || PINA.2==1 || PINA.3==1 )
{
do
{
Super_Left();
} while(PINC.5==1);
}
else
{
Forward();
}
}
}
اینم برنامه. (البته اگه ازش سر در بیارین)
(۰۵-آذر-۱۳۸۸, ۱۴:۱۷:۳۶)iman-63 نوشته است: [ -> ](البته اگه ازش سر در بیارین)
خب توضیحاتشم بذار مهندس تا بتونیم کمکتون کنیم...
کد php:
if(PINC.7==1)
Forward();
if (PINC.6==1)
Right();
if (PINC.5==1)
Left();
سه تا شرط اول (PINC.5 و PINC.6 و PINC.7) که برا خط مستقیم و پیچ های معمولیه.
کد php:
else if (PINA.4==1 || PINA.5==1 || PINA.6==1 || PINA.7==1 )
{
do
{
Right();
} while(PINC.6==1);
}
این شرط هم برا چهار سنسور کناریه. هر کدوم از اونا که دید این شرط اجرا میشه.
کد php:
else if (PINA.0==1 || PINA.1==1 || PINA.2==1 || PINA.3==1 )
{
do
{
Left();
} while(PINC.5==1);
}
اینم مثل قبلیه اما مال اونطرف رباته.
چند تا راه داری اگه زمین تغیر رنگ نمیده ینی یهو سفید تو سیاه نمیشه از سنسور های آخر شروع به خوندن کن یعنی اول اونارو بخون اگه زمین رنگش عوض میشه 2 تا سنسور دیگه پایینه سنسورای آخر قرار بده
8
8 8
8 8
8 8
من فکر می کنم مشکل تو سرعت های موتورات واسه هر سنسور باشه مثلا واسه سنسور کنار سنسور مرکزی نباید سرعت دور زدن زیاد باشه باید اختلاف سرعت دو موتور کم باشه اگه از Pwm استفاده می کنین به نظر من مثلا واسه همین سنسور 250 و 200 باشه خوبه !
اگه هم از pwm استفاده نکردی من توصیه می کنم حتما استفاده کن!
البته من C وارد نیستم بخاطر همین زیاد نمی تونم کمکت کنم
من سی بلدم ولی تو دستوراتتون while هایی که استفاده کردین اضافیه.
میتونستین با همون else if بهتر نتیجه بگیرین.
البته در حدی که من سی بلدم
سلام دوست عزيز
اول عذر خواهي ميكنم --- بعد:
مي توني عكس ربات تو بزاري مي خوام مكانيك تو ببينم .
دوما شكل دقيق چيدمان سنسورات وفاصله اونا از هم
تو برنامه گفتي تاز يماني كه سنسور وسط روي خط نياد به چرخه اما چه چوري ؟
يك موتور استب بشه وبعدي بچرخه يا يكي معكوس وديگري بچرخه
اگر بتوني تابع چرخش بزاري يا نمونه برنامت بهتر م تونم كمكت كنم .
و اينكه از pwm استفاده كردي يانه