Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

88 lines
2.4KB

  1. #!/usr/bin/env python
  2. #######################################################################
  3. # Aufgabe 2 #
  4. #######################################################################
  5. from linuxWiimoteLib import *
  6. frim iot_car import Iot_car
  7. # initialize wiimote
  8. wiimote = Wiimote()
  9. #Insert address and name of device here
  10. # hcitool scan
  11. #
  12. device = ('', '')
  13. connected = False
  14. car = Iot_car(testmode=True)
  15. # AUFGABE d
  16. def set_led(remote):
  17. global car
  18. # percent
  19. p = car.speed_cruise_control / car.V_MAX
  20. if p > 0 and p <= 0.25:
  21. remote.SetLEDs(True, False, False, False)
  22. elif p > 0.25 and p <= 0.5:
  23. remote.SetLEDs(True, True, False, False)
  24. elif p > 0.5 and p <= 0.75:
  25. remote.SetLEDs(True, True, True, False)
  26. else:
  27. remote.SetLEDs(True, True, True, True)
  28. try:
  29. print "Press any key on wiimote to connect"
  30. while (not connected):
  31. connected = wiimote.Connect(device)
  32. print "succesfully connected"
  33. wiimote.SetAccelerometerMode()
  34. wiistate = wiimote.WiimoteState
  35. while True:
  36. # re-calibrate accelerometer
  37. if (wiistate.ButtonState.Home):
  38. print 're-calibrating'
  39. wiimote.calibrateAccelerometer()
  40. sleep(0.1)
  41. # Set acceleration and deceleration
  42. if wiistate.ButtonState.One:
  43. car.activate_cruise_control_forward()
  44. else:
  45. car.deactivate_cruise_control()
  46. if wiistate.ButtonState.Two:
  47. car.activate_cruise_control_backward()
  48. else:
  49. car.deactivate_cruise_control()
  50. # streeting
  51. if wiistate.ButtonState.Up:
  52. # streeting left
  53. car.car.streeting_left()
  54. if wiistate.ButtonState.Down:
  55. # streeting right
  56. car.streeting_right()
  57. if not wiistate.ButtonState.Down and not wiistate.ButtonState.Up:
  58. car.reset_streeting()
  59. # reset button
  60. if wiistate.ButtonState.Minus:
  61. car.reset()
  62. car.cruise_control_reset()
  63. # set led states
  64. set_led(wiimote)
  65. delta = 1.0 / 50
  66. print("({},{} --> {})".format(car.speed_cur, car.angle_cur, (car.speed_cur - car.speed_last) / delta)) + ", Servo_active: " + str(car.is_testmode_servo_active) + "CC Speed: " str(car.speed_cruise_control)
  67. sleep(1 / 50)
  68. except KeyboardInterrupt:
  69. print "Exiting through keyboard event (CTRL + C)"
  70. exit(wiimote)