匿名
未登录
登录
丢石头百科
搜索
查看“Servo Driver HAT”的源代码
来自丢石头百科
名字空间
页面
讨论
更多
更多
页面选项
查看
查看源代码
历史
←
Servo Driver HAT
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
<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="资料"> ===文档=== *[http://{{SERVERNAME}}/w/upload/a/a2/Servo_Driver_HAT_Schematic_.pdf 原理图] ===程序=== *[http://{{SERVERNAME}}/w/upload/6/6c/Servo_Driver_HAT.7z 示例程序] ===软件=== *[http://{{SERVERNAME}}/w/upload/a/a9/AlphaBot_Qt.7z Windows Qt 客户端] *[http://{{SERVERNAME}}/w/upload/8/8f/AlphaBot_LITE.apk 安卓App控制客户端] *[http://{{SERVERNAME}}/w/upload/3/39/AlphaBot_LITE_Code.7z 安卓App控制客户端源码] ===数据手册=== *[http://{{SERVERNAME}}/w/upload/6/68/PCA96_datasheet.pdf PCA9685] *[http://{{SERVERNAME}}/w/upload/d/d3/MP1584.pdf MP1584] *[http://{{SERVERNAME}}/w/upload/f/f6/RT9193.pdf RT9193] 转到:[[#软件]],[[#程序]],[[#文档]] </div> == FAQ == <div class="tabbertab" title="FAQ"><br /> {{FAQ| 能否精密控制转动角度?| *无法做到精密控制,这个只是入门级的。 |||}} {{FAQ| 为什么抖动?| *轻微的抖动是正常的,由于舵机转动的实际角度小于舵机转动的最小物理角度,此时会有电流维持他的角度,就会引起抖动。 |||}} {{FAQ| 控制大功率舵机为什么树莓派重启?| *由于默认是使用树莓派的5V给模块供电,如果控制的舵机功率太大(栗子:MG996R、DS3120MG),会拉低树莓派的5V,可以将板上的这个0R电阻移除。然后VIN端子供6-12v的电压 [[file:servo_driver_hat_faq1.png|900px]] |||}} {{FAQ| 能否用来控制步进电机?| *不可以,这个输出的是PWM,无法控制步进电机。 |||}} {{FAQ| 舵机吱吱吱响,并伴随发热?| *SG90是入门级别舵机,主要是里面的电位器不准的原因,使用一段时间就发生了松动,于是就导致了齿轮与理论上转的角度不一致,导致响声并发热。 |||}} {{FAQ| 为什么扫描I2C地址会出现两个I2C设备地址?| *使用的控制芯片对应的是PCA9685,在上电的时候,是有两个I2C地址的,一个是根据板载的电阻配置的地址,默认的是0X40,还有一个是0X70这个是ALLCALLADR寄存器配置出来的I2C地址,运行一遍例程即可清楚寄存器的值。 |||}} </div> <div class="tabbertab" title="售后"><br />{{Service08}}</div>
该页面使用的模板:
模板:Category
(
查看源代码
)
模板:FAQ
(
查看源代码
)
模板:JetsonNano python lib
(
查看源代码
)
模板:Product
(
查看源代码
)
模板:RPI open i2c
(
查看源代码
)
模板:Service00
(
查看源代码
)
模板:Service08
(
查看源代码
)
模板:Tag
(
查看源代码
)
模板:Tipbox
(
查看源代码
)
返回至
Servo Driver HAT
。
导航
导航
首页
最近更改
随机页面
MediaWiki帮助
首页
首页
树莓派
主机
配件包
外壳
键鼠
电源
扩展板
显示屏
墨水屏
摄像模块
通信模块
继电器
电机驱动板
游戏机
产品分类
树莓派
Arduino
micro:bit
STM32
Espressif
WiFi模块
蓝牙模块
无线模块
LoRa模块
4G模块
GSM
GPRS
以太网
导航模块
北斗卫星
GPS
LCD
墨水屏
OLED
摄像头
USB模块
串口模块
RS232
RS485
CAN
传感器
温度模块
湿度模块
气压模块
继电器
电机模块
指纹模块
电平转换
音频模块
编程器
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志