اطلاعیه

Collapse
No announcement yet.

یک برنامه حرفه ای ربات مسیر یاب

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

    یک برنامه حرفه ای ربات مسیر یاب

    با سلام دوباره من دارم یه روبات 8 سنسوره می سازم لطفا در بعضی قسمتا کمکم کنید :nice:
    این کد رو لطفا اصلاح کنید :nerd: :nerd:
    کد:
    [left]'sazande:mostafa asadi hasanvand
    'email:mostafa.asadi.h.electronics@gmail.com
    
    'moarefi
    $regfile = "m16def.dat"
    $crystal = 8000000
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Pinc.0 , Db5 = Pinc.1 , Db6 = Pinc.2 , Db7 = Pinc.3 , Rs = Pinc.4 , E = Pinc.5
    Cls
    Lcd "Hllo (+_+)"
    Wait 2
    Cls
    
    Cls
    Lcd "Man robo MAQ001 hastam"
    Wait 2
    Cls
    
    
    
    'port in-out
    Config Portb = Input
    'M1 C
    Config Portd.3 = Output
    Config Portd.4 = Output
    'M2 R
    Config Portd.4 = Output
    Config Portd.5 = Output
    
    Config Portd.6 = Output
    Config Portd.7 = Output
    'motor ha
    M1 Alias Portd.4                      'R
    M2 Alias Portd.5                      'R
    M3 Alias Portd.6                      'C
    M4 Alias Portd.7                      'C
    'sensor ha
    S1 Alias Portb.1                      'rast
    S2 Alias Portb.2                      'rast
    S3 Alias Portb.3                      'vasat
    S4 Alias Portb.4
    S5 Alias Portb.5                      'chap
    S6 Alias Portb.6                      'chap
    'tash khis rang (sia vo sfid)
    S7 Alias Portb.0                      'rast
    S8 Alias Portb.7                      'chap
    'dasturat
    Do
    'jelo
    If S3 = 1 Or S4 = 1 Then
    M1 = 1
    M2 = 1
    M3 = 1
    M4 = 1
    Elseif S2 = 1 And S3 = 1 And S4 = 1 And S5 = 1 Then
    M1 = 1
    M2 = 1
    M3 = 1
    M4 = 1
    Elseif S2 = 1 And S5 = 1 Then
    M1 = 1
    M2 = 1
    M3 = 1
    M4 = 1
    'rast
    Elseif S5 = 1 Or S6 = 1 Then
    M1 = 1
    M2 = 1
    M3 = 0
    M4 = 0
    Elseif S3 = 1 And S4 = 1 And S5 = 1 Then
    M1 = 1
    M2 = 1
    M3 = 0
    M4 = 0
    Elseif S3 = 1 And S4 = 1 And S5 = 1 And S6 = 1 Then
    M1 = 1
    M2 = 1
    M3 = 0
    M4 = 0
    
    'chap
    Elseif S1 = 1 Or S2 = 1 Then
    M1 = 0
    M2 = 0
    M3 = 1
    M4 = 1
    Elseif S3 = 1 And S1 = 1 And S2 = 1 Then
    M1 = 0
    M2 = 0
    M3 = 1
    M4 = 1
    Elseif S3 = 1 And S4 = 1 And S1 = 1 And S2 = 1 Then
    M1 = 0
    M2 = 0
    M3 = 1
    M4 = 1
    Elseif S1 = 1 Or S2 = 1 Then
    Cls
    Lcd "be samt chap"
    
    Elseif S3 = 1 And S4 = 1 Then
    Cls
    Lcd "be samt jelo"
    
    Elseif S4 = 1 Then
    Cls
    Lcd "obur az khat boride"
    
    Elseif S5 = 1 Or S6 = 1 Then
    Cls
    Lcd "be samt rast"
    
    End If
    
    Loop
    
    
    End
    [/left]

    خب حالا طرز چینش سنسور ها
    !!!*!!!!!!!!!!!!!*!!!!!!!!!!!!!!*!!!!
    !!!!!!!!!!!!!!!*!!!!!!*!!!!!!!!!!!!!!!
    !!!!!!!!!!!*!!!!!!!!!!!!!!!*!!!!!!!!!!
    !!!!!!!!!!!!!!!!!!!*!!!!!!!!!!!!!!!!!!!
    من فقط نوشتن برنامه قسمت تشخیص رنگ پس زمینه اون دوتا سنسوره جلویی مشکل دارم لطفا کمک کنید :nerd: :nerd: :nerd: :nerd: :nerd: :nerd: :nerd: :nerd: :nerd: :nerd: :nerd: :nerd: :nerd: :nerd: :nerd: :nice: :nice: :nice: :nice: :nice: :nice: :nice: :nice: :nice: :nice: :nice: :nice: :nice: :nice: :nice: :nice:
    -0-

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

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

    اما الان شما یه ربات داری که هردوتای این کارارو باید انجام بده. دوتاسنسور هم جلوتر از همه سنسورای دیگت داری که میتونن رنگ زمین رو تشخیص بدن.
    الان شما یه شرط کلی میذاری میگی که اگه زمین سفید بود، برنامه مربوط به تعقیب خط مشکی اجرا بشه. در غیر اینصورت اگه زمین مشکی بود برنامه مربوط به تعقیب خط سفید اجرا بشه. این میشه if-else کلی برنامت که بقیه if-else ها تووی این هستن.

    دیدگاه


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

      نوشته اصلی توسط !M!
      با سلام دوباره من دارم یه روبات 8 سنسوره می سازم لطفا در بعضی قسمتا کمکم کنید :nice:
      این کد رو لطفا اصلاح کنید :nerd: :nerd:
      کد:
      [left]'sazande:mostafa asadi hasanvand
      'email:mostafa.asadi.h.electronics@gmail.com
      
      'moarefi
      $regfile = "m16def.dat"
      $crystal = 8000000
      Config Lcd = 16 * 2
      Config Lcdpin = Pin , Db4 = Pinc.0 , Db5 = Pinc.1 , Db6 = Pinc.2 , Db7 = Pinc.3 , Rs = Pinc.4 , E = Pinc.5
      Cls
      Lcd "Hllo (+_+)"
      Wait 2
      Cls
      
      Cls
      Lcd "Man robo MAQ001 hastam"
      Wait 2
      Cls
      
      
      
      'port in-out
      Config Portb = Input
      'M1 C
      Config Portd.3 = Output
      Config Portd.4 = Output
      'M2 R
      Config Portd.4 = Output
      Config Portd.5 = Output
      
      Config Portd.6 = Output
      Config Portd.7 = Output
      'motor ha
      M1 Alias Portd.4                      'R
      M2 Alias Portd.5                      'R
      M3 Alias Portd.6                      'C
      M4 Alias Portd.7                      'C
      'sensor ha
      S1 Alias Portb.1                      'rast
      S2 Alias Portb.2                      'rast
      S3 Alias Portb.3                      'vasat
      S4 Alias Portb.4
      S5 Alias Portb.5                      'chap
      S6 Alias Portb.6                      'chap
      'tash khis rang (sia vo sfid)
      S7 Alias Portb.0                      'rast
      S8 Alias Portb.7                      'chap
      'dasturat
      Do
      'jelo
      If S3 = 1 Or S4 = 1 Then
      M1 = 1
      M2 = 1
      M3 = 1
      M4 = 1
      Elseif S2 = 1 And S3 = 1 And S4 = 1 And S5 = 1 Then
      M1 = 1
      M2 = 1
      M3 = 1
      M4 = 1
      Elseif S2 = 1 And S5 = 1 Then
      M1 = 1
      M2 = 1
      M3 = 1
      M4 = 1
      'rast
      Elseif S5 = 1 Or S6 = 1 Then
      M1 = 1
      M2 = 1
      M3 = 0
      M4 = 0
      Elseif S3 = 1 And S4 = 1 And S5 = 1 Then
      M1 = 1
      M2 = 1
      M3 = 0
      M4 = 0
      Elseif S3 = 1 And S4 = 1 And S5 = 1 And S6 = 1 Then
      M1 = 1
      M2 = 1
      M3 = 0
      M4 = 0
      
      'chap
      Elseif S1 = 1 Or S2 = 1 Then
      M1 = 0
      M2 = 0
      M3 = 1
      M4 = 1
      Elseif S3 = 1 And S1 = 1 And S2 = 1 Then
      M1 = 0
      M2 = 0
      M3 = 1
      M4 = 1
      Elseif S3 = 1 And S4 = 1 And S1 = 1 And S2 = 1 Then
      M1 = 0
      M2 = 0
      M3 = 1
      M4 = 1
      Elseif S1 = 1 Or S2 = 1 Then
      Cls
      Lcd "be samt chap"
      
      Elseif S3 = 1 And S4 = 1 Then
      Cls
      Lcd "be samt jelo"
      
      Elseif S4 = 1 Then
      Cls
      Lcd "obur az khat boride"
      
      Elseif S5 = 1 Or S6 = 1 Then
      Cls
      Lcd "be samt rast"
      
      End If
      
      Loop
      
      
      End
      [/left]

      خب حالا طرز چینش سنسور ها
      !!!*!!!!!!!!!!!!!*!!!!!!!!!!!!!!*!!!!
      !!!!!!!!!!!!!!!*!!!!!!*!!!!!!!!!!!!!!!
      !!!!!!!!!!!*!!!!!!!!!!!!!!!*!!!!!!!!!!
      !!!!!!!!!!!!!!!!!!!*!!!!!!!!!!!!!!!!!!!
      من فقط نوشتن برنامه قسمت تشخیص رنگ پس زمینه اون دوتا سنسوره جلویی مشکل دارم لطفا کمک کنید :nerd: :nerd: :nerd: :nerd: :nerd: :nerd: :nerd: :nerd: :nerd: :nerd: :nerd: :nerd: :nerd: :nerd: :nerd: :nice: :nice: :nice: :nice: :nice: :nice: :nice: :nice: :nice: :nice: :nice: :nice: :nice: :nice: :nice: :nice:
      سلام
      دوست عزیز بهتر بود برای کنترل سرعت موتورها از PWM استفاده کنی که بتوننی حرفه ای تر بهش کارکنی

      دیدگاه


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

        خب اینیکه میگید اموزش بدید :nerd: :nerd: :nerd: :nerd: :nice: :nice:
        -0-

        دیدگاه


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

          نوشته اصلی توسط !M!
          خب اینیکه میگید اموزش بدید :nerd: :nerd: :nerd: :nerd: :nice: :nice:
          سلام
          اینو ببین دوست عزیز
          کد:
          $regfile = "m16def.dat"
          $crystal = 80000000
          '*********************** CONFIG PORTS ***************
          Config Porta = Input
          Config Portb = Input
          Config Portd = Output
          Config Timer1 = Pwm , Pwm = 10 , Prescale = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
          بعدا با دستور زیر میتونی سرعت موتورهات کم و زیاد کنی
          کد:
          Pwm1b = 1023
          Pwm1a = 1023
          که pwm1a همون portd.5 و pwm1b همون portd.4 هست
          1023 بیشترین مقدار سرعت موتور هست و میتونی کم و زیادش کنین
          مثال برنامه:
          کد:
          $regfile = "m16def.dat"
          $crystal = 8000000
          
          Config Porta = Input
          Config Portb = Input
          Config Portc = Input
          Config Pind.0 = Input
          Config Pind.1 = Input
          Config Pind.2 = Input
          Config Pind.7 = Input
          
          Config Portd.3 = Output
          Config Portd.4 = Output
          Config Portd.5 = Output
          Config Portd.6 = Output
          
          Config Timer1 = Pwm , Pwm = 10 , Prescale = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
          
          M:
          
          Do
          
          '****JOLO***
          
          If Pinc.7 = 1 And Pina.7 = 1 Then
          Goto Jolo
          
          Elseif Pina.7 = 1 And Pina.6 = 1 And Pinc.7 = 0 Then
          Goto Jolo
          Elseif Pina.5 = 1 And Pina.4 = 1 And Pina.7 = 0 Then
          Goto Jolo
          
          Elseif Pina.4 = 1 And Pina.3 = 1 And Pina.7 = 0 Then
          Goto Jolo
          
          Elseif Pinc.4 = 1 And Pinc.3 = 1 And Pinc.7 = 0 Then
          Goto Jolo
          
          Elseif Pinc.3 = 1 And Pinc.2 = 1 And Pinc.7 = 0 Then
          Goto Jolo
          
          Elseif Pinc.2 = 1 And Pinc.1 = 1 And Pinc.7 = 0 Then
          Goto Jolo
          
          '***chap fast***
          
          Elseif Pina.7 = 1 And Pina.6 = 1 And Pina.5 = 1 And Pinc.2 = 0 And Pinc.0 = 0 Then
          Goto Lefttfast
          Elseif Pina.0 = 1 And Pina.1 = 1 And Pinc.2 = 0 And Pinc.0 = 0 Then
          Goto Lefttfast
          Elseif Pina.1 = 1 And Pina.3 = 1 And Pinc.2 = 0 And Pinc.0 = 0 Then
          Goto Lefttfast
          Elseif Pinb.0 = 1 And Pina.0 = 1 And Pinc.2 = 0 And Pinc.0 = 0 Then
          Goto Lefttfast
          
           '***RAST fast***
          
          Elseif Pinc.7 = 1 And Pinc.6 = 1 And Pinc.5 = 1 And Pina.2 = 0 And Pina.0 = 0 Then
          Goto Rightfast
          Elseif Pind.7 = 1 And Pinc.0 = 1 And Pina.2 = 0 And Pina.0 = 0 Then
          Goto Rightfast
          Elseif Pind.7 = 1 And Pind.0 = 1 And Pina.2 = 0 And Pina.0 = 0 Then
          Goto Rightfast
          Elseif Pind.7 = 1 And Pinc.0 = 0 And Pina.2 = 0 And Pina.0 = 0 Then
          Goto Lefttfast
          
          Loop
          
          Jolo:
          Pwm1a = 1000
          Pwm1b = 1023
          Set Portd.3
          Set Portd.6
          Goto M
          
          Lefttfast:
          Pwm1a = 800
          Pwm1b = 0
          Reset Portd.3
          Set Portd.6
          Goto M
          
          
          Rightfast:
          Pwm1a = 0
          Pwm1b = 800
          Set Portd.3
          Reset Portd.6
          Goto M

          این برنامه مقدماتی از یک ربات مسیر یاب 24 سنسور هست (توجه کن مقدماتی هست نه کامل)

          دیدگاه


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

            پس اون دوتا پایه روچکار کنم اصلا مدار اتصال میکرو به درایور LM298 رو لطفا بگذاری با تشکر

            Config Portd.5 = Output
            Config Portd.6 = Output
            :nice:
            -0-

            دیدگاه

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