如何使用计时器模块在pynput键盘侦听器中执行操作

2024-10-03 06:32:49 发布

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

我正在用rasberry pi 4和python制作rc汽车,但对于左侧和右侧,我希望随时间增加伺服电机的角度,因此基本上我希望按照psudo制作:

normalangle = 90
if left button pressed:
   if timepassed < 25:
      car.turnleft(normalangle + timepassed)

这是我的密码

import carcontrol
from SensorClass import distanceSensor
import RPi.GPIO as GPIO          
import time
from pynput.keyboard import Key,Listener

sensor1 = distanceSensor(6,5)
carcontrol.setpstart(30)
carcontrol.servo(90)

def on_press(key):
    distance = sensor1.startCalculate()
    if key == Key.up:
        if(distance > 20):
            carcontrol.forward()
        elif (distance < 30 and distance > 20):
            print("something is coming")
        else :
            carcontrol.stop()
            print("you cannot move forward")
    if key == Key.left:
        carcontrol.servo(160)
    if key == Key.down:
        carcontrol.reverse()
    if key == Key.right:
        carcontrol.servo(20)

def on_release(key):
    if key == Key.up:
        carcontrol.stop()
    if key == Key.left:
        carcontrol.servo(90)
    if key == Key.down:
        carcontrol.stop()
    if key == Key.right:
        carcontrol.servo(90)

# Collect events until released
with Listener(
        on_press=on_press,
        on_release=on_release) as listener:
    listener.join()


我还要每隔一秒检查一次距离传感器。我在on_press部分添加了as代码。但当我第一次按下时,它只是在工作。如果我拿着它,它就不会检查。那我怎么能每秒钟检查一次呢


Tags: keyimportreleaseifonasleftdistance