BLE - V7RC 视频串流
材料准备
- AmebaPro2 [ AMB82 MINI ] x 1
- Android / iOS 手机 x1
- L9110S 伺服马达控制器 x1
- TT 马达 x2
范例说明
介绍
在此范例中,我们将使用 Ameba Pro2 作为 BLE 外围设备和伺服马达控制器来与 V7RC 移动应用程序进行通信。视频从板载镜头传感器 (JXF37) 串流传输到 V7RC 行动应用程式。 V7RC是一款遥控器APP,提供两种控制UI:第一种是2通道遥控的遥控车,另一种则是4通道遥控的坦克和推土机。
流程
1. 设置 RTSP 串流
打开范例 “Files” -> “Examples” -> “AmebaBLE” -> “BLEV7RC_CAR_VIDEO”:
由于视频接收端是移动设备,因此在标记的代码片段中,我们不使用默认的视频设置,而是将视频分辨率设置为VIDEO_D1(720×480)以限制视频接收延迟。
在标记的代码片段中,在“ssid”中填写您的 WiFi 网络 SSID,在“pass”中填写网络密码。由于视频接收端是手机,我们建议使用5G网络,因为它具有更低的延迟、更高的传输量和更大的频宽,以提供更好的视频传输品质。
编译代码并将其上传到Ameba。按下重置按钮后,等待开发板连接到 Wi-Fi 网络。开发板的 IP 地址和网络端口号将显示在Serial Monitor中。
您可以从下面提供的连结下载V7RC APP。
• Android Users: https://play.google.com/store/apps/details?id=com.v7idea.v7rcliteandroidsdkversion&hl=en_US
• iPhone Users: https://apps.apple.com/nz/app/v7rc/id1390983964
APP安装完成后,请确保您的手机与Ameba Pro2开发板连接到同一网络进行串流。打开V7RC APP,选择“Control Centre”:
在NETWORK部分选择“WIFI”,在CAMERA部分选择“RTSP”。由于使用RTSP 作为串流协议,因此请在CAMERA 部分下方的文本框中键入“rtsp://{IPaddress}:{port}”作为V7RC 中的网络URL,将{IPaddress} 替换为Ameba Pro2 的IP 地址、{port} 以及Serial Monitor中显示的RTSP 端口。默认 RTSP 端口号为 554。如果同时有两个 RTSP 串流,则第二个端口号默认为 555。最后,单击“Save”按钮并返回主页:
返回V7RC主页,您可以在APP顶部查看Wi-Fi连接状态。单击video按钮(橙色)可实时监控视频串流。
镜头的视频串流将显示在 V7RC APP 中。同时,在您的Serial Monitor中,将出现消息“rtp started (UDP)”:
2. 建立 BLE 连线
打开 V7RC APP,选择“Control Centre”:
在NETWORK部分下,选择“BLE”:
单击DEVICE,然后选择AMEBA_BLE_DEV,然后单击“LINK”按钮连接到您的Ameba开发板:
打开Arduino serial monitor,您应该看到Ameba与手机成功连接的资讯:
返回V7RC主页,您可以移动下图所示的两个控制器按钮来接收数据。数据接收成功,表明BLE连接已建立:
3. 设置伺服马达
BLE 连接建立后,我们将使用两组伺服马达来控制小车的移动。两个伺服马达将首先使用预定义的 MotoA_1A、MotoA_1B、MotoA_1B 和 MotoA_1B 引脚连接到 L9110S 控制器。
– 1A 引脚连接到 GPIO 引脚,用于控制马达方向。
– 1B 引脚连接到 PWM 引脚,用于控制马达速度。
#define MotoA_1A 16 // Control MotorA moving Forward(HIGH)/Backward(LOW)
#define MotoA_1B 7 // Control MotorA’s from speed 0~255, or stop (LOW)
#define MotoB_1A 17 // Control MotorB moving Forward(HIGH)/Backward(LOW)
#define MotoB_1B 8 // Control MotorB’s speed from 0~255, or stop (LOW)
在本例中,我们将使用 AMB82 MINI 作为示范。详细的连接引脚图可以在下面找到。连接建立后,用户可以通过 V7RC App BLE 远程控制伺服马达。
程式码说明
1. ParseCMDString(String cmd) 是一个自定义函数,它将字符串“cmd”作为输入并对其进行处理。目前,V7RC App 有 6 个可用命令,分别是:“SS2”、“SS4”、“SRT”、“SR2”和“SRV”。
2. 以下设置已经通过测试,以获得更好的 V7RC RTSP 串流品质:
VideoSetting config(VIDEO_HD, CAM_FPS, VIDEO_H264, 0); // 1280x720
VideoSetting config(VIDEO_D1, CAM_FPS, VIDEO_H264, 0); // 720x480