time_lapse_photos.py

# Ce travail est publié sous licence MIT.
# Copyright (c) 2013-2023 OpenMV LLC. Tous droits réservés.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Photos en accéléré (crédit : nedhorning)
#
# Cet exemple montre comment prendre des photos en accéléré avec votre OpenMV
# Cam, en utilisant le module RTC ainsi qu'une interruption temporisée pour obtenir
# un fonctionnement à très faible consommation.
#
# Notez que si l'USB est toujours branché lorsque la caméra prend
# des photos, elle exécutera le bootloader à chaque fois. Veuillez alimenter la caméra
# par une source autre que l'USB pour éviter l'exécution du bootloader.

import machine
import csi
import os

# Créer et initialiser l'objet RTC. Cela nous permettra de définir l'heure actuelle pour
# le RTC et de définir une interruption pour se réveiller plus tard.
rtc = machine.RTC()
newFile = False

try:
    os.stat("time.txt")
except OSError:
    # Si le fichier journal n'existe pas, définir le RTC et mettre newFile à True
    # format de date/heure : année, mois, jour, jour de la semaine (lundi=1, dimanche=7),
    # heures (format 24 heures), minutes, secondes, sous-secondes (décompte de 255 à 0)
    rtc.datetime((2018, 3, 9, 5, 13, 0, 0, 0))
    newFile = True

# Extraire la date et l'heure de l'objet 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])

# Nom du fichier image basé sur le RTC
newName = "I" + year + month + day + hour + minute + second

# Activer les interruptions RTC toutes les 10 secondes ; la caméra se RÉINITIALISERA après le réveil du mode veille profonde.
rtc.wakeup(10000)

BLUE_LED_PIN = 3

csi0 = csi.CSI()
csi0.reset()  # Initialiser le capteur de la caméra.
csi0.pixformat(csi.GRAYSCALE)
csi0.framesize(csi.VGA)
csi0.snapshot(time=1000)  # Laisser les nouveaux réglages prendre effet.

led = machine.LED("LED_BLUE")

if newFile:
    # Si le fichier journal n'existe pas, le créer.
    with open("time.txt", "a") as timeFile:
        # Écrire un fichier texte pour suivre la date, l'heure et le numéro d'image.
        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:
        # Ajouter la date, l'heure et le numéro d'image au fichier texte.
        timeFile.write(
            f"{newName},{year},{month},{day},{hour},{minute},{second},{subSecond}\n"
        )

if not "images" in os.listdir():
    os.mkdir("images")  # Créer un répertoire temporaire

# Prendre une photo et l'enregistrer sur la carte SD
led.on()
img = csi0.snapshot()
img.save("images/" + newName, quality=90)
led.off()

# Entrer en mode veille profonde (c'est-à-dire que l'OpenMV Cam s'éteint effectivement, à l'exception du RTC).
machine.deepsleep()

results matching ""

    No results matching ""