系列单片机音乐智能寻迹避障小车设计方案与控制.doc

上传人:牧羊曲112 文档编号:4228516 上传时间:2023-04-10 格式:DOC 页数:34 大小:760KB
返回 下载 相关 举报
系列单片机音乐智能寻迹避障小车设计方案与控制.doc_第1页
第1页 / 共34页
系列单片机音乐智能寻迹避障小车设计方案与控制.doc_第2页
第2页 / 共34页
系列单片机音乐智能寻迹避障小车设计方案与控制.doc_第3页
第3页 / 共34页
系列单片机音乐智能寻迹避障小车设计方案与控制.doc_第4页
第4页 / 共34页
系列单片机音乐智能寻迹避障小车设计方案与控制.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《系列单片机音乐智能寻迹避障小车设计方案与控制.doc》由会员分享,可在线阅读,更多相关《系列单片机音乐智能寻迹避障小车设计方案与控制.doc(34页珍藏版)》请在三一办公上搜索。

1、科学技术学院SCIENCE & TECHNOLOGYCOLLEGE OF NANCHANGUNIVERSITY 工 程 训 练报 告REPORTONENGINEERINGTRAINING题 目 基于51系列单片机的音乐智能寻迹避障小车的设计与控制 学科部、系: 信息学科部 专业班级: 电子信息工程07级2班 学 号: 7020907072 学生姓名:章良若要PCB图联系方式为QQ275047015 指导教师: 罗小青、彭岚峰 起讫日期:2018-4-19基于51系列单片机的音乐智能寻迹避障小车的设计与控制专业:电子信息工程 学号:7020907072学生姓名:章良 指导教师:罗小青、彭岚峰摘

2、要 在日常生活中人们,电子产品和人的生活密不可分,我们接触的电子产品有像平常用的手机、电脑、相机等高端的电子产品;也有像平常用的通电器,收音机等低端的电子产品;有智能的电子产品,也有非智能的电子产品。电子产品的总类是很多的,而在众多电子产品中有些带简单的智能控制的往往用到一些小芯片如单片机和一些传感类的器件如光耦元件、红外避障器等。本次工程训练我们就将采用51系列的AT89C51单片机和光耦器件RPR220和红外避障器E18-D80NK为主要的器件来制作音乐智能寻迹避障小车的控制电路,通过训练来达到对课本知识的更深认识和运用。目 录第一章 音乐智能寻迹避障小车的概述1.1音乐智能寻迹避障小车工

3、作原理3 1.2音乐智能寻迹避障小车的目的要求、技术指标及训练任务4第二章 设计方案的选择和确定2.1方案的主要组成部分及整体原理图5第三章 系统硬件设计3.1传感部分的设计103.2控制部分的设计12第四章 系统的 软件设计4.1流程图144.2程序清单15第五章 性能测试与分析5.1传感PCB板传感信号的测量205.2控制PCB板测量205.3小车跑道测试20第一章 音乐智能寻迹避障小车的概述1.1音乐智能寻迹避障小车工作原理所谓寻迹是在一个白色的塑料泡沫板上的宽25cm左右的有黑色电工胶布做成的椭圆轨道上寻黑线。避障是在小车在轨道上寻迹是当发现前方有障碍物时采取一定的操作,避免碰撞,在这

4、里是停车。音乐是只在启动、左转、右转、停车、前方有障碍、倒退时可以放出小车本身有的语音信号,在这里是从过但单片机发送解码来控制。智能控制也是由单片机来实现的。寻迹:寻迹是通过红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。红外探测器探测距离有限,一般最大不应超过3cm。避障:避障是通过光电传感器来实现的,它可以通传感器上面的旋钮来控制障

5、碍物感应距离,但范围是有限制的,但这里用到的E18-D80NK的感应距离在3cm到80cm之间。音乐:音乐采用小车自带的音乐。智能控制:智能控制是采用单片机来处理所收集的信号,在由设定的来控制电路,从而达到智能控制。1.2音乐智能寻迹避障小车的目的要求、技术指标及训练任务目的要求:学生通过基于51系列单片机的音乐智能寻迹避障小车的设计与控制实训,除了加深和巩固学生课程理论学习之外,更重要的是加强实践、拓展应用,让学生了解基于51系列单片机的开发和运用的一个整体开发流程,包括在训练中要求学生能够自己根据性能指标和功能要求掌握硬件电路的设计和制作、元器件的选用和安装、软件的编写和调试,同时学会硬件

6、仿真、软件仿真和整机联调,其中最关键的两部分:硬件电路设计与制作和控制软件的编写以及调试,使得准产品最后达到技术指标的要求。技术指标:1、音乐智能寻迹小车需基于51系列单片机进行开发和设计。2、能实现在椭圆轨道、S形轨道,太极图形轨道等多种规则黑线轨道上寻迹运行,并还可以实现在任意黑线轨道上运行。3、至少两种方式启动:一是通过掌声、口声等其它声音启动;二是能通过检测到黑线后自行启动等其它。4、实现仿真实小车的声音和车灯效果:小车前进时有真车前进声音和车灯效果,小车左拐弯时有真车左拐弯声音和车灯效果,小车右拐弯时时有真车右拐弯声音和车灯效果,小车后退时有真车后退声音和车灯效果,小车遇到障碍物时有

7、真车鸣喇叭声音和车灯效果、并自动绕开障碍物前行。5、小车寻迹避障运行完之后能伴随音乐翩翩起舞演示。6、小车外观包装优美、电路设计制作焊接等工艺精良、软件程序可读性强。7、可扩展其它功能。实训任务:1、根据技术指标,提出可行性方案,经分析比较选出符合功能和性能要求的实际方案。2、利用电路绘图软件例如:PTOTEL DXP)画出电路原理图。3、写出软件流程图,利用编程软件例如KEIL)编写、编绎程序。4、利用电路仿真软件例如:PROTEUS、MULTISIM)结合编程软件进行硬件电路联合仿真。5、根据电路原理图和元器件的尺寸大小利用电路绘图软件: 内部频率补偿 直流电压增益高(约100dB 单位增

8、益频带宽(约1MHz 电源电压范围宽:单电源(330V;双电源(1.5 一15V 低功耗电流,适合于电池供电 低输入偏流 低输入失调电压和失调电流 共模输入电压范围宽,包括接地 差模输入电压范围宽,等于电源电压范围 输出电压摆幅大(0 至Vcc-1.5VLM324系列器件为价格便宜的带有真差动输入的四运算放大器。与单电源应用场合的标准运算放大器相比,它们有一些显著优点。该四放大器可以工作在低到3.0伏或者高到32伏的电源下,静态电流为MC1741的静态电流的五分之一。共模输入范围包括负电源,因而消除了在许多应用场合中采用外部偏置元件的必要性。每一组运算可用图1所示的符号来表示,它有5个引出脚,

9、其中“+”、“-”为两个信号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。两个信号输入端中,Vi-)为反相输入端,表示运放输出端Vo的信号与该输入端的位相反;Vi+)为同相输入端,表示运放输出端Vo的信号与该输入端的相位相同。LM324的引脚排列见图2。LM324的特点:1.短跑保护输出2.真差动输入级3.可单电源工作:3V-32V4.低偏置电流:最大100nA5.每封装含四个运算放大器。6.具有内部补偿的功能。7.共模范围扩展到负电源8.行业标准的引脚排列9.输入端具有静电保护功能避障传感部分: 这部分较为简单就是用到一个光电传感器E18-D80NK,这是一种集发射与接收于一体

10、的光电传感器。主要用于障碍物的检测。对障碍物的感应距离可以根据要求通过后部旋钮进行调节。该传感器具有探测距离远、受可见光干扰小、价格便宜、易于装配、使用方便等特点、可以广泛应用于机器人避障、流水线计件等众多场合。声音传感部分: 声音传感部分采用了一个驻极体和三极管的两级放大组成,驻极体外观如右图所示焊锡一边分2小块的接“+,”另一接地。三极管用到了8050,也可用9013,9014的,不管哪种,其封装都是TO-92 如图有所示。传感信号处理部分:信号处理部分是采用了单片机,如AT89C51,AT89S52都可以,我们处理的数据很少,所以2种任意的都可以,其封装管脚也相同,我们以AT89C51为

11、例说明AT89C51是一种带4K字节闪烁可编程可擦除FPEROMFlash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C51是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供

12、了一种灵活性高且价廉的方案。外形及引脚排列如图所示 主要特性:与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24MHz三级程序存储器锁定1288位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路注:控制输出部分做驱动最好都接一上拉电阻控制输出部分主要就是电机的控制,在这里我们采用了一个电机驱动芯片LG9110下面是LG9110资料:整体原理图:由于是分2块PCB板制作的,所以分成传感Ur和UiUr两种不同情况下,电压比较器输出两个不同的电平,即高电平和低电平

13、。而Ui变化经过Ur时,比较器的输出将从一个电压跳变到另一个电平。比较器有各种不同的类型。对它的要求是:鉴别要准确,反应要灵敏,动作要迅速,抗干扰能力要强,还应有一定的保护措施,以防止因过电压或过电流而造成器件损坏。比较器的特点: 工作在开环或正反馈状态。放大、运算电路为了实现性能稳定并满足一定的精度要求,这些电路中的运放均引入了深度负反馈;而为了提高比较器的反应速度和灵敏度,它所采用的运放不但没有引入负反馈,有时甚至还加正反馈。因此比较器的性能分析方法与放大、运算电路是不同的。 非线性。由于比较器中运放处于开环或正反馈状态,它的两个输入端之间的电位差与开环电压放大倍数的乘积通常超过最大输出电

14、压,使其内部某些管子进入饱和区或截止区,因此在绝大多数情况下输出与输入不成线性关系,即在放大、运算等电路中常用的计算方法对于比较器不再适用。 开关特性。比较器的输出通常只有高电平和低电平两种稳定状态,因此它相当与一个受输入信号控制的开关,当输入电压经过阈值时开关动作,使输出从一个电平跳变到另一个电平。由于比较器的输入信号是模拟量,而它的输出电平是离散的,因此电压比较器可作为模拟电路与数字电路之间的过渡电路。由于比较器的上述特点,在分析时既不能象对待放大电路那样去计算放大倍数,也不能象分析运算电路那样去求解输出与输入的函数关系,而应当着重抓住比较器的输出从一个电平跳变到另一个电平的临界条件所对应

15、的输入电压值 有可供用户使用的大量I/O口线。(2 内部存储器容量有限。(3 应用系统开发具有特殊性。单片机最小系统1、时钟电路AT89C51虽然有内部振荡电路,但要形成时钟,必须外部附加电路。51单片机的时钟产生方法有两种。内部时钟方式和外部时钟方式。本设计采用内部时钟方式,利用芯片内部的振荡电路,在XTAL1、XTAL2引脚上外接定时元件,内部的振荡电路便产生自激振荡。本设计采用最常用的内部时钟方式,即用外接晶体和电容组成的并联谐振回路。振荡晶体可在1.2MHZ到12MHZ之间选择。电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小、振荡电路起振速度有少许影响,CX1、CX2可在20

16、pF到100pF之间取值,由于材料的限定,所以本设计中,振荡晶体选择12MHZ,电容选择30pF.在设计印刷电路板时,晶体和电容应尽可能靠近单片机芯片安装,以减少寄生电容,更好的保证振荡器稳定和可靠地工作。为了提高温度稳定性,应采用瓷片电容。2、复位电路AT89C51的复位是由外部的复位电路来实现的。复位引脚RST通过一个斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。复位电路通常采用上电自动复位和按钮复位两种方式。最简单的上电自动复位电路如图上复位电路所示。上电自动复位是通过外部复位电路的电容充电来实现的。只

17、要Vcc的上升时间不超过1ms,就可以实现自动上电复位。时钟频率用6MHZ时C取22uF,R取1K。除了上电复位外,有时还需要按键手动复位。本设计就是用的按键手动复位。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST端经电阻与电源Vcc接通而实现的。按键手动复位电路见下图。时钟频率选用12MHZ时,C取10uF,R取100,RK取10K。控制输出部分:控制输出在这里用到的是一个电机驱动芯片LG9110,使用和连接电路非常简单,如下图为应用电路控制部分PCB图:第四章 系统的 软件设计4.1流程图 在设计一个完整的程序时,我们往往将程序拆分成多个单独的程序即为我们设计程序的子程序。

18、程序设计流程图:否传感4,5是否为黑线或有无声音等待启动信号初始化开始寻迹行驶是否偏离是否有障碍是否检测到终点停车,并做停车演示否转向修正,并做相应演示继续检测是否否是是停车,并按喇叭否继续检测继续检测否4.2程序清单/*07电子工程训练工程:自动寻迹音乐小车程序,为使小车启动简便启动和报告中有点差异*/*creat by:HE SHANGPING */*creat data:2018-3-20*/*vision:v2.40*/*头文件调用和宏定义*/#include #include #include #include #define uchar unsigned char /无符号字符类型

19、定义#define uint unsigned int /无符号整数类型定义/*变量初始化*/sbit BZ=P17。sbit MIC=P16。sbit musicdecode=P20。sbit QDdcmotor_IA=P21。sbit QDdcmotor_IB=P22。sbit FXdcmotor_IA=P23。sbit FXdcmotor_IB=P24。uchar xunjidecode=0x00。uchar kjflag=0。/*函数声明*/void musicdelay(uint z。void stopcar(。void kjstopdecode(。void ZUOZHUANcar(

20、。void ZUOZHUANdecode(。void QJcar(。void QJdecode(。void backcar(。void backdecode(。void YOUZHUANcar(。void YOUZHUANdecode(。void bzdecode(。void showmusiccar(。void musicdelay(uint zuint x,y。for(x=z。x0。x-for(y=60。y0。y-。void stopcar(QDdcmotor_IA=0。 QDdcmotor_IB=0。 FXdcmotor_IA=0。 FXdcmotor_IB=0。 void kjstop

21、decode( uint i。 for(i=4。i0。i- musicdecode=1。/1musicdelay(1。 /*每个脉冲信号0.5ms,一组共32.2ms*/musicdecode=0。 /2musicdelay(1。musicdecode=1。/3musicdelay(3。musicdecode=0。/4musicdelay(1。musicdecode=1。/5musicdelay(3。musicdecode=0。/6musicdelay(1。musicdecode=1。/7musicdelay(3。musicdecode=0。/8musicdelay(1。 musicdecod

22、e=1。/9musicdelay(3。musicdecode=0。/10musicdelay(1。 musicdecode=1。/11musicdelay(3。musicdecode=0。/12musicdelay(1。 musicdecode=1。/13musicdelay(3。musicdecode=0。/14musicdelay(3。 musicdecode=1。/15musicdelay(1。musicdecode=0。/16musicdelay(1。 musicdecode=1。/17musicdelay(3。musicdecode=0。/18musicdelay(1。 musicd

23、ecode=1。/19musicdelay(3。musicdecode=0。/20musicdelay(1。 musicdecode=1。/21musicdelay(3。musicdecode=0。/22musicdelay(3。musicdecode=1。/23musicdelay(1。musicdecode=0。/24musicdelay(1。 musicdecode=1。/25musicdelay(3。musicdecode=0。/26musicdelay(3。 musicdecode=1。/27musicdelay(1。musicdecode=0。/28musicdelay(3。 mu

24、sicdecode=1。/29musicdelay(1。musicdecode=0。/30musicdelay(3。 musicdecode=1。/31musicdelay(1。musicdecode=0。/32musicdelay(3。void ZUOZHUANcar( FXdcmotor_IA=1。 FXdcmotor_IB=0。/ musicdelay(20。 QDdcmotor_IA=1。 QDdcmotor_IB=0。 musicdelay(125。 QDdcmotor_IA=0。 QDdcmotor_IB=0。/ musicdelay(15。 void ZUOZHUANdecode

25、( uint i。 for(i=4。i0。i- musicdecode=1。/1musicdelay(1。musicdecode=0。 /2musicdelay(1。musicdecode=1。/3musicdelay(3。musicdecode=0。/4musicdelay(1。musicdecode=1。/5musicdelay(3。musicdecode=0。/6musicdelay(1。musicdecode=1。/7musicdelay(3。musicdecode=0。/8musicdelay(1。 musicdecode=1。/9musicdelay(3。musicdecode=0

26、。/10musicdelay(1。 musicdecode=1。/11musicdelay(3。musicdecode=0。/12musicdelay(3。 musicdecode=1。/13musicdelay(1。musicdecode=0。/14musicdelay(1。 musicdecode=1。/15musicdelay(3。musicdecode=0。/16musicdelay(1。 musicdecode=1。/17musicdelay(3。musicdecode=0。/18musicdelay(1。 musicdecode=1。/19musicdelay(3。musicdec

27、ode=0。/20musicdelay(1。 musicdecode=1。/21musicdelay(3。musicdecode=0。/22musicdelay(3。musicdecode=1。/23musicdelay(1。musicdecode=0。/24musicdelay(1。 musicdecode=1。/25musicdelay(3。musicdecode=0。/26musicdelay(3。 musicdecode=1。/27musicdelay(1。musicdecode=0。/28musicdelay(3。 musicdecode=1。/29musicdelay(1。musi

28、cdecode=0。/30musicdelay(3。 musicdecode=1。/31musicdelay(1。musicdecode=0。/32musicdelay(3。void QJcar(QDdcmotor_IA=1。 QDdcmotor_IB=0。 musicdelay(125。 QDdcmotor_IA=0。 QDdcmotor_IB=0。 /musicdelay(15。 FXdcmotor_IA=0。 FXdcmotor_IB=0。 void QJdecode( uint i。 for(i=4。i0。i- musicdecode=1。/1musicdelay(1。musicdec

29、ode=0。 /2musicdelay(1。musicdecode=1。/3musicdelay(3。musicdecode=0。/4musicdelay(1。musicdecode=1。/5musicdelay(3。musicdecode=0。/6musicdelay(1。musicdecode=1。/7musicdelay(3。musicdecode=0。/8musicdelay(3。 musicdecode=1。/9musicdelay(1。musicdecode=0。/10musicdelay(1。 musicdecode=1。/11musicdelay(3。musicdecode=0

30、。/12musicdelay(1。 musicdecode=1。/13musicdelay(3。musicdecode=0。/14musicdelay(1。 musicdecode=1。/15musicdelay(3。musicdecode=0。/16musicdelay(1。 musicdecode=1。/17musicdelay(3。musicdecode=0。/18musicdelay(1。 musicdecode=1。/19musicdelay(3。musicdecode=0。/20musicdelay(1。 musicdecode=1。/21musicdelay(3。musicdec

31、ode=0。/22musicdelay(3。musicdecode=1。/23musicdelay(1。musicdecode=0。/24musicdelay(1。 musicdecode=1。/25musicdelay(3。musicdecode=0。/26musicdelay(3。 musicdecode=1。/27musicdelay(1。musicdecode=0。/28musicdelay(3。 musicdecode=1。/29musicdelay(1。musicdecode=0。/30musicdelay(3。 musicdecode=1。/31musicdelay(1。musi

32、cdecode=0。/32musicdelay(3。void backcar(QDdcmotor_IA=0。 QDdcmotor_IB=1。 musicdelay(200。 QDdcmotor_IA=0。 QDdcmotor_IB=0。/ musicdelay(10。 FXdcmotor_IA=0。 FXdcmotor_IB=0。 void backdecode( uint i。 for(i=4。i0。i- musicdecode=1。/1musicdelay(1。musicdecode=0。 /2musicdelay(1。musicdecode=1。/3musicdelay(3。musicd

33、ecode=0。/4musicdelay(1。musicdecode=1。/5musicdelay(3。musicdecode=0。/6musicdelay(3。musicdecode=1。/7musicdelay(1。musicdecode=0。/8musicdelay(1。 musicdecode=1。/9musicdelay(3。musicdecode=0。/10musicdelay(1。 musicdecode=1。/11musicdelay(3。musicdecode=0。/12musicdelay(1。 musicdecode=1。/13musicdelay(3。musicdeco

34、de=0。/14musicdelay(1。 musicdecode=1。/15musicdelay(3。musicdecode=0。/16musicdelay(1。 musicdecode=1。/17musicdelay(3。musicdecode=0。/18musicdelay(1。 musicdecode=1。/19musicdelay(3。musicdecode=0。/20musicdelay(1。 musicdecode=1。/21musicdelay(3。musicdecode=0。/22musicdelay(3。musicdecode=1。/23musicdelay(1。music

35、decode=0。/24musicdelay(1。 musicdecode=1。/25musicdelay(3。musicdecode=0。/26musicdelay(3。 musicdecode=1。/27musicdelay(1。musicdecode=0。/28musicdelay(3。 musicdecode=1。/29musicdelay(1。musicdecode=0。/30musicdelay(3。 musicdecode=1。/31musicdelay(1。musicdecode=0。/32musicdelay(3。void YOUZHUANcar( FXdcmotor_IA=0。 FXdcmotor_IB=1。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号