匿名
未登录
登录
丢石头百科
搜索
查看“Pan-Tilt HAT”的源代码
来自丢石头百科
名字空间
页面
讨论
更多
更多
页面选项
查看
查看源代码
历史
←
Pan-Tilt HAT
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
<div class="tabber"> {{Product |images=[[File:Pan-Tilt-HAT-intro.jpg|360px |alt=Pan-Tilt HAT|link=https://{{SERVERNAME}}/shop/Pan-Tilt-HAT.htm]] |categories= {{Category|树莓派}} {{Category|电机}} {{Category|摄像头}} |brand=Waveshare |features=云台转动\环境光 |interfaces= {{Category|RPi接口}} {{Category|I2C接口}} }} <div class="tabbertab" title="说明"> '''提供树莓派和Jetson nano使用例程''' =产品概述= ==产品参数== *工作电压: 3.3V/5V *控制芯片 PCA9685 *逻辑电压: 3.3V *通信接口: I2C *产品尺寸: 56.6X65(mm) ==控制器== 本产品控制器为PCA9685,是一款基于IIC总线通信的12位精度16通道PWM波输出的芯片。并且板载TSL2581环境光传感器,通过检测光强辅助摄像头工作,同样通过 I2C 接口控制,不会占用太多接口引脚资源。<br /> ==通信协议== 从上的得知使用的是I2C通信,I2C 通信,一条数据线,一条时钟线。 I2C 总线在传送数据过程中共有三种类型信号:开始信号、结束信号和应答信号。<br /> [[file:pan-tilt_hat_i2c.png|900px]]<br /> 开始信号:SCL 为高电平时, SDA 由高电平向低电平跳变,开始传送数据。<br /> 结束信号:SCL 为高电平时, SDA 由低电平向高电平跳变,结束传送数据。<br /> 应答信号:接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出特定的低电平脉冲,表示已收到数据。<br /> *I2C写数据时序 [[file:pan-tilt_hat_i2cwrite.png|900px]]<br /> 首先主机(即树莓派,后面统称为主机)会发送一个开始信号,然后将其 I2C 的 7 位地址与写操作位组合成 8 位的数据发送给从机(即 TSL2581 传感器模块,后面统称为从机),从机接收到后会响应一个应答信号,主机此时将命令寄存器地址发送给从机,从机接收到发送响应信号,此时主机发送命令寄存的值,从机回应一个响应信号,直到主机发送一个停止信号,此次 I2C 写数据操作结束<br /> *I2C读数据时序 [[file:pan-tilt_hat_i2cread.png|900px]]<br /> 首先主机会发送一个开始信号,然后将其 I2C 的 7 位地址与写操作位组合成 8 位的数据发送给从机,从机接收到后会响应一个应答信号,主机此时将命令寄存器地址发送给从机,从机接收到发送响应信号,此时主机重新发送一个开始信号,并且将其 7 位地址和读操作位组合成 8 位的数据发送给从机,从机接收到信号后发送响应信号,再将其寄存器中的值发送给主机,主机端给予响应信号,直到主机端发送停止信号,此次通信结束<br /> ==I2C地址== 从上面的通信可知,PCA9685和TSL2581两个都是使用I2C通信,那么需要设置不同的I2C地址,地址不一样,就不会影响通信<br /> *PCA9685 [[file:pan-tilt_hat_i2caddr.png|900px]]<br /> [https://{{SERVERNAME}}/w/upload/e/ea/PCA9685.pdf 详细见PCA9685数据手册第7页]<br /> *TSL2581 [[file:pan-tilt_hat_i2caddr2.png|900px]]<br /> [https://{{SERVERNAME}}/w/upload/8/81/TSL2581.pdf 详细见TSL2581数据手册第13页]<br /> 注:我们模块默认PCA9685的I2C地址引脚A5=A4=A3=A2=A1=A0=0,PCA9685的I2C地址为0x40,TSL2581 的I2C 地址引脚浮空(Float),TSL2581 的I2C 地址为0x39。如果用户不使用树莓派驱动时候,例如使用STM32的时候需要在低位补上R/W位。<br /> =树莓派使用= <font color="#FF0000"> 先不要组装舵机,由于舵机初始角度不是在起始位置,如果直接组转上去舵机旋转时可能会卡死。建议先单独测试舵机转的角度,防止舵机意外损坏。请按照如下教程依次执行<br /> </font> ==硬件配置== {{RPI_open_i2c}} ==安装库== {{RPI_C_lib}} ==下载程序== <pre> sudo apt-get install p7zip-full wget http://wiki.diustou.com/w/upload/9/96/Pan-Tilt_HAT_code.7z 7z x Pan-Tilt_HAT_code.7z -r -o./Pan-Tilt_HAT_code sudo chmod 777 -R Pan-Tilt_HAT_code cd Pan-Tilt_HAT_code/RaspberryPi/ </pre> 当然也可以下在我们Github上面的工程: <pre> sudo git clone https://github.com/waveshare/Pan-Tilt-HAT cd Pan-Tilt-HAT/RaspberryPi/web_Python sudo git clone https://github.com/jacksonliam/mjpg-streamer </pre> *使用以上是两种获取代码的方式,执行一种就可以,不要两个都执行 ==调试== 连接:<br /> [[file:pan-tilt_hat_i2connet.png|900px]]<br /> 注意连线:<br /> {|border=1; style="width:700px;" |-align="center" |棕色线||GND |-align="center" |红色线||5V |-align="center" |橙色线||S1/S0 |} 运行测试代码前一定注意倾斜舵机安装位置,安装位置不好可能会导致舵机发热烧毁,先不组装舵机,保证舵机可以旋转360不会有障碍,连接硬件,平移舵机连接S1,倾斜舵机连接S0。然后打开程序文件夹中test文件夹<br /> <pre> cd test make clean make sudo ./main </pre> 运行后面,舵机全部旋转到0度(舵机旋转角度为0到180,也就是旋转到初始位置),然后切断电源组装,注意不要旋转倾斜舵机<br /> ==组装== 组装图如下:以下图示的为[[RPi-Camera-I]],其余摄像头会略微有些不同,后面会有单独讲解。<br /> [[file:Pan-Tilt-HAT-Assembly_780_01.jpg|900px]]<br /> [[file:Pan-Tilt-HAT-Assembly_780_02.jpg|900px]]<br /> [[file:Pan-Tilt-HAT-Assembly_780_03.jpg|900px]]<br /> 组装视频参考1分19秒:[[AlphaBot2-PiZero-Video]]<br /> [[file:pan-tilt_hat_servoAB.png|900px]]<br /> A: 平移舵机<br /> B: 倾斜舵机<br /> ==其他摄像头如何组装== 模块配件提供了一包M2的独立螺丝包,一共5颗螺丝10个螺帽,摄像头全部是先给摄像头上好M2螺丝,抬高摄像头然后再连接亚克力板,将亚克力板使用螺丝锁好<br /> [[file:M2 screw package.png|900px]]<br /> 目前只支持以下摄像头<br /> RPi Camera (I)与RPi Camera (B)<br /> [[file:RPi Camera (I).png|900px]]<br /> RPi Camera V2<br /> [[File:RPi Camera V2.png|900px]]<br /> RPi Camera (E)、RPi Camera (G)、RPi Camera (F)、RPi Camera (J)、RPi Camera (M)<br /> [[File:RPi Camera (E).png|900px]]<br /> RPi Camera (H)<br /> [[File:RPi Camera (H).png|900px]]<br /> RPi NoIR Camera V2<br /> [[File:RPi NoIR Camera V2.png|900px]]<br /> RPi IR-CUT Camera(由于此摄像头孔位是非标准的,所以只能锁上两颗)<br /> [[File:RPi IR-CUT Camera.png|900px]]<br /> ==演示例程== ===基础演示=== <pre> #在Pan-Tilt-HAT/RaspberryPi/目录下面执行如下: #如果使用环境光,就执行这个 cd Light_Sensor/ #如果使用云台,就执行这个 cd Servo_Driver/ </pre> *BCM2835例程 <pre> cd bcm2835 make clean make sudo ./main </pre> *wiringpi例程 <pre> cd wiringpi make clean make sudo ./main </pre> *python例程 <pre> cd python sudo python main.py </pre> ===MJPG-STREAMER 软件实时监控=== "MJPG-streamer",是用于从摄像头采集图像,把他们以流的形式通过基于 ip 的网络传输到浏览器。<br /> {{Rpi open cam}} *运行如下命令:<br /> <pre> sudo apt-get update sudo apt-get install libjpeg8-dev cmake cd Pan-Tilt-HAT/RaspberryPi/web_Python git clone https://github.com/jacksonliam/mjpg-streamer cd mjpg-streamer/mjpg-streamer-experimental/ sudo make clean all sudo ./start.sh </pre> 在谷歌浏览器(其他浏览器可能会无法显示)地址栏内输入树莓派 ip 地址,端口号 8080,点击 Stream 会实时显示摄像头拍摄的内容。<br /> 如果你需要了解更多可以查看:https://github.com/jacksonliam/mjpg-streamer<br /> [[file:pan-tilt_hat_cam.png|1200px]]<br /> ==通过 BOTTLE 实现远程遥控== Bottle 是一个简单高效的遵循 WSGI 的微型 python Web 框架.通过 Bottle 可以快速实现 web控制<br /> 安装库:<br /> <pre> sudo apt-get install python-bottle cd Pan-Tilt-HAT/RaspberryPi/web_Python/ sudo python main.py </pre> 在谷歌浏览器(其他浏览器可能会异常)地址栏内输入树莓派 ip 地址,端口号 8001,会显示如下页面,点击按键可以遥控<br /> [[file:pan-tilt_hat_ip.png|1200px]]<br /> 支持手机和电脑控制,无需APP<br /> 手机控制:<br /> [[file:pan-tilt_hat_phonecontrol.png|1200px]]<br /> 电脑控制:<br /> [[file:pan-tilt_hat_PCcontrol.png|1200px]]<br /> =Jetson nano= ==安装库== {{JetsonNano python lib}} ==下载程序== <pre> sudo apt-get install p7zip wget http://wiki.diustou.com/w/upload/9/96/Pan-Tilt_HAT_code.7z 7zr x Pan-Tilt_HAT_code.7z -r -o./Pan-Tilt_HAT_code sudo chmod 777 -R Pan-Tilt_HAT_code cd Pan-Tilt\ HAT_Code/Pan-Tilt\ HAT/ </pre> 当然也可以下在我们Github上面的工程: <pre> sudo git clone https://github.com/waveshare/Pan-Tilt-HAT cd Pan-Tilt-HAT/JetsonNano/ </pre> ==基础演示== <pre> #如果使用环境光,就执行这个 cd 1_Light_Sensor/ #如果使用云台,就执行这个 cd 2_Servo_Driver/ </pre> *python例程 <pre> #python2 cd python2 sudo python main.py #python3 cd python3 sudo python3 main.py </pre> ==手机控制摄像头== ===测试摄像头=== <pre> DISPLAY=:0.0 gst-launch-1.0 nvarguscamerasrc ! \'video/x-raw(memory:NVMM), width=1920, height=1080, format=(string)NV12, framerate=(fraction)30/1\' ! nvoverlaysink -e </pre> 正常摄像头拍到的数据会显示在屏幕上。按Ctrl + c结束<br /> ===下载APP=== 下载安卓端手机APP: https://{{SERVERNAME}}/w/upload/8/8f/AlphaBot_LITE.apk<br /> ===控制云台=== 在终端运行:<br /> <pre> cd 3_Pan-Tilt+CAM sudo python main.py </pre> [[file:pan-tilt_hat_appcontrol.png|1200px]]<br /> 一开始的会获取到Jetson的IP地址,这个在后面的APP会用到<br /> 后面的是摄像头工作了,并显示在了屏幕上。<br /> 手机端APP控制,打开App,点击Wifi控制:<br /> 输入IP地址:192.168.6.14<br /> 进入控制界面,只有右边的4个键可以用。<br /> [[file:pan-tilt_hat_appcontrol1.png|1200px]]<br /> 转动摄像头,屏幕实时显示摄像头数据<br /> [[file:pan-tilt_hat_appcontrol2.png|1200px]]<br /> </div> <div class="tabbertab" title="资料"> ===文档=== *[https://{{SERVERNAME}}/w/upload/4/46/Pan-Tilt_HAT_SchDoc.pdf 原理图] ===程序=== *[https://{{SERVERNAME}}/w/upload/9/96/Pan-Tilt_HAT_code.7z 示例程序] *[https://github.com/waveshare/Pan-Tilt-HAT Github] ===数据手册=== *[https://{{SERVERNAME}}/w/upload/8/81/TSL2581.pdf TSL2581] *[https://{{SERVERNAME}}/w/upload/e/ea/PCA9685.pdf PCA9685] 转到:[[#软件]],[[#程序]],[[#文档]] <!--{{Join_us}}--> </div> == FAQ == <div class="tabbertab" title="FAQ"><br /> {{FAQ| 能否精密控制转动角度?| *无法做到精密控制,这个只是入门级的。 |||}} {{FAQ| 为什么抖动?| *轻微的抖动是正常的,由于舵机转动的实际角度小于舵机转动的最小物理角度,此时会有电流维持他的角度,就会引起抖动。 |||}} {{FAQ|舵机吱吱吱响,并伴随发热?| *SG90是入门级别舵机,主要是里面的电位器不准的原因,使用一段时间就发生了松动,于是就导致了齿轮与理论上转的角度不一致,导致响声并发热。 |||}} {{FAQ| 为什么扫描I2C地址会出现三个I2C设备地址?| *使用的控制芯片对应的是PCA9685,在上电的时候,是有两个I2C地址的,一个是根据板载的电阻配置的地址,默认的是0X40,还有一个是0X70这个是ALLCALLADR寄存器配置出来的I2C地址,运行一遍例程即可清楚寄存器的值。还有一个I2C地址是环境光传感器的,它对应的是0x39 |||}} </div> <div class="tabbertab" title="售后"><br />{{Service08}}</div>
该页面使用的模板:
模板:Category
(
查看源代码
)
模板:FAQ
(
查看源代码
)
模板:JetsonNano python lib
(
查看源代码
)
模板:Product
(
查看源代码
)
模板:RPI C lib
(
查看源代码
)
模板:RPI open i2c
(
查看源代码
)
模板:Rpi open cam
(
查看源代码
)
模板:Service00
(
查看源代码
)
模板:Service08
(
查看源代码
)
模板:Tag
(
查看源代码
)
模板:Tipbox
(
查看源代码
)
返回至
Pan-Tilt HAT
。
导航
导航
首页
最近更改
随机页面
MediaWiki帮助
首页
首页
树莓派
主机
配件包
外壳
键鼠
电源
扩展板
显示屏
墨水屏
摄像模块
通信模块
继电器
电机驱动板
游戏机
产品分类
树莓派
Arduino
micro:bit
STM32
Espressif
WiFi模块
蓝牙模块
无线模块
LoRa模块
4G模块
GSM
GPRS
以太网
导航模块
北斗卫星
GPS
LCD
墨水屏
OLED
摄像头
USB模块
串口模块
RS232
RS485
CAN
传感器
温度模块
湿度模块
气压模块
继电器
电机模块
指纹模块
电平转换
音频模块
编程器
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志