|
- #!/usr/bin/python
- from time import sleep
-
- from iot_car import Iot_car
- from ikt_car_sensorik import Value_collector
-
- car = Iot_car(testmode=False)
- vc = Value_collector()
-
- def is_state_save(vc):
- return True
- distance_front = vc.ultrasonic_front.distance
- distance_back = vc.ultrasonic_back.distance
- if distance_front > 10 and distance_back > 10:
- return True
- return False
-
- def stop(vc, car):
- print 'danger'
- car.set_angle(0)
- car.accelerate(0)
- vc.stop()
- exit(0)
-
- def website_stop():
- car.set_angle(0)
- car.accelerate(0)
- vc.stop()
-
- def park_lite():
-
- car.set_angle(0)
- car.accelerate(0)
- try:
- bearing_start = vc.compass.bearing
- # steeling right
- car.set_angle(45)
- sleep(0.2)
- print
- 'Backward'
- car.accelerate(-5)
- while is_state_save(vc) and not (vc.compass.bearing <= bearing_start - 45):
- sleep(0.1)
- if not is_state_save(vc):
- stop(vc, car)
-
- print
- 'stop'
- car.accelerate(0)
- sleep(0.1)
- car.set_angle(-45)
- sleep(0.1)
- print
- 'Backward'
- car.accelerate(-5)
- while is_state_save(vc) and not (vc.compass.bearing >= bearing_start):
- sleep(0.1)
- if not is_state_save(vc):
- stop(vc, car)
-
- print
- 'stop'
- car.accelerate(0)
- print
- 'end'
-
- car.accelerate(0)
- car.set_angle(0)
-
- except KeyboardInterrupt:
- car.accelerate(0)
- car.set_angle(0)
- vc.stop()
- exit(0)
-
- car.accelerate(0)
- car.set_angle(0)
- vc.stop()
- exit(0)
-
-
-
- def park():
- car = Iot_car(testmode=False)
- vc = Value_collector()
- car.accelerate(0)
- car.set_angle(0)
-
- #angle_offset = -10
-
- print 'Wait for Values'
- sleep(10)
- print 'Dist Front: ' + str(vc.ultrasonic_front.distance)
- print 'Dist Back: ' + str(vc.ultrasonic_back.distance)
- speed = 4
-
- car.set_angle(0)
- car.accelerate(0)
- try:
- # drive forward an find gab
- print 'Forward'
- car.accelerate(0)
- while is_state_save(vc) and not vc.infrared.passed_gab:
- print vc.infrared.distance
- print vc.infrared.passed_gab
-
- sleep(0.1)
- if not is_state_save(vc):
- stop(vc, car)
-
- print 'stop'
- car.accelerate(0)
- bearing_start = vc.compass.bearing
- # steeling right
- car.set_angle(45)
- print 'Backward'
- car.accelerate(-5)
- while is_state_save(vc) and not (vc.compass.bearing <= bearing_start - 45):
- sleep(0.1)
- if not is_state_save(vc):
- stop(vc, car)
-
- print 'stop'
- car.accelerate(0)
-
- car.set_angle(-45)
- print 'Backward'
- car.accelerate(-5)
- while is_state_save(vc) and not (vc.compass.bearing >= bearing_start):
- sleep(0.1)
- if not is_state_save(vc):
- stop(vc, car)
-
- print 'stop'
- car.accelerate(0)
- print 'end'
-
- car.accelerate(0)
- car.set_angle(0)
-
- except KeyboardInterrupt:
- car.accelerate(0)
- car.set_angle(0)
- vc.stop()
- exit(0)
-
- car.accelerate(0)
- car.set_angle(0)
- vc.stop()
- exit(0)
-
- if __name__ == "__main__":
- park()
-
|