Advertisement
Guest User

turn

a guest
Mar 30th, 2020
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.93 KB | None | 0 0
  1. from sense_hat import SenseHat
  2. from gpiozero import Robot
  3. from time import sleep
  4. sense = SenseHat()
  5. robin = Robot(left=(6, 5), right=(11, 9))
  6. TURN_POWER = 0.65 # power level used to drive motors when turning
  7. sense.set_imu_config(False, False, True) # Compass only
  8.  
  9. def rotate_to_direction(new_dir):
  10. curr_dir = sense.get_compass()
  11.  
  12. # Do we turn left or right - which is closer?
  13. if new_dir > curr_dir:
  14. diff = new_dir - curr_dir
  15. if diff < 180:
  16. clockwise = True
  17. pass_zero = False
  18. else:
  19. clockwise = False
  20. pass_zero = True # the turn takes us through zero
  21. else:
  22. diff = curr_dir - new_dir
  23. if diff < 180:
  24. clockwise = False
  25. pass_zero = False
  26. else:
  27. clockwise = True
  28. pass_zero = True
  29.  
  30. # Now we turn
  31. if clockwise:
  32. robin.right(TURN_POWER)
  33. if pass_zero:
  34. while sense.get_compass() > 10: # ideally should stop at 0.01
  35. continue
  36. while sense.get_compass() < new_dir:
  37. continue
  38. else: # anti-clockwise
  39. robin.left(TURN_POWER)
  40. if pass_zero:
  41. while sense.get_compass() < 350: # ideally should stop at 359.99
  42. continue
  43. while sense.get_compass() >= new_dir:
  44. continue
  45. robin.stop()
  46.  
  47. print(f"Start position {sense.get_compass()}")
  48. print("Intended final position 18")
  49. rotate_to_direction(18)
  50. print(sense.get_compass())
  51. print(sense.get_compass())
  52. print(sense.get_compass())
  53. print(sense.get_compass())
  54. print(sense.get_compass())
  55. print(sense.get_compass())
  56. print(sense.get_compass())
  57. print(sense.get_compass())
  58. print(sense.get_compass())
  59. print(sense.get_compass())
  60. print(sense.get_compass())
  61. print(sense.get_compass())
  62. print(sense.get_compass())
  63. print(sense.get_compass())
  64. print(sense.get_compass())
  65. print(sense.get_compass())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement