资料介绍
描述
介绍
这些是有关如何设置 MaaXBoard 以使用精确的 PWM 外部附加卡驱动多个伺服系统的分步说明。
目标是能够使用 Python 控制这些电机。我们将重用最初由Adafruit的 Tony DiCola 为 RaspberryPi 编写的代码(感谢 Tony)。只需进行少量修改,即可在 MaaXBoard 上运行一切。
先决条件:
首先在这里完成 MaaXBoard 无头设置。
组件列表
除了电路板本身,我们还需要一些外部部件:
PCA9685伺服驱动器
外部控制将使用 PCA9685 芯片,该芯片允许利用单个 I2C 总线控制多达 16 个独立通道(即 16 个伺服)。有多个为 Raspberry Pi 制造的带有 PCA9685 的防护罩。我们可以使用Adafruit 的盾牌,或者作为替代方案WaveShare 的盾牌。
GPIO 适配器(可选)
由于 MaaxBoard 上的散热器非常高,如果您使用 WaveShare 的屏蔽罩,您可能还需要一个适配器来安装它。我们可以为树莓派使用GPIO 立管或直角 GPIO 适配器。这将允许“垂直”安装任何外部屏蔽,如果您在 MaaxBoard 散热器上安装了风扇,这将更加方便。
伺服电机
在为您的项目选择伺服电机的类型时,您需要注意您使用的电机类型。标准标签很少(SG90、MG90S、MG995、MG996R 等),但 PCA9685 兼容大多数变体。
集会
一旦你有了所有的零件,你需要安装伺服驱动器并将伺服器连接到它上面。
注意:Adafruit 的防护罩与 Waveshare 的防护罩不同。Waveshare 版本使用板载 5V/3A 稳压器为舵机供电(最终使用电池作为备用电源),而 Adafruit 版本让您可以灵活地使用外部电源为舵机提供 5V 电压。如果您计划使用多个伺服系统(最多 16 个),Adafruit 版本可能是更好的选择,因为您不会直接从树莓电源 (5V) 为伺服系统供电。
软件安装
I2c工具
连接屏蔽后,我们需要确保硬件已被识别。为此,我们需要安装i2ctools 包。通过 SSH 连接到您的开发板并安装软件包
sudo apt install i2c-tools
为了允许我们的用户在不使用 sudo 的情况下访问 i2c-dev hw,我们需要添加一个自定义规则。我们首先创建一个自定义规则文件
sudo touch /etc/udev/rules.d/50-i2c.rules
然后使用 nano 编辑器编辑文件:
sudo nano /etc/udev/rules.d/50-i2c.rules
并确保内容如下
SUBSYSTEM=="i2c-dev", GROUP="i2c", MODE="0660"
现在我们将用户添加到“i2c”组并设置权限:
sudo adduser ebv i2c
sudo chmod g+rw /dev/i2c-*
sudo reboot
重新启动板后,通过 ssh 连接到它并检查是否检测到屏蔽。跑:
sudo i2cdetect -y 1
i2cdetect 的输出(对于 /dev/i2c-dev-1)应如下所示:
Python 库
要将设备与 Python 一起使用,我们需要安装一些库。
sudo apt install git build-essential python-dev
Adafruit 库
要使用 Python 控制 GPIO 和 PWM,我们需要直接从 GitHub 下载 Adafruit 的三个库。创建一个工作文件夹并将库拉入其中。
cd ~/
mkdir example
cd example
git clone https://github.com/adafruit/Adafruit_Python_PureIO.git
git clone https://github.com/adafruit/Adafruit_Python_GPIO.git
git clone https://github.com/adafruit/Adafruit_Python_PCA9685.git
安装树,以便您可以检查目录:
sudo apt install tree
现在打印目录树:
tree -d
示例目录的树应如下所示:
需要修改 Adafruit 库才能在 MaaxBoard 上运行。幸运的是,这只是一个小改动。像这样创建“测试”文件夹:
cd ~/
cd example
mkdir test
cd test
创建我们将用于我们的简单测试 Python 应用程序的实际 Python 库的符号链接:
ln -s ../Adafruit_Python_GPIO/Adafruit_GPIO/ .
ln -s ../Adafruit_Python_PureIO/Adafruit_PureIO/ .
ln -s ../Adafruit_Python_PCA9685/Adafruit_PCA9685/ .
注意:我们也可以编译和安装这些库(系统范围安装),但是这样做允许我们直接修改代码并逐个使用它。
现在我们需要修改 GPIO 库的两个文件,以确保 MaaXBoard 被识别为 linux 系统(就像它是 RaspberryPi 一样)。
要修改的两个文件是I2C.py和Platform.Py 。
使用 nano 打开 I2C.py:
cd Adafruit_GPIO
nano I2C.py
我们需要通过添加粗体的 elif 语句在 get_default_bus() (大约第 40 行)函数中添加一行:
elif plat == Platform.BEAGLEBONE_BLACK:
# Beaglebone Black has multiple I2C buses, default to 1 (P9_19 and P9_20).
return 1
elif plat == Platform.MAAXBOARD:
return 1
对于 Platform.py,我们需要再添加一个定义来选择 MAAXBOARD。还是在 test/Adafruit_GPIO 目录下,在 nano 中打开 Platform.py:
nano Platform.py
在下面添加粗体行(第 24 行附近):
# Platform identification constants.
UNKNOWN = 0
RASPBERRY_PI = 1
BEAGLEBONE_BLACK = 2
MINNOWBOARD = 3
JETSON_NANO = 4
MAAXBOARD = 5
在 def platform_detect() 函数中,添加粗线:
...
# Handle Beaglebone Black
# TODO: Check the Beaglebone Black /proc/cpuinfo value instead of reading
# the platform.
plat = platform.platform()
print(plat)
if plat.lower().find('armv7l-with-debian') > -1:
return BEAGLEBONE_BLACK
...
elif plat.lower().find('tegra-aarch64-with-ubuntu') > -1:
return JETSON_NANO
elif plat.lower().find('aarch64-with-debian') > -1:
return MAAXBOARD
...
最终 Platform.py 应如下所示:
Python 应用程序
现在我们准备使用 Adafruit 提供的示例之一。由于 Python 代码的可移植性,这里不需要修改。我们将simpletest.py文件复制到我们的测试目录中:
cd example
cp Adafruit_Python_PCA9685/examples/simpletest.py test
执行测试文件。
cd example/test
python ./simpletest.py
如果一切正常,您的伺服电机将移动,直到您使用 CTRL-C 退出脚本。
注意:在本例中,我们控制的是 N.0 通道,因此请确保将您的伺服器连接到屏蔽位置零的编号接头。
结论
现在,您可以控制多个伺服电机,用于您的机械装配,例如云台变焦或电子动画或工业原型。当您计划在外部屏蔽上使用多个伺服时,请始终确保控制伺服类型和最大额定电流,最终添加一个专用于伺服屏蔽的特定电源。
- PWM信号控制舵机原理
- 使用Python进行远程蓝牙灯控制
- 在MaaXBoard Mini上使用Edge Impulse进行安全帽检测
- 带PWM控制的伺服电机控制卡
- 使用Arduino和Python Tkinter进行RGB Led控制
- 使用Python控制物联网项目的伺服电机
- 直流控制系统中PWM功放的频率和死区设置 3次下载
- 基于DSP的永磁交流伺服控制系统开发
- 基于双DSP的双PWM变频器控制平台 22次下载
- Python进行配置文件的教程免费下载 6次下载
- PWM控制技术的资料介绍 66次下载
- python基础教程之如何使用python进行环境搭建 32次下载
- 步进脉冲或PWM控制方式直流伺服驱动器 3次下载
- 8098 单片机和伺服电机PWM 调速控制
- 基于专用PWM控制器的直流伺服位置系统
- 松下伺服电机电子齿轮比怎么设置 152次阅读
- 使用Python进行Ping测试 232次阅读
- 三菱PLC的伺服定位控制详解 805次阅读
- 伺服驱动器要做哪些设置 788次阅读
- 伺服驱动器和伺服控制器的区别 986次阅读
- 伺服电机驱动器设置参数教程 5505次阅读
- PWM控制和强制PWM控制的特点 3277次阅读
- 总线伺服电机的回零控制方法 2771次阅读
- 如何使用Python和PinPong库控制Arduino 718次阅读
- 伺服驱动器的参数设置方法和故障排查技巧 7690次阅读
- 伺服的控制方式及注意事项 7525次阅读
- 伺服系统是如何进行工作的_常见的伺服系统有哪些 2920次阅读
- 如何使用CAN总线进行纸箱包装机伺服运动控制系统设计的概述 5831次阅读
- 伺服电机如何进行快速的测试? 1w次阅读
- 伺服控制电路简单设计制作 3426次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多