我正在开发我的第一个 Raspberry Pi 项目,同时学习创建巡线机器人的课程。 这就是课程。我按照所有说明操作并按照描述连接了引脚,但是当我在 Raspberry Pi 操作系统上运行代码时,它会抛出错误:
gpiozero.exc.PinPWMUnsupported:引脚 GPIO7 不支持 PWM 这是代码:
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()
我尝试寻找解决方案并检查了官方文档,但没有帮助。我该如何解决这个问题?
出现此错误的可能原因是用户将gpiozero安装到虚拟环境中而没有安装pin库。 gpiozero的内置引脚接口不支持PWM。您需要安装 RPi.GPIO 才能获得正常体验:
pip install gpiozero rpi-gpio
当尝试在 pipelinev 中运行 gpiozero 的 CamJamKitRobot 和 Robot 类时,我遇到了同样的问题(虚拟环境可能会出现同样的问题,但我没有尝试过)。在 pipelinev 之外运行脚本(因此只需使用系统安装的 pip 软件包)为我解决了这个问题。
经过多次检查,GPIO引脚和软件都没有问题。电机连接到 L289N 驱动电机模块,该模块“没有从电池获得足够的电力”,这就是错误的原因。如果有人有相同或相似的硬件连接并遇到此问题,检查 L289N 模块是否已开机(它应该打开模块上的红色 LED)。
上的指南使用微伺服 WS-SG90 和 Raspberry Pi 3B+ 并使用了 gpiozero
Python 库并遇到了相同的异常。就我而言,这是由于以非 root 用户身份运行程序引起的。用
sudo
运行程序使舵机转动。另一种选择是将 PiGPIOFactory
与 pigpiod
一起使用,不需要以提升的权限运行程序。