資料介紹
描述
介紹
這些是有關如何設置 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 一樣)。
使用 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信号控制舵机原理10次下载
- 使用Python进行远程蓝牙灯控制1次下载
- 在MaaXBoard Mini上使用Edge Impulse进行安全帽检测0次下载
- 带PWM控制的伺服电机控制卡0次下载
- 使用Arduino和Python Tkinter进行RGB Led控制0次下载
- 使用Python控制物联网项目的伺服电机4次下载
- 直流控制系统中PWM功放的频率和死区设置3次下载
- 基于DSP的永磁交流伺服控制系统开发19次下载
- 基于双DSP的双PWM变频器控制平台22次下载
- Python进行配置文件的教程免费下载6次下载
- PWM控制技术的资料介绍66次下载
- python基础教程之如何使用python进行环境搭建33次下载
- 步进脉冲或PWM控制方式直流伺服驱动器3次下载
- 8098 单片机和伺服电机PWM 调速控制130次下载
- 基于专用PWM控制器的直流伺服位置系统35次下载
- 松下伺服电机电子齿轮比怎么设置2357次阅读
- 使用Python进行Ping测试929次阅读
- 使用Python进行自然语言处理711次阅读
- 如何使用PWM控制电机速度5045次阅读
- 三菱PLC的伺服定位控制详解3475次阅读
- 伺服驱动器要做哪些设置2986次阅读
- 伺服驱动器和伺服控制器的区别3471次阅读
- 伺服电机驱动器设置参数教程10361次阅读
- PWM控制和强制PWM控制的特点4979次阅读
- 总线伺服电机的回零控制方法4344次阅读
- 如何使用Python和PinPong库控制Arduino1405次阅读
- 伺服驱动器的参数设置方法和故障排查技巧9896次阅读
- 伺服的控制方式及注意事项8050次阅读
- 伺服系统是如何进行工作的_常见的伺服系统有哪些3152次阅读
- 伺服电机如何进行快速的测试?10584次阅读
下載排行
本周
- 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次下載 | 免費
評論