Advertisement
Danielchege

Alitra

Jun 18th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.46 KB | None | 0 0
  1. import Adafruit_BBIO.PWM as PWM
  2. import Adafruit_BBIO.GPIO as GPIO
  3. import cv2.cv as cv
  4. import os
  5.  
  6. from time import sleep
  7. import time
  8.  
  9.  
  10. in1="P8_7"
  11. in2="P8_8"
  12. in3="P8_9"
  13. in4="P8_10"
  14. enA="P8_13"
  15. enB="P8_19"
  16.  
  17. servo1="P9_14"
  18. servo2="P9_16"
  19. servo3="P9_21"
  20. servo4="P9_22"
  21.  
  22. duty_min=2
  23.  
  24. #test systems
  25. print "setting up wheel pins"
  26. GPIO.setup(in1,GPIO.OUT)
  27. GPIO.setup(in2,GPIO.OUT)
  28. GPIO.setup(in3,GPIO.OUT)
  29. GPIO.setup(in4,GPIO.OUT)
  30.  
  31. def stop():
  32.     GPIO.output(in1,GPIO.HIGH)
  33.     GPIO.output(in2,GPIO.HIGH)
  34.     GPIO.output(in3,GPIO.HIGH)
  35.     GPIO.output(in4,GPIO.HIGH)
  36.     sleep(1)
  37.    
  38. def forward():
  39.     print"forward"
  40.     GPIO.output(in1,GPIO.LOW)
  41.     GPIO.output(in2,GPIO.HIGH)
  42.     GPIO.output(in3,GPIO.HIGH)
  43.     GPIO.output(in4,GPIO.LOW)
  44.    
  45. def backward():
  46.     print "Backward"
  47.     GPIO.output(in1,GPIO.HIGH)
  48.     GPIO.output(in2,GPIO.LOW)
  49.     GPIO.output(in3,GPIO.LOW)
  50.     GPIO.output(in4,GPIO.HIGH)
  51.    
  52. def turn90left():
  53.     print"90left"
  54.     GPIO.output(in1,GPIO.LOW)
  55.     GPIO.output(in2,GPIO.HIGH)
  56.     GPIO.output(in3,GPIO.LOW)
  57.     GPIO.output(in4,GPIO.HIGH)
  58.     sleep(0.38)
  59. def turn90right():
  60.     print"90right"
  61.     GPIO.output(in1,GPIO.HIGH)
  62.     GPIO.output(in2,GPIO.LOW)
  63.     GPIO.output(in3,GPIO.HIGH)
  64.     GPIO.output(in4,GPIO.LOW)
  65.     sleep(0.38)
  66.  
  67. PWM.start(enA,80)
  68. PWM.start(enB,80)
  69. PWM.start(servo1,0,50)
  70. PWM.start(servo2,0,50)
  71. PWM.start(servo3,0,50)
  72. PWM.start(servo4,0,50)
  73.  
  74. def setAngle(angle,servo):
  75.    
  76.     for i in range(0,angle):
  77.         PWM.set_duty_cycle(servo, (i*0.064) + duty_min)
  78.         sleep(0.01)
  79.        
  80. def moveBack(angle,servo):
  81.    
  82.     for i in range(0,angle):
  83.         ##move shaft from 0 to 180 degree
  84.         PWM.set_duty_cycle(servo, (angle - i)*0.064 + duty_min)
  85.         sleep(0.01)
  86.    
  87. #moves from start forward
  88. forward()
  89. sleep(1.4)
  90. stop()
  91. #turns 90 to the right
  92. turn90right()
  93. stop()
  94. #move towards obstacle x1
  95. forward()
  96. sleep(1.2)
  97. stop()
  98. #open gripper carrier
  99. setAngle(150,servo2)
  100. #open gripper
  101. setAngle(70,servo1)
  102. #lower elbow and shoulder
  103. print"picking x1"
  104. setAngle(80,servo4)
  105. moveBack(70,servo1)
  106. setAngle(40,servo1)
  107. sleep(2)
  108. #raise elbow and shoulder
  109. moveBack(80,servo4)
  110. #raise elbow
  111. setAngle(30,servo3)
  112. #move gripper carrier to zero
  113. moveBack(150,servo2)
  114. #move gripper carrier to placing angle
  115. setAngle(60,servo2)
  116. sleep(2)
  117. forward()
  118. sleep(0.5)
  119. stop()
  120. #release object
  121. print"releasing x1"
  122. moveBack(40,servo1)
  123. setAngle(70,servo1)
  124. sleep(2)
  125. print "folding arm"
  126. #fold arm
  127. moveBack(30,servo3)
  128. moveBack(60,servo2)
  129. moveBack(70,servo1)
  130.  
  131. backward()
  132. sleep(0.5)
  133. stop()
  134. turn90right()
  135. stop()
  136. #move towards obstacle x2
  137.  
  138.  
  139. print"starting sequence to pick x2"
  140. forward()
  141. sleep(0.6)
  142. stop()
  143. #open gripper carrier
  144. setAngle(150,servo2)
  145. #open gripper
  146. setAngle(70,servo1)
  147. sleep(0.5)
  148. #lower elbow and shoulder
  149. print"picking x2"
  150. setAngle(80,servo4)
  151. moveBack(70,servo1)
  152. setAngle(40,servo1)
  153. sleep(2)
  154. #raise elbow and shoulder
  155. moveBack(80,servo4)
  156. #raise elbow
  157. setAngle(30,servo3)
  158. #move gripper carrier to zero
  159. moveBack(150,servo2)
  160. #move gripper carrier to placing angle
  161. setAngle(60,servo2)
  162. sleep(2)
  163. forward()
  164. sleep(0.5)
  165. stop()
  166. #release object
  167. print"placing x2"
  168. moveBack(40,servo1)
  169. setAngle(70,servo1)
  170. sleep(2)
  171. #fold arm
  172. moveBack(30,servo3)
  173. moveBack(60,servo2)
  174. moveBack(70,servo1)
  175.  
  176.    
  177. backward()
  178. sleep(0.5)
  179. stop()
  180. turn90left()
  181. stop()
  182. sleep(1)
  183. forward()
  184. sleep(0.8)
  185. stop()
  186. turn90left()
  187. stop()
  188. sleep(1)
  189. #move towards tennis ball
  190. forward()
  191. sleep(0.5)
  192. stop()
  193.  
  194. print"tennis ball pickup sequence"
  195.  
  196. #open gripper carrier
  197. setAngle(150,servo2)
  198. #open gripper
  199. setAngle(70,servo1)
  200. sleep(0.5)
  201. #lower elbow and shoulder
  202. print"picking up tennis ball"
  203. setAngle(80,servo4)
  204. moveBack(70,servo1)
  205. setAngle(40,servo1)
  206. sleep(2)
  207. #raise elbow and shoulder
  208. moveBack(80,servo4)
  209. #raise elbow
  210. setAngle(30,servo3)
  211. #move gripper carrier to zero
  212. moveBack(150,servo2)
  213. #move gripper carrier to placing angle
  214. setAngle(60,servo2)
  215. sleep(2)
  216.  
  217. forward()
  218. sleep(0.4)
  219. stop()
  220. turn90left()
  221. stop()
  222. sleep(1)
  223. forward()
  224. sleep(0.5)
  225. stop()
  226. turn90right()
  227. stop()
  228. sleep(1)
  229. forward()
  230. sleep(0.5)
  231. stop()
  232.  
  233. #release object
  234. print"dropping tennis ball"
  235. moveBack(40,servo1)
  236. setAngle(70,servo1)
  237. sleep(2)
  238. #fold arm
  239. moveBack(30,servo3)
  240. moveBack(60,servo2)
  241. moveBack(70,servo1)
  242. sleep(1)
  243. backward()
  244. sleep(0.5)
  245. for i in range(0,3):
  246.     PWM.stop(servo1)
  247.     PWM.stop(servo2)
  248.     PWM.stop(servo3)
  249.     PWM.stop(servo4)
  250.     PWM.stop(enA)
  251.     PWM.stop(enB)
  252. print "end stop"
  253. stop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement