【《语音控制智能车系统的硬件和软件设计案例》7500字】_第1页
【《语音控制智能车系统的硬件和软件设计案例》7500字】_第2页
【《语音控制智能车系统的硬件和软件设计案例》7500字】_第3页
【《语音控制智能车系统的硬件和软件设计案例》7500字】_第4页
【《语音控制智能车系统的硬件和软件设计案例》7500字】_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件设计因为本设计方案选择的是单片机板和安卓手机软件组合设计和实现语音控制的智能车,并且使用了两块单片机板,因此本章节主要讲述两个单片机系统的软件设计以及开发安卓软件的软件设计。首先介绍一下单片机代码编程软件和安卓开发环境,然后开始介绍终端中智能车通信控制系统的软件设计、智能车运动系统的软件设计和客户端中安卓手机软件的系统设计,最后详细讲述上述三个系统中主要程序的逻辑与设计。2.1编程软件介绍2.1.1开发软件KeiluVision5与STC-ISP的介绍本次毕业设计所需要的智能车系统的程序开发需要进行软件编程,因此需要一款功能强大,简洁好用的开发软件,而所编写的代码基本上是用的C语言,因此使用Keil软件,并且使用的是C51的版本,同时在代码编写完成后,需要另一款软件将程序烧录进单片机中,从而让单片机按照所编写的程序进行工作运行,实现所需要的功能,因此选择了STC-ISP软件。接下来对这两个软件做一个简单的介绍。系统概述:KeilC51拥有着十分强大的功能,而且功能的种类也十分多,还有这各种各样的函数组成的库,并着有着优秀的界面,使得在操作上基本上和操作电脑界面一样,成为了现在单片机开发时需要对代码进行编程的使用最多的代码编写软件。KeilC51运行是需要合适的开发环境的,需要在Windows系统上安装软件并进行相应的配置,软件中代码的编写主要是通过.c文件实现的,我们建立一个.c文件后在该文件中将我们写的代码进行编译,经过软件一系列的处理,看是否有错误,在没有错误之后会提示我们,之后如果我们想验证代码的正确与否,可以使用软件的调试功能,或者生成.hex文件,利用程序烧写程序,将生成的.hex文件下载到单片机上。该软件因为使用的是C语言的编程,利用C语言的优点,可以有许多的函数可以使用,实现各种各样的功能,而且还因为C语言有着很好的可以在其他地方稍作修改就可以使用的特点,使得这个软件成为非常适合编写代码并且有一定的纠错和调试的软件。STC-ISP软件的主要作用是将单片机代码编写软件编写好的对应程序下载到单片机上,是专门开发出来的软件,为了让STC系列的单片机可以进行程序文件的烧录,基本上只要是STC单片机,该软件都可以正常工作,并且操作也不复杂,下载的流程也十分的简单,成为开发者的主要的使用的软件。STC-ISP的软件操作界面如图5—1所示。图5—1软件操作界面图2.1.2安卓开发编程环境在安卓开发的编程环境中,我选择了MIT开发的图形化编程软件APPInventor2。作为AppInventor新版本的APPInventor2,完全基于浏览器,开发者除了浏览器不需要额外安装任何软件。图形化的界面、云积木的方式,使得安卓软件开发变得便利简单,使用起来也不会有太大的难度,做出的功能也能够满足基本的设计要求,而且网站上也具有调试功能,通过安装调试助手,将开发的程序运行在调试助手上,省去了每次都要将程序打包,安装,再进行验证调试的步骤,而且也能实时的报错提示,对开发者找到软件的错误所在提供了帮助。2.2智能车通信与控制系统软件设计智能车通信与控制系统是基于STC12单片机实现,因此该系统设计的主程序是完成STC12单片机与STC89单片机的串口通信、STC12单片机与手机软件通信和实现使用智能车的功能模块:测速模块、数码管显示模块、红外避障模块和循迹模块。2.2.1工作流程图5—2STC12单片机系统流程图STC12单片机系统流程图如图5—2所示。STC12单片机板上电启动后,首先对测速功能、两个串口通信功能所需要的中断和一些定时器以及寄存器进行配置和初始化,等待手机连接上单片机板上的蓝牙,建立起通信后,开始接收测速模块的速度数据信息显示在数码管上,并通过蓝牙发送速度数据信息至手机,并时刻监测并验证是否手机发来的指令信息是否正确,当接受到正确的指令信息时,单片机会根据程序中的状态机机制将发送对应指令信息的控制指令至STC89单片机板,并回复客户端对应指令操作已完成。如果所接收到的控制指令需要小车的一些信息,便会发送相关数据,如进行速度设置后需要将目前速度值发送至客户端,该系统会发送当前速度设置值。2.2.2串口通信和蓝牙串口通信软件设计因为STC12单片机有两个串口,可用于蓝牙通信以及和STC89单片机的串口通信,首先对串口所需要的波特率进行配置和初始化,利用单片机上的独立波特率发生器作为波特率的发生器,两个串口可使用同一个波特率,串口初始化程序如下:对于数据处理,在串口2中断中进行数据的接收,设置每一次接收到的指令字节为3,并判断接受的数据是否正确,如果正确,则保存至字符串数组,并将设置接收完毕标志位和接收正确标志位,串口中断数据接收判断程序如下:2.2.3速度测量功能设计为了能够得知智能车的速度,以便我们更好的控制智能车的速度,利用速度测量模块和固定在电机上并随之同步运动的码盘,电机每转一圈,测量模块输出20个低电平信号,利用STC12单片机设置单位时间为1s,获得接收到的脉冲信号个数以及利用轮胎的周长,经过计算得出1s内智能车行驶的路程,从而得到智能车的速度相关数据。定时器和外部中断设置程序如下:2.3智能车运动系统软件设计2.3.1工作流程STC89单片机板上电启动后,首先对PWM波速度控制功能,串口通信功能所需要的中断和一些定时器以及寄存器进行配置和初始化,并设置一些数据的初始值,如智能车的速度、当前智能车的状态。建立起和STC12单片机板的通信后,智能车处于停止状态,等待STC12单片机板发送控制指令,接收到指令后,利用程序中的状态机机制,完成对应功能,如前进、后退、左转、右转、停止、循迹功能、速度控制功能和避障功能,并在数码管上显示不同的数字代表处于不同的状态下。STC89单片机系统流程图如图5—3所示。图5—3STC89单片机系统流程图2.3.2电机驱动与速度控制设计因为L298N电机驱动模块(简称驱动板)有A、B通道使能端(简称使能端)和四个单片机IO控制输入端(简称输入端),只有两个使能端为高电平时,驱动板才可以通过输出端口驱动两路的直流电机,因此对于速度的控制有两种方案:第一种方案是STC89单片机输出四路PWM波输出至驱动板的输入端,第二种方案是STC89单片机输出两路PWM波输出至驱动板的使能端。第二种方案仅仅需要两路PWM波便可以实现对智能车速度控制,因此选择方案二实现速度控制。PWM波输出实现程序如下:首先利用对定时器进行初始化,设置每1ms进行一次定时器中断,在定时器中断程序中对定时器的寄存器再次重新赋值再次开始计时,并记录中断次数,通过中断次数的处理获得更为准确并且足够长的时间,从而实现PWM波的周期、占空比的设置。速度控制程序如下(左右电机速度控制程序基本相同,只需要介绍一个程序):程序说明:通过设置20ms周期的时间,即定时器1ms的中断次数为20次时,将次数赋值为0,重新计数,我们通过调节占空比(push_val_right),当中断次数小于或等于控制占空比的变量值时,使得控制右电机的使能端为高电平,当中断次数大于控制占空比的变量值时,使得控制右电机的使能端为低电平,从而控制驱动板的电机驱动是否工作,从而实现PWM波的输出,并利用驱动板的四个输入端实现电机的正转、反转、停止,通过左右电机的配合实现智能车的左右转、直行和停止,并调节PWM波的占空比,实现控制电机一个工作周期内的工作时间,从而实现对智能车的速度控制。2.4安卓手机软件系统设计2.4.1工作流程手机软件流程图如图5—4所示,手机客户端主界面如图5—5所示,手动模式界面图如图5—6所示。图5—4手机软件流程图首先等待蓝牙连接按钮按下,选择连接的蓝牙,连接成功后会在界面上显示蓝牙的信息以及连接成功的提示,接收到STC12单片机上蓝牙模块发送来的智能车速度数据进行处理并显示在客户端界面上,当开始按键按下,调用语音识别等待语音识别结束后,分析处理语音信息,利用蓝牙发送对应的指令数据,接收处理智能车回复的数据并显示在客户端对应界面上,当手动模式按钮按下时,会换到界面2,显示手动模式下的按钮,(与智能车的通信会中断一下后自动重新连接)相应指令按下后发送对应指令至智能车,实现智能车手动按钮控制,按返回按钮回到主界面。手机客户端主界面主要分为四个区域:蓝牙连接与断开区、蓝牙信息显示区、速度显示与速度手动控制区、用户交互与通信区、功能区。蓝牙连接与断开区负责手机蓝牙与智能车系统上蓝牙模块的连接与断开,并在蓝牙信息显示区显示蓝牙信息及是否连接成功提示。可通过调节速度显示与速度手动控制区的水平滑动条,根据滑块所在位置设置智能车不同的速度档位,接受到智能车系统发来的相关速度数据,安卓手机进行处理后,换算成智能车的速度数据,在速度显示与速度手动控制区中显示。用户交互和通信区则负责实现交互信息的显示以及显示智能车系统发送过来的数据,也方便了后续的调试,在与智能车建立起蓝牙通信后,便会在用户交互和通信区提示用户可选用的功能,即对智能车的速度控制、循迹模式以及运动控制,用户可以点击功能区的开始按钮进行语音指令输入,也会显示智能车发送过来的通信数据。最后的功能区主要包含两个功能:语音识别功能和手动遥控智能车功能,当开始按钮按下,启动语音识别功能,根据语音指令调用不同的功能,并将语音信息显示在用户交互与功能区,当手动模式按钮按下时则会跳转到界面2,即手动模式界面,在手动模式界面中主要为三个区:返回区、蓝牙信息区和手动控制区。在返回区中主要负责退出手动控制智能车功能,返回主界面。当返回按钮按下时,返回主界面,退出手动控制智能车功能。蓝牙信息区负责显示蓝牙信息和提示是否连接蓝牙成功。手动控制区主要包括五个按钮,负责智能车的运动控制,按下按钮后便会通过蓝牙通信发送对应的控制指令,实现远程手动控制智能车。图5—5手机客户端主界面图图5—6手动模式界面图2.4.2蓝牙连接程序设计主要程序如下:图5—7蓝牙连接程序页面一程序说明:当点击连接按钮时,会获取手机的蓝牙列表供我们选择,当选择完成,并成功连接时会提示我们连接成功,否则则会提示连接失败,连接成功后会将所连接的蓝牙保存至微数据库,方便下次连接,并且显示该蓝牙相关信息,运行主界面函数,提示用户可以选择的功能。2.4.3语音识别程序设计主要程序如下:图5—8蓝牙连接程序页面二图5—9蓝牙连接程序页面三程序说明:当开始按钮按下时,调用语音识别器识别语音,识别结束时调用功能函数,例如前进函数中,判断语音识别器的识别结果是否为前进或者向前,如果是则调用蓝牙发送控制文本。2.4.4手动功能程序设计因为通过语音控制智能车有时候确实很方便,但需要一段时间进行语音识别的处理,因此添加了一个附加功能,基于蓝牙实现手动操控智能车,从而实现基本上较为精准的智能车控制。但实现遥控智能车需要一个手动功能的界面设计,此时出现了一个问题,在界面的转换时,手机与智能车的蓝牙连接会中断,因此需要解决界面变换

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论