Advertisement
Guest User

Untitled

a guest
Jul 3rd, 2015
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.26 KB | None | 0 0
  1. #
  2. from Tkinter import *
  3. import time
  4. import threading
  5. window = Tk()
  6. canvas = Canvas(window, width = 6400, height = 6000)
  7. canvas.pack()
  8.  
  9. event = threading.Event()
  10.  
  11. def coordinator (tick_time_seconds):
  12.     while (True):
  13.         event.set()
  14.         time.sleep (tick_time_seconds)
  15.  
  16. xrob=0
  17. yrob=10
  18. robCoordYleft=30    #START  COORDINATES
  19. robCoordX1=70
  20. robCoordX2=110
  21. robCoordYright=30
  22. obstacleStartY=200
  23. obstacleStartX=40
  24. obstacleEndX =350
  25. obstacleEndY=220
  26. finalY=250
  27. avoid=0
  28. distFirstLast = 30
  29. # create ball:
  30. frame = canvas.create_rectangle (0,0,1000,520)
  31. robot11 = canvas.create_rectangle(60,40,80,60,tag='group0')
  32. robot12 = canvas.create_rectangle(60,10,80,30,tag = 'group0')
  33. robot21 = canvas.create_rectangle (100,40,120,60,tag='group0')
  34. robot22 = canvas.create_rectangle (100,10,120,30,tag='group0')
  35. obstacle = canvas.create_rectangle (obstacleStartX,obstacleStartY,obstacleEndX,obstacleEndY)
  36. #which = canvas.create_oval(x0,y0,x1,y1,fill="blue", tag='blueBall')
  37. distanceY = abs (robCoordYleft - obstacleStartY)
  38.  
  39.  
  40. def left (robCoordXleft,robCoordYleft,obstacleStartX):
  41.     while ((obstacleStartX - robCoordXleft)<10):
  42.         xrob = -10
  43.         yrob = 0
  44.         event.wait()
  45.         canvas.move(robot11,xrob,yrob)
  46.         canvas.move(robot12,xrob,yrob)
  47.         robCoordXleft=robCoordXleft + xrob
  48.         event.clear()
  49.         if (robCoordXleft<=10):
  50.             break
  51.         #canvas.after(1000)
  52.         canvas.update()
  53.     while (obstacleEndY>=robCoordYleft-distFirstLast):
  54.         print (obstacleEndY, robCoordYleft)
  55.         xrob=0
  56.         yrob=10
  57.         event.wait()
  58.         canvas.move (robot11,xrob,yrob)
  59.         canvas.move (robot12,xrob,yrob)
  60.         robCoordYleft=robCoordYleft + yrob
  61.         event.clear()
  62.         #canvas.after(1000)
  63.         canvas.update()
  64.  
  65.  
  66. def right(robCoordXright,robCoordYright,obstacleEndX,obstacleEndY):
  67.     print (robCoordXright,obstacleEndX)
  68.     #while (robCoordXright<=obstacleEndX):
  69.     while ((robCoordXright - obstacleEndX)< 10):
  70.         #print ('skoko')
  71.         #print (robCoordXright - obstacleEndX)
  72.         xrob = 10
  73.         yrob = 0
  74.         event.wait()
  75.         canvas.move (robot21, xrob,yrob)
  76.         canvas.move (robot22, xrob,yrob)
  77.         robCoordXright = robCoordXright + xrob
  78.         event.clear()
  79.         if (robCoordXright >=1000):
  80.             break
  81.         #canvas.after (1000)
  82.         canvas.update ()
  83.     while (obstacleEndY >= robCoordYright-distFirstLast):
  84.         print (obstacleEndY, robCoordYright)
  85.         xrob=0
  86.         yrob=10
  87.         event.wait()
  88.         canvas.move (robot21,xrob,yrob)
  89.         canvas.move (robot22,xrob,yrob)
  90.         robCoordYright = robCoordYright +yrob
  91.         event.clear()
  92.         #canvas.after (1000)
  93.         canvas.update ()
  94.  
  95.  
  96. def recovery ():
  97.     xrobleft = 10
  98.     xrobright = -10
  99.     yrob = 0
  100.     distRob = robCoordXright - robCoordXleft
  101.     while (distRob > 40):
  102.         canvas.move(robot11, xrobleft,yrob)
  103.         canvas.move(robot21, xrobright,yrob)
  104.         robCoordleft = robCoordleft + xrobleft
  105.         robCoordright = robCoordright+ xrobtight
  106.         distRob = robCoordXright - robCoordXleft
  107.         time.sleep(1)
  108.         canvas.update()
  109. #movement group 0 #2
  110. def main(robCoordYleft,robCoordYright,distanceY,robCoordX1,obstacleEndX,obstacleStartX):
  111.     while (robCoordYleft!=finalY):
  112.         canvas.move('group0',xrob, yrob)
  113.         robCoordYleft=robCoordYleft+yrob
  114.         robCoordYright=robCoordYright+yrob
  115.         distanceY=distanceY - yrob
  116.         if (distanceY<=50 and robCoordX1<=obstacleEndX and robCoordX1>=obstacleStartX):
  117.             break
  118.             '''
  119.             th1 = threading.Thread (target = left, args = (robCoordX1,robCoordYleft,obstacleStartX))
  120.             th2 = threading.Thread (target = right, args = (robCoordX2,robCoordYright,obstacleEndX,obstacleEndY))
  121.             th3 = threading.Thread (target = coordinator, args = [1])
  122.  
  123.             th1.start()
  124.             th2.start()
  125.             th3.start()
  126.             '''
  127.             #left(robCoordX1,obstacleStartX)
  128.         time.sleep(1)
  129.         canvas.update()
  130.  
  131.     th1 = threading.Thread (target = left, args = (robCoordX1,robCoordYleft,obstacleStartX))
  132.     th2 = threading.Thread (target = right, args = (robCoordX2,robCoordYright,obstacleEndX, obstacleEndY))
  133.     th3 = threading.Thread (target = coordinator, args = [1])
  134.  
  135.     th1.start()
  136.     th2.start()
  137.     th3.start()
  138.  
  139.     window.mainloop()
  140.     th1.join()
  141.     th2.join()
  142.     th3.join()
  143.  
  144. #left(robCoordX1,robCoordY,obstacleStartX)
  145. #right(robCoordX2,robCoordY2, obstacleEndX,obstacleEndY)
  146.     #print (robCoordYright,robCoordYleft,obstacleEndY)
  147. #if (robCoordYright > obstacleEndY and robCoordYleft > obstacleEndY):
  148. #   recovery()
  149. main(robCoordYleft,robCoordYright,distanceY,robCoordX1,obstacleEndX,obstacleStartX)
  150. print ('OKKK')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement