《单片机课程设计基于单片机的循迹小车大学论文》由会员分享,可在线阅读,更多相关《单片机课程设计基于单片机的循迹小车大学论文(20页珍藏版)》请在金锄头文库上搜索。
1、黄山学院单片机课程设计说明书专 业: 自动化班 级: 14自动化2班学生姓名: 指导老师:成绩: 目 录第1章 绪论11.1引言11.2课题任务要求11.3本论文研究的内容2第2章 系统总体设计32.1小车的机械特性32.2智能小车寻迹基本原理3第3章 系统硬件设计53.1控制器的选择53.1.1概述53.1.2STC89C51开发工具特性53.2硬件电路设计63.2.1系统电源电路63.2.2电机驱动模块73.2.3红外线检测电路9 3.3 附加功能10 3.3.1 蓝牙小车10第4章 系统软件设计124.1编译环境124.2模块的驱动124.2.1红外线传感器模块124.2.2电机模块的驱
2、动134.2.3按键模块21第5章 系统调试分析265.1系统设计中的注意事项265.1.1外部因素265.1.2内部因素265.2硬软件总体调试26第6章 结束语27致谢28参考文献29附录30第1章 绪论1.1 引言我们所处的这个时代是信息革命的时代,各种新技术、新思想层出不穷,纵观世界范围内智能汽车技术的发展,每一次新的进步无不是受新技术新思想的推动。随着汽车工业的迅速发展,传统的汽车的发展逐渐趋于饱和。伴随着电子技术和嵌入式技术的迅猛发展,这使得汽车日渐走向智能化。智能汽车由原先的驾驶更加简单更加安全更加舒适,逐渐的向智能驾驶系统方向发展。智能驾驶系统相当于智能机器人,能代替人驾驶汽车
3、。它主要是通过安装在前后保险杠及两侧的红外线摄像机,对汽车前后左右一定区 域进行不停地扫描和监视。计算机、电子地图和光化学传感器等对红外线摄像 机传来的信号进行分析计算,并根据道路交通信息管理系统传来的交通信息,代替人的大脑发出指令,指挥执行系统操作汽车。1.2 课题任务要求 应用STC89C51微控制器中的端口、外部中断、定时器等基本模块,实现核心控制,再结合电源板、电机驱动板来控制电机的转向,最后加上传感检测模块,实现小车的智能寻迹。 这次课程实践要求每一同学都要动手都制作出一辆循迹小车,真正实现从听中学到做中学,提高同学们的动手能力。这次实践最基本的功能底线就是能够实现循迹和壁障。 1.
4、3 本论文研究的内容本论文是基于STC89C51单片机开发,主要是研究4轮小车的路径识别。第2章 系统总体设计2.1 小车的机械特性小车采用的是一辆三轮车车模。后轮控件前进或转弯,前轮根据后轮驱动左右摆动即可以实现左右转。该种车模控制简单。小车可通过PWM控制后轮电机转动的速度来控制前轮电机的转动幅度从而控制小车的转弯幅度,实现小车的前进与转弯操作。小车可通过对DIR控制后退。2.2 寻迹小车基本原理探测路面黑线的基本原理:光线照射到路面并反射,由于黑线和白纸对光的反射系数不同,可以根据接收到的反射光强弱来判断是否是黑线。利用这个原理,可以控制小车行走的路迹。这里的循迹是指小车在白色地板上循黑
5、线行走,通常采取的方法是红外探测法。红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。处理器就根据是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。红外探测器探测距离有限,一般最大不应超过3cm。智能小车系统以处理器为核心, 为了使智能小车能够快速行驶,处理器必须把路径的迅速判断、相应的转向电机控制以及直流驱动电机的控制精密地结合在一起。如果传感器部分的数据没有正确地采集和识别,转向电机控制的失
6、当,都会造成模型车严重抖动甚至偏离赛道;如果直流电机的驱动控制效果不好,也会造成直线路段速度上不去,弯曲路段入弯速度过快等问题。其系统结构如所图 2.2示。本次红外探测采用的是反射式探测。电源板电机驱动STC89C51单片机红外传感图 2.2 系统结构图 89C51处理器通过引脚读出超声波信号管脚89C51处理器向红外线传感器供5V电压,通过采集其高低电平可以控制小车的转弯。89C51处理器通过DATA引脚向键盘显示板发送要显示的数据,还可以通过KEY引脚读取键盘的按键,实现相应的功能。第3章 系统硬件设计3.1 控制器的选择本次设计采用的是89C51单片机。3.1.1 概述 STC89C51
7、是一款由美国NXP半导体公司提供的增强型89C51微控制器,包括16KB Flash程序存储器和1KB数据RAM,且功能上完全覆盖标准89C51单片机系列3.1.2 STC89C51 开发工具特性1.89C51内核,5V工作电压,操作频率040MHZ;2.16KB片内Flash存储器,1KB片内SRAM;3.SPI串行通信接口和增强型UART;4.PCA(可编程计数器列阵),具有PWM和捕获、比较功能;5.4个8位I/O口,含有三个高电流P1口(每个I/O口的电流为16mA);6.8个中断源,4个中断优先级,3个16位定时器/计数器和可编程看门狗定时器(WDT);7.2个DPTR寄存器;3.2
8、 硬件电路设计本次项目采用的电路板从画电路原理图开始,到PCB板的布线以及电路板的焊接与检测一系列工作都是自己在大一下学期课程实践期间制作的。3.2.1 系统电源电路交流电经过全波电路在经过电容滤波,在经过稳压电源芯片做成稳压电路,输出电压5V、7.2V的直流电源。其电源电路原理图如图3.2所示。图 3.2 系统电源电路原理图图3.3 硬件电路1图3.4 硬件电路图2小车的驱动电机的供电电压为7.2V,经过电容滤波后接7805进行稳压,稳压输出5V的电压。提供单片机所需5V电压。3.2.2 电机驱动模块1. 驱动实现与原理本项目驱动两路直流电机,实现电机的正反转与测速和遥控。输入输出逻辑表真值
9、表3.2。表 3.2 L298N输入输出逻辑真值表通道1通道2输入输出控制电机1输入输出控制电机2EnAIn1In2OUT1OUT2转向EnBIn3In4OUT3OUT4转向10000停止10000停止0101反传0101反传1010正转1010正转1100停止1111停止0XX00停止0XX00停止其中“0”为低电平;“1” 为高电平;“X” 为任何状态。图3.5驱动原理图红外线检测电路红外对管电路原理其实很简单,就是利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收,Corte
10、x-M0内核采集到的电压就是高电平;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光,然后89C51内核采集到的电压就是低电平。其基本原理图如图3.6所示。图3.6 红外线检测电路原理图鉴于本项目设计需实现的功能比较简单,故只要两路红外线检测电路即可,分别位于小车中心轴的两测即可。3.3 附加功能3.3.1 蓝牙模块蓝牙模块,是一种集成蓝牙功能的PCBA板,用于短距离无线通讯,按功能分为蓝牙数据模块和蓝牙语音模块。图3.6 蓝牙模块作为取代数据电缆的短距离无线通信技术,蓝牙支持点对点以及点对多点的通信,以无线方式将家庭或办公室中的各种数据和语音设备连成一个微微网(Piconet),几个
11、微微网还可以进一步实现互联,形成一个分布式网络(scatternet),从而在这些连接设备之间实现快捷而方便的通信。本文介绍蓝牙接口在嵌入式数字信号处理器OMAP5910上的实现,DSP对模拟信号进行采样,并对A/D变换后的数字信号进行处理,通过蓝牙接口传输到接收端,同样,DSP对蓝牙接收到的数字信号进行D/A变换,成为模拟信号。蓝牙信号的收发采用蓝牙模块实现。此蓝牙模块是公司最近推出的遵循蓝牙V1.1标准的无线信号收发芯片,主要特性有:具有片内数字无线处理器DRP(DigitalRadioProcessor)、数控振荡器,片内射频收发开关切换,内置ARM7嵌入式处理器等。接收信号时,收发开关
12、置为收状态,射频信号从天线接收后,经过蓝牙收发器直接传输到基带信号处理器。基带信号处理包括下变频和采样,采用零中频结构。数字信号存储在RAM(容量为32KB)中,供ARM7处理器调用和处理,ARM7将处理后的数据从编码接口输出到其他设备,信号发过程是信号收的逆过程,此外,还包括时钟和电源管理模块以及多个通用I/O口,供不同的外设使用。的主机接口可以提供双工的通用串口,可以方便地和PC机的RS232通信,也可以和DSP的缓冲串口通信。3.3.2 蓝牙小车1)利用单片机和安卓操作系统的智能手机编制主控界面;2)蓝牙手机与车载的蓝牙装备配对,建立无线通信单,片机的RX 和TX接蓝牙模块,用于实现十米
13、范围内遥控小车;3)自制驱动电机电路,STC89C51的P03接L298N的IN14,控制小车的转向;P2的0和1口接L298N的ENA和ENB,通过控制使能端实现小车轮子的转速控制,实现小车转弯。由于单片机STC89C51没有直接输出的PWM信号,所以利用单片机的两个定时器输出一定周期内的高低电平给L298N控制小车的转速。第4章 系统软件设计4.1 编译环境Keil集成开发环境(又称Keil IDE)是广州致远电子有限公司开发的一个微处理器软件开发平台,是一款具有强大内置编辑器的多内核编译调试环境,支持8051、ARM、AVR等多种微控制器,可以完成从工程建立和管理,编译,链接,目标代码的
14、生成,到软件仿真,硬件仿真(挂接TKS系列仿真器等硬件)等完整的开发流程。Keil集成开发环境包括工程管理器、代码编辑器、编译工具链、源码级调试器和外部工具等。4.2 模块的驱动4.2.1 红外线传感器模块红外线模块只要M0处理器向其供5V电压就能工作,然后通过引脚采集其电平高低就可以根据不同情况做出相应的处理。其具体程序控制见程序清单4.1.程序清单 4.1读取红外传感器的高低电平void Track(void) if(IN1=0&IN2=0)|(IN1=1&IN2=1) Forward(); /调用前进函数 if(IN1=1&IN2=0) Lift(); /调用左转函数 if(IN1=0&IN2=1)