首页 > 解决方案 > 如何使用计时器模块在 pynput 键盘侦听器中进行操作

问题描述

我正在用rasberry pi 4和python制作遥控车,但是对于左右我想随着时间增加伺服电机的角度所以基本上我想把它做成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 部分添加了代码。但当我第一次按下它时它只是工作。如果我拿着它不检查。那么我怎样才能检查每一秒呢?

标签: pythonpython-3.xpynput

解决方案


推荐阅读