From 5e9e4dca215f639a97f373c449b7d44e373a6f3d Mon Sep 17 00:00:00 2001 From: root Date: Sat, 17 Feb 2018 22:50:33 +0100 Subject: [PATCH] =?UTF-8?q?GPOIO=20Helpers=20eingef=C3=BChrt=20/=20aufger?= =?UTF-8?q?=C3=A4umt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- photobox.py | 60 ++++++++++++++++++++++++++--------------------------- 1 file changed, 29 insertions(+), 31 deletions(-) diff --git a/photobox.py b/photobox.py index 8934585..1650412 100755 --- a/photobox.py +++ b/photobox.py @@ -76,10 +76,16 @@ IMAGES_TODO = os.path.join(IMAGE_DIR, "todo") # global variables +spot_mode = 0 session_start = monotonic_time() -spot_mode = 0 + +# GPIO helpers + +def led_border(state): + global GPIO_LED_BORDER + GPIO.output(GPIO_LED_BORDER, state) def set_spot_mode(new_mode): @@ -94,40 +100,39 @@ def next_spot_mode(): set_spot_mode(spot_mode + 1) -def handle_button(gpio_id): + +# user interface + +def button_press(gpio_id): next_spot_mode() + # INIT GPIO GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) -GPIO.setup(GPIO_RIGHT_SPOT, GPIO.OUT) -GPIO.setup(GPIO_LEFT_SPOT, GPIO.OUT) -GPIO.setup(GPIO_LED_BORDER, GPIO.OUT) - -GPIO.setup(GPIO_BUTTON_LED, GPIO.OUT) -GPIO.output(GPIO_BUTTON_LED, GPIO.LOW) +GPIO.setup(GPIO_RIGHT_SPOT, GPIO.OUT, initial=GPIO.HIGH) +GPIO.setup(GPIO_LEFT_SPOT, GPIO.OUT, initial=GPIO.HIGH) +GPIO.setup(GPIO_LED_BORDER, GPIO.OUT, initial=GPIO.LOW) +GPIO.setup(GPIO_BUTTON_LED, GPIO.OUT, initial=GPIO.LOW) GPIO.setup(GPIO_BUTTON, GPIO.IN) -GPIO.add_event_detect(GPIO_BUTTON, GPIO.FALLING, handle_button, bouncetime=300) +GPIO.add_event_detect(GPIO_BUTTON, GPIO.FALLING, button_press, bouncetime=300) -GPIO.output(GPIO_RIGHT_SPOT, GPIO.HIGH) -GPIO.output(GPIO_LEFT_SPOT, GPIO.HIGH) - -GPIO.output(GPIO_LED_BORDER, GPIO.LOW) +led_border(False) sleep(0.02) -GPIO.output(GPIO_LED_BORDER, GPIO.HIGH) +led_border(True) sleep(0.02) -GPIO.output(GPIO_LED_BORDER, GPIO.LOW) +led_border(False) sleep(0.02) -GPIO.output(GPIO_LED_BORDER, GPIO.HIGH) +led_border(True) sleep(0.02) -GPIO.output(GPIO_LED_BORDER, GPIO.LOW) +led_border(False) sleep(0.02) -GPIO.output(GPIO_LED_BORDER, GPIO.HIGH) +led_border(True) sleep(0.02) -GPIO.output(GPIO_LED_BORDER, GPIO.LOW) +led_border(False) @@ -253,20 +258,18 @@ def makePhotos(): camera.start_preview() # COUNTDOWN - GPIO.output(GPIO_RIGHT_SPOT, GPIO.LOW) - GPIO.output(GPIO_LEFT_SPOT, GPIO.LOW) - GPIO.output(GPIO_LED_BORDER, GPIO.HIGH) + led_border(True) for i in range(0, COUNTDOWN): countdown(camera, pad_cdn[i], img_cdn[i]) - GPIO.output(GPIO_LED_BORDER, GPIO.LOW) + led_border(False) # SHOTS for i in range(0, SHOT_COUNT): # SHOT! sleep(PIC_INTERVAL) - GPIO.output(GPIO_LED_BORDER, GPIO.HIGH) + led_border(True) camera.capture("./tmp%s.jpg" % i, format='jpeg', quality=100, thumbnail=None) - GPIO.output(GPIO_LED_BORDER, GPIO.LOW) + led_border(False) # PAUSE if i < SHOT_COUNT - 1: @@ -277,9 +280,6 @@ def makePhotos(): # CLOSE CAMERA camera.close() - - GPIO.output(GPIO_RIGHT_SPOT, GPIO.HIGH) - GPIO.output(GPIO_LEFT_SPOT, GPIO.HIGH) @@ -420,7 +420,5 @@ except KeyboardInterrupt: print("") finally: - GPIO.output(GPIO_RIGHT_SPOT, GPIO.HIGH) - GPIO.output(GPIO_LEFT_SPOT, GPIO.HIGH) - GPIO.output(GPIO_LED_BORDER, GPIO.LOW) + led_border(False) pygame.quit()