【教程】小安派BW21-CBV-Kit——BLE V7RC 远程图传小车

[复制链接]
查看21 | 回复1 | 昨天 15:45 | 显示全部楼层 |阅读模式

用料

  • BW21-CBV-Kit x 1
  • Android / 苹果 手机 x1
  • L9110S 电机控制器 x1
  • TT 电机 x2

示例

说明

在这个例子中,我们将使用 BW21-CBV-Kit 作为 BLE 外围设备,并使用伺服电机控制器与 V7RC 移动应用程序进行通信。此外,视频将通过 RTSP(实时流协议)从板载摄像头传感器(JXF37P)流式传输到 V7RC 移动应用程序。V7RC 是一个遥控器 APP,提供两种控制 UI:一种是 2 通道用于遥控车,另一种是 4 通道用于坦克和推土机。

流程

  1. 设置 RTSP 流

打开例子,“Files” -> “Examples” -> “AmebaBLE” -> “BLEV7RC_CAR_VIDEO”:

image.png

由于视频接收端是移动设备,在突出显示的代码片段中,我们将不使用默认视频设置,而是将视频分辨率设置为 VIDEO_D1 (720x480),以限制视频接收延迟。

image.png

在突出显示的代码片段中,“ssid”填写您的 WiFi 名称,“pass”填写 WiFi 密码。

由于视频流接收端是手机,我们建议使用 5G 网络,因为它具有更低的延迟、更高的容量和更大的带宽,可以提供更好的视频流质量。

image.png

编译代码并上传到 BW21-CBV-Kit。按下 Reset 按钮后,等待开发板连接到 Wi-Fi 网络。

开发板的 IP 地址和 RTSP 的网络端口号将显示在 Serial Monitor 中。

image.png

您可以从下面提供的链接下载 V7RC APP。

APP 安装完成后,请确保手机与 BW21-CBV-Kit 主板连接到同一个网络,以便进行串流。打开 V7RC APP,选择“控制中心”:

image.png

  • 在 NETWORK 部分下,选择“WIFI”。
  • 在 CAMERA 部分下,选择“RTSP”。
  • 由于使用 RTSP 作为流媒体协议,因此在 CAMERA 部分下方的文本框中输入“ rtsp:// {IPaddress}:{port}”作为 V7RC 中的网络 URL,将 {IPaddress} 替换为您的 BW21-CBV-Kit 开发板的 IP 地址。
  • 将 {port} 替换为 Serial Monitor 中显示的 RTSP 端口。默认的 RTSP 端口号为 554。如果同时有两个 RTSP 流,则第二个端口号默认为 555。
  • 最后,单击“保存”按钮并返回主页:

image.png

返回 V7RC 主页,您可以在 APP 顶部查看 Wi-Fi 连接状态。点击视频按钮(橙色)可实时监控视频流。

image.png

摄像机的视频流将显示在 V7RC APP 中。同时,在您的串行监视器中,将显示消息“rtp started (UDP)”:

image.png

image.png

  1. 建立 BLE 连接

打开 V7RC APP,选择“控制中心”:

image.png

在网络部分下,选择“BLE”:

image.png

点击 DEVICE,选择 AMEBA_BLE_DEV,点击“LINK”按钮连接到你的 BW21-CBV-Kit 板:

image.png

打开 Arduino Serial Monitor,你应该可以看到 BW21-CBV-Kit 板子成功连接到手机的日志:

image.png

回到 V7RC 主页,可以监控下图中移动两个控制器按钮时打印的日志数据,数据接收成功表示 BLE 连接已经建立:

  1. 设置舵机

建立 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 远程控制伺服电机。

image.png

参考代码

  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
用心做好保姆工作
回复

使用道具 举报

HaydenHu | 昨天 16:53 | 显示全部楼层
这APP做的真不错
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则