长 沙 学 院
课 程 设 计 说 明 书
题
学
目
院
循迹避障智能小车
计算机工程与应用数学
专 业 ( 班 级 )
姓
学
名
号
指 导 教 师
杨凤年、钟旭
起 止 日 期
2019.6.10-2019.6.21
1
课程设计任务书
课程名称:单片机技术课程设计
设计题目:循迹避障智能小车
已知技术参数和设计要求:
1.功能要求
① 本课程采用 Cortex–M4 开发板,外加温度湿度传感器模块、光照传感器
模块、红外循迹、避障模块直流电机模块,实现温度湿度采集、智能小车循迹避
障行走等功能。通过本实践环节,学生应掌握 Cortex–M4 单片机原理及应用,
熟悉单片机中断系统、定时器和 GPIO 接口编程技术,以及物联网工程项目编程
框架、设计方法、调试技巧等。
② 若光线强度低于某个阈值,蜂鸣器发出报警声 0,警示灯 0 闪烁,开启
照明灯;若温度较低,蜂鸣器发出报警声 1,警示灯 1 慢闪烁,若温度较高,则
蜂鸣器发出报警声 2,警示灯 2 快速闪烁;并用同样的方法进行光照强度报警。
2. 运行环境要求
智能小车:STM32F407 开发板,含光照传感器模块、温度、湿度传感器模
块、光敏电阻;外加红外循迹、避障传感器模块、智能小车底座模块等。
3.技术要求
利用 A/D 转换技术,获取光照强度和温度湿度值。
利用 GPIO 控制技术,实现警示灯闪烁、蜂鸣器报警、红外循迹、红外避障、
直流电机驱动。
班级:
实训工作量: 40 课时。
工作计划:见课程设计课表。
2
摘 要
本课题是基于 STM32F407 开发板对智能小车的设计与实现,利用了所学单片
机技术来实现对小车的开发实践。小车主要功能是能够实现红外自主循迹,进行
自动避障,并且实现串口通信,温湿度数据采集,蓝牙遥控。
小车系统以 STM32F407 开发板为系统控制处理器,采用红外传感获取周边环
境的信息,通过程序来对小车的方向和速度进行控制;也可通过温湿度传感器采
集,并通过设计程序实现串口发送;再通过蓝牙模块与手机连接实现蓝牙遥控。
最终,通过对控制程序进行设计和编写以及对小车的调试,完成了软件和硬件的
融合,实现了小车的预期功能。
关键词:自主循迹,蓝牙遥控,自动避障,串口通信
3
目 录
第 1 章 需求分析....................................................................................................................................5
1.1 引言............................................................................................................................................5
1.1.1 编写的目的.....................................................................................................................5
1.2 项目概述................................................................................................................................... 5
1.2.1 目标...............................................................................................................................5
1.3 运行环境................................................................................................................................... 5
1.3.1 软件环境.........................................................................................................................5
1.3.2 硬件环境..........................................................................................................................5
1.3.3 接口.................................................................................................................................6
1.4 需求的描述............................................................................................................................... 7
1.5 故障处理要求........................................................................................................................... 7
1.5.1 硬件故障处理..................................................................................................................7
1.5.2 软件可能出现的故障及处理及方法..............................................................................7
第 2 章 软硬件设计..................................................................................................................................8
2.1. 引言....................................................................................................................................... 8
2.1.1 编写目的.........................................................................................................................8
2.1.2 背景.................................................................................................................................8
2.1.3 定义.................................................................................................................................8
2.2. 总体设计............................................................................................................................... 8
2.2.1 运行环境.........................................................................................................................8
2.3 红外模块....................................................................................................................................9
2.3 硬件设计....................................................................................................................................9
2.3.1 红外模块..........................................................................................................................9
2.3.2 温湿度模块....................................................................................................................10
2.3.3 蓝牙模块........................................................................................................................11
2.3.4 LED 灯及按键模块....................................................................................................... 12
2.3.5 引脚模块........................................................................................................................12
2.4 软件设计..................................................................................................................................13
2.4.1 程序总体框架................................................................................................................13
2.4.2 程序流程设计................................................................................................................14
2.4.3 程序相关宏定义、变量和函数说明...........................................................................14
2.4.4 详细设计.......................................................................................................................16
第 3 章 系统使用说明..........................................................................................................................24
3.1 总体功能描述......................................................................................................................... 24
3.2 使用步骤................................................................................................................................. 24
第五步图 3.2 示:..................................................................................................................................24
总 结........................................................................................................................................................26
参考文献..................................................................................................................................................27
附录 源代码............................................................................................................................................28
4
第 1 章 需求分析
1.1 引言
1.1.1 编写的目的
需求规格说明书是系统设计的开端,一份好的需求规格说明书能在编写项目
策划、概要设计和详细设计等文档是起到龙头的作用,同时也是编写测试用例和
进行系统测试的关键性依据。此文档的主要功能就是详细的说明本次设计的内
容、开发的环境、预期的结果等。
1.2 项目概述
1.2.1 目标
此智能小车开发基于 STM32F407 开发板,研发涉及红外传感,蓝牙控制,温
度检测,湿度检测,小灯,按键,串口等多个模块。
最终目标基于开发板的 4 个按键,设计出四种不同的响应模式:当 K2 响应时,
小车通过红外探头实现自动循迹功能;当 K3 响应时,小车实现智能避障功能;
当 K3 响应时,用户可通过蓝牙远程控制小车产生行进行为;当 K4 响应时,利
用 A/D 转换技术,小车可通过串口向 PC 端实时发送温湿度的数值。
1.3 运行环境
1.3.1 软件环境
Keil uVision5 运行环境、STC-ISP V6.85P 烧写程序、Source Insight
4.0 编译环境等、UartAssist 串口调试助手。
1.3.2 硬件环境
1)PC 硬件平台
CPU :2.0(双核)
内存:4G
硬盘:160G
网络:100/1000M 网络适配器
2)STM32 开发板平台
STM32F407 开发板
AT89S52 单片机
HD74HCO8P 芯片
电路板
红外发光二极管
5
电机
1.3.3 接口
函数的主要接口如表 1.1 所示:
名称
表 1.1 接口函数
参数
备注
int key_status()
void led_control()
void key_init()
void led_init
Void motor_init()
Void infrared_init()
Void bluetooth_init()
Void DHT11_input_init()
Void DHT11_ouput_init()
Void delay_ms()
Int num 返 回 按 键 输
入状态
LED 控制函
数
按键初始化
LED 初始化
驱动初始化
红外初始化
蓝牙初始化
DHT11 输 入
初始化
DHT11 输 出
初始化
延时函数
无
无
无
无
无
无
无
无
uint16_t
n
硬件接口如图 1.1 所示:
图 1.1
6
1.4 需求的描述
制作一个智能小车,实现按键对 STM32F407 开发板的控制,使之最终能够红
外探测、蓝牙控制以及温湿度检测。
1.5 故障处理要求
1.5.1 硬件故障处理
1. 单片机无法工作。处理方法:检查有无接电源及端口匹配情况。
2. 软件无法正常下载程序至智能小车。处理方法:检查端口是否匹配及跳
帽是否正确。
3. 蓝牙无法连接。处理方法:检查小车接线问题以及模块是否损坏。
4. 端口无法连接。处理方法:按复位键及检查是否安装驱动。
1.5.2 软件可能出现的故障及处理及方法
1. 编译缺失显示 main.o 文件。处理方法:电脑创建新用户,以英文命名。
2. 显示文件不存在。处理方法:检查 keil 工程中是否添加路径。
3. 电机运转方式不对。处理方法:检查初始化是否正确。
7
第 2 章 软硬件设计
2.1. 引言
2.1.1 编写目的
本次设计结合软硬件,用 Keil uVision5 编程,由 STC-ISP V6.85P 下载程
序到单片机中,然后通过用户按键控制单片机实现智能小车切换模式,使智能小
车能够自动循迹,自动避障,实现蓝牙控制,温湿度检测。
2.1.2 背景
当今社会科学技术的发展与日俱增,人们生活水平也是日益提高,为了减少
人们的工作量,所以对机器替代人工的需求越来越多。针对这种情况,设计出一种
集成度高,功能多的智能小车是有必要的。现代科技的飞速发展也存在许多危险、
不可近场合,这也对智能小车替代人工提出了越来越高的要求。
Keil uVision5 使用类似于传统 C 语言的语法来开发,使用 C 语言与使用汇
编语言相比,具有如下优点。不需要掌握 8051 系列单片机的指令集,只要了解
单片机内部特殊功能寄存器的用途即可。编程人员不必考虑寄存器的分配和寻址
方式等细节,这些都由编译器自动进行管理。利于结构化编程,易于维护。可使
用与人的思维更相近的关键字和操作函数。由于 C 语言可实现模块化编程技术,
并与硬件无关,这样可以将大量的例程直接调用,节省开发时间。程序的开发和
调试的时间大大缩短,提高了效率。该智能小车项目由老师提出,由我们实践开
发,可实现自动循迹避障,蓝牙控制,检测温湿度等功能。
2.1.3 定义
Keil uVision5:开发环境
15F2K61S2:单片机型号
UartAssist:串口调试助手
STC-ISP V6.85P:烧录所用软件
2.2. 总体设计
2.2.1 运行环境
软件环境:Keil uVision5、STC-ISP V6.85P、UartAssist 等。
硬件环境:1). PC 硬件平台:CPU :2.0(双核)、内存:4G、硬盘:160G、网
络:100/1000M 网络适配器
2). 51 开发板平台:开发板、15F2K61S2 单片机、电路板、红外发光二极管
8