اطلاعیه

Collapse
No announcement yet.

کمک در برنامه ربات مسیریاب

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    کمک در برنامه ربات مسیریاب

    با سلام
    من امسال میخوام توی مسابقات شریف بخش دانش اموزی شرکت کنم ولی توی برنامه ربات مشکل دارم لطفا دوستان کمک کنند:
    دوستان من این برنامه ای که پایین هست رو واسه یه ربات 12 سنسوره نوشتم وتوی زمینه سفید خیلی خوب کار میکنه ولی نمیدونم برای اینکه ربات بتونه توی زمینه سیاه هم حرکت کنه چی بنویسم در ضمن توی مسیر یه دوراهی وجود داره که کدی برای شناسایی مسیر کوتاهتر دوراهی گذاشتن حالا ربات چطوری می تونه این کد رو تشخیص بده
    کد:

    برنامه http://uploadtak.com/images/a423_all_project.zip


    ممنون میشم کمکم کنید

    #2
    پاسخ : کمک در برنامه ربات مسیریاب

    با سلام
    برای زمینه سیاه:ابتدا باید روبات تشخیص دهد که زمینه تغییر کرده است.برای مثال سنسور شماره یک شما که بر روی خط سیاه است، سفید می شود و سنسور 2،3 که همیشه کنار خط مشکی هستند سیاه را تشخیص می دهند.
    مرحله بعدی روبات را با استفاده از تاخیر به جلو برانید تا تمام سنسور ها در زمینه مشکی قرار بگیرند.
    و در نهایت تمام سنسور ها را not کنید و از برنامه های قبلی خود استفاده کنید.

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

    دیدگاه


      #3
      پاسخ : کمک در برنامه ربات مسیریاب

      با سلام
      برای زمینه سیاه:ابتدا باید روبات تشخیص دهد که زمینه تغییر کرده است.برای مثال سنسور شماره یک شما که بر روی خط سیاه است، سفید می شود و سنسور 2،3 که همیشه کنار خط مشکی هستند سیاه را تشخیص می دهند.
      مرحله بعدی روبات را با استفاده از تاخیر به جلو برانید تا تمام سنسور ها در زمینه مشکی قرار بگیرند.
      و در نهایت تمام سنسور ها را not کنید و از برنامه های قبلی خود استفاده کنید.

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

      وچینش سنسورهای من این طوریه:


      دیدگاه


        #4
        پاسخ : کمک در برنامه ربات مسیریاب

        سلام
        چینش سنسور های روبات شما بده و بهترین کاری که برای تشخیص اینورس میتونید انجام بدید اینه که همه ی سنسورهاتون رو مرتب با استفاده از یه حلقه FOR چک کنید و ببینید چند تا از سنسور هاتون توی زمینه سیاه هست حالا اگر تعداد اونها بشتر از 8 تا بود (با توجه به تعداد سنسور های شما که 12 تا هست) یعنی توی اینورس هستید و حالا باید یه فلگ رو یک کنید (یا مقدار متغیرتون رو عوض کنید)
        مثلا توی کد پایین مقدار سنسور ها رو اول همشون رو توی آرایه های 0 تا 7 میریزم (چون تعداد سنسور های ای روبات شما 12 تااست) بعد اگه سنسور روی خط سیاه باشه مقدار آرایه صفر و اگر رو زمینه سفید باشه مقداره آرایه مربوط به اون سنسور یک میشه
        بعد اول آرایه ها رو یکی یکی چک میکنم حالا هر وقت به آرایه ای رسیدم که مقدارش یک بود به متغیر j یکی اضافه میکنم
        از FOR که اومد بیرون چک میکنم ببینم j بیشتر از 7 هست یا نه اگر بشتر از 7 بود یعنی تعداد زیادی از سنسور ها تو مشکیه(این حالتیه که فقط توی اینورس پیش میاد)b=1 و اگر j کمتر از 7 بود b=0 میکنم
        بغد توی while اصلی که شرط های مسیریابیم هست توی شرط مقدار سنسور ها رو برابر متغیر b قرار میدم اگر شرط برقرار بود یعنی سنسور روی خطه نه رو زمینه حالا میخواد خط مشکی باشه زمینه سفید یا خط سفید باشه زمینه مشکی وحالا تمام شرط ها و دستوراتی رو که میخوای مینویسی
        void reading()

        {
        array[0]=input(pin_b5);
        array[1]=input(pin_b4);
        array[2]=input(pin_b3);
        .
        .
        .
        .

        }

        void inv()
        {
        j=0;
        for (i=0;i<12;i++){
        if (array[i]==0) j++;
        }
        if(j>=7) b=1;

        else b=0;

        }
        البته من اینو برای pic و توی کامپایلر ccs که به زبان c هستش نوشتم حالا شما باید اون طوری که میخوای ازش استفاده کنی
        AYRIC

        دیدگاه


          #5
          پاسخ : کمک در برنامه ربات مسیریاب

          به نظر من شما باید یک enum تعریف کنین که همون کار flag که دوستمون گفت رو بتونین با هاش به شکل زیبا تری انجام بدی :smile:


          در ضمن با استفاده از این enum و یمکم هوش میتونی اشتباهات رباتت رو از بین ببری و با سرعت بیشتری مسیر رو ادامه بدی مثلا

          با استفاده از این میتونی با استفاده از حالت های قبلی و حالت فعلی آینده رو پیشبینی کنی حالا اگه خواستی بیشتر توضیح میدم

          خودم دارم 1 ربات میسازم برنامشو اینطوری خواهم نوشت اینا یکم مباحث هوش مصنویی و طراحی الگوریتم شبیهه
          اسمم را پدرم انتخواب کرد !
          نام خوانوادگي ام را يکي از اجدادم !
          ديگه بسه راهم را خودم انتخواب خواهم کرد !
          اينم لينک من :
          http://www.eca.ir/forum2/index.php?topic=1721.msg585767#msg585767

          دیدگاه


            #6
            پاسخ : کمک در برنامه ربات مسیریاب

            دوستان کاره بنده خدا رو چرا سخت می کنید اخه می گه که زیاد برنامه نویسی بلد نیست به نظر من با if بنویسی بهتره و برای تشخیص پس زمینه باید موقعیت رو توسط سنسورهات چک کنی مثلا اول برنامه if بزار که اگر اون سنسور انتخابیت برای تشخیص پس زمینه 1 شد x=0 , y=1

            یعنی حالت معکوس پیش فرض که پس زمینه سفید هست x=1 , y=0 وقتی پس زمینه عوض می شه اون x,y هم عوض می شه برنامه ات هم معکوس کار می کنه دیگه نباس بنویسی

            if sl0=1 then
            ....
            باس بنویسی

            if sl0 = x then

            که اگه عوض شد بتونی مقدار متغییرهات رو عوض کنی دیگه برنامه اضافه ننویسی .

            شریف می بینمت :agree:
            Sometimes life's going to hit you in the head with a brick. Don't lose faith
            Steven Paul Jobs
            --------------------------------------------------------------
            aH ProgrammeR

            دیدگاه


              #7
              پاسخ : کمک در برنامه ربات مسیریاب

              سلام ببخشید میشه به من کمک کنین؟ برای مسیر های به شکل زیر به زبان c و بسکام چطوری باید دستور بدم و برنامشو بنویسم؟
              http://uupload.ir/files/xlb_untitled.png

              دیدگاه

              لطفا صبر کنید...
              X