大家好,我最近想做一个很酷的机器人,为此,我需要使用PCA9685驱动程序控制 8 个舵机,并认为我与任何对此主题感兴趣的人分享了我的经验。

为此,您需要:

1.树莓派(我的是3B+)

2.PCA9685驱动

3.伺服(驱动器最多支持16个)

  1. 4 母对母跳线。

5.驱动器外接5v电源

6.Python3

连接

connection.png5v-6v 推荐电源,可以连接任意数量的舵机

用python3编码

打开 Raspberry Pi 并打开一个新终端,然后运行以下命令:

sudo apt-get install git build-essential python-dev
git clone https://github.com/adafruit/Adafruit_Python_PCA9685.git
cd Adafruit_Python_PCA9685
sudo python setup.py install
cd examples

在示例文件夹中,您应该找到simplest.py示例代码,使用命令运行它

python3 simplest.py

但是,如果我们执行这个程序,我们会得到一个错误

没有这样的文件或目录:'/dev/i2c-1'

要解决这个问题,我们需要打开树莓派软件配置

sudo raspi-config

2021-10-06-194915_1024x768_scrot.png

使用向下箭头选择接口选项并按 Enter,然后选择 P5 I2C 并启用接口 u003du003d> ok u003du003d> 完成。

现在,如果我们执行simplest.py文件,我们不应该得到任何错误,我们的伺服应该开始移动,很好!但是对于我需要的代码来说,它是不必要的复杂。我想调用一个将目标度数作为参数传递的函数,这样代码会更容易阅读并且错误更少,为此我将使用 Adafruit Servo Kit library for python

github.com/adafruit/Adafruit_CircuitPython_..

要使用此库,请在您的 Raspberry Pi 上打开一个新终端并执行以下命令:pip3 install adafruit-circuitpython-servokit

使用示例

在这里我们可以看到一个完整的例子:

from time import sleep
from adafruit_servokit import ServoKit

# Set channels to the number of servo channels on your kit.
# 8 for FeatherWing, 16 for Shield/HAT/Bonnet.
kit = ServoKit(channels=8)

kit.servo[0].angle = 175
sleep(1)
kit.servo[0].angle = 45
sleep(1)

我们可以在kit.servo[0-15].中指定舵机

结果

resultServos.jpg

我真的希望这篇文章对您有所帮助,并随时与可能需要它的人分享,下次见!

Logo

学AI,认准AI Studio!GPU算力,限时免费领,邀请好友解锁更多惊喜福利 >>>

更多推荐