diff --git a/photobox.py b/photobox.py index 6c5b55b..8934585 100755 --- a/photobox.py +++ b/photobox.py @@ -64,6 +64,8 @@ BORDER = 10 GPIO_LED_BORDER = 7 GPIO_RIGHT_SPOT = 35 GPIO_LEFT_SPOT = 37 +GPIO_BUTTON_LED = 36 +GPIO_BUTTON = 38 THUMB_WIDTH = int((800 - BORDER) / SHOT_COUNT - BORDER) THUMB_HEIGHT = int(THUMB_WIDTH / 1.333) @@ -77,14 +79,38 @@ IMAGES_TODO = os.path.join(IMAGE_DIR, "todo") session_start = monotonic_time() +spot_mode = 0 + + +def set_spot_mode(new_mode): + global spot_mode + spot_mode = new_mode % 4 + GPIO.output(GPIO_LEFT_SPOT, not (spot_mode & 1)) + GPIO.output(GPIO_RIGHT_SPOT, not (spot_mode & 2)) + + +def next_spot_mode(): + global spot_mode + set_spot_mode(spot_mode + 1) + + +def handle_button(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_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_BUTTON, GPIO.IN) +GPIO.add_event_detect(GPIO_BUTTON, GPIO.FALLING, handle_button, bouncetime=300) GPIO.output(GPIO_RIGHT_SPOT, GPIO.HIGH) GPIO.output(GPIO_LEFT_SPOT, GPIO.HIGH) @@ -159,6 +185,7 @@ def waitForEvent(): pygame.event.clear() while 1: sleep(0.25) + events = pygame.event.get() if len(events) > 0: for event in events: