摘 要

近年来随着科技的快速的向前推进,伴随着单片机及其应用方面的技术不断开发与优化,单片机大量应用于生活的各个领域,高性价比和功能更为强大的单片机甚至应用于军事科研领域,警用机器人就大量使用单片机作为主控芯片,更强大的功能,也为机器人完成复杂的任务提供高质量的保障。
为了应对未来复杂的战场和道路情况,警用机器人虽然可以完成城市反恐任务,但是对于复杂地形,却缺乏一定的环境适应能力,对于野外使用,阻碍众多;军队中的侦察和探明路况的任务,任务繁杂,但又是行军中不可或缺的重要一环,结合这两种情况,一种能够适应野外复杂地形,并且兼顾清理障碍的野外作战的开路清障车应运而生。开路清障车可以通过车载的各个高性能模块,应对道路上的各种突发情况,利用火力模块进行大型障碍物清理,火焰模块解除火情,从而降低野外行军风险,为部队快速开辟安全道路,实现快速高效的行军。
本次设计利用STM32单片机芯片为核心控制器实现开路清障车控制系统的逻辑控制,包含火焰传感器、驱动模块、超声波模块等外围电路。通过实践结果表明,以STM32系列芯片为主的设计可以满足整体需求,预期的功能均可实现。

关键词:单片机;警用机器人;超声波模块;传感器

1总体方案论证与设计

1.1设计方案
以基于STM32的开路清障车控制系统设计,根据功能来进行划分,包括:主要的控制模块(单片机最小系统)、进行检测的模块(火焰传感器、超声波模块)、驱动模块。在这个以单片机作为核心的基于STM32的开路清障车控制系统设计,作为主控的单片机模块是系统的核心处理部分,可以协调其他模块一起工作,下面就针对这几个模块的选型进行讨论。设计框图,如图1.1所示。

在这里插入图片描述

图1.1设计框图

2系统硬件电路设计

2.1主控模块设计
2.1.1 STM32单片机概述
STM32这一款单片机是 ARM 公司推出了其全新的基于 ARMv7 架构的 32 位 CortexM3(72MHz) /M4(168MHz,额外增加了浮点运算)微控制器内核[6]。STM32作为最新一代的单片机,有更强大的功能,更高的性能比。所以,本次设计采用了STM32芯片,一方面它的性能高,方便学习更多新的嵌入式技术;另一外面,跟紧时代的步伐,让自己在未来步入社会的时候更具优势[7]。要完成本系统的设计,需要用到串口1、串口2、JTAG、LED、3.3v、5v引出等基本外设。串口1主要负责调试代码,与外接模块进行通信,直到各个模块能实现项目里的基本功能。连接过程中,应要认真对照着芯片原理图来进行,以防止接错线造成短路损坏模块。这个设计,我采用了高性能的ARM,这个芯片的最大运行速度为72MHZ,能在调节测试的过程中快速响应,能够高效率地处理各种复杂的运算。加上芯片本身丰富的资源,例如高精度的ADC、多个IO接口、还有I2C接口等,能适应各种各种的现场情况。
2.1.2 STM32单片机最小系统电路
单片机的最小系统电路,以STM32单片机和外部的一些电阻、晶振、电容等构建而成[8],接收来自各模块的信号并对其进行处理 , 然后将需要执行的命令信号再发往各模块, 主要负责协调各个模块的共同工作。
复位电路是单片机最小系统中必不可少的一个模块,单片机的复位按键是由按键,电容与电阻组成的,在按键开关为关闭状态时,电源供电,电阻本身没有反应,但是电容可以存储电量,在这个时候电路中的电流值非常的小,基本可以说是没有。相对于电源的电压VCC来说,复位IO口的引脚是处于低电平状态,这个时候,单片机的工作状态没有收到干扰。当按键开关为关闭状态时,电源系统就会变成回路,在这个时候复位引脚的电压相比电源按键的电压是一样的,为5V高电平,单片机发出复位指令。
晶振也是单片机最小系统里很重要的一部分,它由一个晶体和两个陶瓷电容器构成。其在单片机系统中的主要作用是结合内部的电路,产生单片机正常运行所必须的时钟频率,可以说它为单片机正常执行命令提供了重要的保障[9],通常情况下晶振电路提供的时钟频率越高,那么单片机的运行速度也就越快,从而系统工作的效率也会越高。在设计晶振电路时,需要注意晶振频率的选择,合适的晶振频率可以使本次系统发挥出最好的效果[10]。STM32F103C8T6原理图,如图2.1所示。

在这里插入图片描述

图2.1 STM32F103C8T6原理图

3系统软件设计

3.1编程工具Keil简介
STM32单片机软件开发环境使用的是有德国的KEIL公司推出的keil软件[15]。根据不完全统计,全球大约十万的科研人员在使用这一款软件,在官网上可以看到起目前最新的版本是5.5。使用这一个版本不仅仅能够开发我们目前使用的STM32单片机,还可以开发由全球数百个开发公司所开发的芯片,知名的包括51,DSP等等。由它编译生成的代码效率极高稳定性很好并且能够实现程序的编译、编写、承接、调测、仿真等全部的开发流程。同时,使用Keil5也对STM32单片机的开发有了针对性的优化,相比较传统模式的开发方式原开发界面,这样一个编译器是非常好用的[16]。Keil5的界面,如图3.1所示。

在这里插入图片描述

图3.1 Keil uVision5

3.2程序设计原理
本文的程序设计内容主要包含数据分析、电机控制。在软件设计中如果采用的是传统的整体代码编写,出错的概率可能会有点大,甚至有时候可能连错在哪里都找不出来,这样花费的人力物力成本太大。所以本次软件的设计选择的是模块化的设计,模块化的设计将一个程序分成几个模块来编写,这里的模块指的是那些可以单独拿出来运行的程序。这样如果有错,就会很容易的就可以将它找出来,这样对于我们来说调试起来很方便。
模块化程序设计有以下好处:
(1)每个模块都是可以分开来写,而且调试起来也很方便;
(2)每个模块完成的功能都是独立,不会互相影响[17];
3.3小车功能设计
当小车开始驱动时,小车运行前进,当小车前进时检测到了火焰,开启灭火风扇进行灭火,灭火三秒后,再次检测火焰是否还在,若还在则绕行,未检测到则继续前行,当检测到路线有障碍物时,会开启火力系统,发动火力清理障碍物,五秒后,再次检测,若障碍物还在,无法清除,则绕行避开,若已清除检测不到,则继续前行。本设计的开路清障车程序功能设计,如图3.2所示。

在这里插入图片描述

图3.2小车功能流程图

4系统调试

系统测试最重要的目的是判断系统是否可以正常运行系统所开发的功能模块能否进行正常的操作以及程序代码中是否存在错误。测试程序是开发过程中的一个必不可少又极其重要的环节[18]。这是因为就算系统被认为设计的再完美其在进行程序测试时也会被发现一个此前从来没有被发现的错误。
在制作硬件电路之前,我们先根据实际需要的功能划分硬件模块,并且在AD里面画出其硬件原理图和PCB图,检查无误后开始焊接[19]。
在实际制作过程中也不是一帆风顺的,在硬件做好调试过程中,所测数据不变动、或不显示,经检查硬件电路,使用万用表量通断发现,部分导线可能不通,存在虚焊现象,导致整个设计无法正常运行。重新焊接该部分导线,焊接牢固后,问题才可以解决。
在后期调试过程中,前置的L298N驱动模块(连接发射装置和灭火装置)经常过热,并伴有塑料焦糊味,随后出现了,发射装置和灭火装置失灵,一时间设计搁置。在遇到硬件问题时,常用排除法排杂,所以先列出了可能存在的情况:存在虚焊情况,发射装置和灭火装置损坏,L298N驱动模块损坏等。先给发射装置和灭火装置外接电源,发现二者均可工作,且传感器均有反应,故排除二者损坏的可能,使用万用表对以上情况一一排除,首先排除了存在虚焊的情况,当检查驱动模块时,发现装置供电LED正常点亮,模块供电正常,用万用表检查模块各个元件,发现L298N驱动芯片损坏,于是更换了L298N驱动模块,装置可以正常使用,并且在后面调试时对连续调试时间进行缩短,给L298N驱动芯片足够的散热时间,延长其使用寿命。实物展示图、实物调试图,如图4.1、4.2所示。
在这里插入图片描述

图4.1 实物展示图
在这里插入图片描述

图4.2 实物调试图

文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐