导航菜单
Toggle navigation
微雪商城
微雪课堂
Raspberry Pi
主板/套件
显示屏
摄像头
扩展板
笔记本
机器人
游戏机
Android/Linux主板
人工智能
主板/套件
显示屏
摄像头
扩展板
机器人
显示屏
LCD/OLED
e-Paper
模块
远距离无线通信
近距离无线通信
有线通信/接口转换
摄像头/音视频
传感器
电机/舵机
大杂烩
机器人
智能车
驱动器/传感器
机械手/云台控制
MCU/FPGA
Arduino
micro:bit
LPC
FPGA
查看“Pan-Tilt HAT”的源代码
←
Pan-Tilt HAT
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看和复制此页面的源代码。
<div class="tabber"> {{扩展板|colorscheme=blue |name = Pan-Tilt HAT |img = [[File:Pan-Tilt-HAT-intro.jpg|360px |alt=Pan-Tilt HAT|link=http://{{SERVERNAME}}/shop/Pan-Tilt-HAT.htm]] |category1=树莓派 |brand=Waveshare |feature = 云台转动\环境光 |interface1 = RPi }} <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 /> [http://www.waveshare.net/w/upload/e/ea/PCA9685.pdf 详细见PCA9685数据手册第7页]<br /> *TSL2581 [[file:pan-tilt_hat_i2caddr2.png|900px]]<br /> [http://www.waveshare.net/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 /> 组装图如下:以下图示的为[http://www.waveshare.net/shop/RPi-Camera-I.htm RPi-Camera-I],其余摄像头会略微有些不同。<br /> </font> [[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 /> =硬件配置= {{RPI_open_i2c}} ==安装库== {{RPI_C_lib}} ==下载程序== <pre> sudo apt-get install p7zip wget http://www.waveshare.net/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/ </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 /> 组装视频参考1分19秒:http://www.waveshare.net/wiki/AlphaBot2-PiZero-Video<br /> [[file:pan-tilt_hat_servoAB.png|900px]]<br /> A: 平移舵机<br /> B: 倾斜舵机<br /> ==演示例程== ===基础演示=== <pre> #如果使用环境光,就执行这个 cd Pan-Tilt-HAT/RaspberryPi/Light_Sensor/ #如果使用云台,就执行这个 cd Pan-Tilt-HAT/RaspberryPi/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://www.waveshare.net/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: http://www.waveshare.net/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="资料"> ===文档=== *[http://www.waveshare.net/w/upload/4/46/Pan-Tilt_HAT_SchDoc.pdf 原理图] ===程序=== *[http://www.waveshare.net/w/upload/9/96/Pan-Tilt_HAT_code.7z 示例程序] *[https://github.com/waveshare/Pan-Tilt-HAT Github] ===数据手册=== *[http://www.waveshare.net/w/upload/8/81/TSL2581.pdf TSL2581] *[http://www.waveshare.net/w/upload/e/ea/PCA9685.pdf PCA9685] <br /><big>批量下载教程——请戳<big><big><big>☛</big></big></big></big>[[File:download-icon.png|link=批量下载教程]] <!--{{Join_us}}--> </div> <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>
该页面使用的模板:
模板:FAQ
(
查看源代码
)
模板:JetsonNano python lib
(
查看源代码
)
模板:Note
(
查看源代码
)
模板:Note/styles.css
(
查看源代码
)
模板:RPI C lib
(
查看源代码
)
模板:RPI open i2c
(
查看源代码
)
模板:Rpi open cam
(
查看源代码
)
模板:Service17
(
查看源代码
)
模板:扩展板
(
查看源代码
)
返回至
Pan-Tilt HAT
。