Skip to content

Commit ad34c6c

Browse files
committed
more timelapse!
1 parent 40ff754 commit ad34c6c

File tree

2 files changed

+28
-5
lines changed

2 files changed

+28
-5
lines changed

adafruit_pycamera/__init__.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -289,11 +289,13 @@ def make_camera_ui(self):
289289

290290
self._timelapsebar = displayio.Group(x=0, y=180)
291291
self._timelapse_rate_label = label.Label(
292-
terminalio.FONT, text="Time", color=0xFFFFFF, x=150, y=10, scale=2
292+
terminalio.FONT, text="Time", color=0xFFFFFF,x=90, y=10, scale=2
293293
)
294+
self._timelapse_rate_label.background_color = None
294295
self._timelapsestatus_label = label.Label(
295296
terminalio.FONT, text="Status", color=0xFFFFFF, x=0, y=10, scale=2
296297
)
298+
self._timelapsestatus_label.background_color = None
297299
self._timelapsebar.append(self._timelapse_rate_label)
298300
self._timelapsebar.append(self._timelapsestatus_label)
299301

@@ -493,7 +495,7 @@ def select_setting(self, setting_name):
493495
self._mode_label.color = 0xFFFFFF
494496
self._mode_label.background_color = 0x0
495497
self._timelapse_rate_label.color = 0xFFFFFF
496-
self._timelapse_rate_label.background_color = 0x0
498+
self._timelapse_rate_label.background_color = None
497499

498500
if setting_name == "effect":
499501
self._effect_label.color = 0x0

examples/camera/code.py

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# SPDX-License-Identifier: Unlicense
44

55
import time
6-
6+
import math
77
import bitmaptools
88
import displayio
99
import gifio
@@ -22,6 +22,7 @@
2222
last_frame = displayio.Bitmap(pycam.camera.width, pycam.camera.height, 65535)
2323
onionskin = displayio.Bitmap(pycam.camera.width, pycam.camera.height, 65535)
2424
timelapse_remaining = None
25+
timelapse_timestamp = None
2526

2627
while True:
2728
if pycam.mode_text == "STOP" and pycam.stop_motion_frame != 0:
@@ -41,10 +42,24 @@
4142
pycam._timelapse_rate_label.text = pycam._timelapse_rate_label.text
4243
if timelapse_remaining is None:
4344
pycam._timelapsestatus_label.text = "STOP"
44-
#pycam.display_message("Timelapse\nNot Running\nPress Select to set timing")
4545
else:
46-
pycam.display_message("%d Seconds left", timelapse_remaining)
46+
timelapse_remaining = timelapse_timestamp - time.time()
47+
pycam._timelapsestatus_label.text = f"{timelapse_remaining}s / "
4748
pycam.display.refresh()
49+
50+
if timelapse_remaining is not None and timelapse_remaining <= 0:
51+
#pycam.tone(200, 0.1) # uncomment to add a beep when a photo is taken
52+
try:
53+
pycam.display_message("Snap!", color=0x0000FF)
54+
pycam.capture_jpeg()
55+
except TypeError as e:
56+
pycam.display_message("Failed", color=0xFF0000)
57+
time.sleep(0.5)
58+
except RuntimeError as e:
59+
pycam.display_message("Error\nNo SD Card", color=0xFF0000)
60+
time.sleep(0.5)
61+
pycam.live_preview_mode()
62+
timelapse_timestamp = time.time() + pycam.timelapse_rates[pycam.timelapse_rate] + 1
4863
else:
4964
pycam.blit(pycam.continuous_capture())
5065
# print("\t\t", capture_time, blit_time)
@@ -193,3 +208,9 @@
193208
print("SEL")
194209
if pycam.ok.fell:
195210
print("OK")
211+
if pycam.mode_text == "LAPS":
212+
if timelapse_remaining is None: # stopped
213+
timelapse_remaining = pycam.timelapse_rates[pycam.timelapse_rate]
214+
timelapse_timestamp = time.time() + timelapse_remaining + 1
215+
else: # is running, turn off
216+
timelapse_remaining = None

0 commit comments

Comments
 (0)