ايران ويج

نسخه‌ی کامل: الگوریتم مسیریاب
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3 4
سلام ممنون ! خیلی ازمطلب نویز گیزی استفاده کردم
من دانشجوی نرمافزار هستم الان هم دارم ربات مسیریاب میسازم فقط نمی دونم واسه ی برنامه نویسی ربات 10 سنسوره باید از چه الگوریتمی استفاده کنم که هم کمترین حجم داشته باشه وهم بهترین کارایی !
به نظر شما باید چند تا حالت توی برنامه بررسی بشه ؟
میتونین یه نمونه برنامه ی ربات مسیر یاب برام ایمیل کنین با چیدمان سنسورش!
ممنون!
مهندس بهتر بود یه جا دیگه سوالتون رو مطرح می کردین :

اینها رو ببین :

آموزش ربات از ابتدا : http://forum.iranled.com/showthread.php?tid=10688
آموزش ساخت ربات از صفر تا جایی که بتونیم : http://forum.iranled.com/showthread.php?tid=13441

اینم شاید به دردت بخوره : http://forum.iranled.com/showthread.php?...#pid113099


و آموزش بسکام :
آموزش AVR از صفر تا بي نهايت : http://forum.iranled.com/showthread.php?tid=14543
کتاب اموزش avr به زبان بیسیک : http://forum.iranled.com/showthread.php?tid=10869



###################################################################

با ده تا سنسور می شه 1024 حالت که خوب همه حالت ها بررسی نمی شه و خیلی از حالت ها با یه شرط قضیشون حله !

چیدمان سنسور هم ^ پیشنهاد می شه ( مدل هشتی )
ممنون بابت راهنماییتون !
گفتم که تو برنامه نویسی مشکل ندارم !
فقط میخوام یه برنامه ربات مسیریاب که کامله رو ببینم !
میدونید نوشتن 1024 حالت که حالا 500 تاش رو هم حذف کنیم چه قدر میشه!
واقعا بهش نیاز دارم ممنون !
سلامممممممممممممممم!
احتیاج هست که واسه ی هر سنسور از یک مولتی ترن استفاده کنیم یا یکی کفایت میکنه ؟
مهندس بهتره که واسه هر کدوم یه مولتی ترن بذاری !!!
یکی هم کفایت می کنه ولی توصیه نمی شه !
نه مهندس

شما بیست حالت کلی رو بنویسی کفایت می کنه !!!

مثلا اگر سنسورهای وسط یک بودن برو جلو

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

این قسمتی از یکی از بزنامه های منه که خوب می بینی تعداد حالات تعریف شده چقدر کمه :

کد php:
Do

   
Gosub Get_sir

Test_nat
:

'             109876543210
   If Sir = &B000000000011 Then Goto Mostaghim3
   If Sir = &B000000001111 Then Goto Mostaghim2

'             
109876543210
   
If Sir = &B000000000111 Then Goto Rast1
   
If Sir = &B000000001011 Then Goto Chap1
   
If Sir = &B000000000110 Then Goto Rast1
   
If Sir = &B000000001010 Then Goto Chap1

'             109876543210
   If Sir = &B000000000100 Then Goto Rast2
   If Sir = &B000000001000 Then Goto Chap2
   If Sir = &B000001000100 Then Goto Rast2
   If Sir = &B001000001000 Then Goto Chap2
'             
109876543210
   
If Sir = &B000000010100 Then Goto Rast2
   
If Sir = &B000000101000 Then Goto Chap2
   
If Sir = &B000001010100 Then Goto Rast2
   
If Sir = &B001000101000 Then Goto Chap2

'             109876543210
   If Sir = &B000001000000 Then Goto Rast3
   If Sir = &B001000000000 Then Goto Chap3
   If Sir = &B000001010000 Then Goto Rast3
   If Sir = &B001000100000 Then Goto Chap3
'             
109876543210
   
If Sir = &B000011000000 Then Goto Rast3
   
If Sir = &B011000000000 Then Goto Chap3
   
If Sir = &B000011010000 Then Goto Rast3
   
If Sir = &B011000100000 Then Goto Chap3

'             109876543210
   If Sir = &B000010000000 Then Goto Rast4
   If Sir = &B010000000000 Then Goto Chap4
   If Sir = &B000110000000 Then Goto Rast4
   If Sir = &B110000000000 Then Goto Chap4

'             
109876543210    IN NOT
   
If Sir = &B000000110011 Then Goto Mostaghim2
   
If Sir = &B000000110010 Then Goto Mostaghim2
   
If Sir = &B000000111111 Then Goto Mostaghim2
   
If Sir = &B000000111110 Then Goto Mostaghim2
'             109876543210
   If Sir = &B000000110110 Then Goto Rast1
   If Sir = &B000000111010 Then Goto Chap1


   If Sir.6 = 1 Or Sir.7 = 1 Or Sir.8 = 1 Then :
      If Sir.0 = 0 And Sir.1 = 0 And Sir.2 = 0 And Sir.3 = 0 And Sir.5 = 0 And Sir.9 = 0 And Sir.10 = 0 And Sir.11 = 0 Then :
         Goto Rast4
      End If
   End If


   If Sir.9 = 1 Or Sir.10 = 1 Or Sir.11 = 1 Then :
      If Sir.0 = 0 And Sir.1 = 0 And Sir.2 = 0 And Sir.3 = 0 And Sir.4 = 0 And Sir.6 = 0 And Sir.7 = 0 And Sir.8 = 0 Then :
         Goto Chap4
      End If
   End If


   If Sir.0 = 1 Then :
      If Sir.1 = 1 Or Sir.2 = 1 Or Sir.3 = 1 Then :
         If Sir.5 = 0 And Sir.10 = 0 And Sir.11 = 0 Then :
            If Sir.4 = 1 Or Sir.7 = 1 Or Sir.8 = 1 Then :
               Goto Mostaghim2
            End If
         End If
         If Sir.4 = 0 And Sir.7 = 0 And Sir.8 = 0 Then :
            If Sir.5 = 1 Or Sir.10 = 1 Or Sir.11 = 1 Then :
               Goto Mostaghim2
            End If
         End If
         If Sir.5 = Sir.4 And Sir.6 = Sir.9 And Sir.7 = Sir.10 And Sir.8 = Sir.11 Then :
            Goto Mostaghim2
         End If
      End If
   End If

'
===============================================================================

   If 
Nat And Sir.4 And Sir.5 1 Then :
      
Nat Sir Not Sir : Goto Test_nat
   
Else :
      
Nat : Goto Star
   End 
If

Loop 

و اینم مدل جایگذاری سنسورهام :

[تصویر:  wmb7m67cbgnk8pu28eu.png]
راستی اگه سنسور ها خاموش باشه بهترین حالت حرکت ربات چی میتونه باشه؟
اقا ما گیر این یه صفحه ایم دیگه !!!!!!!!!!!!!
سه حالت بیشتر نداره :

1- ربات اخرین کاری که می کرده رو انجام بده !

2- بره مستقیم

3- توقف کنه


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

تو برنامه منم همینطوریه که خوب بسکام هستش و به نظر میاد شما با بسکام کار نمی کنید ( که اشتباه بزرگی می کنید )

شما تو برنامه حالات اصلی رو بنویس و تا جایی که می تونی حالات اصلی رو در نظر بگیر و واسه بقیه حالت ها نمی خواد کاری کنی !!!

کدویژن کارامون الان خوابن و گرنه میومدن نمونه می ذاشتن !



ممنون !
سلام
دوست عزيز اگر برنامت بزاري خيلي بهتر ميشه به ت كمك كنيم .Biggrin
من خودم با سي كار ميكنم ببخشيد اقاي مدير جان RolleyesWhistleLaugh.
روش هاي متفاوتي براي خوندن سنسورا است كه مزيت ومعايب خودشون دارن
1-سنسوررارو يك باره بخوني بعد شرتاتو جك ميكنم
يا به سنسوررا ارزش بدي اين طوري شرتا ت خيلي خيلي كم مي شه مثلا 90 مي شه يك شرط LaughHappyWhistle017
يا اينكه معمولي براي هر حالتي شرطش بنويسي فقط برنامت سنگين ميشه Laugh
صفحه‌ها: 1 2 3 4