gpiozero.exc.PinPWMUnsupported:引脚 GPIO7 不支持 PWM (Raspberry Pi 4B)

gpiozero.exc.PinPWMUnsupported: PWM is not supported on pin GPIO7 (Raspberry Pi 4B)

我正在学习我的第一个 Raspberry Pi 项目,同时正在学习创建巡线机器人的课程。 This 是课程。我遵循了所有说明并按照其描述连接了引脚,​​但是当我 运行 Raspberry Pi OS 上的代码时,它会抛出一个错误:

gpiozero.exc.PinPWMUnsupported: PWM is not supported on pin GPIO7 This is the code:

from gpiozero import Robot
from time import sleep

my_robot = Robot(left=(7,8), right=(9,10))

my_robot.forward()
sleep(1)
my_robot.stop()

我尝试搜索解决方案并检查了 official documentation,但没有帮助。我该如何解决这个问题?

经过多次检查,GPIO管脚和软件都没有问题。电机连接到 L289N 驱动电机模块, 没有从电池获得足够的电力 ,这就是错误的原因。如果有人有相同或相似的硬件连接并遇到此问题,检查 L289N 模块是否已通电(它应该打开模块上的红色 LED)

我在 pipenv 中尝试 运行 gpiozero 的 CamJamKitRobot 和 Robot 类 时遇到了同样的问题(虚拟环境可能会出现同样的问题,但我没有尝试过)。 运行 pipenv 之外的脚本(因此只使用系统安装的 pip 包)为我解决了这个问题。

我正在按照 https://www.raspberrypi-spy.co.uk/2018/02/basic-servo-use-with-the-raspberry-pi/ 上的指南使用 Micro Servo WS-SG90 和 Raspberry Pi 3B+ 并使用 gpiozero Python 库和 运行 进入同样的例外。在我的例子中,这是由 运行 以非 root 用户身份运行程序引起的。 运行 sudo 的程序使舵机转向。另一种选择是将 PiGPIOFactorypigpiod 一起使用,这不需要 运行 具有提升权限的程序。

这个错误的可能原因是用户在没有安装pin库的情况下将gpiozero安装到虚拟环境中。 gpiozero 的内置管脚接口不支持PWM。您需要安装RPi.GPIO才能获得正常体验:

pip install gpiozero rpi-gpio

文档中提到了这一点:https://gpiozero.readthedocs.io/en/stable/faq.html#why-do-i-get-pinfactoryfallback-warnings-when-i-import-gpiozero