QT+树莓派+STM32 搭建远程监控小车
一.描述由于最近大创项目需要用到树莓派采集视频图像,并且突然看到了桌子底下吃灰了一年多的坦克小车,想当时还是400块大洋买的,现在想来也是心在滴血。所以想把两者结合起来,花了两天时间做了个简单的QT远程监控小车。来抚平一下我内心的伤痛,要不是大创项目,想来我的树莓派也要吃灰。
言归正传,本次小项目主要实现了一个基于树莓派和Qt上位机的远程监控小车。可以通过自制的遥控器和QT上位机实现两种控制方式,Qt上位机可以实时查看小坦克上的摄像头拍摄的画面。Qt上位机的指令通过socet 协议发送给树莓派,树莓派再将指令通过串口转发给STM32,STM32定时器输出PWM控制小车前进,并配以PID算法使小车能够走直线。其具体的结构框图如下所示:
二. 环境概述
硬件:坦克小车主控 STM32F103RCT6
遥控器主控:坦克小车主控 STM32F103RCT6
树莓派:树莓派4B,官方CSI摄像头
软件版本:Keil5(5.30)
Qt5.9(5.90)
VS Code(1.52.1)
操作系统:Windows10 家庭版
树莓派镜像:2020-12-02-raspios-buster-armhf.img 三.效果展示
1.遥控器
遥控器是自己做画的PCB做的板,有两层叠层的。(我应该拍一个立体效果的,哈哈)。右边四个按键可控制小车动向,左边四个按键的选择菜单。遥控器采用锂电池供电。
2.坦克小车全身照
看起来接线有点乱啊,好久以前画的最小系统和电源板,现在来看的话应该画到一起的。那个绿色便是树莓派了
3.QT上位机控制界面
Qt编写的上位机界面也比较简单,刚开始学,很多高级应用也没有使用到,左边窗口是树莓派摄像头传过来的实时监控画面。右边部分是控制界面,下面的输入框要输入正确的服务器IP和端口号。 4.服务器运行界面
系统采用树莓派作为本地服务器,服务器使用C语言编写,启动过程中首先启动树莓派服务器,在启动 qt控制界面输入IP进行连接,连接成功后会出现如图所示的现象。 四.各部分具体实现过程
1.树莓派部分
本篇默认大家的树莓派环境已经进行过换源等操作,并且已经安装了GCC、VIM、locate等工具。
a.MJPG-streamer的安装和使用
MJPG-streamer是一款免费基于IP地址的视频流服务器,它的输入插件从摄像头读取视频数据,这个输入插件产生视频数据并将视频数据复制到内存中,它有多个输出插件将这些视频数据经过处理,其中最重要的输出插件是网站服务器插件,它将视频数据传送到用户浏览器中。 远程控制可以做两点之间直连吗 树莓派+STM32是怎么建立通信的? 使用pwm调速了吗 为什么要用树莓派呢 远程设备开发太难了。 QT做的上位机吗? 可以做远程的图像识别吗 这个树莓派是串口通信吗 这个直线行驶是怎么控制的呢 远程监控小车应用在哪里的