خوب بذارین یکم توضح بدم :
چون من سنورهام یکم عجیب و غریب وصل شده واسه همون برای خوندن از سنوسورهام یه زیر روال گذاشتم که با دستور زیر می خونم :
من واسه هر سنسورم یه ارزشی گذاشتم ( 0 - 1 - 2 - 4 - 8 - 16 - ... ) و مقادیر سنسورهام که می تونه صفر یا یک باشه رو تو متغیر SIR که 16 بیتی هستش ذخیره می کنم !
یعنی بیت الو متغیر فوق نشون دهنده سنسور اول و ... است !
حالا با تست متغیر SIR می گم چی کار کنم !
یعنی فرضا اگه وضعیت سنسورها کناری ها همه خاموش و فقط وسطی ها روشن هستن برو جلو !!!
این جلو رفتن هم خودش یه زیر روال دیگه داره که به اونجا پرش می کنم !
در آخر اگه وضعیت مورد نظر یافت نشد می گم متغیر sir رو برعکس کن ( چون شاید تو زمین سیاه باشیم و می گم دوباره تست کن )
زیر روال های حرکت هم به این صورت است :
Mostaghim2:
با سرعت متوسط برو جلو
Mostaghim3:
با سرعت بالا برو جلو
Rast1:
سرعت متوسط و موتور سمت راست یکم سرعتش کمتر از موتور چپ باشه تا ربات انحراف پیدا کنه سمت راست !
Rast2:
موتور سمت چپ سرعت متوسط و متور سمت راست قفل بشه تا ربات بچرخه به سمت راست !
Rast3:
هر دو موتور سرعت موتسط ولی موتور راست برعکس بچرخه تا در جا واسه پیچ های 90 دور بزنه !!!
تا زمانی می چرخه که سنسور وسط خط رو پیدا کنه !
Rast4:
موتور سمت راست برعکس و سرعت متوسط و موتور سمت چپ سرعت مستقیم و سرعت پاین تا ربات هنگام پیچ به راست یکم به عقب منحرف شه واسه پیچهای زیر 60 درجه !!
تا زمانی می چرخه که سنسور وسط خط رو پیدا کنه !
حرکت سمت چپ هم به این صورت بالاست ولی جای موتورها عوض می شه !!!!
Sir = &B000000000011 یعنی اگر متغیر sir که وضعیت سنسورهام تو اونه برابر با 3 شد یعنی سنسور های وسط یک بودن ( روی خط سیاه ) و بقیه سنورها صفر بودن ( روی زمین سفید ) برو جلو با سرعت !!
&B برای وارد کردن عدد به صورت باینری هستش !