首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Adafruit的"adafruit_servokit“库返回伺服角设置误差

Adafruit的"adafruit_servokit“库返回伺服角设置误差
EN

Stack Overflow用户
提问于 2021-10-19 14:22:26
回答 1查看 165关注 0票数 1

我想用给定的角度来控制伺服系统。

我使用的是一个RaspberryPi 4型号B,这是运行拉斯宾。伺服系统连接到Adafruit PCA9685 16通道伺服驱动程序.伺服驱动器通过RaspberryPi与i2c连接。

Python版本3.7。

我使用了以下教程:https://learn.adafruit.com/16-channel-pwm-servo-driver/python-circuitpython

我能够正确地控制一个LED (就像在上述教程)与设置。

LED连接到通道8上的伺服驱动器,而伺服连接在通道2。

这是我的代码(控制LED也包括在内):

代码语言:javascript
复制
import board
import busio
import adafruit_pca9685
from adafruit_servokit import ServoKit

i2c = busio.I2C(board.SCL, board.SDA)
pca = adafruit_pca9685.PCA9685(i2c)
pca.frequency = 60
pca.channels[8].duty_cycle = 0x7FFF

kit = ServoKit(channels=16)
kit.servo[2].angle = 180

下面是我得到的错误代码:

代码语言:javascript
复制
Traceback (most recent call last):
  File "/home/pi/rover/Main.py", line 12, in <module>
    kit.servo[2].angle = 180
  File "/home/pi/.local/lib/python3.7/site-packages/adafruit_servokit.py", line 147, in __getitem__
    servo = adafruit_motor.servo.Servo(self.kit._pca.channels[servo_channel])
  File "/usr/local/lib/python3.7/dist-packages/adafruit_motor/servo.py", line 89, in __init__
    super().__init__(pwm_out, min_pulse=min_pulse, max_pulse=max_pulse)
  File "/usr/local/lib/python3.7/dist-packages/adafruit_motor/servo.py", line 29, in __init__
    self.set_pulse_width_range(min_pulse, max_pulse)
  File "/usr/local/lib/python3.7/dist-packages/adafruit_motor/servo.py", line 33, in set_pulse_width_range
    self._min_duty = int((min_pulse * self._pwm_out.frequency) / 1000000 * 0xFFFF)
  File "/home/pi/.local/lib/python3.7/site-packages/adafruit_pca9685.py", line 56, in frequency
    return self._pca.frequency
  File "/home/pi/.local/lib/python3.7/site-packages/adafruit_pca9685.py", line 134, in frequency
    return self.reference_clock_speed / 4096 / self.prescale_reg
ZeroDivisionError: float division by zero
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-25 17:00:40

我自己解决了这个问题。以下是我所做的:

我对电路python和普通python之间的区别感到困惑。据我所知,电路language是一个完整的编程语言和它的环境。如果这甚至可以安装在RaspberryPi上,我不确定。我查看了电路website的官方网站,它似乎不受支持,请检查下载页面。如果您安装了电路Github,您可以参考这个Github页面:PCA9685

无论如何,我要找的是Adafruit的“常规”python库。这可以从这里提取:PCA9685查看readme.md以获得安装说明。有了这个,我就成功了。控制伺服系统现在相当容易。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69632629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档