Guest User

Untitled

a guest
Oct 23rd, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. ' {$STAMP BS2}
  2. ' {$PBASIC 2.5}
  3.  
  4. baud CON 396
  5. ch VAR Byte
  6. ra VAR Byte
  7. ra = 0
  8.  
  9.  
  10. Ping PIN 15
  11. PingServo PIN 14
  12. LeftServo PIN 13
  13. RightServo PIN 12
  14.  
  15. rawDist VAR Word
  16. sweepcount VAR Word
  17. x VAR Byte
  18. pulseCount VAR Byte
  19.  
  20.  
  21. Main:
  22. FOR sweepcount = 350 TO 1150 STEP 200
  23. FOR x = 0 TO 5
  24. PULSOUT 14, sweepcount
  25. PAUSE 20
  26. NEXT
  27. GOSUB GetSonar
  28. NEXT
  29.  
  30. FOR sweepcount = 950 TO 550 STEP 200
  31. FOR x = 0 TO 5
  32. PULSOUT 14, sweepcount
  33. PAUSE 20
  34. NEXT
  35. GOSUB GetSonar
  36. NEXT
  37. GOTO Main
  38.  
  39. GetSonar:
  40. LOW Ping
  41. PULSOUT Ping, 5
  42. PULSIN Ping, 1, rawDist
  43.  
  44. IF (rawDist < 600) THEN
  45. IF (sweepcount < 750) THEN
  46. GOSUB Turn_Left
  47. ELSEIF (sweepcount > 750) THEN
  48. GOSUB Turn_Right
  49. ELSE
  50. GOSUB Back_Up
  51. ENDIF
  52. ELSE
  53. GOSUB Forward_Pulse
  54. ENDIF
  55.  
  56. RETURN
  57.  
  58. Forward_Pulse:
  59. FOR pulsecount = 0 TO 5
  60. PULSOUT LeftServo, 850
  61. PULSOUT RightServo, 650
  62. PAUSE 20
  63. NEXT
  64. RETURN
  65.  
  66. Turn_Left:
  67. FOR pulseCount = 0 TO 10
  68. PULSOUT LeftServo, 650
  69. PULSOUT RightServo, 650
  70. PAUSE 20
  71. NEXT
  72. RETURN
  73.  
  74. Turn_Right:
  75. FOR pulseCount = 0 TO 10
  76. PULSOUT LeftServo, 850
  77. PULSOUT RightServo, 850
  78. PAUSE 20
  79. NEXT
  80. RETURN
  81.  
  82. Back_Up:
  83. FOR pulseCount = 0 TO 3
  84. PULSOUT LeftServo, 750
  85. PULSOUT RightServo, 750
  86. PAUSE 20
  87. NEXT
  88.  
  89. FOR pulseCount = 0 TO 7
  90. PULSOUT LeftServo, 650
  91. PULSOUT RightServo, 850
  92. PAUSE 20
  93. NEXT
  94. RETURN
Add Comment
Please, Sign In to add comment