time_lapse_photos.py

# Dieses Werk ist unter der MIT-Lizenz lizenziert.
# Copyright (c) 2013-2023 OpenMV LLC. Alle Rechte vorbehalten.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Zeitraffer-Fotos (Credit nedhorning)
#
# Dieses Beispiel zeigt, wie man mit der OpenMV
# Cam und dem RTC-Modul zusammen mit einem Timer-Interrupt Zeitraffer-Fotos aufnimmt, um
# einen sehr stromsparenden Betrieb zu erreichen.
#
# Beachten Sie, dass, wenn das USB-Kabel noch eingesteckt ist, während die Kamera
# Bilder aufnimmt, jedes Mal der Bootloader ausgeführt wird. Bitte versorgen Sie die Kamera
# über eine andere Quelle als USB mit Strom, damit der Bootloader nicht ausgeführt wird.

import machine
import csi
import os

# RTC-Objekt erstellen und initialisieren. Dies ermöglicht es uns, die aktuelle Zeit für
# die RTC einzustellen und einen Interrupt zu setzen, um später aufzuwachen.
rtc = machine.RTC()
newFile = False

try:
    os.stat("time.txt")
except OSError:
    # Wenn die Log-Datei nicht existiert, RTC einstellen und newFile auf True setzen
    # Datumsformat: Jahr, Monat, Tag, Wochentag (Montag=1, Sonntag=7),
    # Stunden (24-Stunden-Format), Minuten, Sekunden, Subsekunden (zählt von 255 auf 0 herunter)
    rtc.datetime((2018, 3, 9, 5, 13, 0, 0, 0))
    newFile = True

# Datum und Uhrzeit aus dem RTC-Objekt extrahieren.
dateTime = rtc.datetime()
year = str(dateTime[0])
month = "%02d" % dateTime[1]
day = "%02d" % dateTime[2]
hour = "%02d" % dateTime[4]
minute = "%02d" % dateTime[5]
second = "%02d" % dateTime[6]
subSecond = str(dateTime[7])

# Bilddateiname basierend auf der RTC
newName = "I" + year + month + day + hour + minute + second

# RTC-Interrupts alle 10 Sekunden aktivieren, die Kamera wird nach dem Aufwachen aus dem Deepsleep-Modus einen RESET durchführen.
rtc.wakeup(10000)

BLUE_LED_PIN = 3

csi0 = csi.CSI()
csi0.reset()  # Kamerasensor initialisieren.
csi0.pixformat(csi.GRAYSCALE)
csi0.framesize(csi.VGA)
csi0.snapshot(time=1000)  # Neue Einstellungen wirksam werden lassen.

led = machine.LED("LED_BLUE")

if newFile:
    # Wenn die Log-Datei nicht existiert, wird sie erstellt.
    with open("time.txt", "a") as timeFile:
        # Textdatei schreiben, um Datum, Uhrzeit und Bildnummer zu erfassen.
        timeFile.write("name, year, month, day, hours, minutes, seconds, subseconds\n")
        timeFile.write(
            f"{newName},{year},{month},{day},{hour},{minute},{second},{subSecond}\n"
        )
else:
    with open("time.txt", "a") as timeFile:
        # Datum, Uhrzeit und Bildnummer an die Textdatei anhängen.
        timeFile.write(
            f"{newName},{year},{month},{day},{hour},{minute},{second},{subSecond}\n"
        )

if not "images" in os.listdir():
    os.mkdir("images")  # Ein temporäres Verzeichnis erstellen

# Foto aufnehmen und auf der SD-Karte speichern
led.on()
img = csi0.snapshot()
img.save("images/" + newName, quality=90)
led.off()

# In den Deepsleep-Modus wechseln (d. h. die OpenMV Cam schaltet sich effektiv ab, mit Ausnahme der RTC).
machine.deepsleep()

results matching ""

    No results matching ""