Advertisement
AMONUWNA

Robot v1

Jun 13th, 2016
3,013
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. '*****************************Ustawienie Procesora i Kwarcu*********************
  2. $regfile = "m16def.dat"
  3. $crystal = 16000000
  4.  
  5.  
  6. '*****************************Konfiguracja bluetootha***************************
  7. Config Com1 = 9600 , Parity = None , Stopbits = 1 , Databits = 8
  8. On Urxc Odbior
  9. Enable Urxc
  10.  
  11.  
  12. '*****************************Konfiguracja Timera*******************************
  13. Config Timer1 = Pwm , Compare A Pwm = Clear_up , Compare B Pwm =
  14. Clear_up , Prescale = 1
  15. Enable Timer1
  16. Start Timer1
  17.  
  18. Enable Interrupts
  19.  
  20.  
  21. '*****************************Konfiguracja Portów*******************************
  22. Config Portb.3 = Output
  23. Portb.3 = 0
  24. Config Portb.4 = Output
  25. Portb.4 = 0
  26.  
  27. Config Portb.0 = Output
  28.    Portb.0 = 0 1
  29. Dioda_lewa Alias Portb.0
  30.  
  31. Config Porta.1 = Output
  32.    Porta.1 = 0
  33. Dioda_prawa Alias Porta.1
  34.  
  35. Config Portd.2 = Output
  36.    Portd.2 = 0
  37. Stby Alias Portd.2
  38.  
  39. Config Portd.3 = Output
  40.    Portd.3 = 0
  41. Ain1 Alias Portd.3
  42.  
  43. Config Portd.6 = Output
  44.    Portd.6 = 0
  45. Ain2 Alias Portd.6
  46.  
  47. Config Portd.7 = Output
  48.    Portd.7 = 0
  49. Bin2 Alias Portd.7
  50.  
  51. Config Portc.0 = Output
  52.    Portc.0 = 0
  53. Bin1 Alias Portc.0
  54.  
  55.  
  56. '*****************************Funkcje*******************************************
  57. Declare Sub Jedz(byref Kierunek As String * 1 , Byref Szybkosc As Byte)
  58.    
  59.     If Kierunek = "P" Or Kierunek = "p" Then        'Przód
  60.      Ain1 = 0
  61.      Bin1 = 0
  62.      Ain2 = 1
  63.      Bin2 = 1
  64.      Stby = 1
  65.    Elseif Kierunek = "T" Or Kierunek = "t" Then      'Tył
  66.      Ain1 = 1
  67.      Bin1 = 1
  68.      Ain2 = 0
  69.      Bin2 = 0
  70.      Stby = 1
  71.    End If
  72.  
  73.    Pwm1a = Szybkosc
  74.    Pwm1b = Szybkosc
  75. End Sub
  76.  
  77.  
  78. '*****************************Zmienne*******************************************
  79. 'Czujnik Odległości
  80. Dim Pomiar1 As Word
  81. Dim Odleglosc_srodek As Single
  82. Odleglosc_srodek = 0
  83.  
  84. 'Proporcjonalność
  85. Dim Roznica As Byte
  86. Dim Uchyb As Single
  87. Dim Proporcjonalnosc As Single
  88. Odleglosc_zadana = 100
  89. Dim Odleglosc_zadana As Byte
  90. Proporcjonalnosc = 2.26
  91.  
  92.  
  93. '*****************************Do Loop*******************************************
  94. Jedz "P" , 0
  95.  
  96. Do
  97.  
  98.    Portb.4 = 1
  99.      Waitus 10
  100.    Portb.4 = 0
  101.  
  102. 'Pomiar Odległości
  103.       Pulsein Pomiar1 , Pinb , 3 , 4
  104.       Odleglosc_srodek = Pomiar1 * 340
  105.       Odleglosc_srodek = Odleglosc_srodek / 200             'milimetry
  106.       Waitms 10
  107.  
  108. 'Liczenie Uchybu
  109.             Uchyb = Odleglosc_srodek - Odleglosc_zadana
  110.             Uchyb = Uchyb * Proporcjonalnosc
  111.  
  112. 'Dojeżdzanie od Przeszkody - Przód
  113.             If Uchyb > 0 Then
  114.                If Uchyb > 255 Then Uchyb = 255
  115.                Jedz "P" , Uchyb
  116.             End If
  117.  
  118. 'Dojeżdzanieod Przeszkody - Tył
  119.             If Uchyb < 0 Then
  120.                Uchyb = Uchyb * -1
  121.                Jedz "P" , Uchyb
  122.             End If
  123. Loop
  124.  
  125.  
  126. '*****************************Edykiety******************************************
  127. Odbior:
  128.    Inputbin C , 1
  129. Return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement