time_lapse_photos.py

# Эта работа лицензирована по лицензии MIT.
# Copyright (c) 2013-2023 OpenMV LLC. All rights reserved.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Таймлапс-фотографии (автор: nedhorning)
#
# Этот пример демонстрирует, как делать таймлапс-фотографии с помощью камеры OpenMV
# Cam, используя модуль RTC вместе с прерыванием таймера для достижения
# режима работы с очень низким энергопотреблением.
#
# Обратите внимание: если USB всё ещё подключён, когда камера делает
# снимки, каждый раз будет запускаться загрузчик (bootloader). Пожалуйста, питайте камеру
# от источника, отличного от USB, чтобы загрузчик не запускался.

import machine
import csi
import os

# Создайте и инициализируйте объект RTC. Это позволит нам установить текущее время для
# RTC и настроить прерывание для последующего пробуждения.
rtc = machine.RTC()
newFile = False

try:
    os.stat("time.txt")
except OSError:
    # Если файл журнала не существует, установите RTC и присвойте newFile значение True
    # формат даты и времени: год, месяц, день, день недели (понедельник=1, воскресенье=7),
    # часы (24-часовой формат), минуты, секунды, доли секунды (отсчёт от 255 до 0)
    rtc.datetime((2018, 3, 9, 5, 13, 0, 0, 0))
    newFile = True

# Извлеките дату и время из объекта 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])

# Имя файла изображения на основе RTC
newName = "I" + year + month + day + hour + minute + second

# Включите прерывания RTC каждые 10 секунд, камера выполнит RESET после пробуждения из режима глубокого сна (deepsleep).
rtc.wakeup(10000)

BLUE_LED_PIN = 3

csi0 = csi.CSI()
csi0.reset()  # Инициализация датчика камеры.
csi0.pixformat(csi.GRAYSCALE)
csi0.framesize(csi.VGA)
csi0.snapshot(time=1000)  # Дайте новым настройкам вступить в силу.

led = machine.LED("LED_BLUE")

if newFile:
    # Если файл журнала не существует, создайте его.
    with open("time.txt", "a") as timeFile:
        # Запишите текстовый файл для отслеживания даты, времени и номера изображения.
        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:
        # Добавьте дату, время и номер изображения в текстовый файл.
        timeFile.write(
            f"{newName},{year},{month},{day},{hour},{minute},{second},{subSecond}\n"
        )

if not "images" in os.listdir():
    os.mkdir("images")  # Создать временный каталог

# Сделайте снимок и сохраните на SD-карту
led.on()
img = csi0.snapshot()
img.save("images/" + newName, quality=90)
led.off()

# Войдите в режим глубокого сна (Deepsleep) (т.е. камера OpenMV Cam фактически отключается, кроме модуля RTC).
machine.deepsleep()

results matching ""

    No results matching ""