如何使我的python代码在特定时间后执行任务?

时间:2018-01-15 17:18:54

标签: python python-3.x

我正在使用覆盆子pi和覆盆子pi相机来制作一个项目..该项目基本上是可以使用红外传感器录制视频和拍照的眼镜,我选择了TCRT5000 ...我想要做的就是当传感器读取低值没有任何反应,当它读取高电平时,读取高电平的时间为2秒,需要拍照,当时间高达3秒以上时,它会录制视频......

import RPi.GPIO as GPIO
from picamera import PiCamera
from time import sleep
import time

camera = PiCamera()
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.IN)


while True:
      sensor=GPIO.input(18)
      if sensor==1 and :
         sleep(2)
            camera.capture("/home/pi/Desktop/Project/Pictures/image%s.jpg")
            print("I TOOK A PICTURE ")
            sleep(2)
            print(" IM RECORDING A VIDEO !!!")

        camera.start_recording('/home/pi/Desktop/Project/Videos/video.h264')
            camera.stop_recording()
            sleep(10)
                print("NOTHING")
                sleep(1)
      elif sensor==0 :
            print("NOTHING")
                sleep(1)

这是我现在可以帮助我的代码吗?

1 个答案:

答案 0 :(得分:0)

将此作为您的同时使用True块

#Declare oldTime variable, but it is blank.
oldTime = ""

while True:
    sensor=GPIO.input(18)

    if sensor==1:
        if(time.time() - oldTime == 2):
            camera.capture("/home/pi/Desktop/Project/Pictures/image%s.jpg")
            print("I TOOK A PICTURE ")
        if(time.time() - oldTime == 3):
            print(" IM RECORDING A VIDEO !!!")
            camera.start_recording('/home/pi/Desktop/Project/Videos/video.h264')
            sleep(10)
            camera.stop_recording()
            print(" I HAVE STOPPED RECORDING!!! ")
    elif sensor==0:
        oldTime = time.time()

当按钮被按下时,脚本会不断检查按钮的时间,并在按下按钮时将其存储在oldTime中,它会开始检查现在和oldTime之间的时差是否相等到'2'或'3'然后执行适当的操作。

您可能需要进行一些舍入才能使其等于2或3.