版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.1基于STC单片机的智能语音控制小车一、实验目的1.随着科技的进步和社会的开展,汽车技术的开展越来越智能化。本次接口实验设计就是基于简单智能化的根底上,采用LD3320语音单元和STC单片机和L298N电机驱动,开发出基于语音无线控制与智能避障的小车,实现非特定人声语音控制小车,以及小车超声波自动避障行驶的功能,同时液晶显示出超声波前方障碍物的距离。2掌握用Altium Designer10软件绘制原理图和PCB电路,以及电路板的制作过程包括转印、腐蚀,焊接,下载与调试,熟练Keil uVision4环境以及单片机C代码的编写、调试和he*文件的生成并下载到单片机芯片,掌握软硬联调技巧与方法
2、。3掌握基于LD3320的语音单元的编程、语音处理及与单片机间的通信。二、系统总体方案本次设计的小车采用STC89C52单片机作为主控芯片,通过LD3320语音单元接单片机控制小车行驶状态包括前进、后退、左转、右转及停车;小车行驶过程中遇到障碍物,如果没有接收到语音信号而超声波检测模块检测周围障碍物小于平安距离40cm,小车自动转向,距离通过LCD1602液晶显示出来;采用L298作为电机驱动芯片驱动小车行驶。系统总体框图如图2.1:图2.1 系统总体框图三、硬件设计3.1 主控系统本次设计采用STC89C52单片机作为控制芯片,STC89C52RC是STC公司生产的一种低功耗、高性能CMOS
3、8位微控制器,具有 8K字节系统可编程Flash存储器。单片机系统电路图2:图3.1 单片机最小系统原理图复位电路:手动复位,按下复位按钮,复位脚得到VCC的高电平,单片机复位,按钮松开后,单片机开场工作。如图3.21:时钟电路:在52单片机片有一个高增益的反相放大器,反相放大器的输入端为*TAL1,输出端为*TAL2,由该放大器构成的振荡电路和时钟电路一起构成了单片机的部时钟方式。如图3.22:1复位电路:2时钟电路:图3.2 1复位电路2时钟电路3.2 超声波模块超声波模块HC-SR04是小车测距和避障的重要模块。该模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm
4、;模块包括超声波发射器、接收器与控制电路。根本工作原理:(1)采用IO口TRIG触发测距,给至少10us的高电平信号;(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;(3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S)/2;超声波时序图3.3:图3.3 超声波时序图由时序图说明你只需要提供一个10uS以上脉冲触发信号,该模块部将发出8个40kHz周期电平并检测回波。一旦检测到有回波信号则输出回响信号。回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到的回响信号时间间隔可以计算得到
5、距离。公式:uS/58=厘米或者uS/148=英寸;或是:距离=高电平时间*声速340M/S/2;建议测量周期为60ms以上,以防止发射信号对回响信号的影响。超声波电路如图3.4:图3.4 超声波电路3.3 LD3320语音识别单元语音识别作为信息技术中一种人机接口的关键技术,具有重要的研究意义和广泛的应用价值。语音识别技术的应用围极为广泛,不仅涉及到日常生活的方方面面,在军事领域也发挥着极其重要的作用。它是信息社会朝着智能化和自动化开展的关键技术,使人们对信息的处理和获取更加便捷,从而提高人们的工作效率。语音识别是将人类的声音信号转化为文字或者指令的过程。语音识别以语音为研究对象,它是语音信
6、号处理的一个重要研究方向,是模式识别的一个分支。根据在不同限制条件下的研究任务,产生了不同的研究领域。这些领域包括:根据对说话人说话方式的要求,可分为孤立字(词)、连接词和连续语音识别系统;根据对说话人的依赖程度,可分为特定人和非特定人语音识别系统;根据词汇量的大小,可分为小词汇量、中等词汇量、大词汇量以及无限词汇量语音识别系统。从语音识别模型的角度讲,主流的语音识别系统理论是建立在统计模式识别根底之上的。语音识别系统本质上是一种多维模式识别系统,对于不同的语音识别系统,人们所采用的具体识别方法及技术不同,但其根本原理都是一样的,即将采集到的语音信号送到特征提取模块处理,将所得到的语音特征参数
7、送入模型库模块,由声音模式匹配模块根据模型库对该段语音进展识别,最后得出识别结果。语音识别系统根本原理框图如图3.5所示,其中:预处理模块滤除原始语音信号中的次要信息及背景噪音等,包括抗混叠滤波、预加重、模数转换、自动增益控制等处理过程,将语音信号数字化;特征提取模块对语音的声学参数进展分析后提取出语音特征参数,形成特征矢量序列。图3.5 语音识别系统框图3.4 电机驱动小车轮子驱动采用直流减速电机,驱动芯片使用恒压恒流桥式2A驱动芯片L298N。L298是ST公司的产品,比较常见的是15脚Multiwatt封装的L298N,部同样包含4通道逻辑驱动电路。可以方便的驱动两个直流电机,或一个两相
8、步进电机。L298N芯片可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达50V,可以直接通过电源来调节输出电压;可以直接用单片机的IO口提供信号;而且电路简单,使用比较方便。L298N可承受标准TTL逻辑电平信号VSS,VSS可接4.57V电压。4脚VS接电源电压,VS电压围VIH为2.546V。输出电流可达2.5A,可驱动电感性负载。L298驱动电路如图3.6:图3.6 电机驱动电路L298N电机驱动逻辑控制表1:ENAIN1IN2运转状态0*停顿110正转101反转111停顿100停顿表1 L298N电机驱动逻辑控制根据电机驱动逻辑功能表,通过改变单片机IO口上下电平变化,可
9、以方便实现小车前进、后退、左转、右转、停顿。LCD1602液晶显示LCD1602是工业字符型液晶,能够同时显示16*02即32个字符。16列2行1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有假设干个5*7或者5*11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形。其中RS为存放器选择端,高位时是数据存放器,低位时是指令存放器;RW时读写信号线,高位时是读,低位时是写;E为使能控制端。超声波避障的距离显示采用LCD1602液晶实现。当超声波检测到前
10、方障碍物在平安距离40cm,单片机驱使小车自动转弯,并将超声波测得的障碍物的距离送到液晶并显示出来。液晶与单片机的电路图如图3.7:图3.7 液晶电路图3.6 电源与稳压电路由于小车电机的驱动电压一般选择8V,单片机的电压为5V,要实现小车供电和续航,采用18650大容量可充电锂电池,锂电池可提供12V供电,为了不影响驱动电机的供电电源和单片机供电电源产生信号干扰,设计中参加了可调降压模块,使12V18650锂电池电压调至8V后供给直流减速电机,使12V18650锂电池经7805稳压至5V后供给STC单片机、L298N电机驱动芯片、基于LD3320的语音单元和超声波等使用,L7805的稳压和电
11、源电路如图3.8:图3.8 L7805稳压和电源电路3.7 系统整体原理图与PCB主控图系统整体原理图与PCB主控图如图3.9:系统整体原理图2PCB主控图图3.9 1系统整体原理图2PCB主控图四、软件设计4.1 系统总体软件设计软件设计局局部为两大类,一类是语音芯片应用程序的开发设计,另一类是单片机下位机的程序编写。小车操作流程是:1,按下开关给单片机和驱动电路供电,系统初始化,语音启动小车;3,通过语音控制小车前进、左转、右转、后退、停顿;4,行驶过程如遇障碍物,小车自动转弯避障,同时实时显示障碍物与车的距离。小车操作流程如以下图4.1:图4.1 小车操作流程图4.2 语音识别开发图4.
12、2 语音编程界面语音单元测试语音单元测试主要是语音识别参数进展测试,测试参数有麦克风灵敏度设置,语音端点检测,语音信号起始确认时间,语音信号完毕时间,语音信号最长持续时间。参数测试主要是麦克风灵敏度和语音端点检测。通过控制变量法,在保持麦克风灵敏度一定的前提下,调节端点检测,来观察扬声器音频输出的准确性,反之,保持端点检测值至一定的前提下,调节麦克风灵敏度,以此来找到使语音准确输出的最优麦克风灵敏度参数和语音端点检测值,以保证语音输出的准确性。误差分析:本次作品的相对误差如表2,造成相对误差可从以下几方面分析。其中,环境噪声是造成误差最重要的因素,在做系统测试时,并没有做到在低分贝理想环境下进
13、展测试。其次,本次作品是使用了麦克风,所以,麦克风的灵敏度不高也会造成误差。在语音识别模块,语音断点检测和语音信息相似度也会造成误差。本次作品电源设计设置的语音信息相差太近,会对识别造成难度。最后,说话距离的远近也会造成误差,做测试时并不是每一次都在最正确距离围测试,所以会有误差。语速慢速中速较快声音dB601206012060120距离m3.852.653.152.252.751.95测试次数40正确识别次数373535312927正确率92.5%87.5%87.5%77.5%72.5%67.5%表2 语音模块误差测试4.3 单片机下位机软件设计单片机下位机软件设计采用模块化构造,由主程序定
14、时子程序、定时器中断子程序、电机驱动子程序串口中断子程序、显示子程序超声波避障子程序算法子程序构成。其中:避障中断效劳子程序完成对超声波探测器产生的外部中断进展处理,如果超出预定的危险距离就进展避障。遥控中断效劳子程序完成对遥控信号产生的串口中断进展处理,对不同的遥控信号产生相应的控制信号。超声波程序设计流程图4.3:图4.3 超声波程序流程图语音串口通信:由于语音单元和单片机通信的方式是串口,为了小车能迅速响应语音单元发送来的信号,单片机使用串口中断的方式,在中断函数里面主要就是处理中断接收到的数据,并控制电机的转向,处理函数见附录二。五、个人总结本次设计是智能语音控制小车兼有避障功能,主控
15、制芯片采用STC89C52单片机,开发LD3320语音芯片,成功实现了语音控制小车和小车的自动避障的功能。设计容包括小车硬件、软件、LD3320语音单元编程、调试等。在此期间主要完成的工作包括以下几个方面:1设计初期收集电机驱动、单片机等相关资料,对智能小车的实现原理有比较清晰的了解。2确定系统框图,对电源模块、单片机最小系统模块、LD3320语音单元和电机及其驱动电路模块等的实施方案进展比较,确定最终的智能小车控制的设计方案。3根据智能小车控制的设计方案画原理图、PCB图,转印PCB图,手工制作PCB板。4根据设计电路,购置元器件,焊接电路,完成硬件组装和调试。5根据系统要实现前进、后退、左
16、转、右转、停车、避障等功能编写出小车端的软件程序。6软硬件分别调试通过后进展整体联合调试,并查找该系统存在的缺陷,并逐步完善。8最终小车能够实现前进、后退、左转、右转、避障等功能,到达设计的根本要求。通过此次实验设计,使我对单片机编程和设计都有了进一步的了解,对软硬件的应用更加熟悉,在电路设计、PCB制板等方面都有所加强。软件设计方面,语音单元的可视化编程,在可视化编程设计方面也还有许多问题需要解决,这些都是自己以后要努力学习的地方。小车虽然根本功能实现,但仍存在一些问题,避障的稳定性并不高,仍需要不断完善。六、致首先要感*教师给了我们这样一个动手实践的时机,让我们有时机可以针对自己的兴趣进展
17、一些自主课外动手实践。本实验设计是在*教师的指导下和*同学的帮助下修改完成的。在设计过程中,*教师给予了悉心的指导,最重要的是给我们提供了解决问题的思路和方法,在此,我对*教师的细心帮助和指导表示最真挚的感!同时感所有帮助过我的教师和同学们!参考文献:郭天祥,新概念51单片机C语言教程.:电子工程,2021.1:98-103符强,任风华.基于手机蓝牙的遥控小车的设计J.*电子科技大学信息与通信学院;*电子科技大学电子工程与自动化学院,2021.谭思良等。VisualC+串口通信工程开发实例导航M.人民邮电.203宋戈,黄鹤松,员玉良,海峰.51单片机应用开发例大全.:人民邮电,2021池保忠.
18、 基于单片机的电动车控制系统设计J.机械与电子,2021,(4):51-53.王晓侃全卫基于单片机控制的多功能电动车自行车智能保护仪的设计与实现电子设计工程2005,7,107-110.王立欣,靳刚,程树康.混合电动车用PWM整流器控制方法的研究J.电机与控制学报, 2005, 9(2): 199-202.洪波基于单片机的电动车控制系统设计J.中国新技术新产品,2021,3上:21-22附录:附录一主控板和小车整体实物图:附录二单片机程序:.1*include reg52.h*include /*宏定义*/*define uchar unsigned char/宏定义无符号字符型*define
19、 uint unsignedint/宏定义无符号整型*define LCD_Data P0*define Busy 0*80 /检测LCD状态字中的Busy标识/*IO引脚定义*/sbit LCD_E =P27;sbit LCD_RW=P26;sbit LCD_RS=P25;/定义引脚sbit R* =P16;/模块超声波模块ECH0 接 P13sbit T* =P17;/超声波模块Trig 接 P14sbit IN1=P10;sbit IN2=P11;sbit IN3=P12;sbit IN4=P13;sbit EN1=P14;sbit EN2=P15;unsigned char code
20、net = ZTAI JLCM ;unsigned char code forward = ford ;unsigned char code back = back ;unsigned char code left = left ;unsigned char code right = righ ;unsigned char code stop = stop ;unsigned char code Clef = Clef ;unsignedint time=0;unsigned long S=0;bit flag =0,flagg=0;unsigned char l_disbuff4= 0,0,
21、0,0,;/显示缓冲uchar date;ucharrec,startmove=0;uchar*,speed=100,speed2;uchar ii;ucharsudu;uintmm,mmm;void delayms(unsigned int timer) /毫秒延时int*,y;for(*=timer;*0;*-)for(y=120;y0;y-);/*读状态*/unsigned char ReadStatusLCD(void)LCD_Data = 0*FF; LCD_RS = 0;LCD_RW = 1;LCD_E = 0;LCD_E = 0;LCD_E = 1;while (LCD_Data
22、& Busy); /检测忙信号return(LCD_Data);/*写数据*/voidWriteDataLCD(unsigned char WDLCD)ReadStatusLCD(); /检测忙LCD_Data = WDLCD;LCD_RS = 1;LCD_RW = 0;LCD_E = 0; /假设晶振速度太高可以在这后加小的延时LCD_E = 0; /延时LCD_E = 1;/*写指令*/voidWritemandLCD(unsigned char WCLCD,BuysC) /BuysC为0时忽略忙检测if (BuysC) ReadStatusLCD(); /根据需要检测忙LCD_Data
23、= WCLCD;LCD_RS = 0;LCD_RW = 0; LCD_E = 0;LCD_E = 0;LCD_E = 1; /*初始化*/voidLCDInit(void)LCD_Data = 0;WritemandLCD(0*38,0); /三次模式设置,不检测忙信号delayms(5); WritemandLCD(0*38,0);delayms(5);WritemandLCD(0*38,0);delayms(5);WritemandLCD(0*38,1); /显示模式设置,开场要求每次检测忙信号WritemandLCD(0*08,1); /关闭显示WritemandLCD(0*01,1);
24、 /显示清屏WritemandLCD(0*06,1); /显示光标移动设置WritemandLCD(0*0C,1); /显示开及光标设置/*按指定位置显示一个字符*/void DisplayOneChar(unsigned char *, unsigned char Y, unsigned char DData)Y &= 0*1;* &= 0*F; /限制*不能大于15,Y不能大于1if (Y) * |= 0*40; /当要显示第二行时地址码+0*40;* |= 0*80; /算出指令码WritemandLCD(*, 0); /这里不检测忙信号,发送地址码WriteDataLCD(DData)
25、;/*按指定位置显示一串字符*/void DisplayListChar(unsigned char *, unsigned char Y, unsigned char code *DData)unsigned char ListLength;ListLength = 0;Y &= 0*1;* &= 0*F; /限制*不大于15,Y不大于1while (DDataListLength=0*20) /假设到达字串尾则退出if (* =100)|flag=1) /超出测量围显示“- flag=0;DisplayOneChar(7, 1,-);DisplayOneChar(8, 1,.);Displ
26、ayOneChar(9, 1,-);DisplayOneChar(10, 1,-);DisplayOneChar(11, 1,m); else l_disbuff0=S%1000/100+0*30;/加上0*30是将数字转为ASCII码l_disbuff1=S%1000%100/10+0*30;l_disbuff2=S%1000%10 %10+0*30;DisplayOneChar(7, 1,l_disbuff0);DisplayOneChar(8, 1,.);DisplayOneChar(9, 1,l_disbuff1);DisplayOneChar(10, 1,l_disbuff2);Di
27、splayOneChar(11, 1,m); if(S40|flag=1)&(startmove=1|startmove=2) IN1=1;IN2=0; IN3=1;IN4=0;delayms(5);EN1=1;EN2=1; delayms(50); IN1=0;IN2=0;IN3=0;IN4=1;delayms(10);EN1=1;EN2=1;DisplayListChar(1, 1,Clef);delayms(800); IN1=0;IN2=1;IN3=0;IN4=1;delayms(10);EN1=1;EN2=1;void StartModule() /启动模块 T*=1; /启动一次模
28、块 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); T*=0;void main()delayms(400); /启动等待,等LCD讲入工作状态LCDInit();/初始化delayms(5); /延时片刻(DisplayListChar(0, 0,net);TMOD=0*21;/设T0为方式1 11.0592M晶振TH1=0*fd;TL1=0*fd;SCON=0*50;/串口的工作方式,设置为方式1TR1=1;/翻开定时器ES=1; /翻开串口中断TH0=0;TL0=0; ET0=1; /允许T0中断EA=1;/开启总中断while(1)StartModule();while(!R
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度茶楼与茶叶种植基地合作租赁协议4篇
- 2025年度拆除工程噪声及扬尘控制合同4篇
- 2025年度智能仓储厂房购买及自动化解决方案合同4篇
- 专属2024版月饼销售代理协议版B版
- 二零二五年度绿色能源项目商铺租赁合同样本2篇
- 2024物流企业融资租赁合同
- 2025年度厂房墙地砖节能减排改造项目合同3篇
- 2024版螺旋钢管买卖合同书
- 2025年厂区光伏发电与配电一体化工程承包合同4篇
- 2024照明工程分包合同
- 2024年江西省“振兴杯”家务服务员竞赛考试题库(含答案)
- 吉林省2024年中考物理试题(含答案)
- 长链氯化石蜡
- 小学六年级数学解方程计算题
- 春节英语介绍SpringFestival(课件)新思维小学英语5A
- 进度控制流程图
- 2023年江苏省南京市中考化学真题
- 【阅读提升】部编版语文五年级下册第四单元阅读要素解析 类文阅读课外阅读过关(含答案)
- 现在完成时练习(短暂性动词与延续性动词的转换)
- 产品质量监控方案
- 物业总经理述职报告
评论
0/150
提交评论