版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序下
载电缆程序下
载电缆图1控制系统所需硬件5、系统硬件设计系统的硬件方面,由于大部分的功能实现都是在61板上完成的,只有电机控制部分电路另外设计在一块独立的电路板上,我们称之为控制板。下面详细的介绍小车的结构和运行原理以及控制电路板的结构和功能实现。图2系统硬件框图车体介绍语音控制小车为四轮结构。其中前面两个车轮由前轮电机控制,在连杆和支点作用下控制前轮左右摆动,来调节小车的前进方向。在自然状态下,前轮在弹簧作用下保持中间位置。后面两个车轮由后轮电机驱动,为整个小车提供动力。所以又称前面的轮子为方向轮后面的两个轮子为驱动轮。小车的行走原理.直走:由小车的结构分析,在自然状态下,前轮在弹簧作用下保持中间状态,这是只要后轮电机正转小车就会前进。倒车:倒车动作和前进动作刚好相反,前轮电机仍然保持中间状态,后轮电机反转,小车就会向后运动。
图4小车前进、后退示意图左转:前轮电机逆时针旋转(规定为正转),后轮电机正转,这时小车就会在前后轮共同作用下朝左侧前进。右转:前轮电机反转,后轮电机正转,这时小车就是会在前后轮共同作用下朝右侧前进。图5小车转向示意图控制板原理图控制板主要包括:接口电路、电源电路和两路电机的驱动电路,控制板原理图如下。接口电路:接口电路负责将61板的I/O接口信号传送给控制电路板,I/O信号主要为控制电机需要的IOB8~IOB11这四路信号,同时为了方便后续的开发和完善,预留了IOB12~IOB15以及IOA8~IOA15接口,可以在这些接口上添加一些传感器。
电源部分:整个小车有4个电源信号:电池电源,控制板工作电源,61板工作电源,61板的1/0输出电源。系统供电由电池提供,控制板直接采用电池供电(VCC),然后经二极管D1后产生61板电源SPCE061A在语音控制小车中的应用(VCC_61),通过61板的Vio跳线产生61板的端口电源(V1)。iyIK口IK"1IDES2iwes3iyIK口IK"1IDES2iwes3iceiD丄ice-157ag图6小车控制电路图6、系统软件设计系统的主程序设计系统的主程序流程如下图所示
开始初始化己经训炼训练小车保•存训练结果翅入识别模式语音识捌导执疔NJf系统总体程序流程图图7主程序流程图共分为四大部分:初始化部分、训练部分、识别部分、重训操作。初始化部分:初始化操作将IOB8~IOB11设置为输出端,用以控制电机。必要时还要有对应的输入端设置和PWM端口设置等。训练部分:训练部分完成的工作就是建立语音模型。程序一开始判断小车是否被训练过,如果没有训练过则要求对其进行训练,并且会在训练成功之后将训练的模型存储到Flash,在以后使用时不需要重新训练;如果已经训练过会把存储在Flash中的模型调出来装载到辨识器中。识别部分:在识别环节当中,如果辨识结果是名字,停止当前的动作并进入待命状态,然后等待动作命令。如果辨识结果为动作指令小车会语音告知相应动作并执行该动作,在运动过程中可以通过呼叫小车SPCE061A在语音控制小车中的应用的名字使小车停下来。重训操作:考虑到有重新训练的需求,设置了重新训练的按键(61板的
KEY3),循环扫描该按键,一旦检测到此键按下,则将擦除训练标志位(OxeOOO单元),并等待复位。复位后,程序重新执行,当检测到训练标志位为0xffff时会要求重新对其进行训练。主程序:Andshallnotbedistributed,reproduced,//========================================================////工程名称:Car_Demo//功能描述:实现小车的语音控制//涉及的库://////////组成文件://////硬件连接////////////IOA0KEY1IOA1KEY2IOA2KEY3IOB8前进IOB9倒车IOB10左拐IOB11右拐#defineP_IOA_Data#defineP_IOA_Dir#defineP_IOA_Attrib#defineP_IOB_Data#defineP_IOB_Dir#defineP_IOB_Attrib#defineP_TimerA_Data#defineP_TimerA_Ctrl#defineP_TimerB_Data#defineP_TimerB_Ctrl#defineP_Watchdog_Clear#defineP_INT_Mask#defineP_INT_Clear#defineP_IOA_Data#defineP_IOA_Dir#defineP_IOA_Attrib#defineP_IOB_Data#defineP_IOB_Dir#defineP_IOB_Attrib#defineP_TimerA_Data#defineP_TimerA_Ctrl#defineP_TimerB_Data#defineP_TimerB_Ctrl#defineP_Watchdog_Clear#defineP_INT_Mask#defineP_INT_Clear//#include<>#include<>(volatileunsignedint*)0x7000(volatileunsignedint*)0x7002(volatileunsignedint*)0x7003(volatileunsignedint*)0x7005(volatileunsignedint*)0x7007(volatileunsignedint*)0x7008(volatileunsignedint*)0x700A(volatileunsignedint*)0x700B(volatileunsignedint*)0x700C(volatileunsignedint*)0x700D(volatileunsignedint*)0x7012(volatileunsignedint*)0x702D(volatileunsignedint*)0x7011#defineNAME_ID0x100#defineCOMMAND_GO_ID0x101
#defineCOMMAND_BACK_ID0x102#defineCOMMAND_LEFT_ID0x103#defineCOMMAND_RIGHT_ID0x104#defineS_NAME#defineS_ACT1#defineS_ACT2#defineS_ACT3#defineS_ACT4#defineS_RDY#defineS_AGAIN#defineS_NOVOICE音#defineS_CMDDIFF#defineS_NOISY#defineS_START识#defineS_GJG#defineS_NAME#defineS_ACT1#defineS_ACT2#defineS_ACT3#defineS_ACT4#defineS_RDY#defineS_AGAIN#defineS_NOVOICE音#defineS_CMDDIFF#defineS_NOISY#defineS_START识#defineS_GJG#defineS_DCZY012345678891011//给我取个名字吧//前进//倒车,请注意//左拐//右拐//Yeah//请再说一遍//没有听到任何声//说什么暗语呀//说什么暗语呀//准备就绪,开始辨//拐就拐//倒车,请注意////外部变量externunsignedintBSR_SDModel[100];BSR_SDModel[100],辨识器自带externvoidF_FlashWrite1Word(unsignedintaddr,unsignedintValue);externvoidF_FlashErase(unsignedintsector);unsignedintuiTimeset=3;该参数控制运行时间unsignedintuiTimecont;//运行时间定时,调整//运行时间计时////语法格式:voidDelay();//实现功能:延时//参数:无//返回值:无//============================================================intTrainWord(unsignedintWordID,unsignedintSndID){intResult;PlaySnd(SndID,3);while(1){Result=BSR_Train(WordID,BSR_TRAIN_TWICE);//训练两次,获得训练结果
if(Result==0)break;switch(Result){case-1:PlaySnd(S_NOVOICE,3);return-1;case-2:PlaySnd(S_AGAIN,3);break;case-3:PlaySnd(S_NOISY,3);return-3;case-4:return-4;case-5:PlaySnd(S_CMDDIFF,3);return-5;case-6:return-6;default:break;}}return0;}intmain(void){unsignedintBS_Flag;*P_IOA_Dir=0xff00;*P_IOA_Attrib=0xff00;*P_IOA_Data=0x0000;*P_IOB_Dir=0x0f00;输出*P_IOB_Attrib=0x0f00;*P_IOB_Data=0x0000;BSR_DeleteSDGroup(0);BS_Flag=*(unsignedint*)0xe000;if(BS_Flag==0xffff)0xffff){TrainSD();//没有检测出声音//没有检测出声音//需要训练第二次//环境太吵//数据库满//检测出声音不同//序号错误//Train标志位//初始化IOA,IOA0~7下拉输入〃初始化I0B,I0B8〜11同向//初始化存储器RAM//读存储单元0xe000〃没有经过训练(OxeOOO内容为//训练//存储训练结果(语音模型)}else0x0055){LoadSD();}PlaySnd(S_START,3);BSR_InitRecognizer(BSR_MIC);while(1){BSR();if((*P_IOA_Data)&0x0004){F_FlashErase(0xe000);while(1);}}}子程序:voidF_FlashErase(unsignedintsector){}voidBSR(){}voidBSR_InitRecognizer(){}voidPlaySnd(){}voidLoadSD(){}voidStoreSD(){}voidTrainSD(){}voidBSR_DeleteSDGroup(){}voidBSR_Train(){}语音识别的原理简介
//经过训练(0xe000内容为//语音模型载入识别器//开始识别提示//初始化识别器//是否重新训练语音识别主要分为“训练”和“识别”两个阶段。在训练阶段,单片机对采集到的语音样本进行分析处理,从中提取出语音特征信息,建立一个特征模型;在识别阶段,单片机对采集到的语音样本也进行类似的分析处理,提取出语音的特征信息,然后将这个特征信息模型与已有的特征模型进行对比,如果二者达到了一定的匹配度,则输入的语音被识别。语音识别的具体流程如下图I11训练成功返冋3时再音特從模战切始化识別器获取识别站果执行对应动仆语音识别流程框图识别过程定时釆集语汗I11训练成功返冋3时再音特從模战切始化识別器获取识别站果执行对应动仆语音识别流程框图识别过程定时釆集语汗中斷服务初姑化RAML执仃训练,获取训所示:7结束语本设计综合应用了SPCE061A丰富的软硬件资源,成功的实现了语音控制功能
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 滤泡性咽炎的健康宣教
- 抗利尿激素不适当分泌综合征的临床护理
- 副耳的健康宣教
- 慢性萎缩性肢端皮炎的临床护理
- 《进阶策略销售培训》课件
- 急性尿潴留的护理
- 子宫纵膈的健康宣教
- 严重急性呼吸综合征的临床护理(修正)
- 产后豆腐渣样白带的健康宣教
- 孕期肩颈疼的健康宣教
- 标准林地流转合同范本
- 省级一网统管网格化社会治理指挥手册(含事项清单)
- 黑龙江省齐齐哈尔市2025届数学七年级第一学期期末考试试题含解析
- 成语故事-螳臂当车-守株待兔-历史典故讲解
- 微机原理与接口技术智慧树知到期末考试答案章节答案2024年西安工商学院
- 千分尺内校操作指导书
- 个人与公司居间合同范本合集
- 宁夏回族自治区中卫市沙坡头区2023-2024学年六年级上学期期末语文试卷
- 2022-2023学年江苏省苏州市七年级(上)期末历史试卷(含答案)
- 海绵城市改造工程施工组织设计样本
- 肾病科主任述职报告
评论
0/150
提交评论