time_lapse_photos.py

# Esta obra está licenciada bajo la licencia MIT.
# Copyright (c) 2013-2023 OpenMV LLC. Todos los derechos reservados.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Fotos de intervalo (time lapse) (crédito a nedhorning)
#
# Este ejemplo muestra cómo tomar fotos de intervalo (time lapse) usando su OpenMV
# Cam, usando el módulo RTC junto con una interrupción de temporizador para lograr
# un consumo de energía muy bajo.
#
# Tenga en cuenta que si el USB sigue conectado mientras la cámara está tomando
# fotos, ejecutará el bootloader cada vez. Alimente la cámara
# desde una fuente distinta al USB para evitar que se ejecute el bootloader.

import machine
import csi
import os

# Cree e inicialice el objeto RTC. Esto nos permitirá establecer la hora actual para
# el RTC y programar una interrupción para despertar más tarde.
rtc = machine.RTC()
newFile = False

try:
    os.stat("time.txt")
except OSError:
    # Si el archivo de registro no existe, establezca el RTC y ponga newFile en True
    # formato de fecha y hora: año, mes, día, día de la semana (lunes=1, domingo=7),
    # horas (formato 24 horas), minutos, segundos, subsegundos (cuenta regresiva de 255 a 0)
    rtc.datetime((2018, 3, 9, 5, 13, 0, 0, 0))
    newFile = True

# Extraiga la fecha y la hora del objeto RTC.
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])

# Nombre de archivo de imagen basado en el RTC
newName = "I" + year + month + day + hour + minute + second

# Active interrupciones del RTC cada 10 segundos; la cámara se REINICIARÁ al despertar del modo deepsleep.
rtc.wakeup(10000)

BLUE_LED_PIN = 3

csi0 = csi.CSI()
csi0.reset()  # Inicializar el sensor de la cámara.
csi0.pixformat(csi.GRAYSCALE)
csi0.framesize(csi.VGA)
csi0.snapshot(time=1000)  # Deje que la nueva configuración surta efecto.

led = machine.LED("LED_BLUE")

if newFile:
    # Si el archivo de registro no existe, créelo.
    with open("time.txt", "a") as timeFile:
        # Escriba un archivo de texto para llevar el registro de fecha, hora y número de imagen.
        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:
        # Agregue la fecha, hora y número de imagen al archivo de texto.
        timeFile.write(
            f"{newName},{year},{month},{day},{hour},{minute},{second},{subSecond}\n"
        )

if not "images" in os.listdir():
    os.mkdir("images")  # Crear un directorio temporal

# Tome una foto y guárdela en la tarjeta SD
led.on()
img = csi0.snapshot()
img.save("images/" + newName, quality=90)
led.off()

# Entre en modo Deepsleep (es decir, la OpenMV Cam se apaga efectivamente excepto por el RTC).
machine.deepsleep()

results matching ""

    No results matching ""