例程讲解05-Snapshot->time_lapse_photos延时拍照

# 此示例展示了如何使用OpenMV Cam拍摄延时照片,并使用RTC模块和定时器中断来实现极低功耗操作。

# 请注意,如果在相机拍照时仍然插入USB,则每次都会运行引导加载程序。 
# 请从USB以外的其他设备为相机供电,以免运行引导加载程序。

import machine
import sensor
import os

# 创建并初始化RTC对象。 这将允许我们设置RTC的当前时间,让我们设置一个中断以便稍后唤醒。
rtc = machine.RTC()
newFile = False

try:
    os.stat("time.txt")
except OSError:
    # 如果日志文件不存在,则设置RTC并将newFile设置为真实日期时间格式:年,月,日,
    # 工作日(星期一= 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

# 每10秒启用一次RTC中断,相机将在从深睡眠模式唤醒后重置。
rtc.wakeup(10000)

BLUE_LED_PIN = 3

sensor.reset()  # 初始化sensor
sensor.set_pixformat(sensor.GRAYSCALE)
sensor.set_framesize(sensor.VGA)
sensor.skip_frames(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 = sensor.snapshot()
img.save("images/" + newName, quality=90)
led.off()

# 进入深度睡眠模式(即,除RTC外,OpenMV Cam有效关闭)。
machine.deepsleep()

星瞳科技OpenMV官方中文文档函数讲解:

results matching ""

    No results matching ""