收藏和点赞,您的关注是我创作的动力
概要
为了消除人们在各种工业繁琐的危险环境对于自身的危险的问题,本着让工作更加高效而且节省成本,提升人们生活水平的原则,本课题利用STM32单片机作为主控芯片,视觉采集模块采用USB摄像头以及PWM驱动技术实现视觉导航小车,同时在小车上增加WIFI传输功能,从而实现人们可以规划小车的行驶路径以及人们可以在手机终端或者PC端实时看见周围的情况并且实时控制小车,从而随时应付突发情况。结果表明,通过完成系统总体设计、硬件设计、软件编写、软硬件调试的工作,人们完全可以让视觉导航小车去他们无法进入地方进行勘测,从而可以让工作更加有效,提升生活效率,而且对安全也可以得到保障,即使由于环境导致小车损坏,只需修理,既做到了节省成本,又可以消除安全隐患,从而带来了巨大的经济和社会效益。
关键词:STM32; PWM驱动; WIFI; 视觉导航
一、项目总体设计
本设计基于STM32主控模块,该功能主要通过7个模块的电路设计来实现,分别是电源模块,红外模块,电机驱动模块,视觉采集模块,WIFI模块,循迹模块,超声波模块。系统功能图如图1.1所示。
图1.1 系统功能图
二、总体方案设计
方案论证
本课题是为了让小车进入人类无法进入的地方进行勘测,从而让人类在手机终端或者PC端看见小车周围的环境,从而进行操作和工作。所以为了控制小车实现功能做出以下两种设计方案进行对比:
方案一:是采用STM32主控+摄像头+PWM驱动技术实现视觉导航小车,具体为通过STM32作为主控芯片驱动小车,以便来控制小车的运行,根据视觉采集模块采集的图像信息通过WIFI模块发送到手机或电脑,人们在界面上实时查看,再将图像信息传递给STM32,从而控制小车。
方案二:是采用FPGA+图像采集单元+驱动板实现视觉导航小车,具体地,视觉导航小车利用CMOS传感器采集图像信息。FPGA利用COMS传感器提供的时钟信号作为同步的信号进行图像采集,然后通过控制板的数字接口将相机的8位数据线和相应的控制信号直接连接到图像采集,优点是集成度高,速度快和可靠性高[1]。如果要更改驱动电路的时序并添加一些功能,则只需对设备进行重新编程。
经过比较,考虑到性能,第一种更加灵活。对于变化的车速,使用PWM脉冲代码速度控制进行控制,并通过更改电动机的平均电压来改变汽车的速度。相对于第二种,成本也是很低,所以采用第一种方案。
三、 项目软件设计
3.1软件开发流程图
如图3.2所示。
图3.2 软件开发流程图
3.2 视觉导航软件设计
在本设计中,人们可以通过手机或PC控制视觉导航小车,因此需要设计出一个视觉导航软件的程序。本设计要实现的是,人们可以使用电脑或手机选择不同的按钮来控制小车,并实际监视视频机器以建立连接。人们可以在计算机界面上选择不同的按钮,并发送适当的命令来控制小车的运行和实时视频监控。该系统的目的是控制计算机上的终端软件。通过使用Visual C ++设计软件,它具有开发环境可视化的特征。用户可以直接在界面上进行编程,这给开发人员带来了很多便利。在PC端可以实现的功能是
(1)实时监控显示。可以实时显示摄像头采集的图像;
(2)可以对小车进行控制。比如说前进,后退,左右移动。
本设计中的应用程序设计也是两个部分。一部分是控制界面,另一部分是视频界面。在控制界面中,人们可以看到小车的不同行驶状态,并控制车辆向前,向后,向左和向右行驶。在视频界面中,人们可以看到视频的IP地址和视频显示界面。然后结合这两个界面,可以同时在手机上看到这两个界面,如图3.3所示。
图3.3 手机界面
视觉导航软件流程设计图如图3.4所示。
图3.4 视觉导航软件设计图
3.3 循迹模块软件设计
若想让小车在规定的轨迹上进行前进,后退,左转,右转,应当在软件设计中,编程好小车的代码,如下图3.5所示,循迹模块的流程图如下图3.6所示,当按下转接板的按钮时,系统开始初始化,小车开始在黑色引导线上移动,当左循迹模块检测到是白色,右循迹模块检测到的也是白色,小车继续根据轨迹行驶;当左循迹模块检测到是黑色,右循迹模块检测到的是白色,小车会根据检测到的信号向右行驶;当左循迹模块检测到是白色,右循迹模块检测到的是黑色,小车会根据检测到的信号向左行驶。
图3.5 循迹模块软件设计图
图3.6 循迹模块流程图
四、 实物展示
程序