You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于树莓派与Adafruit 16通道舵机板的燃油RC车:单按键触发Python代码

实现单按键控制燃油遥控车油门的方案

嘿,作为新手搞树莓派驱动的燃油遥控车,这个单按键控制的需求完全没问题!咱们可以通过监听键盘按键的按下/释放事件来实现,下面是具体的步骤和代码:

1. 先安装必要的库

因为要监听键盘输入,咱们需要用到keyboard库,打开终端执行:

sudo pip install keyboard

注意:keyboard库需要root权限才能正常工作,所以后面运行脚本的时候也要加sudo。

2. 完整代码实现

把下面的代码整合到你的现有脚本里,我已经加上了详细注释:

#!/usr/bin/python
from Adafruit_PWM_Servo_Driver import PWM
import time
import keyboard  # 导入键盘监听库

# 初始化PWM舵机板
pwm = PWM(0x40)  # 这里保持你原来的I2C地址
pwm.setPWMFreq(50)  # 舵机一般用50Hz的频率

# 定义舵机参数(根据你的实际舵机调整这些值!)
servoMin = 150    # 舵机最小脉冲值(对应最小角度)
servoMid = 300    # 舵机中间值(对应怠速/中立位置)
servoMax = 450    # 舵机最大脉冲值(对应最大油门)

# 按键按下时的回调函数:设置最大油门
def on_w_press(event):
    print("按住w键,车辆前进")
    pwm.setPWM(0, 0, servoMax)

# 按键释放时的回调函数:回到怠速位置
def on_w_release(event):
    print("松开w键,车辆回到怠速")
    pwm.setPWM(0, 0, servoMid)

# 绑定按键事件
keyboard.on_press_key("w", on_w_press)
keyboard.on_release_key("w", on_w_release)

# 保持脚本运行,监听按键
print("准备就绪,按住w键前进,松开回到怠速。按Ctrl+C退出")
try:
    while True:
        time.sleep(0.1)
except KeyboardInterrupt:
    # 退出时重置舵机到中立位置
    pwm.setPWM(0, 0, servoMid)
    print("\n程序已退出,舵机已重置")

3. 关键注意事项

  • 校准舵机参数:servoMin、servoMid、servoMax这三个值一定要根据你的油门舵机实际行程调整,先单独测试舵机的移动范围,避免油门过大损坏发动机。
  • 运行权限:必须用sudo python your_script.py来运行脚本,否则键盘监听会失效。
  • 安全问题:测试的时候确保车辆在空旷区域,避免意外。

内容的提问来源于stack exchange,提问作者Lord.V

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:38:35