حرکت قبلی در مسیریاب

mmdamir.esh

عضو جدید
من میخوام وقتی سنسور هام تو ربات مسیریاب همه روی زمینه ی سفید رفت حرکت قبلیشو انجام بده ! یکی به من گفت که تو زبان سی خود به خود خودش حرکت قبلی رو میره اما وقتی تست کردم نمیشد ! یک جا خوندم با آرایه میشه , اما من دقیقا نمفهمم ک من چ جوری حرکت ها رو بریزم تو آرایه که هر دفعه یک آرایه بزارم و چ جوری بفهمم که حرکت قبلیم مال شماره کدوم آرایه بوده ! لطفا هر کسی کمکی از دستش بر می آید دریغ نکنه !
خیلی ممنون
راستی کدی که من نوشتم اینطوریه :


if ( !senVasat ) Move(cw,cw250,250);
if ( !sen Righet1 ) Move(cw,cw,250,200);
if ( !sen Left1 ) Move(cw,cw,200,250);


این طوری کد نوشتم تا به آخر , جای اون سن ها پین های مورد نظر هست ! فقط میخوام کاری کنم تا وقتی همه ی سنسور ها روی زمینه سفید رفت ربات حرکت قبلی رو ادامه بده , اما نمیدونم چ جوری این رو پیاده کنم یا بفهمم حرکت قبلی چی بوده !

ممنون
 

mahmoodras

عضو جدید
من میخوام وقتی سنسور هام تو ربات مسیریاب همه روی زمینه ی سفید رفت حرکت قبلیشو انجام بده ! یکی به من گفت که تو زبان سی خود به خود خودش حرکت قبلی رو میره اما وقتی تست کردم نمیشد ! یک جا خوندم با آرایه میشه , اما من دقیقا نمفهمم ک من چ جوری حرکت ها رو بریزم تو آرایه که هر دفعه یک آرایه بزارم و چ جوری بفهمم که حرکت قبلیم مال شماره کدوم آرایه بوده ! لطفا هر کسی کمکی از دستش بر می آید دریغ نکنه !
خیلی ممنون
راستی کدی که من نوشتم اینطوریه :


if ( !senVasat ) Move(cw,cw250,250);
if ( !sen Righet1 ) Move(cw,cw,250,200);
if ( !sen Left1 ) Move(cw,cw,200,250);


این طوری کد نوشتم تا به آخر , جای اون سن ها پین های مورد نظر هست ! فقط میخوام کاری کنم تا وقتی همه ی سنسور ها روی زمینه سفید رفت ربات حرکت قبلی رو ادامه بده , اما نمیدونم چ جوری این رو پیاده کنم یا بفهمم حرکت قبلی چی بوده !

ممنون
یه شرط بزار که در صورتی که هیچ کدوم از حالت هایی که گفتی نبود(یعنی همون زمین سفید) دستور قبلیتو انجام بده.
 

mmdamir.esh

عضو جدید
یه شرط بزار که در صورتی که هیچ کدوم از حالت هایی که گفتی نبود(یعنی همون زمین سفید) دستور قبلیتو انجام بده.
سلام
ممنون ک جوالب دادین . مسئله اینه که نمیدونم چ جوری دستور قبلی رو پیدا کنم ! یعنی بفهمم ک قبل از این ک سنسور ها روی زمینه ی سفید رفتند , کدوم حالت یا کدوم دستور قبلش در حال انجام بوده !
 

m4n

عضو جدید
من میخوام وقتی سنسور هام تو ربات مسیریاب همه روی زمینه ی سفید رفت حرکت قبلیشو انجام بده ! یکی به من گفت که تو زبان سی خود به خود خودش حرکت قبلی رو میره اما وقتی تست کردم نمیشد ! یک جا خوندم با آرایه میشه , اما من دقیقا نمفهمم ک من چ جوری حرکت ها رو بریزم تو آرایه که هر دفعه یک آرایه بزارم و چ جوری بفهمم که حرکت قبلیم مال شماره کدوم آرایه بوده ! لطفا هر کسی کمکی از دستش بر می آید دریغ نکنه !
خیلی ممنون
راستی کدی که من نوشتم اینطوریه :


if ( !senVasat ) Move(cw,cw250,250);
if ( !sen Righet1 ) Move(cw,cw,250,200);
if ( !sen Left1 ) Move(cw,cw,200,250);


این طوری کد نوشتم تا به آخر , جای اون سن ها پین های مورد نظر هست ! فقط میخوام کاری کنم تا وقتی همه ی سنسور ها روی زمینه سفید رفت ربات حرکت قبلی رو ادامه بده , اما نمیدونم چ جوری این رو پیاده کنم یا بفهمم حرکت قبلی چی بوده !

ممنون
دوست عزیز شما باید از حافظه
<eeprom>
استفاده کنید
نحوه استفاده از این حافظه در میکروهای مختلف متفاوت است به
refrence
میکروتون مراجعه کنید.
اما بنده ساختار کلی برنامه مورد نیازتون رو نوشتم که با توجه
به میکرو و سنسور ها نیاز به تغییر داره
توضیح مختصر در مورد این حافظه:حافظه ای که می تونید از اون جهت ذخیره اطلاعات استفاده کنید و با قطع برق اطلاعاتتون از بین نره.
البته ممکنه در میکرو کنترلرهای مختلف با نام های دیگه شناخته بشه.
PHP:
include<eeprom.h>
//main
int flag=0;//می گوید که خانه صفر حافظه ایپروم را برای متغیرمان در نظر بگیر.
//loop
if(!senvasat)
dastoor1();
else if(!senRight)
dastoor2();
else if(WhiteLine)
{
if(eeprom.read(flag)==1)
()dastoor1;
else if(eeprom.read(flag)==2)
()dastoor2;
}
//end loop
//end main
void dastoor1()
{
eeprom.write(flag,1);//نوشتن مقدار یک در متغیر
move(...);
}
void dastoor2()
{
eeprom.write(flag,2);
move(...);
}
اگر نیاز به راهنمایی داشتید و یا جایی رو متوجه نشدید بپرسید:smile:
 
Similar threads
Thread starter عنوان تالار پاسخ ها تاریخ
ROBOTICS ربات مسیریاب با میکرو ۲۰۵۱ کد نویسی ربات 0

Similar threads

بالا