“Servo Driver Board”的版本间的差异

来自丢石头百科
第27行: 第27行:
 
*[[File:Servo Driver Board_模块说明.png|600px]]
 
*[[File:Servo Driver Board_模块说明.png|600px]]
 
*控制引脚:
 
*控制引脚:
**GND:
+
**GND:电源负极
**OE:
+
**OE:使能端,一般不接
**SCL
+
**SCL:IIC时钟线
**SDA
+
**SDA:IIC数据线
**VCC
+
**VCC:电源正极,电路板工作电压(主要是给驱动芯片供电),
**V+
+
**V+:舵机工作电压。当接入舵机数量较少时,可从此处供电。
*电源指示灯:
+
*舵机供电端:舵机工作电压,当接入舵机数量较多时,必须从此处供电。
*舵机供电端:
+
*主控芯片:PCA9685,具备IIC通信,同时内置了PWM驱动器和一个时钟,最大支持16路舵机控制。
*PCA9685:
+
*IIC地址选择:级联时可通过A5-A0更改模块IIC地址,初始I2C地址是0x40。
*IIC地址选择:
+
*级联控制端;当多个驱动板级联时可通过该引脚扩展。
*级联控制端;
+
*舵机控制端/PWM输出端:16路舵机控制端,黄色为PWM控制线,红色为舵机电源线,黑色为地线。舵机编号从左开始,最左侧为一号舵机,以此类推共十六个舵机。
*舵机控制端/PWM输出端:
 
 
 
板子可以从树莓派上取电不需要额外供电。<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>
 
  
 
=树莓派使用=
 
=树莓派使用=

2023年7月14日 (五) 15:26的版本

Servo Driver Board
Servo Driver Board 示意图.png
基本信息

分类: 舵机

品牌: 丢石头

功能简介
特性
  • 舵机控制/PWM输出

接口

I2C接口

相关产品

{{{related}}}

前言

本产品是通过PCA9685芯片扩展16路舵机控制或者PWM输出,每个通道12位分辨率。通过I2C接口控制,无需占用额外的引脚。不仅如此,还可以通过级联的方式最多级联62个驱动板,总共可以驱动992个舵机。适用于控制机械手臂,以及各种舵机机器人。

产品特性

  • 输入电压VCC:2.3V-5.5V,最大耐压值5.5V
  • 逻辑电压:3.3V
  • 舵机电压:≤6V,一般为5V
  • 驱动芯片:PCA9685(内置25MHz晶振,可不连接外部晶振,也可以连接外部晶振,最大50MHz)
  • 控制接口:I2C(支持高达16路PWM输出,每路12位分辨率(4096级))
  • 固定孔通径:3.0mm

硬件说明

  • Servo Driver Board 模块说明.png
  • 控制引脚:
    • GND:电源负极
    • OE:使能端,一般不接
    • SCL:IIC时钟线
    • SDA:IIC数据线
    • VCC:电源正极,电路板工作电压(主要是给驱动芯片供电),
    • V+:舵机工作电压。当接入舵机数量较少时,可从此处供电。
  • 舵机供电端:舵机工作电压,当接入舵机数量较多时,必须从此处供电。
  • 主控芯片:PCA9685,具备IIC通信,同时内置了PWM驱动器和一个时钟,最大支持16路舵机控制。
  • IIC地址选择:级联时可通过A5-A0更改模块IIC地址,初始I2C地址是0x40。
  • 级联控制端;当多个驱动板级联时可通过该引脚扩展。
  • 舵机控制端/PWM输出端:16路舵机控制端,黄色为PWM控制线,红色为舵机电源线,黑色为地线。舵机编号从左开始,最左侧为一号舵机,以此类推共十六个舵机。

树莓派使用

提供python控制,功能包括简单的PCA9685库测试程序,wifi遥控程序以及蓝牙遥控程序。

打开I2C接口

在终端执行:

sudo raspi-config 
选择 Interfacing Options -> I2C ->yes 启动 i2C 内核驱动

RPI open i2c.png
然后重启树莓派:

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地址和端口号,点击连接.
Servo driver hat wifi.png
连接成功进入控制界面,点击按键可以控制0~4号通道的舵机正反转。
Servo driver hat wifi1.png
也可在电脑上运行Qt软件控制,如下图
Servo driver hat wifi2.png

蓝牙遥控程序

执行:

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

Servo driver hat bt.png
重启树莓派后,输入hciconfig命令(类似ifconfig命令)查看蓝牙服务
Servo driver hat bt2.png
如果有看到hci0设备则蓝牙已经开启工作。如果没有则没有识别到蓝牙设备
运行如下命令启动程序

cd Servo_Driver_HAT/python/Bluetooth-Control
sudo ./Bluetooth.sh

操作与现象:程序运行后会提示等待蓝牙连接,手机App选择蓝牙遥控,点击扫描,发现raspberrypi设备并连接。
Servo driver hat bt3.png
连接程序后进入控制界面,点击按键可以遥控0~4通道的舵机正反转了。
Servo driver hat bt4.png
注意:如果接收到的命令不对,可能需要在APP中config一下对应按键按下和松开时发送的命令。
Servo driver hat bt5.png
注意:树莓派默认是只有180s的发现时间,如果想一直可以发现和配对,如果通过修改下面的文件配置。

sudo vi /etc/bluetooth/main.conf

找到下面两个语句并去掉注释。
Servo driver hat bt6.png
程序兼容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