作者:车
目录
- 1 巡检系统的功能与指标参数
- 2 巡检系统的总体设计方案
- 2.1 巡检系统的硬件方案
- 2.2 巡检系统的软件方案
- STM32CubeMX
- Keil ARM
- 2.3 巡检系统的测试方案
1 巡检系统的功能与指标参数
系统的具体功能和参数定义如下:
(1)本设计中小车需要完成巡检任务,小车在整个过程中的车速要求为0~20cm/s。
(2)用来循迹的灰度传感器的探测距离是10~50mm,灰度循迹模块中要求灰度传感器的探测距离是15mm。
(3)为了保证顺利测试,本设计需要实现多方位避障,以此来减小外界环境带来的影响,红外避障模块的有效距离范围2~80cm。在本设计中,红外避障模块的探测距离需达到60mm以上。
(4)本设计需要实现不同方向的避障,需要用到超声波避障传感器,超声波测距模块可提供2cm~400cm的非接触式距离感测功能,此模块的感应角度小于等于15°,测量精度可高达3mm。
(5)红外测温模块需要测量环境中的温度,此模块测量温度范围宽且测量精度高,测量范围为-55℃+125℃;同时,红外测温模块在-10+85°C范围内,精度为±0.5°C。
(6)红外传感器测量的温度要求在液晶显示屏上进行显示,显示精度要求是小数点后1位。
2 巡检系统的总体设计方案
根据系统功能要求,设计的系统:
- 利用灰度循迹传感器模块对地面上的黑色轨迹进行检测从而实现小车的自动循迹;
- 通过红外避障模块检测地面偏下的障碍物,使用超声波测距模块计算小车与正前方障碍物的距离,两个模块同时工作实现小车的避障功能,同时确保小车的安全循迹;
- 小车会在指定位置停下来,测量此位置的温度并显示在液晶显示屏上,以实现巡检的目的。
本设计主要有以下几个模块:主控制器、电源模块、电机驱动模块、电机、循迹模块、避障模块、测温模块以及显示模块。下图是整体设计框图。
2.1 巡检系统的硬件方案
在硬件方案设计中,需要以下几个模块:
- 5V和12V直流电源模块
- HJ-XJ3灰度循迹模块
- HC-SR04超声波避障模块
- L298N直流电机驱动模块
- HJ-IR1红外避障模块
- 直流电机模块
- DS18B20测温模块
- LCD1602液晶显示屏模块
下图是硬件设计方案图(各个硬件模块的优点在此省略)。
2.2 巡检系统的软件方案
本文设计的基于STM32巡检系统需实现的系统软件设计包括:
- 通过STM32CubeMX在STM32F407VET6上配置各个模块所需的时钟以及各个模块的GPIO输入、输出口;
- 在Keil ARM软件上进行工程文件的编写、编译,通过ST-LINK仿真器下载到主控板上。
巡检系统STM32F407处理器的软件设计包括主程序设计、避障程序设计以及测温程序设计。下图是软件设计方案图。
STM32CubeMX
STM32CubeMX是一款图形化软件设置工具,允许使用图形化向导来生成C初始化代码。这个平台包括STM32Cube HAL(一个STM32的抽象层集成软件,确保STM32系列最大的移植性),再加上兼容的一套中间件(RTOS,USB,TCP/IP和图形),所有内嵌软件组件附带了全套例程。首先,需要选择符合外设要求的STM32微控制器。STM32CubeM是现存的MicroXplorer工具的扩展。它的图形化工具可以非常轻松的设置STM32微控制器并在一步步的指导下生成对应的初始化C代码。
本设计使用STM32CubeMX的HAL库进行程序编写。Hardware Abstraction Layer,硬件抽象层库,HAL库图形化编程,简单直观不抽象。使用HAL库时,需要在指定的区域内写代码,在环境配置的时候会把时钟的一些参数,比如时钟来源、预分频系数、计数模式、计数周期等等的参数都设置好,生成工程之后,所有的设置的参数会在代码里体现。
Keil ARM
Keil ARM有灵活的窗口管理系统,使开发人员能够使用多台监视器。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。Keil ARM版本是5.27.1.0。
2.3 巡检系统的测试方案
(1)系统各模块单独测试
①直流电机驱动模块测试;
②灰度循迹模块测试;
③红外避障模块测试;
④超声波避障模块测试;
⑤温度测量与显示模块测试;
(2)系统各模块综合测试
在系统各模块综合测试中,直流电机驱动模块、循迹模块、电源模块、避障模块以及测温模块通过与STM32处理器的GPIO口连接,确定最终测试结果是否为小车可以在既定赛道上进行循迹避障等功能。