一、背景
行空板M10电机IO扩展板与M10电池扩展板的组合是专为行空板(UNIHIKER)M10在机器人控制、物联网终端、移动创客项目开发中遇到的无法移动供电、接口受限、动态难控制等难题,提供了便携式开发解决方案。
收到快递,打开后觉得很惊艳,设计感很强,有那种变形金刚中擎天柱加载天火飞行外挂一般。扩展组合具备电池功能,就免去了带着电源的麻烦,另外搭载电机驱动模块、红外收发模块等功能,可以适应多种场景。
这是组装后的状态,一体化做的非常好。接口也丰富了很多。不仅可以充电,还有舵机接口。
因此,我想基于行空板M10的特征,结合拓展组合的优势,开发一款基于物联网的fpv小车,实现简单的图传和控制(底盘移动、云台移动)。
二、项目设计与介绍:
小车由底盘和云台搭载云台组成,底盘由电机驱动,云台用舵机完成两个自由度转动。行空板作为物联网服务器,根据指令控制底盘和云台移动,并把获取到的摄像头图片展示在物联网可视化平台。物联网可视化平台通过摇杆控制底盘和云台,同时呈现速度、云台信息等内容。下图为小车组装后的成品和数据可视化平台内容:

(数据流程图)

(成品图)

(可视化平台设计)

(物联网平台主题设置)
三、各部分制作
(一)底盘与移动
1.底盘购买现成的双电机+万向轮多功能底座,两个电机刚好连接扩展版驱动接口,自己购买p2.0公口接线段子,组装连接。

2.程序方面,使用论坛大佬封装好的用户库,可以非常方便使用电机。直接控制正转和反转。

3. 花时间比较多的是利用可视化面版控制。
首先,在可视化面版添加一个摇杆组件,通过控制摇杆可向物联网对应主题发送给摇杆坐标值。通过“速度”滑动条发送速度值。


当行空板接收到摇杆坐标后,通过字符提取工具,将坐标转换为“x”“y”两个维度的变量数值。将速度值存在“转速”变量。
最后,通过变量“y”大于30,电机正转,并且根据变量“x”控制方向,如果“x”为0,两边电机功率一定,则按照接受速度值(初始为600)向前移动。当“x”不为零,左右两个电机分别加上和减去“x”值,实现差速转弯。如果变量“y”小于零则后退,均不满足则停止。
以下是测试视频:
(二)云台与转动
1.云台通过两个舵机实现两个自由度的转动,分别是水平方便转动和竖直方向俯仰。购买现成的支架省心省力,可直接连接扩展版两个接口。

2. 通过数据可视化平台摇杆发送坐标值到行空板。行空板通过变量“云台”储存,并且转成“xita”(θ:水平)“afa”(α:俯仰)。通过“xita”(θ:水平)“afa”(α:俯仰)分别控制“左右”“俯仰”两个变量控制电机。


3. 因为云台状态会保持,需要在数据可视化平台呈现,方便使用。通过两个等级仪表盘呈现“左右”“俯仰”两个变量竖直,以了解目前云台状态。为降低数据发送效率,只在变量改变后才发送数据。
4. 最后,通过“云台回正”按钮,直接发送信号,促发条件,直接把“左右”改为90度“俯仰”改完0度。
以下是测试视频:
(三)画面图传
图传是整个项目的核心,通过openCV实现,首先初始化摄像头以及base64模块,在循环中添加读取摄像头并发送到物联网平台的工具。


最后,在可视化平台通过网络图片组件实现显示。并且把两个摇杆放在画面两侧,并且设置为透明。
四、成品展示
五、总结
本项目主要贡献,是尝试了一种基于物联网的小车遥控方式,并且实践了可视化面版遥控坐标数据的处理。
行空板M10扩展板组合,因其自带电池,拓展接口,为行空板M10插上了翅膀,能够突破空间限制,拓展了功能。
本项目利用物联网实现小车移动和云台控制,响应快,距离远(wifi限制)。不过实时画面图传延迟相对较大,这是下一步改进的方向。
感谢蘑菇云,给了一个学习的机会,期待下次学习。
附:完整程序
评论