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

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

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

import pyb, machine, sensor, image, pyb, os

# 创建并初始化RTC对象。 这将允许我们设置RTC的当前时间,让我们设置一个中断以便稍后唤醒。
rtc = pyb.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])

newName='I'+year+month+day+hour+minute+second 
# 基于RTC的图像文件名

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

BLUE_LED_PIN = 3

sensor.reset() # 初始化sensor

sensor.set_pixformat(sensor.GRAYSCALE)
#设置图像色彩格式,有RGB565色彩图和GRAYSCALE灰度图两种

sensor.set_framesize(sensor.VGA)
#设置图像像素大小

sensor.skip_frames(time = 1000) # 让新的设置生效。

# 让大家知道我们即将拍照。
pyb.LED(BLUE_LED_PIN).on()

# 如果日志文件不存在则创建它。
if(newFile): 
   # 编写文本文件以跟踪日期,时间和图像编号。
   with open('time.txt', 'a') as timeFile: 
      timeFile.write('Date and time format: year, month, day, hours, minutes, seconds, subseconds' + '\n')
      timeFile.write(newName + ',' + year + ',' + month +  ',' + day +  ',' + hour +  ',' + minute +  ',' + second +  ',' + subSecond + '\n')
else:
   # 在文本文件中附加日期,时间和图像编号。
   with open('time.txt', 'a') as timeFile: 
      timeFile.write(newName + ',' + year + ',' + month +  ',' + day +  ',' + hour +  ',' + minute +  ',' + second +  ',' + subSecond + '\n')

if not "images" in os.listdir(): os.mkdir("images") 
# 制作临时目录

# 拍照并保存到SD卡
img = sensor.snapshot()
img.save('images/' + newName, quality=90)
pyb.LED(BLUE_LED_PIN).off()

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

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

results matching ""

    No results matching ""