2-Axis Pan-Tilt Camera Module
| ||||||||||||||||||||||
|
产品介绍
该摄像云台采用两个大扭矩总线舵机形成的双自由度设计,在水平平面PAN轴和竖直平面TILT轴实现了较广泛的旋转范围,分别为±180°(总范围360°)和-45°~90°(总范围135°),让摄像头覆盖区域更广泛。
基于通用机器人驱动板,可以与树莓派 4B/5 高度融合,使硬件选择变得更加灵活。开源的WEB控制程序让用户能够通过谷歌浏览器轻松控制云台,实现云台姿态调整、图像采集等功能。除了基本的拍照和摄像功能外,该摄像云台还提供了人脸检测和运动检测,为您提供更智能、更精确的监测体验。不仅开源了下位机的云台功能例程,树莓派摄像头相关功能的例程也全部开源,让用户可以根据自己的需求进行二次开发。
两个关节都采用高精度总线舵机直驱方案,角度传感器为360° 12 位磁编码器,可回传关节角度、负载等信息,实现闭环控制;虽然使用的总线舵机体积小,但达到了30kg.cm的关节极限扭矩,确保将云台集成到其它项目中。我们还附赠了鱼骨导轨与 1/4 的螺丝,开源了模型和图纸,使得用户能够根据自身需求进行扩展,创造更多的可能性。
产品参数
- 主控模组:ESP32-D0WD-V3
- 驱动器旋转速度:40prm
- 关节角度传感器:12位360°磁编码器
- 驱动器堵转扭矩:30kg.cm
- 供电电压:12V
- 有线控制方式:USB、UART
- LED补光灯功率:< 1.5W
- 重量:441g
产品组装和配置教程
产品固件更新
- 如果你的产品开机时 OLED 屏幕上显示 "PT CAM Version:0.9" ,说明产品上的驱动程序已经是新版的程序了,就不需要再执行本部分内容给产品进行更新了。
- 如果你的产品开机时 OLED 屏幕上没有显示 "PT CAM Version:0.9" ,说明此时产品上的驱动程序依旧是老版的程序,则需要执行本部分内容给产品进行更新;如果需要恢复出厂设置,也可以通过本部分内容进行。
我们提供云台的 ESP32 下载工具,使用这款工具,用户可以快速给产品更新固件或还原至出厂程序。
1. 首先,使用 USB 线连接机器人通用驱动板中间 USB 口和你的电脑。
2. 下载云台的 ESP32 下载工具:云台的 ESP32 下载工具,下载后解压缩,双击打开“flash_download_tool_3.9.5.exe”程序。打开后,会弹出两个窗口,我们需要操作的是下载工具的UI界面,而另一个窗口作为终端来显示下载工具的工作状态。
3. 在“DOWNLOAD TOOL MODE”这个界面,Chip Type 选择为 ESP32,WorkMode 选择为 Factory,使用 Factory,调用二进制文件时才会使用相对路径,就不需要用户手动输入二进制文件路径,选择好后点击OK。
4. 在这个软件界面中,保持“LockSettings”的勾选,右边代表的是可以同时给 8 个云台上传程序。点击“COM”,选择新出现的 COM(我这里新出现的 COM 为 COM31);BAUD 是用于设置下载速度,越高速度越快,ESP32 最高可以使用 921600。
5. 选择好后,点击 START 开始上传程序,上传完成后,“IDLE 等待”会变成“FINISH 完成”,完成后可以断开驱动板与电脑的 USB 连接,使用配套的 12V 5A 电源给产品通电后,打开驱动板上的开关,通电后即可控制机器人。
产品使用
本产品下位机由 ESP32 驱动,默认通过 GPIO 串口或者 USB 线连接与上位机(例如树莓派)进行通信。我们目前提供的上位机例程是基于树莓派的,下位机例程的云台功能(除摄像头外相关功能)是可以脱离上位机使用的。在产品组装和配置教程部分,树莓派是通过 GPIO 串口与下位机进行通信的。
首次使用
默认您已经根据产品组装和配置教程部分安装好产品的硬件和软件部分。
使用配置的 12V 5A 电源线接入到云台上的电源接口,打开电源开关,通电即开机。OLED 屏幕会显示初始化的一系列内容;若您配置软件程序时用的是方法一,烧录的是我们已经配置好的镜像,树莓派在开机的过程中会自动建立一个热点,并且在项目主程序自动运行后会将 ip 地址显示在 OLED 屏幕上,开机完成后 OLED 屏幕显示的内容含义如下:
- 第一行 E:网口的 IP 地址,可以用来远程连接树莓派;No Ethernet 表明此时树莓派上无网线接入。
- 第二行 W:AP 模式下建立热点后,会显示默认 IP 为 192.168.50.5;STA 模式下连接到已知 WIFI 所分配的 IP 地址;显示出的 IP 地址可以用来无线连接树莓派。
- 第三行 F/J:网络端口号,5000 用于访问产品主程序控制页面,8888 用于访问 JupyterLab 页面;
- 第四行 AP 表示此时 WIFI 处于 AP 模式下,时间表示设备的使用时长;以 dBm 为单位的数值表示 WIFI 处于 STA 模式下的信号强度 RSSI。
树莓派开机后,
- 若产品没有连接到已知 WIFI,则会自动建立热点,用手机/电脑连接该产品自动建立的热点,热点名称为 AccessPopup,热点密码为 1234567890,连接好后打开浏览器,输入 AP 模式下 设备默认的 IP 地址(该地址会在 OLED 屏幕上的 W 行处显示),即在网址栏中输入 192.168.50.5:5000 访问产品主程序的 WEB 控制界面。
- 若产品连接到已知 WIFI,则可以通过访问树莓派的 IP 地址:5000 来访问产品主程序的 WEB 端控制界面。例如:192.168.10.156:5000。
注意:访问的设备要与树莓派设备在同一个局域网下才可访问成功。
网络配置
如果您想要连接到您自己的 WIFI 网络的话,这部分内容会介绍如何网络配置。网络配置是需要进入到 JupyterLab 页面去配置的,有两种打开 JupyterLab 页面的方式:
- 可以通过主程序的控制界面中的按钮,点击即进入 JupyterLab 页面;
- 可以通过访问设备的 IP 地址:8888 进入 JupyterLab 页面。如果您烧录的是方法一的镜像,产品默认的还是 AP 模式,因此在网址栏中输入 192.168.50.5:8888 即可打开 JupyterLab 页面。
初次连接到已知 WIFI
一般产品配置好的镜像默认的 WIFI 模式都是 AP 模式,初次要切换至 STA 模式连接到已知 WIFI 有以下的步骤:
1. 进入 JupyterLab 页面后,点击页面下方的 Terminal,输入以下指令回车进入项目文件夹。
bash
2.可以看见当前的位置为 ~/ugv_rpi,接着进入 WIFI 配置工具的文件夹,输入以下指令后回车。
cd AccessPopup/
3. 给 AccessPopup 文件夹下的 WIFI 配置脚本增加可执行权限,输入以下指令后回车。
sudo chmod +x installconfig.sh
4. 运行 WIFI 配置脚本,输入以下指令后回车。
sudo ./installconfig.sh
5. 运行脚本后显示如下界面,这里要设置连接到已知 WIFI,因此输入 5 后回车进行新的 WIFI 连接设置。
6. 接着会跳转至添加或编辑 WIFI 网络界面,等待一会,此页面会输出当前设备附近的 WIFI 名,如下所示,每一个 WIFI 前都有一个序号,输入要连接的 WIFI 序号后回车。
7. 接着输入要连接的 WIFI 密码,回车后,该产品会连接到设置的 WIFI 热点。连接成功后,可以在产品的 OLED 屏幕上看见 W 行的 IP 地址变化。
8. 由于 IP 地址的变化,因此 JupyterLab 页面要重新用当前 OLED 屏幕上 W 行的 IP 地址进行访问。该产品连接成功后处于 STA 模式,进入 JupyterLab 页面后还是之前的界面,如下所示,按任意键继续。
9. 最后输入 9 后回车即可退出 WIFI 配置脚本。
连接已知 WIFI 成功后,如果此后产品开机运行时脱离了已知 WIFI 的范围,则该产品会自动建立热点,热点默认的情况下依然是 AccessPopup。
切换 WIFI 模式
- STA 模式切换至 AP 模式
在连接已知 WIFI 的情况下,要让设备切换至 AP 模式建立热点,打开 JupyterLab 页面的 Terminal,输入 bash 进入项目文件夹下,再输入以下指令来建立热点。
sudo accesspopup -a
- AP 模式下再重新切换至 STA 模式
在已经进行过已知 WIFI 配置后,要让设备从 AP 模式切换至 STA 模式,输入以下指令来重新连接到已知 WIFI。
sudo accesspopup
注:只要是切换了 WIFI 模式,产品主程序的控制界面和 JupyterLab 页面的 IP 地址都要相对应地刷新才能访问。
删除已知 WIFI
- 打开 JupyterLab 页面的 Terminal,输入 bash 进入项目文件夹下。
- 输入以下指令来查看所有网络连接的信息。
nmcli connection show
- 输入以下指令进行已知 WIFI 的删除,需要将下述指令中的<connection_name>替换为需要删除的 WIFI 名称。
sudo nmcli connection delete <connection_name>
注:如果您删除的是当前设备所连接的已知 WIFI,则删除后该产品会自动建立热点,热点默认的情况下依然是 AccessPopup,访问 JupyterLab 页面的 IP 地址要刷新才能接着使用。
SSH 服务开启
如果您烧录的是方法一的镜像,可以根据这部分内容开启 SSH 服务。SSH 服务仍然可以进入到 JupyterLab 页面去开启的,有两种打开 JupyterLab 页面的方式:
- 可以通过主程序的控制界面中的按钮,点击即进入 JupyterLab 页面;
- 可以通过访问设备的 IP 地址:8888 进入 JupyterLab 页面。如果您烧录的是方法一的镜像,产品默认的还是 AP 模式,因此在网址栏中输入 192.168.50.5:8888 即可打开 JupyterLab 页面。
1. 进入 JupyterLab 页面后,点击页面下方的 Terminal,输入以下指令回车进入项目文件夹。
bash
2. 在该终端中输入以下指令,使用 raspi-config 官方配置工具开启 SSH 服务。
sudo raspi-config
3. 进入 raspi-config 工具中用键盘方向键上下选择到“Interface Options”,按 Enter 回车键。
4. 选择“SSH”后,按 Enter 回车键。
5. 选择“Yes”启用 SSH 服务。
6. 启用 SSH 服务后,方向键左右选择“Finish”完成后退出,输入“sudo reboot”进行系统重启。
树莓派 WEB 端使用
在本部分中会介绍树莓派与下位机通过GPIO通信时该产品的使用。
访问产品主程序的 WEB 端控制界面成功后,可以看见树莓派摄像头拍摄的画面,下面分别介绍树莓派 WEB 端控制界面的按键功能:
- 点击摄像头画面中间的拍摄按钮会进行拍照功能,拍出的照片会存储在下方的 Photo Gallery 模块中;
- 点击“Record”按钮会进行摄像功能,摄像头录下来的视频存储在下方的 Video Files 模块中;
- 拖拽摄像头画面处右下角的透明圆圈按钮,可以控制摄像头云台转动;使用带有键盘的PC时,可以通过经典的“WASD”快捷键来控制云台转动。
- 摄像头画面下方的方块控制面板同样是可以控制摄像头云台上下左右转动,点击“AHEAD”按钮会恢复到设置的中位。
- Enter Command:这里是一个输入框,可以用来从 web 端输入指令控制云台实现对应的功能,具体指令会在【树莓派 WEB 端命令行应用】中详细介绍。
- Simple Detection Type:设置摄像检测的类型。
- None:表示此时无需要检测的物体;
- Movition:表示此时检测的物体为处于运动状态的物体;
- Faces:表示检测的为人脸。
- Simple Detection Reaction:设置检测到物体后的反应,此反应为自动执行的。若无检测到的物体,该功能也无用。
- None:表示此时无任何反应执行;
- Capture:表示此时反应为自动拍摄状态;
- Record:表示此时反应为自动录影状态。
- Advance CV Funcs:设置摄像检测的类型。
- OBJECTS:物体识别;
- COLOR:颜色识别;
- HAND GS:手势识别。
- Head Light Ctrl:开关摄像头上方 LED 灯。
Photo Gallery:存储拍摄的图片于此。若拍摄了多张图片,则可以点击“View Photo Gallery Page”来显示所有的图片,括号里的数字表示图片总数。点击图片可以放大查看;点击图片上右上角的按钮即删除该图片。
Video Files:拍摄的视频存储于此。若拍摄了多个视频,则可以点击“View Video Files Page”来显示所有的视频,括号里的数字表示视频总数。点击视频可以播放视频;点击视频右边出现的按钮即可删除该视频。
Bus Servos Initialization Setup:校准舵机设置。由于在产品组装的步骤中我们已经进行了舵机校准,因此这里不需要再进行设置。但若您要进行舵机 ID 和中位设置,也可以点击“Setting Page”进入设置页面跟着页面中的步骤执行即可。
树莓派 WEB 端命令行应用
为了让产品的参数更容易配置,同时更加方便用户为产品添加自定义的功能,我们为产品设计了命令行参数的功能,你可以通过“Enter Command”输入框中输入指令来实现对应的功能,本部分会详细介绍这些功能。
关于下位机控制
- 直接给下位机发 JSON 指令,具体下位机指令可参考【下位机 JSON 指令集】
- base -c +JSON 指令 例:base -c {"T":133,"X":0,"Y":0,"SPD":0,"ACC":0}
- base --cmd +JSON指令 例:base --cmd {"T":133,"X":0,"Y":0,"SPD":0,"ACC":0}
- 两种形式皆可发送成功,只需要替换具体 JSON 指令即可
- 开启在摄像头画面的屏幕上显示来自下位机的信息
- base -r on
- base -recv on
- 关闭在摄像头画面的屏幕上显示来自下位机的信息
- base -r off
- base --recv off
关于上位机功能参数调整
- 设置目标颜色区间
- cv -r [90,120,90] [120,255,200]
- cv -range [90,120,90] [120,255,200]
- 选择颜色(默认只有红绿蓝)
- cv -s red
- cv --select red
- 设置云台追踪参数
- 颜色追踪迭代比例
- track -c 0.023
- 人脸/手势追踪迭代比例
- track -f 0.068
- 追踪速度
- track -s 60
- 动作加速度比例
- track -a 0.4
- 颜色追踪迭代比例
下位机 JSON 指令集
在树莓派 WEB 端命令行应用中,我们介绍了可以通过上位机向下位机发送运动控制指令,下位机可以接收的指令非常多,在这个部分中我们会介绍这些指令。
你可以在我们开源的下位机例程的 json_cmd.h 文件中查看这些指令的定义,或自行为其添加新的下位机功能。
CMD_LED_CTRL
- {"T":132,"IO4":255,"IO5":255}
- 12V开关输出设置
- 产品下位机上面有两路12V开关接口,每路2个接口共四个接口,你可以通过这个指令来设置这些接口的输出电压,当数值为255时为3S电池电压。 产品默认使用这些接口来控制 LED 灯,你可以通过这个指令来控制 LED 灯的亮度。云台 LED 灯的控制只需要更改 IO5 后的数值即可,255 表示亮度最大,0表示关闭亮度,0-255 之间数值越大亮度越大。
CMD_GIMBAL_CTRL_SIMPLE
- {"T":133,"X":0,"Y":0,"SPD":0,"ACC":0}
- 云台基础控制指令
- 该指令用于控制云台的朝向。 X为水平方向的朝向,单位为角度,正值向右,负值向左,取值范围为 -180到180。 Y为竖直方向的朝向,单位为角度,正值向上,负值向下,取值范围为 -30到90。 SPD为速度,ACC为加速度,当值为0时为最快速度/加速度。
CMD_GIMBAL_CTRL_MOVE
- {"T":134,"X":45,"Y":45,"SX":300,"SY":300}
- 云台连续控制指令
- 该指令用于连续控制云台朝向。 X 为水平方向的朝向,单位为角度,正值向右,负值向左,取值范围为 -180到180。 Y 为竖直方向的朝向,单位为角度,正值向上,负值向下,取值范围为 -30 到 90。 SX 和SY 分别为 X 轴和 Y 轴的速度。
CMD_GIMBAL_CTRL_STOPE
- {"T":135}
- 云台停止指令
- 当使用上面的命令让云台运动起来后,可以使用该指令让云台可以随时停下来。
CMD_GIMBAL_STEADY
- {"T":137,"s":0,"y":0}
- 云台自稳功能
- s 为 0 时关闭该功能,s 为 1 时开启该功能,该功能开启后云台会自动通过 IMU 数据来调整云台的竖直角度,y 为云台的与地面的目标夹角(即使开启云台自稳功能,摄像头也可以上下看)。
CMD_GIMBAL_USER_CTRL
- {"T":141,"X":0,"Y":0,"SPD":300}
- 云台 UI 控制
- 该指令用于 UI 界面控制云台,X 值可以为 -1,0 和 1,-1 为向左转动,0 为停止,1 为向右转动。 Y 值可以为 -1,0 和 1,-1 为向下转动,0 为停止,1 为向上转动。 SPD 为速度。
Arduino IDE 开发工具使用
机器人通用驱动板板载接口
序号 | 资源名称 | 介绍 |
1 | ESP32-WROOM-32 主控模组 | 可使用 Arduino IDE 进行开发 |
2 | IPEX 一代 WIFI接口 | 用于连接IPEX1外螺内孔的天线 |
3 | 激光雷达接口 | 集成了雷达转接板的功能 |
4 | IIC 外设扩展接口 | 可用于连接 OLED 屏幕或其它 IIC 传感器 |
5 | 复位按键(EN) | 按下后松开,ESP32 会重启 |
6 | 下载按键(BOOT) | 按下时开机,ESP32 会进入到下载模式 |
7 | DC-DC 5V 稳压电路 | 可为上位机例如树莓派或Jetson nano等供电 |
8 | Type-C 接口 (LADAR) | 激光雷达数据接口 |
9 | Type-C 接口 (USB) | ESP32 串口通信接口、可为 ESP32 上传程序 |
10 | XH2.54 供电接口 | 输入DC7~12.6V,该接口直接为总线舵机和电机供电 |
11 | INA219 | 电压电流监测芯片 |
12 | 电源开关 | 控制外部供电的开关(上图处于 ON 的位置) |
13 | ST3215 总线舵机接口 | 用于连接 ST3215 总线舵机 |
14 | 电机接口 PH2.0 6P | B 组带编码器的电机接口 |
15 | 电机接口 PH2.0 6P | A 组带编码器的电机接口 |
16 | 电机接口 PH2.0 2P | A 组无编码器的电机接口(该产品中为 LED 灯接口) |
17 | 电机接口 PH2.0 2P | B 组无编码器的电机接口 |
18 | AK09918C | 3 轴电子罗盘 |
19 | QMI8658 | 6 轴运动传感器 |
20 | TB6612FNG | 电机控制芯片 |
21 | 总线舵机控制电路 | 连接多个ST3215总线舵机,并获取舵机反馈 |
22 | SD 卡槽 | 可用于存储日志或 WIFI 配置 |
23 | 40PIN 扩展接口 | 方便接入树莓派4B、树莓派Zero或 Jetson Orin Nano |
24 | 40PIN 扩展接口 | 方便使用安装在驱动板上的上位机的引脚 |
25 | CP2102 芯片 | 串口转 USB,用于雷达数据传输 |
26 | CP2102 芯片 | 串口转 USB,用于 ESP32 串口通信 |
27 | 自动下载电路 | 为 ESP32 上传程序时不需要按 EN 和 BOOT 按键 |
资料
云台开源程序
云台镜像
- 下载链接:云台镜像 提取码:R5mw
- 用户名:ws 密码:ws
云台图纸
云台STEP模型
驱动板原理图
FAQ
答:首先先对照机器人通用驱动板板载接口部分检查是不是插入序号⑨的USB接口,是的话接着看下电脑的设备管理器是否有新的 COM 口出现,若没有,则看下其它设备中是否有名字中带 CP2102 未识别的设备(如图),有的话则是未安装驱动导致的,可点击安装 CP2102 串口驱动。若其它设备中没有名字中带 CP2102 未识别的设备,则联系店铺客服返厂维修。
答:因为要用GPIO串口通信,不禁用的话可能会有bug,树莓派默认把全功能的串口给蓝牙,把mini UART给GPIO UART。
技术支持
联系人:方工
EMAIL:2355742825@qq.com
QQ:2355742825
微信:扫下方二维码添加