python - 如何使用计时器模块在 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 部分添加了代码。但当我第一次按下它时它只是工作。如果我拿着它不检查。那么我怎样才能检查每一秒呢?
解决方案
推荐阅读
- java - 打开的游标过多
- api - 将路径参数与查询参数混合以获取静态请求?
- python - 如何通过单击 matplotlib 中的图例条目来突出显示点?
- php - PHP array_reduce():得到一个错误“无效的函数名”
- spring - @RequestBody 获取参数值 null
- asp.net-core - 如何在 asp .net core 中获取 mime 类型的文件
- c++ - C++ 中的 Cstring 类:+运算符中的错误?
- javascript - HTML DOM 渲染在 iPhone (iOS 13) 设备中被阻止
- reactjs - 使用语义-ui-react 在表中显示布尔值
- powershell - Powershell 脚本 - 仅以管理员身份运行某些命令,其余脚本以非管理员身份运行