def drop_into_machine(basket): servo_luik = Servo(21, component_id=11, start_position=2.5) servo_luik.rotate(120) if basket == 1: # Bleek servo_btm_bleek = Servo(5, component_id=6) servo_btm_bleek.rotate(200) time.sleep(2) servo_btm_bleek.rotate(90) servo_btm_bleek.stop() else: servo_btm_donker = Servo(27, component_id=8) servo_btm_donker.rotate(-20) time.sleep(2) servo_btm_donker.rotate(90) servo_btm_donker.stop() servo_luik.rotate(0) servo_luik.stop()
def close_hatch(self): servo_luik = Servo(21, component_id=11, start_position=9.1667) servo_luik.rotate(0) servo_luik.stop() self.hatch = 0
def open_hatch(self): servo_luik = Servo(21, component_id=11, start_position=2.5) servo_luik.rotate(120) servo_luik.stop() self.hatch = 1
def start_electronics(): try: distance_sensor_bleek = DistanceSensor(12, 25, component_id=1) distance_sensor_donker = DistanceSensor(24, 23, component_id=2) distance_sensor_bin = DistanceSensor( 16, 6, component_id=None) # Niet standaard opslaan in database servo_btm_bleek = Servo(4, component_id=6) servo_top_bleek = Servo(17, component_id=7) servo_btm_donker = Servo(22, component_id=8) servo_top_donker = Servo(18, component_id=9) servo_scheidingsmuur = Servo(27, component_id=10) servo_luik = Servo(5, component_id=11) servo_handzeepje = Servo(16, component_id=12) # Checkt in de klasse naar flanken en slaat deze op in de database, niets doen in de while loop dus moisture_sensor = MoistureSensor(20, component_id=4) lcd_controller = LCDController(26, 19, 13) color_sensor = ColorSensor(component_id=3) threading_works = False while True: if threading_works: # Fetch distance in de bin distance_bin = distance_sensor_bin.meassure_distance(samples=3) # Check of er een anomalie is if 18 < distance_bin < 22: if color_sensor.get_luminance() < 0.4: # drop into donker distance_sensor_donker.meassure_distance() else: # drop into bleek distance_sensor_bleek.meassure_distance() # Update database distance_sensor_bin.store_historiek(distance_bin, 15) # Broadcast update emit update_all() # Luister naar knopjes if GPIO.input(lcd_controller.links) == False: lcd_controller.links_pressed() time.sleep(0.2) elif GPIO.input(lcd_controller.midden) == False: lcd_controller.midden_pressed() time.sleep(0.2) elif GPIO.input(lcd_controller.rechts) == False: lcd_controller.rechts_pressed() time.sleep(0.2) time.sleep(0.05) except KeyboardInterrupt: print("Programma gestopt") finally: # Clear lcd lcd_controller.lcd_display.lcd_clear() GPIO.cleanup()
def drop_into_bleek(): # Init servo motors servo_top_bleek = Servo(17, component_id=7, start_position=7) servo_top_donker = Servo(6, component_id=9) servo_scheidingsmuur = Servo(22, component_id=10) servo_scheidingsmuur.rotate(55) time.sleep(1) servo_top_donker.rotate(10) servo_top_bleek.rotate(170) time.sleep(3) servo_top_bleek.rotate(82) servo_top_donker.rotate(90) servo_scheidingsmuur.rotate(90) # Stop servo motors servo_top_bleek.stop() servo_top_donker.stop() servo_scheidingsmuur.stop()
# Middenschap # 90 = base pos = recht omhoog # 55 = laten vallen in bleek # 125 = laten vallen in donker # my_servo = Servo(22, None) # Bottom bleek # 90 = base pos, -15 = luikje open # my_servo = Servo(27, None) # Top bleek # 90 = base pos, 170 = open # my_servo = Servo(17, None) my_servo = Servo(21, None, start_position=9.1667) while True: if True: if False: my_servo.rotate(0) time.sleep(2) my_servo.rotate(110) time.sleep(2) else: # reset # pass my_servo.rotate(0) break