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

2024-04-27 22:26:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我用树莓皮和树莓皮相机,使一个项目。。该项目基本上是眼镜,可以录制视频和拍照使用红外传感器和我去了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)

这就是我现在要用的代码有人能帮我吗?你知道吗


Tags: 项目fromimport视频gpiotime时间sleep
1条回答
网友
1楼 · 发布于 2024-04-27 22:26:31

将此用作while 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。你知道吗

相关问题 更多 >