“Servo Driver Board”的版本间的差异
Yousimaier17(讨论 | 贡献) (创建空白页面) |
Yousimaier17(讨论 | 贡献) |
||
第1行: | 第1行: | ||
+ | <div class="tabber"> | ||
+ | {{Product | ||
+ | |name = Servo Driver HAT | ||
+ | |images = [[File:Servo-Driver-HAT-intro.jpg|360px |alt=Servo Driver HAT]] | ||
+ | |categories= | ||
+ | {{Category|树莓派}} | ||
+ | {{Category|电机}} | ||
+ | |brand=Waveshare | ||
+ | |features= | ||
+ | * 舵机控制/PWM输出 | ||
+ | |interfaces= | ||
+ | {{Category|RPi接口}} | ||
+ | {{Category|I2C接口}} | ||
+ | }} | ||
+ | <div class="tabbertab" title="说明"> | ||
+ | ==前言== | ||
+ | 本产品是基于树莓派而设计的PWM/舵机扩展板,通过PCA9685芯片扩展16路舵机控制或者PWM输出,每个通道12位分辨率。通过I2C接口控制,无需占用额外的引脚。板载5V稳压芯片,可接电池供电,最大输出3A电流。适用于控制机械手臂,以及各种舵机机器人。<br /> | ||
+ | |||
+ | ==产品特性== | ||
+ | *输入电压VIN:6V~12V | ||
+ | *舵机电压:5V | ||
+ | *逻辑电压:3.3V | ||
+ | *驱动芯片:PCA9685 | ||
+ | *控制接口:I2C | ||
+ | *产 品 尺 寸:65mm x 30mm | ||
+ | *固定孔通径:3.0mm | ||
+ | |||
+ | ==硬件说明== | ||
+ | [[file:servo_driver_hat.png|700px]]<br /> | ||
+ | 板子可以从树莓派上取电不需要额外供电。<br /> | ||
+ | 也可以通过右边绿色端子VIN接电池供电,输入电压范围6V~12V。经过板载的5V稳压芯片输出5V电源给舵机和树莓派供电,最大输出电流3A。<br /> | ||
+ | A0~A4可以设置PCA9685芯片的I2C设备地址,可以同时接多个Servo Driver HAT<br /> | ||
+ | 最上面的排针是舵机接口,黑色排针是GND(大部分舵机对应的是褐色线), 红色排针是5V电源,黄色排针是PWM信号线,有0~15个通道,可以同时接16个舵机。注意舵机线不要接反,否则舵机不会转动。<br /> | ||
+ | <font color="#FF0000"> | ||
+ | 注意:<br /> | ||
+ | 树莓派请使用独立供电,不要从模块上反向给树莓派供电,这样的供电是不安全的。<br /> | ||
+ | 如果接大功率的舵机可能会出现供电不足,因为整个板子是5V的供电,这个5V连接着树莓派和舵机供电,功率太大会拉低树莓派5V电源,导致欠压树莓派重启,可以按照FAQ的指示,把板载上的0R电阻去除,右侧绿色VIN端子接外部电源(6-12V)<br /> | ||
+ | </font> | ||
+ | |||
+ | =树莓派使用= | ||
+ | 提供python控制,功能包括简单的PCA9685库测试程序,wifi遥控程序以及蓝牙遥控程序。<br /> | ||
+ | {{RPI_open_i2c}} | ||
+ | |||
+ | ==安装库== | ||
+ | <pre> | ||
+ | sudo apt-get updata | ||
+ | sudo apt-get install python-pip | ||
+ | sudo pip install RPi.GPIO | ||
+ | sudo apt-get install python-smbus | ||
+ | </pre> | ||
+ | |||
+ | ==下载示例程序,并解压到指定目录== | ||
+ | <pre> | ||
+ | sudo apt-get install p7zip-full | ||
+ | wget http://wiki.diustou.com/w/upload/6/6c/Servo_Driver_HAT.7z | ||
+ | 7zr x Servo_Driver_HAT.7z -r -o./Servo_Driver_HAT | ||
+ | sudo chmod 777 -R Servo_Driver_HAT | ||
+ | cd Servo_Driver_HAT/Raspberry\ Pi/ | ||
+ | </pre> | ||
+ | |||
+ | ==运行测试例程== | ||
+ | ==python例程== | ||
+ | <pre> | ||
+ | #如果你是python2,树莓派默认是python2.7 | ||
+ | cd python/ | ||
+ | sudo python PCA9685.py | ||
+ | #如果你是python3 | ||
+ | cd python3/ | ||
+ | sudo python3 PCA9685.py | ||
+ | </pre> | ||
+ | 实验现象:将舵机接到0号通道,0号通道的舵机从0度转到180度,然后又从180度转动到0度,不断重复循环。<br /> | ||
+ | |||
+ | ===wifi遥控程序=== | ||
+ | <pre> | ||
+ | cd Wifi-Control/ | ||
+ | sudo python main.py | ||
+ | </pre> | ||
+ | 操作与现象:发送端(手机或者电脑)和接收端(树莓派),需要连接到同一个局域网。程序是通过TCP协议传输数据,程序运行后会显示树莓派IP,服务器端口号是8000.<br /> | ||
+ | 手机打开APP,选择Wifi遥控,输入对应的IP地址和端口号,点击连接.<br /> | ||
+ | [[file:servo_driver_hat_wifi.png|900px]]<br /> | ||
+ | 连接成功进入控制界面,点击按键可以控制0~4号通道的舵机正反转。<br /> | ||
+ | [[file:servo_driver_hat_wifi1.png|900px]]<br /> | ||
+ | 也可在电脑上运行Qt软件控制,如下图<br /> | ||
+ | [[file:servo_driver_hat_wifi2.png|900px]]<br /> | ||
+ | |||
+ | ===蓝牙遥控程序=== | ||
+ | 执行:<br /> | ||
+ | <pre> | ||
+ | sudo apt-get update | ||
+ | sudo apt-get upgrade -y | ||
+ | sudo apt-get dist-upgrade -y | ||
+ | sudo apt-get install pi-bluetooth bluez bluez-firmware blueman | ||
+ | sudo usermod -G bluetooth -a pi | ||
+ | sudo vi /etc/systemd/system/dbus-org.bluez.service | ||
+ | sudo reboot | ||
+ | </pre> | ||
+ | 启动/增加SPP,开启蓝牙设备<br /> | ||
+ | <pre> | ||
+ | sudo vi /etc/systemd/system/dbus-org.bluez.service | ||
+ | </pre> | ||
+ | [[file:servo_driver_hat_bt.png|900px]]<br /> | ||
+ | 重启树莓派后,输入hciconfig命令(类似ifconfig命令)查看蓝牙服务<br /> | ||
+ | [[file:servo_driver_hat_bt2.png|900px]]<br /> | ||
+ | 如果有看到hci0设备则蓝牙已经开启工作。如果没有则没有识别到蓝牙设备<br /> | ||
+ | 运行如下命令启动程序<br /> | ||
+ | <pre> | ||
+ | cd Servo_Driver_HAT/python/Bluetooth-Control | ||
+ | sudo ./Bluetooth.sh | ||
+ | </pre> | ||
+ | 操作与现象:程序运行后会提示等待蓝牙连接,手机App选择蓝牙遥控,点击扫描,发现raspberrypi设备并连接。<br /> | ||
+ | [[file:servo_driver_hat_bt3.png|900px]]<br /> | ||
+ | 连接程序后进入控制界面,点击按键可以遥控0~4通道的舵机正反转了。<br /> | ||
+ | [[file:servo_driver_hat_bt4.png|900px]]<br /> | ||
+ | 注意:如果接收到的命令不对,可能需要在APP中config一下对应按键按下和松开时发送的命令。<br /> | ||
+ | [[file:servo_driver_hat_bt5.png|900px]]<br /> | ||
+ | 注意:树莓派默认是只有180s的发现时间,如果想一直可以发现和配对,如果通过修改下面的文件配置。<br /> | ||
+ | <pre> | ||
+ | sudo vi /etc/bluetooth/main.conf | ||
+ | </pre> | ||
+ | 找到下面两个语句并去掉注释。<br /> | ||
+ | [[file:servo_driver_hat_bt6.png|900px]]<br /> | ||
+ | 程序兼容python3 ,运行的时候将python替换成python3即可。<br /> | ||
+ | 更多关于树莓派wifi和蓝牙遥控可以参考AlphaBot2:<br /> | ||
+ | [[AlphaBot2]] | ||
+ | |||
+ | =Jetson nano= | ||
+ | 提供python控制<br /> | ||
+ | ==安装库== | ||
+ | {{JetsonNano python lib}} | ||
+ | |||
+ | ==下载示例程序,并解压到指定目录== | ||
+ | <pre> | ||
+ | sudo apt-get install p7zip | ||
+ | wget http://wiki.diustou.com/w/upload/6/6c/Servo_Driver_HAT.7z | ||
+ | 7zr x Servo_Driver_HAT.7z -r -o./Servo_Driver_HAT | ||
+ | sudo chmod 777 -R Servo_Driver_HAT | ||
+ | cd Servo_Driver_HAT/Jetson\ Nano/ | ||
+ | </pre> | ||
+ | |||
+ | ==运行测试例程== | ||
+ | *python2 | ||
+ | <pre> | ||
+ | cd python2/ | ||
+ | sudo python test.py | ||
+ | </pre> | ||
+ | |||
+ | *python3 | ||
+ | <pre> | ||
+ | cd python3/ | ||
+ | sudo python3 test.py | ||
+ | </pre> | ||
+ | |||
+ | </div> | ||
+ | |||
+ | <div class="tabbertab" title="资料"> | ||
+ | ===文档=== | ||
+ | *[https://{{SERVERNAME}}/w/upload/a/a2/Servo_Driver_HAT_Schematic_.pdf 原理图] | ||
+ | |||
+ | ===程序=== | ||
+ | *[https://{{SERVERNAME}}/w/upload/6/6c/Servo_Driver_HAT.7z 示例程序] | ||
+ | |||
+ | ===软件=== | ||
+ | *[https://{{SERVERNAME}}/w/upload/a/a9/AlphaBot_Qt.7z Windows Qt 客户端] | ||
+ | *[https://{{SERVERNAME}}/w/upload/8/8f/AlphaBot_LITE.apk 安卓App控制客户端] | ||
+ | *[https://{{SERVERNAME}}/w/upload/3/39/AlphaBot_LITE_Code.7z 安卓App控制客户端源码] | ||
+ | |||
+ | ===数据手册=== | ||
+ | *[https://{{SERVERNAME}}/w/upload/6/68/PCA96_datasheet.pdf PCA9685] | ||
+ | *[https://{{SERVERNAME}}/w/upload/d/d3/MP1584.pdf MP1584] | ||
+ | *[https://{{SERVERNAME}}/w/upload/f/f6/RT9193.pdf RT9193] |
2023年7月12日 (三) 18:10的版本
| ||||||||||||||||||||||
| ||||||||||||||||||||||
|
目录
前言
本产品是基于树莓派而设计的PWM/舵机扩展板,通过PCA9685芯片扩展16路舵机控制或者PWM输出,每个通道12位分辨率。通过I2C接口控制,无需占用额外的引脚。板载5V稳压芯片,可接电池供电,最大输出3A电流。适用于控制机械手臂,以及各种舵机机器人。
产品特性
- 输入电压VIN:6V~12V
- 舵机电压:5V
- 逻辑电压:3.3V
- 驱动芯片:PCA9685
- 控制接口:I2C
- 产 品 尺 寸:65mm x 30mm
- 固定孔通径:3.0mm
硬件说明
板子可以从树莓派上取电不需要额外供电。
也可以通过右边绿色端子VIN接电池供电,输入电压范围6V~12V。经过板载的5V稳压芯片输出5V电源给舵机和树莓派供电,最大输出电流3A。
A0~A4可以设置PCA9685芯片的I2C设备地址,可以同时接多个Servo Driver HAT
最上面的排针是舵机接口,黑色排针是GND(大部分舵机对应的是褐色线), 红色排针是5V电源,黄色排针是PWM信号线,有0~15个通道,可以同时接16个舵机。注意舵机线不要接反,否则舵机不会转动。
注意:
树莓派请使用独立供电,不要从模块上反向给树莓派供电,这样的供电是不安全的。
如果接大功率的舵机可能会出现供电不足,因为整个板子是5V的供电,这个5V连接着树莓派和舵机供电,功率太大会拉低树莓派5V电源,导致欠压树莓派重启,可以按照FAQ的指示,把板载上的0R电阻去除,右侧绿色VIN端子接外部电源(6-12V)
树莓派使用
提供python控制,功能包括简单的PCA9685库测试程序,wifi遥控程序以及蓝牙遥控程序。
打开I2C接口
在终端执行:
sudo raspi-config 选择 Interfacing Options -> I2C ->yes 启动 i2C 内核驱动
sudo reboot
安装库
sudo apt-get updata sudo apt-get install python-pip sudo pip install RPi.GPIO sudo apt-get install python-smbus
下载示例程序,并解压到指定目录
sudo apt-get install p7zip-full wget http://wiki.diustou.com/w/upload/6/6c/Servo_Driver_HAT.7z 7zr x Servo_Driver_HAT.7z -r -o./Servo_Driver_HAT sudo chmod 777 -R Servo_Driver_HAT cd Servo_Driver_HAT/Raspberry\ Pi/
运行测试例程
python例程
#如果你是python2,树莓派默认是python2.7 cd python/ sudo python PCA9685.py #如果你是python3 cd python3/ sudo python3 PCA9685.py
实验现象:将舵机接到0号通道,0号通道的舵机从0度转到180度,然后又从180度转动到0度,不断重复循环。
wifi遥控程序
cd Wifi-Control/ sudo python main.py
操作与现象:发送端(手机或者电脑)和接收端(树莓派),需要连接到同一个局域网。程序是通过TCP协议传输数据,程序运行后会显示树莓派IP,服务器端口号是8000.
手机打开APP,选择Wifi遥控,输入对应的IP地址和端口号,点击连接.
连接成功进入控制界面,点击按键可以控制0~4号通道的舵机正反转。
也可在电脑上运行Qt软件控制,如下图
蓝牙遥控程序
执行:
sudo apt-get update sudo apt-get upgrade -y sudo apt-get dist-upgrade -y sudo apt-get install pi-bluetooth bluez bluez-firmware blueman sudo usermod -G bluetooth -a pi sudo vi /etc/systemd/system/dbus-org.bluez.service sudo reboot
启动/增加SPP,开启蓝牙设备
sudo vi /etc/systemd/system/dbus-org.bluez.service
重启树莓派后,输入hciconfig命令(类似ifconfig命令)查看蓝牙服务
如果有看到hci0设备则蓝牙已经开启工作。如果没有则没有识别到蓝牙设备
运行如下命令启动程序
cd Servo_Driver_HAT/python/Bluetooth-Control sudo ./Bluetooth.sh
操作与现象:程序运行后会提示等待蓝牙连接,手机App选择蓝牙遥控,点击扫描,发现raspberrypi设备并连接。
连接程序后进入控制界面,点击按键可以遥控0~4通道的舵机正反转了。
注意:如果接收到的命令不对,可能需要在APP中config一下对应按键按下和松开时发送的命令。
注意:树莓派默认是只有180s的发现时间,如果想一直可以发现和配对,如果通过修改下面的文件配置。
sudo vi /etc/bluetooth/main.conf
找到下面两个语句并去掉注释。
程序兼容python3 ,运行的时候将python替换成python3即可。
更多关于树莓派wifi和蓝牙遥控可以参考AlphaBot2:
AlphaBot2
Jetson nano
提供python控制
安装库
安装函数库
- 打开终端界面,输入以下指令安装相应的函数库
sudo apt-get update sudo apt-get install python3-pip sudo pip3 install Jetson.GPIO sudo groupadd -f -r gpio sudo usermod -a -G gpio your_user_name sudo cp /opt/nvidia/jetson-gpio/etc/99-gpio.rules /etc/udev/rules.d/ sudo udevadm control --reload-rules && sudo udevadm trigger
【注意】your_user_name 是你使用的用户名
- 安装I2C
sudo apt-get install python-smbus
- 安装图像处理库:
sudo apt-get install python3-pil sudo apt-get install python3-numpy
下载示例程序,并解压到指定目录
sudo apt-get install p7zip wget http://wiki.diustou.com/w/upload/6/6c/Servo_Driver_HAT.7z 7zr x Servo_Driver_HAT.7z -r -o./Servo_Driver_HAT sudo chmod 777 -R Servo_Driver_HAT cd Servo_Driver_HAT/Jetson\ Nano/
运行测试例程
- python2
cd python2/ sudo python test.py
- python3
cd python3/ sudo python3 test.py