基于凌阳61单片机的语音控制小车的设计

基于凌阳61单片机的语音控制小车的设计
基于凌阳61单片机的语音控制小车的设计

基于凌阳61单片机的语音控制小车的设计

2007-08-19 18:19:39| 分类:自己做的东西| 标签:论文|字号大中小订阅

1. 实习目的与意义

1.1 实习任务

设计并制作一个能自动往返于起跑线与终点线间的智能小车,并具备人工遥控的功能,其跑道俯视图如图1所示。

跑道说明:跑道宽度0.5m,表面贴有白纸,两,表面贴有白纸,两侧有挡板,挡板与地面垂直。在跑道的B、C、D、E、F、G各点处画有2cm宽的黑线,各段的长度如图1所示。1.2 基本要求

(1)、智能小车主控芯片任选一款单片机:AT89S52或SPCE061A;

(2)、人工遥控小车发车(语音遥控或无线遥控任选);

(3)、智能小车从起跑线出发(出发前,车体不得超过起跑线),到达终点后停留10秒,然后自动返回起跑线(允许倒车返回),往返一次的时间应力求最短(从小车起跑开始计时);(4)、到达终点线和返回起跑线,停车位置离终点线和起跑线偏差应最小,且小车与跑道中心线的偏差也应为最小;

(5)、D—E间为限速区,车辆往返均要求以低速通过,通过时间不得少于8秒,但不允许在限速区内停车;

(6)、如采用语音遥控,则小车回到起跑线后需语音播报“旅行结束”。

1.3 实习意义

通过智能小车的设计及制作,巩固并掌握IDE2.0的编程方法,学会利用单片机进行程序设计并实现功能。通过在小车的设计与制作,将所学的知识体现出来,并应用于实际生活中,在设计过程中对小车功能的创新和改良,增强学生的创新意识和逻辑思维能力,提高学生的动手能力和研究主动性。

2. 实验内容和步骤

2.1车体设计

2.1.1 61板简介

61板是SPCE061A EMU BOARD的简称,是以凌阳16位单片机SPCE061A为核心的精简开发——仿真——实验板,大小相当于一张扑克牌,是“凌阳大学计划”专为电子爱好者和高校大学生进行课程设计、毕业设计及电子竞赛所设计的,也可作为单片机项目初期研发使用。61板除了具备单片机最小系统电路外,还包括电源电路、音频电路(含MIC输入部分和DAC 音频输出部分)、复位电路等,使学生在掌握软件设计的同时,熟悉单片机硬件的设计制作,锻炼动手能力,也为单片机学习者和开发者创造了一个良好的学习条件和开发新产品的机会!

2.1.2 SPCE061A单片机简介

SPCE061A是一款16位结构的微控制器,下图是它的结构概览:

SPCE061A主要包括输入/输出端口、定时器/计数器、数/模转换、模/数转换、串行设备输入输出、通用异步串行接口、低电压监测和复位等部分,并且内置在线仿真电路ICE接口,较高的处理速度使其能够快速的处理复杂的数字信号。

SPCE061A单片机应用领域广泛,例如应用在家用电器控制器、工业控制、通信产品、医疗设备以及电子书籍等诸多方面。

2.1.3 电源

61板采用3节5号电池进行供电,由J10接入。其中的前后两组电容用来去耦滤波,使其供给芯片的电源更加干净平滑。为了获得标准的3.3V电压,在扳子上加入SPY0029A三端稳压器。

两个二极管,是为了防止误将电源接反造成不必要损失而设置的,在操作过程中千万不要将电源接反,因为反向电压超过一定的值,二极管将会被损坏,达不到保护的目的。后面的零电阻及其电源、地分成不同的几路是为了减少电磁干扰设置的。

2.1.4程序下载区

ICE基本运作方式是通过控制CLOCK及通过ICE喂入指令方式,来控制CPU的运行及缓存器资料和内存资料的存取,因此必须透过控制缓存器值的设定来控制目前CPU的动作。

每个相连接的不同ICE模块都拥有自己独特的3—bitID,当PC在传送control信号时都会先传送该3—bitID,只有ICE本身的ID和control信号的ID相同时才会执行该命令或回传资料。61板上的74HC244主要在我们选用下载线的时候起作用,主要奇缓存的作用和完成SDA是作为数据回送还是数据下传的选择。

2.1.5传感器模块

用光敏电阻组成光敏探测器。光敏电阻的阻值可以跟随周围环境光线的变化而变化。当光线照射到白线上面时,光线发射强烈,光线照射到黑线上面时,光线发射较弱。因此光敏电阻在白线和黑线上方时,阻值会发生明显的变化。将阻值的变化值经过比较器就可以输出高低电平。

2.2 语音控制小车概述

2.2.1功能要求

语音控制小车是凌阳大学计划推出的基于SPCE061A的代表性兴趣产品,它配合61板推出,综合应用了SPCE061A的众多资源,打破了传统教学中单片机学习枯燥和低效的现状。小车采用语音识别技术,可通过语音命令对其行驶状态进行控制。

语音控制小车的主要功能:

可以通过简单的I/O操作实现小车的前进、后退、左转、右转功能;

配合SPCE061A的语音特色,利用系统的语音播放和语音识别资源,实现语音控制的功能;可以在行走过程中声控改变小车的运动状态;

2.2.2车体结构

车体结构图图3、4所示。语音控制小车为四轮结构,车的结构示意图如下图所示。其中前面两个车轮由前轮电机控制,在连杆和支点作用下控制前轮左右摆动,来调节小车的前进方向。在自然状态下,前轮在弹簧作用下保持中间位置。后面两个车轮又后轮电机驱动,为整个小车提供动力,所以又称前面的轮子为方向郑 竺娴牧礁雎肿游 ?/FONT>

整个小车分为三大部分:车体部分、61板、控制板。

车体部分:小车车体主要为两个电机驱动装置,分前轮(方向)驱动和后轮(动力驱动)。在车体的下面有一个可以安装3节AA电池的电池盒,整个小车的电源就是由它来提供的。在小车的底部有一个红色的小开关,它负责控制整个小车的电源开通与关断。

61板:61板是小车的核心部分,它负责整个小车控制信号的产生,以及语音的播放和识别功能实现的。在不使用小车时可以将61板从小车上拆下来,61板仍然是完整的,可以用它来做其它的实验或开发。

控制板:控制板负责将来自61板的控制信号转化为能够驱动电动机的信号。

2.2.4 硬件框图

小车控制系统硬件结构比较简单,主要分为两个部分:一个是SPCE061A精简开发板(即“61”板)如图5所示,另外一个是电机控制板如图6所示。电机控制板的工作就是根据61板的输出新高去启动和停止相应的电机,以及调整电机的正反转方向。正是通过开启和关闭相应的电机,使电机在不同的组合状态运转,最终来实现小车的前进,倒退等功能。

2.3小车方案及程序分析

2.3.1小车方案

可以通过简单的I/O操作实现小车的前进、后退、左转、右转功能;配合SPCE061A的语音特色,利用系统的语音播放和语音识别资源,实现语音控制的功能;可以在行走过程中声控改变小车的运动状态;实现能自动往返于起跑线与终点线间的智能流程,并具备人工遥控(我们选用语音控制)的功能。

2.3.2程序流程图

1、语音识别总流程图

语音识别小车的主程序流程如图7所示,分为四大部分:初始化部分、训练部分、识别部分、重训操作。初始化部分:初始化操作将IOB8~IOB11设置为输出端,用以控制电机。必要时还要有对应的输入端设置和PWM端口设置等。训练部分:训练部分完成的工作就是建立语音模型。程序一开始判断小车是否被训练过,如果没有训练过则要求对其进行训练,并且会在训练成功之后将训练的模型存储到FLASH,在以后使用时不需要重新训练;如果已经训练过会把存储在FLASH中的模型调出来装载到辨识器中。识别部分:在识别环节当中,如果辨识结果是名字,则进入自动往返流程状态。如果辨识结果为动作指令小车会语音告知相应动作并执行该动作。重训操作:考虑到有重新训练的需求,设置了重新训练的按键(61板的KEY3),循环扫描该按键,一旦检测到此键按下,则将擦除训练标志位(0xe000单元),并等待复位。复位后,程序重新执行,当检测到训练标志位为0xffff时会要求重新对其进行训练。下面详细介绍以上提到的子程序。

2、训练函数流程图

当程序检测到训练标志位BS_Flag内容为0xffff,就会要求操作者对它进行训练操作,训练操作的过程如图8所示:训练采用两次训练获取结果的方式,以训练名字为例:小车首先会提示:给我取个名字吧,这时你可以告诉它一个名字;然后它会提示:请再说一遍,这时再次告诉它名字,如果两次的声音差别不大,小车就能够成功的建立模型,名称训练成功;如果没能够成功的建立模型,小车会告知失败的原因并要求重新训练。成功训练名称后会给出下一条待训练指令提示音:前进,参照名称训练方式训练前进指令。依次训练小车的名称—前

进指令—倒车指令—左转指令—右转指令,全部训练成功子程序返回,训练结束。

3、语音识别函数流程图

语音识别流程如图9所示:首先获取辨识器的辨识结果,判断是否有语音触发,如果有语音触发则会返回识别结果的ID号,ID号对应名称或者对应不同的动作。如果ID号为名称,则进入运动自动往返程序流程;如果ID号为动作,则语音告知将要执行的动作,并执行该动作。

动作子程序:动作子程序包括:前进、倒车、左拐、右拐、自动往返子程序。

前进:由小车的结构原理和驱动电路分析知:只要IOB8为高电平,IOB9,IOB10,IOB11全部为低电平即可实现小车的前进。前进子程序包括语音提示、置端口数据、启动定时器操作。

倒车:由小车的结构原理分析和驱动电路分析知:只要IOB9为高电平,IOB8,IOB10,IOB11全部为低电平即可实现小车的倒退。倒退子程序包括语音提示、置端口数据、启动定时器操作。

左转:由小车的结构原理分析和驱动电路分析知:小车左转需要两个条件:1.前轮左偏2.后轮前进,这时对应的I/O状态为:IOB8、IOB10为高电平,IOB9、IOB11为低电平。左转子程序包括语音提示、置端口数据、启动定时器操作。

右转:由小车的结构原理分析和驱动电路分析知:小车右转需要两个条件:1.前轮右偏2.后轮前进,这时对应的I/O状态为:IOB8、IOB11为高电平,IOB9、IOB10为低电平。右转子程序包括语音提示、置端口数据、启动定时器操作。

4、自动往返(如图10所示):由语音识别子函数的名字命令来触发的自动往返鱼如图1所示的跑道的上的子程序。该程序流程实现小车对各黑线的识别并在识别后执行相应的动作,识别黑线流程实质上是在检测到黑线并又黑线到白线的上升(原为下降,为实现检测信号的灵敏度加反向器后为上升沿)沿脉冲触发下依次开外部中断Ext2 IRQ3 13次的过程。在从起点到终点过程中当检测到D线以及在从终点返回起点检测到E线时小车步进减速并开启IRQ6-4HZ中断定时8 s后自动加速前进继续检测后续黑线并执行相应动作流程。同时为实现在终点线H过后停留10 s的要求,需要在检测到H线后开启IRQ5-4HZ中断实现定时10;

A、B、C、D、E、F、G……线时开外不中断2,分别在去城和回程检测到D、E线时开IRQ6-2HZ,在第一次检测到G线时小车停10S。

5、中断控制流程。虽然已经有了前进、后退以(通过直接呼叫小车的名字使其停车)等语音控制指令,但是考虑环境的干扰因素,小车运行时的噪音影响和有效距离的限制,小车运行后可能接收不到语音指令而一直运行。为了防止出现这种情况,加入了时间控制,在启动小车运行的同时启动定时器,定时器时间到停止小车的运行,该定时器借助于2Hz时基中断完成,图12.14所示为该程序的流程图。可以在程序中修改uiTimeset参数来控制运行时间,当uiTimeset=2时,运行时间为1s,以此类推。

3.1硬件连接调试过程

硬件调试过程相对顺利,实验第一步就是按照实验说明书对61板的元件进行焊接以及小车车体的连接安装;在对实习要求理解的基础上确立了实现方案后,硬件的连接有了明确的要求:为了实现对黑线的检测需要连接黑白传感器,由于黑白线的识别是基于外部黑白传感信号的输入进而开外不中断实现的(在本次方案中采用外部中断2 IPQ3),所以将IOB3口外接黑白传感器,以实现对黑白信号的检测。

由于光线的关系,在实际调程序时传感器的灵敏度不是很高,多数情况下很难检测到信号。基于上述现象,我们给传感器附加白光灯,用以解决光线不稳定给程序调试带来的影响。

经过上面步骤的硬件改良后,虽然黑白线的识别以明显改善,在光线条件良好的情况下黑白线识别信号检测基本正常,但在相对较暗情况下,传感器并不灵敏。为了改进这个缺陷,通过对传感器的输出信号的检测发现,在有白线到黑线时信号更为灵敏,于是就有有了在黑白传感器输出口加反向器的设计。

由于车体焊接存在的问题,在程序调试过程中出现了一系列的硬件问题,但经过仔细分析后,这些问题都得到了解决,硬件的调试改进为软件的实现调试打下了基础。

3.2程序调试过程分析

本次设计任务对软件编写调试的能力要求相对较高,程序调节是否顺利决定了实习进度。由于初次接触61的编程,所以在实习初期我们主要是学习和认知61的板以及61编程的基本知识,这是个学习深入的过程。

在对编程基础知识了解后,基于对题目要求的理解和思考,我们确定实现方案。可以通过简单的I/O操作实现小车的前进、后退、左转、右转功能;配合SPCE061A的语音特色,利用系统的语音播放和语音识别资源,实现语音控制的功能;可以在行走过程中声控改变小车的运动状态;实现能自动往返于起跑线与终点线间的智能流程,并具备人工遥控(我们选用语音控制)的功能。

这个方案的确定是在查阅了,61资料“语音控制小车”的实现程序后得到的思路。基于对现有程序框架的理解,我们加入了自动往返程序流程。当然,程序的调试是不可能一两次就能成功的。这其中遇到的问题有很多,其中就有硬件的问题以及对61编程的知识的理解的不够而出现的调试困难。

3.3总体结果分析

本设计综合应用了SPCE061A丰富的软硬件资源,成功的实现了语音控制功能。标准的C语言编程,丰富的语音资源函数为编程提供了很大的方便。该设计方案结构简单,以单芯片实现了语音播放与识别以及电机控制功能,相当于“语音识别芯片+普通单片机”的功能。但是比“语音识别芯片+普通单片机”。该语音控制小车操作比较简单,训练和识别成功的几率

也比较高,是一个典型的语音识别方案。由于时间和精力有限,我们实现了实习要求的基本内容和发挥部分的大部分内容,但未能实现自动语音播报行驶距离的设计要求,这主要是我们对硬件的设计还不够熟练和精通,以及对61编程也未达到纯熟的地步。

对以实现的功能要求来说,我们的设计相对理想,为了实现小车从起跑线出发,到达终点后停留10秒后,然后自动返回起跑线(容许倒车返回),D~E减速区车辆减速通过不得少于8s但又不容许停车,往返一次的时间力求最短的要求。我们在检测黑线程序流程中的相应操作中引用了三次定时中断,分别为从D~E的减速区用到IRQ6-2HZ中断定时8s;到终点线后的停车10s定时引用IRQ5-4HZ中断;以及从E~D的倒车减速区用到了IRQ6-2HZ中断。这几个定时中断确保了往返时间的精确和紧凑性。但有一点不理想的是:在减速区小车步进过程过慢,造成在限速区车体如遇到些许障碍时甚至发生停车现象,还好我们在设计中加入了8s的定时操做,避免了车体在D~E区间由于过慢的步进而长时间停留。

源代码:

//======================================================

// The information contained herein is the exclusive property of

// Sunnnorth Technology Co. And shall not be distributed, reproduced,

// or disclosed in whole in part without prior written permission.

// (C) COPYRIGHT 2003 SUNNORTH TECHNOLOGY CO.

// ALL RIGHTS RESERVED

// The entire notice above must be reproduced on all authorized copies.

//========================================================

//========================================================

// 工程名称: Car_Demo

// 功能描述:实现小车的语音控制

// 涉及的库: CMacro1016.lib

// bsrv222SDL.lib

// sacmv26e.lib

// 组成文件: main.c

// Flash.asm, hardware.asm,ISR.asm

// hardware.h,s480.h, hardware.inc

// 硬件连接: IOA0-----KEY1

// IOA1-----KEY2

// IOA2-----KEY3

// IOB8-----前进

// IOB9-----倒车

// IOB10----左拐

// IOB11----右拐

// 维护记录: 2005-12-12 v1.0

//========================================================

#include "s480.h"

#include "bsrsd.h"

#define P_IOA_Data (volatile unsigned int *)0x7000

#define P_IOA_Dir (volatile unsigned int *)0x7002

#define P_IOA_Attrib (volatile unsigned int *)0x7003

#define P_IOB_Data (volatile unsigned int *)0x7005

#define P_IOB_Dir (volatile unsigned int *)0x7007

#define P_IOB_Attrib (volatile unsigned int *)0x7008

#define P_TimerA_Data (volatile unsigned int *)0x700A

#define P_TimerA_Ctrl (volatile unsigned int *)0x700B

#define P_TimerB_Data (volatile unsigned int *)0x700C

#define P_TimerB_Ctrl (volatile unsigned int *)0x700D

#define P_Watchdog_Clear (volatile unsigned int *)0x7012

#define P_INT_Mask (volatile unsigned int *)0x702D

#define P_INT_Clear (volatile unsigned int *)0x7011

#define P_INT_Ctrl (volatile unsigned int *)0x7010

#define P_SystemClock (volatile unsigned int *)0x7013

#define NAME_ID 0x100

#define COMMAND_GO_ID 0x101

#define COMMAND_BACK_ID 0x102

#define COMMAND_LEFT_ID 0x103

#define COMMAND_RIGHT_ID 0x104

#define S_NAME 0 //给我取个名字吧

#define S_ACT1 1 //前进

#define S_ACT2 2 //倒车,请注意

#define S_ACT3 3 //左拐

#define S_ACT4 4 //右拐

#define S_RDY 5 //Yeah

#define S_AGAIN 6 //请再说一遍

#define S_NOVOICE 7 //没有听到任何声音

#define S_CMDDIFF 8 //说什么暗语呀

#define S_NOISY 8 //说什么暗语呀

#define S_START 9 //准备就绪,开始辨识

#define S_GJG 10 //拐就拐

#define S_DCZY 11 //倒车,请注意

extern unsigned int BSR_SDModel[100]; //外部变量BSR_SDModel[100],辨识器自带extern void F_FlashWrite1Word(unsigned int addr,unsigned int Value);

extern void F_FlashErase(unsigned int sector);

unsigned int uiTimeset = 3; //运行时间定时,调整该参数控制运行时间

unsigned int uiTimecont; //运行时间计时

unsigned int time_10s,time,tem,h,temp,m,c,y,t;

//=============================================================

// 语法格式: void Delay();

// 实现功能:延时

// 参数:无

// 返回值:无

//============================================================= void Delay()

{

unsigned int i;

for(i=0;i<0x3Fff;i++)

{

*P_Watchdog_Clear=0x0001;

}

}

//============================================================= // 语法格式: void PlaySnd(unsigned SndIndex,unsigned DAC_Channel);

// 实现功能:语音播放函数

// 参数: SndIndex-播放语音资源索引号

// DAC_Channel-播放声道选择

// 返回值:无

//============================================================= void PlaySnd(unsigned SndIndex,unsigned DAC_Channel)

{

BSR_StopRecognizer(); //停止识别器

SACM_S480_Initial(1); //初始化为自动播放

SACM_S480_Play(SndIndex, DAC_Channel, 3); //开始播放一段语音

while((SACM_S480_Status()&0x0001)!= 0) //是否播放完毕?

{

SACM_S480_ServiceLoop(); //解码并填充队列

*P_Watchdog_Clear=0x0001; //清看门狗

}

SACM_S480_Stop(); //停止播放

BSR_InitRecognizer(BSR_MIC); //初始化识别器

}

//============================================================= // 语法格式: int TrainWord(int WordID,int SndID);

// 实现功能:训练一条指令

// 参数: WordID-指令编码

// SndID-指令提示音索引号

// 返回值:无

//============================================================= int TrainWord(unsigned int WordID,unsigned int SndID)

{

int Result;

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;

}

}

return 0;

}

//============================================================= // 语法格式: void TrainSD();

// 实现功能:训练函数

// 参数:无

// 返回值:无

//============================================================= void TrainSD()

{

while(TrainWord(NAME_ID,S_NAME) != 0) ; //训练名称

while(TrainWord(COMMAND_GO_ID,S_ACT1) != 0) ; //训练第1个动作 while(TrainWord(COMMAND_BACK_ID,S_ACT2) != 0) ; //训练第2个动作 while(TrainWord(COMMAND_LEFT_ID,S_ACT3) != 0) ; //训练第3个动作 while(TrainWord(COMMAND_RIGHT_ID,S_ACT4) != 0) ; //训练第4个动作}

//============================================================= // 语法格式: void StoreSD();

// 实现功能:存储语音模型函数

// 参数:无

// 返回值:无

//============================================================= void StoreSD()

{ unsigned int ulAddr,i,commandID,g_Ret;

F_FlashWrite1Word(0xef00,0xaaaa);

F_FlashErase(0xe000);

F_FlashErase(0xe100);

F_FlashErase(0xe200);

ulAddr=0xe000;//********

for(commandID=0x100;commandID<0x105;commandID++)

{

g_Ret=BSR_ExportSDWord(commandID);

while(g_Ret!=0) //模型导出成功?

g_Ret=BSR_ExportSDWord(commandID);

for(i=0;i<100;i++) //保存语音模型SD1(0xe000---0xe063)

{

F_FlashWrite1Word(ulAddr,BSR_SDModel[i]);

ulAddr+=1;

}

}

}

//============================================================= // 语法格式: void StoreSD();

// 实现功能:装载语音模型函数

// 参数:无

// 返回值:无

//============================================================= void LoadSD()

{ unsigned int *p,k,jk,Ret,g_Ret;

p=(int *)0xe000;

for(jk=0;jk<5;jk++)

{

for(k=0;k<100;k++)

{

Ret=*p;

BSR_SDModel[k]=Ret; //装载语音模型

p+=1;

}

g_Ret=BSR_ImportSDWord();

while(g_Ret!=0) //模型装载成功?

g_Ret=BSR_ImportSDWord();

}

}

//============================================================= // 语法格式: void GoAhead();

// 参数:无

// 返回值:无

//============================================================= void GoAhead() //前进

{

PlaySnd(S_ACT1,3); //提示

*P_IOB_Data=0x0100; //前进

*P_INT_Mask |= 0x0004; //以下为中断定时操作

__asm("int fiq,irq");

uiTimecont = 0;

}

//============================================================= // 语法格式: void BackUp();

// 实现功能:后退子函数

// 参数:无

// 返回值:无

//============================================================= void BackUp() //倒退

{

PlaySnd(S_DCZY,3); //提示

*P_IOB_Data=0x0200; //倒退

*P_INT_Mask |= 0x0004; //以下为中断定时操作

__asm("int fiq,irq");

uiTimecont = 0;

}

//============================================================= // 语法格式: void TurnLeft();

// 实现功能:左转子函数

// 参数:无

// 返回值:无

//============================================================= void TurnLeft() //左转

{

PlaySnd(S_GJG,3);

*P_IOB_Data=0x0900; //右转

Delay(); //延时

*P_IOB_Data=0x0500; //左转

*P_INT_Mask |= 0x0004; //以下为中断定时操作

__asm("int fiq,irq");

uiTimecont = 0;

}

//============================================================= // 语法格式: void TurnRight();

// 参数:无

// 返回值:无

//============================================================= void TurnRight() //右转

{

PlaySnd(S_GJG,3); //语音提示

*P_IOB_Data=0x0500; //左转

Delay(); //延时

*P_IOB_Data=0x0900; //右转

*P_INT_Mask |= 0x0004; //以下为中断定时操作

__asm("int fiq,irq");

uiTimecont = 0;

}

//============================================================= // 语法格式: void Stop();

// 实现功能:停车子函数

// 参数:无

// 返回值:无

//============================================================= void Stop() //停车

{

*P_IOB_Data=0x0000; //停车

PlaySnd(S_RDY,3); //语音提示

}

//============================================================= // 语法格式: void BSR(void);

// 实现功能:辨识子函数

// 参数:无

// 返回值:无

//============================================================= void BSR(void)

{

int Result; //辨识结果寄存

Result = BSR_GetResult(); //获得识别结果

if(Result>0) //有语音触发?

{

*P_IOB_Data=0x0000; //临时停车

switch(Result)

{

case NAME_ID:

c=1;

BSR_StopRecognizer();

*P_SystemClock=0x0003;

*P_INT_Mask=0x0200; //识别出名称命令

break;

case COMMAND_GO_ID: //识别出第一条命令

GoAhead(); //执行动作一:直走

break;

case COMMAND_BACK_ID: //识别出第二条命令

BackUp(); //执行动作二:倒车

break;

case COMMAND_LEFT_ID: //识别出第三条命令

TurnLeft(); //执行动作三:左转

break;

case COMMAND_RIGHT_ID: //识别出第四条命令

TurnRight(); //执行动作四:右转

break;

default:

break;

}

}

}

//============================================================= // 语法格式: void IRQ5(void);

// 实现功能:中断服务子函数

// 参数:无

// 返回值:无

//============================================================= void Delay0()

{

unsigned int i;

for(i=0;i<0x00ff;i++)

{

*P_Watchdog_Clear=0x0001;

}

}

void Delay11(unsigned int m)

{

unsigned int i;

for(i=0;i

{

*P_Watchdog_Clear=0x0001;

}

}

void Delay_h()

{

unsigned int i;

for(i=0;i<0x0100;i++)

{

*P_Watchdog_Clear=0x0001;

}

}

void Delay1()

{

unsigned int i;

for(i=0;i<0x02Ff;i++)

{

*P_Watchdog_Clear=0x0001;

}

}

void Delay2()

{

unsigned int i;

for(i=0;i<0x0Dff;i++)

{

*P_Watchdog_Clear=0x0001;

}

}

void Delay3()

{

unsigned int i;

for(i=0;i<0x2fff;i++)

{

*P_Watchdog_Clear=0x0001;

}

}

void IRQ3(void) __attribute__ ((ISR)); void IRQ3(void)

{

if(*P_INT_Ctrl&0x0200)

{ while(!(*P_IOB_Data&0x0008)) {

Delay_h();

if((*P_IOB_Data)&0x0008)

h++;

}

*P_INT_Clear =0x0200;

}

else if(*P_INT_Ctrl&0x0100)

{

m=m+1;

*P_INT_Clear=0x0100;}

}

void IRQ5(void) __attribute__ ((ISR));

void IRQ5(void)

{ if (c==0)

{if(uiTimecont++ == uiTimeset)

{

*P_IOB_Data = 0x0000;

}

*P_INT_Clear = 0x0004;

}

else if(c==1)

{ if(*P_INT_Ctrl&0x0004)

{

time++;

*P_INT_Clear =0x0004;

}

if(*P_INT_Ctrl&0x0008)

{

*P_INT_Clear =0x0008;

time_10s++;

if(time_10s==40)

{h=h+1;*P_INT_Mask=0x0000; }

}

}

}

//============================================================= // 语法格式: void play();

// 实现功能:全程计时播放

// 参数:无

// 返回值:无

//============================================================= void play(void)

{unsigned int s0,s1,s2,s3;

double x;

int length;

PlaySnd(26,3);

PlaySnd(30,3);

if(time%2==0)

{

s0=(time/2)%10;

s1=(time/2)/10;

}

else

{

s0=((time+1)/2)%10;

s1=((time+1)/2)/10;

}

PlaySnd(s1+13,3);

PlaySnd(23,3);

PlaySnd(s0+13,3);

PlaySnd(28,3);

PlaySnd(25,3);

x=m*8.8;

s0=(int)(x/1000);

s1=(int)(x/100)-s0*10;

s2=(int)(x/10)-s0*100-s1*10;

s3=(int)x-s0*1000-s1*100-s2*10; PlaySnd(s0+13,3);

PlaySnd(23,3);

PlaySnd(s1+13,3);

PlaySnd(24,3);

PlaySnd(s2+13,3);

PlaySnd(s3+13,3);

PlaySnd(27,3);

PlaySnd(12,3);

x=x/time;

s0=(x/100);

s1=(int)(x/10)-s0*10;

s2=(int)(x)-s0*100-s1*10;

PlaySnd(s0+13,3);

PlaySnd(24,3);

PlaySnd(s1+13,3);

PlaySnd(s2+13,3);

PlaySnd(29,3);

}

//============================================================= // 语法格式: int main(void);

// 实现功能:主函数

// 参数:无

// 返回值:无

//============================================================= int main(void)

{ unsigned int BS_Flag; //Train标志位

unsigned int a,b;

*P_IOA_Dir=0xff00; //初始化IOA,IOA0~7下拉输入

*P_IOA_Attrib=0xff00;

*P_IOA_Data=0x0000;

*P_IOB_Dir=0x0f00; //初始化IOB,IOB8~11同向输出/

*P_IOB_Attrib=0x0f08;

*P_IOB_Data=0x000C;

h=0;time=0;time_10s=0;m=0;b=0;a=0;c=0;y=0;t=0;

BSR_DeleteSDGroup(0); //初始化存储器RAM

BS_Flag=*(unsigned int *)0xe000; //读存储单元0xe000

if(BS_Flag==0xffff) //没有经过训练(0xe000内容为0xffff)

{

TrainSD(); //训练

StoreSD(); //存储训练结果(语音模型)

}

else //经过训练(0xe000内容为0x0055)

{

LoadSD(); //语音模型载入识别器

}

PlaySnd(S_START,3); //开始识别提示

BSR_InitRecognizer(BSR_MIC); //初始化识别器

while(1)

{ *P_Watchdog_Clear = 0x0001;

if (c==0)

{BSR();

if((*P_IOA_Data)&0x0004) //是否重新训练

{

F_FlashErase(0xe000);

基于单片机的语音控制小车的开题报告_共4页

一、选题的依据、意义和理论或实际应用方面的价值 随着现代生活水平的不断提高,人们对智能化产品有着巨大的需求,语音智能控制作为简单快捷方便的操作方式得到越来越广泛人们的认可,例如手机智能语音拨号功能,就是很好的例子。随着电子业的发展, 自动化已不再是一 个新鲜的话题, 无人驾驶的小汽车也必将进入实用阶段, 未来驾驶汽车, 不再是只能依靠手动,语音等方式也有可能成为未来汽车的辅助驾驶途径之一。当前电子设计系统已进人了片上系统时代, 语音识别与处理技术在信息技术的人机 接口中得到了普遍关注。语音识别的音控小车作为典型应用之一,简单地诠释了人机一体化的设计思想。其设计理念缩短了人机界面的距离,增强了互动性和智能性,同时使得将信息技术和控制技术引入到车辆的操纵控制中,形成机器智能,使驾驶员的感知、决策和执行能力扩展成为可能。 二、本课题在国内外的研究现状 Bill Gates 在世界计算机博览会(COMDEX)主题演讲会上描绘IT事业的发展宏图时,率先指出:下一代操作系统和应用程序的用户界面将是语音识别。工业界应对语音识别领域的重大突破做好充分准备,因为那将是一场席卷全球的另一次热潮。 据统计部门的数据,至2006年中国汽车保有量已达3500万辆(其中轿车占80%,约2500万辆),每年仍以30%的速度递增。我国成为了继美国之后的第二大汽车生产和消费大国。汽车行业的迅猛发展也带动了相关配套、服务业的发展。而将功能强大的智能车载信息系统——车载电脑加载到汽车上已经成为欧美、日本等地汽车市场的首选新装备。我国语音智能控汽车产业有着巨大的发展前景。车载电脑给汽车带来了一场信息化的革命,让每辆汽车构建成一个完美的车载信息与娱乐系统终端,包括车载通讯系统、导航系统、数字娱乐系统以及辅助驾驶系统。车载通讯与导航系统主要指GPRS和GPS,让你“轻 车熟路”,而且轻松打电话。 三、课题研究的内容及拟采取的方法 我研究的课题题目是实现语音对小车的智能控制,按照其功能的实现可以划分如下模块:语音输入模块、主控模块(SPCE061A)、电机驱动模块、语 音输出模块、电源模块。语音输入模块实现语音的输入,讲录入的语音作为数据源。主控模块实现对语音的分辨、识别、与存储单元中的指令匹配,发出控制命令。电机模块通过主控模块的控制,对电机发出控制命令。语音输出模块控制发出控制命令相对应的语音。电源模块控制电源的连通。首先对存储器初始化,之后进行录音初始化,进入录音循环中,定时器中断程序控制采样频率,并按时间间隔将采样值送入语音样本队列,录音循环从语音样本队列中获取数据并进行编码,将编码后的数据送入存储器,成为语音资源。在训练过程中,系统调用了语音播放子程序,需要进行播放初始化,进入播放循环中,从语音资源中获取数据,解码,填入播放队列中,定时器中断程序从播放队列中取出数据送到D /A 转换器中,将语音信号送到扬声器中,使得整个训练过程在语音提示下从容进行。 四、课题研究中的主要难点以及解决的方法 1)如何实现对SPCE061A的无线语音接入? SPCE061A 内置MIC 放大电路和AGC 电路, 可很方便地接上MIC 使用。但考虑到小车在运动到距离用户较远的地方时, 无法接收到用户的语音命令, 而

基于单片机技术的语音控制小车设计

基于单片机技术的语音控制小车设计基于单片机技术的语音控制小车设计 1 基于单片机技术的语音控制小车设计 1、引言 语音处理技术是一门新兴的技术,它不仅包括语音的录制和播放,还涉及语音的压缩编码和解码,语音的识别等各种处理技术。以往做这方面的设计,一般有两个途径:一种方案是单片机扩展设计,另一种就是借助于专门的语音处理芯片。普通的单片机往往不能实现这么复杂的过程和算法,即使勉强实现也要加很多的外围器件。专门的语音处理芯片也比较多,如ISD 系列、PM50 系列等,但是专门的语音处理芯片功能比较单一,想在语音之外的其他方面应用基本是不可能的。 SPCE061A 是一款 16 位μ'nSP结构的微控制器。该芯片带有硬件乘法器,能够实现乘法运算、内积运算等复杂的运算。它不仅运算能力强,而且处理速度快,单周期最高可以达到 49MHz。

SPCE061A 内嵌 32K 字的 FLASH 程序存储器以及 2K 的SRAM。同时该 SOC 芯片具有 ADC 和 DAC 功能,其 MIC_ADC 通道带有AGC自动增益环节,能够很轻松的将语音信号采集到芯片内部,两路 10 位的电流输出型DAC,只要外接一个功放就可以完成声音的播放。以上介绍的这些硬件资源使得该SPCE061A 能够单芯片实现语音处理功能。 借助于 SPCE061A 的语音特色,“基于单片机技术的语音控制小车设计”实现了对小车前进、后退、左转、右转、停车等语音控制功能. 2、语音控制小车设计要求 2.1 功能要求: 1.可以通过简单的 I/O 操作实现小车的前进、后退、左转、右转功能; 2.配合 SPCE061A 的语音特色,利用系统的语音播放和语音识别资源,实现语音控制的功能; 3.可以在行走过程中声控改变小车运动状态; 4.在超出语音控制范围时能够自动停车。 2.2 参数说明 车体:双电机两轮驱动 供电:电池(四节AA:1.2V×4 或 1.5V×4) 工作电压:DC 4V~6V 工作电流:运动时约 200mA 3. SPCE061A特性简介 SPCE061A是一款性价比很高的十六位单片机,使用它可以非常方便灵活的实现语音的录放,该芯片拥有8路10位精度的 ADC,其中一路为音频转换通道,并且内置有自动增益电路。这为实现语音录入提供了方便的硬件条件。两路10位精度的DAC,只需要外接功放(SPY0030A)即可完成语音的播放。该单片机具有一套易学易用的指令系统和集成开发环境,在此环境中,它支持标准 C 语言编程,也支持

语音控制小车使用说明资料

语音控制小车用户说明书

目录 一、语音控制小车概述 (3) 1.1 功能简介 (3) 1.2 参数说明 (3) 1.3 注意事项 (3) 二、小车实物 (4) 2.1 车体结构 (4) 2.2 小车实物图 (4) 2.3 动力电机驱动电路 (5) 2.4 方向电机控制电路 (6) 2.5 语音识别原理简介 (6) 三、软件流程 (7) 3.1 主程序流程图 (7) 四、如何使用 (9) 4.1 连接硬件 (9) 5.2 代码下载 (9) 5.3 训练小车 (9) 5.4 声控小车 (10) 5.5 重新训练 (11)

一、语音控制小车概述 1.1 功能简介 语音控制小车综合应用了SPCE061A的众多资源,打破了传统教学中单片机学习枯燥和低效的现状。小车采用语音识别技术,可通过语音命令对其行驶状态进行控制。 语音控制小车的主要功能: 1)可以通过简单的I/O操作实现小车的前进、后退、左转、右转功能; 2)配合SPCE061A的语音特色,利用系统的语音播放和语音识别资源,实现语音控制的功能; 3)可以在行走过程中声控改变小车运动状态; 4)在超出语音控制范围时能够自动停车。 1.2 参数说明 车体:双电机四轮驱动 供电:电池(四节AA:1.5V×4) 工作电压:DC 4V~6V 工作电流:运动时约200mA 1.3 注意事项 1)安装电池一定要注意电池的正负极性,切勿装反; 2)长期不用请将电池从电池盒中取出; 3)由于语音信号的不确定性,语音识别的过程会出现一定的误差和不准确性; 4)由于小车行动比较灵活,速度比较快,在使用时一定要注意保持场地足够大,且保证不会对周围的物体造成伤害; 5)不要让小车长时间运行在堵转状态(堵转状态:由于小车所受阻力过大,造成小车电机加电但并不转动的现象),这样会造成很大的堵转电流,有可能会损坏小车的控制电路。

基于语音识别的智能小车设计-毕设论文

基于语音识别的智能小车 摘要 随着计算机技术、模式识别和信号处理技术及声学技术等的发展,使得能满足各种需要的语音识别系统的实现成为可能。近二三十年来,语音识别在计算机、信息处理、通信与电子系统、自动控制等领域中有着越来越广泛的应用。本设计是语音识别在控制领域的一个很好实现,它将原本需要手工操作的工作用语音来方便地完成。 语音识别按说话人的讲话方式可分为孤立词(Isolated Word)识别、连接词(Connected Word)识别和连续语音(Continuous Speech)识别。从识别对象的类型来看,语音识别可以分为特定人(Speaker Dependent)语音识别和非特定人(Speaker Independent)语音识别。本设计采用的识别类型是特定人孤立词语音识别。 本系统分上位机和下位机两大方面。上位机利用PC上MATLAB强大的数学计算能力,进行语音输入、端点监测、特征参数提取、匹配、串口控制等工作,根据识别到的不同语音通过PC串口向下位机发送不同的指令。下位机是单片机控制的一个小车,单片机收到上位机传来的指令后,根据不同的指令控制小车完成不同的动作。 该设计对语音识别的现有算法进行了验证和实现,并对端点检测和匹配算法进行了些许改进。本设计达到了预期目标,实现了所期望的功能效果。 关键词:MATLAB,语音识别,端点检测,LPC,单片机,电机控制

SMART CAR GASED SPEECH RECOGNITION ABSTRACT With the development of computer technology,pattern recognition,signal processing technology and acoustic technology etc, the speech recognition system that can meet the various needs of people is more possible to achieve.The past three decades, the voice recognition in the field of computer, information processing, communications and electronic systems, automatic control has increasingly wide range of applications. Speech recognition by the speaker's speech can be divided into isolated word (Isolated Word) identification, conjunctions (Connected Word) and continuous speech recognition (Continuous Speech) identification. Identifying the type of object from the point of view, the voice recognition can be divided into a specific person (Speaker Dependent) speech recognition and non-specific (Speaker Independent) speech recognition. This design uses the identification type is a specific person isolated word speech recognition. This design is of a good implementation of speech recognition in the control field, it does the work that would otherwise require manual operation by the voice of people easily.This system includes two major aspects:the host system and the slave system. The host system use the MATLAB on the computer which has powerful mathematical computing ability to do the work of voice input, endpoint monitoring, feature extraction, matching, identification and serial control,then it send different commands through the PC serial port to slave system according different recognised voice. The slave system is a car controlled by a single-chip micro-controller.It controls the car do different actions according different instructions received.

基于单片机技术的语音控制小车设计

1、引言 语音处理技术是一门新兴的技术,它不仅包括语音的录制和播放,还涉及语音的压缩编码和解码,语音的识别等各种处理技术。以往做这方面的设计,一般有两个途径:一种方案是单片机扩展设计,另一种就是借助于专门的语音处理芯片。普通的单片机往往不能实现这么复杂的过程和算法,即使勉强实现也要加很多的外围器件。专门的语音处理芯片也比较多,如ISD 系列、PM50 系列等,但是专门的语音处理芯片功能比较单一,想在语音之外的其他方面应用基本是不可能的。 SPCE061A 是一款 16 位μ'nSP结构的微控制器。该芯片带有硬件乘法器,能够实现乘法运算、内积运算等复杂的运算。它不仅运算能力强,而且处理速度快,单周期最高可以达到 49MHz。 SPCE061A 内嵌 32K 字的 FLASH 程序存储器以及 2K 的SRAM。同时该 SOC 芯片具有 ADC 和DAC 功能,其 MIC_ADC 通道带有AGC自动增益环节,能够很轻松的将语音信号采集到芯片内部,两路 10 位的电流输出型DAC,只要外接一个功放就可以完成声音的播放。以上介绍的这些硬件资源使得该SPCE061A 能够单芯片实现语音处理功能。 借助于 SPCE061A 的语音特色,“基于单片机技术的语音控制小车设计”实现了对小车前进、后退、左转、右转、停车等语音控制功能. 2、语音控制小车设计要求 2.1 功能要求: 1.可以通过简单的 I/O 操作实现小车的前进、后退、左转、右转功能; 2.配合 SPCE061A 的语音特色,利用系统的语音播放和语音识别资源,实现语音控制的功能; 3.可以在行走过程中声控改变小车运动状态; 4.在超出语音控制范围时能够自动停车。 2.2 参数说明 车体:双电机两轮驱动 供电:电池(四节 AA:1.2V×4 或 1.5V×4) 工作电压:DC 4V~6V 工作电流:运动时约 200mA 3.SPCE061A特性简介 SPCE061A是一款性价比很高的十六位单片机,使用它可以非常方便灵活的实现语音的录放,该芯片拥有8路10位精度的 ADC,其中一路为音频转换通道,并且内置有自动增益电路。这为实现语音录入提供了方便的硬件条件。两路10位精度的DAC,只需要外接功放(SPY0030A)即可完成语音的播放。该单片机具有一套易学易用的指令系统和集成开发环境,在此环境中,它支持标准 C 语言编程,也支持 C 语言与汇编语言的互相调用。另外还提供了语音录放的库函数,只要了解库函数的使用,就可以很容易的完成语音的录放、识别等功能,这些都为软件开发提供了方便的条件。 SPCE061A特性: 16位μ’nSP微处理器; 工作电压:内核工作电压VDD为 3.0V~3.6V(CPU),I/O口工作电压VDDH为VDD~5.5V(I/O); CPU时钟:0.32MHz~49.152MHz; 内置2K 字 SRAM;

语音控制小车实验报告

语音控制小车实验报告 专业: 学号: 姓名: 2014年01月12日

一、实验目的 语音控制小车以SPCE061A单片机为核心,采用语音识别技术,可通过语音命令对其行驶状态进行控制。本次实验的主要目的: 1.通过简单的I/O 操作实现小车的前进、后退、左转、右转功能; 2.配合SPCE061A 的语音特色,利用系统的语音播放和语音识别资源,实现语音控制的功能; 3.在行走过程中声控改变小车运动状态; 4.在超出语音控制范围时使小车停车。 二、实验内容 1、SPCE061A简介 SPCE061A是一款性价比很高的十六位单片机,使用它可以非常方便灵活的实现语音的录放,该芯片拥有8路10位精度的ADC,其中一路为音频转换通道,并且内置有自动增益电路。这为实现语音录入提供了方便的硬件条件。两路10位精度的DAC,只需要外接功放(SPY0030A)即可完成语音的播放。该单片机具有一套易学易用的指令系统和集成开发环境,在此环境中,它支持标准 C 语言编程,也支持 C 语言与汇编语言的互相调用。另外还提供了语音录放的库函数,只要了解库函数的使用,就可以很容易的完成语音的录放、识别等功能,这些都为软件开发提供了方便的条件。 SPCE061A特性: 16位μ’nSP微处理器; 工作电压:内核工作电压VDD为 3.0V~3.6V(CPU),I/O口工作电压VDDH为VDD~5.5V(I/O); CPU时钟:0.32MHz~49.152MHz; 内置2K 字 SRAM; 内置32K 闪存 ROM; 可编程音频处理; 晶体振荡器; 系统处于备用状态下(时钟处于停止状态),耗电小于 2μA@3.6V; 2 个 16 位可编程定时器/计数器(可自动预置初始计数值); 2 个 10 位 DAC(数-模转换)输出通道; 32 位通用可编程输入/输出端口;

语音控制的智能小车设计方案

语音控制的智能小车设计方案 根据美国玩具协会的调查统计,近年来全世界玩具销量增幅与全世界平均GDP增幅大致相当而全世界玩具市场的内在结构比重却发生了重大变化:传统玩具的市场比重正在逐步缩水,高科技含量的电子玩具则蒸蒸日上 美国玩具市场的高科技电子玩具的年销售额2004年较2003年增长52%,而传统玩具的年销售额仅增长3%英国玩具零售商协会选出的2001年圣诞最受欢迎的十大玩具中,有七款玩具配有电子元件从这些数字可以看出,高科技含量的电子互动式玩具已经成为玩具行业发展的主流本文设计一个具有语音识别功能的智能遥控小车该小车对传统的手动遥控小车的机械部分做了改进使之可以实现任意角度转向和以任意速度前进而不象一般的小车那样只能以固定角度转向和以固定速度前进因此更加接近真实的车辆 本文还在小车的控制系统中采用语音识别系统,使控制者可以用语音对小车进行控制,产生相应的动作,而且小车和控制者还具有一定的交互功能 1 智能小车总体结构框图 智能小车主要由转向机构、驱动机构、转向控制模块、驱动控制模块、遥控模块和语音控制模块六大部分组成,如图1所示

2 机械本体结构及工作原理 小车为轮式结构,如图2所示机械部分分为转向机构(图中椭圆内的部分)和驱动机构(图中椭圆外部分)转向机构主要由转向电机、转向架和两个前轮组成驱动机构采用玩具小车常用的双电机驱动方案,包括两个减速电机和两个后轮转向机构工作原理为:转向时由控制者向小车发出转向信号,转向电机根据转向信号正向或反向旋转一定角度,电机通过齿轮、齿条系统带动转向架摆动一定角度,最终带动与转向架固定在一起的前轮偏摆一定角度小车在转向时由于内、外侧的车轮的转弯半径不同,所以内外侧车轮的转速也不相同前轮为从动轮,会根据转弯角度的大小自动调节内、外侧车轮的转速;而后轮为主动轮,其转速分别由两个电机独立驱动,不会根据转弯半径自动调节转速因此小车转弯时,控制系统在控制转向电机的同时还需要根据转向角度的大小向两个驱动电机发出控制信号,

基于单片机技术的语音控制小车设计--(

基于单片机技术的语音控制小车设计--( 附: 湘潭市技师学院 毕业论文(设计) 题目关于单片机控制语音小车的系统设计 专业机电一体化 班级:姓名 指导教师 2012 年 2 月27 日 关于单片机控制语音小车的系统设计 目录 1、引言 2、语音控制小车设计要求 2.1 功能要求 2.2 参数说明 3. SPCE061A特性简介 4、系统总体方案介绍 5、系统硬件设计 5.1 车体介绍

5.2 小车的行走原理 5.3 控制板原理图 6、系统软件设计 6.1 系统的主程序设计 6.2主控制源程序: 6.3 语音识别的原理简介 7、总结 8、结束语 基于单片机技术的语音控制小车设计 1、引言 语音处理技术是一门新兴的技术,它不仅包括语音的录制和播放,还涉及语音的压缩编码和解码,语音的识别等各种处理技术。以往做这方面的设计,一般有两个途径:一种方案是单片机扩展设计,另一种就是借助于专门的语音处理芯片。普通的单片机往往不能实现这么复杂的过程和算法,即使勉强实现也要加很多的外围器件。专门的语音处理芯片也比较多,如ISD 系列、PM50 系列等,但是专门的语音处理芯片功能比较单一,想在语音之外的其他方面应用基本是不可能的。 SPCE061A 是一款 16 位μ'nSP结构的微控制器。该芯片带有硬件乘法器,能够实现乘法运算、内积运算等复杂的运算。它不仅运算能力强,而且处理速度快,单周期最高可以达到 49MHz。 SPCE061A 内嵌 32K 字的 FLASH 程序存储器以及 2K 的SRAM。同时该 SOC 芯片具有 ADC 和 DAC 功能,其 MIC_ADC 通道带有AGC自动增益环节,能够很

智能小车控制系统设计

智能小车控制系统设计 ——ARM控制模块设计 EasyARM615是一款基于32位ARM处理器,集学习和研发于一体的入门级开发套件,该套件采用Luminary Micro(流明诺瑞)公司生产的Stellaris系列微控制器LM3S615。本系统设计是以EasyARM615开发板为核心,通过灰度传感器检测路面上的黑线,运用PWM直流电机调速技术,完成对小车运动轨迹等一系列的控制。同时利用外扩的液晶显示器显示出各个参数。以达到一个简易的智能小车。 本文叙述了系统的设计原理及方法,讨论了ISR集成开发环境的使用,系统调试过程中出现的问题及解决方法。 据观察,普通的玩具小车一般需要在外加条件下才能按照自己的的设想轨迹去行驶,而目前可借助嵌入式技术让小车无需外加条件便可完成智能化。在小车行驶之前所需作的准备工作是在地面上布好黑线轨迹,设计好的小车便可按此黑线行驶,即为智能小车。其设计流程如下: 1、电机模块 采用由达林顿管组成的H型PWM电路。PWM电路由四个大功率晶体管组成,H桥电路构成,四个晶体管分为两组,交替导通和截止,用单片机控制达林顿管使之工作在开关状态,根据调整输入控制脉冲的占空比,精确调整电机转速。这种电路由于管子工作只在饱和和截止状态下,效率非常没。H型电路使实现转速和方向的控制简单化,且电子开关的速度很快,稳定性也极强,是一种广泛采用的PWM调整技术。 具体电路如下图所示。本电路采用的是基于PWM原理的H型驱动电路。该电路采用TIP132大功率达林顿管,以保证电动机启动瞬间的8安培电流要求。

2、传感器模块 灰度测量模块,是一种能够区分出不同颜色的的电子部件。灰度测量模块是专为机器人设计的灰度传感器。例如:沿着黑色轨迹线行走,不偏离黑色轨迹线;沿着桌面边沿行走,不掉到地上,等等。足球比赛时,识别场地中灰度不同的地面,以便于进行定位。不同的物体对红外线的反射率不同,黑色最低,白色最高;它通过发射红外线并测量红外线被反射的强度来输出反映物体颜色的电压信号,有效距离3-30毫米。 其技术规格如下: 已知灰度传感器的输出电压为0-3.3V,所以可通过ARM615开发板上的ADC 模块转换成数字信号,最后通过不断测试得出黑线与白线的大概参数值,完成对小车传感器部分的设计。 在本次设计中选择二个灰度传感器,其实现效果与布局如下所示。

基于单片机的语音控制小车设计毕业论文

基于单片机的语音控制小车设计毕业论文 目录 摘要........................................................................ I Abstract................................................................... II 第1章绪论........................................................... - 1 - 1.1 选题的目的和意义............................................... - 1 - 1.1.1选题目的................................................... - 1 - 1.1. 2.选题意义................................................... - 1 - 1.2 语音小车的发展及现状........................................... - 1 - 1.3 课题的目的任务和要求........................................... - 2 - 第2章语音小车的方案论证............................................... - 3 - 2.1 语音控制方案................................................... - 3 - 2.2 方案论证....................................................... - 4 - 2.2.1 采用DSP+FPGA方案.......................................... - 4 - 2.2.2采用MCS-51方案............................................ - 4 - 2.2.3 采用凌阳61方案............................................ - 5 - 2.3 系统控制方案................................................... - 6 - 第3章系统硬件设计..................................................... - 9 - 3.1 系统硬件总体设计............................................... - 9 -

智能小车控制系统开题

毕业设计(论文)开题报告 题目智能小车控制系统研究 系部车辆工程系 专业 学生姓名学号 指导教师职称讲师 毕设地点 2016年1 月16 日

1.结合毕业设计(论文)课题任务情况,根据所查阅的文献资料,撰写1500~2000字左右的文献 综述: 一丶选题背景 智能汽车的概念在上世纪80 年代初由美国提出,随着智能控制算法的不断发展,以及硬件设备的快速更新,对智能车的发展起到了巨大的促进作用。同时交通问题也逐渐成为世界各个国家都要面临的重要问题,这也加快了新技术、新方法的应用。在这样的背景下智能车的研究逐渐成为新的热点。 当前世界公路的总里程每年都在高速增长,同时汽车的总量也在成倍增加,其中我国的增量更是非常明显,随着汽车的越来越多,出现交通事故的概率也在不断提高。世界各国为了解决这方面的问题提出了很多的想法,而智能车是众多想法中最可行的一种解决当前问题的方法。许多国家在无人驾驶汽车和智能交通系统的研究上都取得了不错的成果,有些研究结构已经研制成功了智能车的原型,并进行相关试验。最近10 年在传统汽车中半导体和电子技术应用的越来越多。汽车产业已经进入到了电子时代,智能汽车将是未来的发展趋势。根据相关部门的统计数据,2012 年之后生产的汽车,汽车上电子装置系统占整个汽车总成本超过30%,甚至在一些配置较高的汽车上,比重超过50%。 随着改革开放的不断深入,我国经济在过去的一段时间迅速崛起,人民的生活水平和幸福指数每年都在提高,拥有一辆汽车也不在是一个的梦想,而是变成了一个很多家庭都能消费的起的代步工具,当前我国的汽车数量,每年以两位数增长,然而我国的公共配套却相对落后,这就造成了我国严重的交通问题,道路拥挤十分严重,出现了开车不如骑车快的现象。 因此发展智能车和智能交通系统,是解决现有问题的一种有效的方法,通过不断的研究会在交通拥堵、减少事故方面起到十分显著的作用。未来通过无人驾驶技术,实现汽车的自动行驶,对于我国汽车、控制、电子等领域在新时期提高国际竞争力和自主创新能力有着重要的作用。 智能汽车控制系统的研究是一项复杂的系统工程,其中包含了机械、电子、自动循迹、自适应控制、机器人技术、传感器技术等多学科相互交融的一项研究。智能车通过多个传感器模块的协同工作,经过控制单元进行决策实现汽车的自动行驶、最优化路径等功能。 同时无人驾驶智能车在货运、农业生产、军事等领域具有很好的应用前景。 综上所述,发展智能汽车控制技术能够提高我国在微电子技术、人工智能、电机控制等新技术领域的技术水平。同时随着智能汽车的不断发展也能够有效的改善现有的交

基于语音控制的智能小车商业计划书

基于语音控制的智能小车 商业计划书 This model paper was revised by the Standardization Office on December 10, 2020

2012年第六届美新杯中国大学生物联网创新创业大赛 商业计划书 作品题目:基于语音控制的智能小车 作品成员:莫邵文赖伟玮代贺苏静怡 学校:东北大学秦皇岛分校 目录 2 3 3 3.品牌战略 (9) 4.企业文化 (10) 5.管理战略 (10) 6.科技创新 (10) 1.产品营销 (13) 2.产品推广 (14) 3.制造计划 (14)

1.股本结构 (15) 2.主要财务假定 (16) 3.未来五年主要财务报表 (17) 4.财务指标分析 (26) 5.投资收益与风险分析 (27) 28 一、作品摘要 随着我国科学技术的进步,智能化和自动化技术越来越普及,各种高科技也广泛应用于智能小车和机器人玩具制造领域,使智能机器人越来越多样化。智能小车是一个多种高薪技术的集成体,它融合了机械、电子、传感器、计算机硬件、软件、人工智能等许多学科的知识,可以涉及到当今许多前沿领域的技术。 本小车设计主要由单片机控制系统模块、稳压电源模块、舵机驱动模块、红外传感器模块和射频模块组成,系统以STC89c52单片机为核心,对外设进行控制,利用线性稳压芯片对电压进行稳定控制,使用两节18650锂电池为单片机及其他外设进行稳定供电,利用红外对管模块实现自动避障功能,利用nrf24l01射频模块和ld3320语音模块的结合,对小车进行变速、角度转变、启动和终止的实现。 下为小车成品图 图1-1小车成品图 二、作品介绍 在机械结构上,对普通的玩具小车做了改进,使小车的转向更加灵活,并且在设计范围内可以实现多角度和多档速度移动;而在控制系统部

语音控制的智能小车设计

?语音控制的智能小车设计 ?发布时间:2009-8-3阅读次数:318字体大小: 【】【】【】 根据美国玩具协会的调查统计,近年来全球玩具销量增幅与全球平均GDP增幅大致相当。而全球玩具市场的内在结构比重却发生了重大变化:传统玩具的市场比重正在逐步缩水,高科技含量的电子玩具则蒸蒸日上。美国玩具市场的高科技电子玩具的年销售额2004年较2003年增长52%,而传统玩具的年销售额仅增长3%。英国玩具零售商协会选出的2001年圣诞最受欢迎的十大玩具中,有七款玩具配有电子元件。从这些数字可以看出,高科技含量的电子互动式玩具已经成为玩具行业发展的主流。本文设计一个具有语音识别功能的智能遥控小车。该小车对传统的手动遥控小车的机械部分做了改进,使之可以实现任意角度转向和以任意速度前进,而不象一般的小车 那样只能以固定角度转向和以固定速度前进,因此更加接近真实的车辆。本文还在小车的控制系统中采用语音识别系统,使控制者可以用语音对小车进行控制,产生相应的动作,而且小车和控制者还具有一定的交互功能。 1 智能小车总体结构框图 智能小车主要由转向机构、驱动机构、转向控制模块、驱动控制模块、遥控模块和语音控制模块六大部分组成,如图1所示。 2 机械本体结构及工作原理 小车为轮式结构,如图2所示。机械部分分为转向机构(图中椭圆内的部分)和驱动机构(图中椭圆外部分)。转向机构主要由转向电机、转向架和两个前轮组成。驱动机构采用玩具小车常用的双电机驱动方案,包括两个减速电机和两个后轮。转向机构工作原理为:转向时由控制者向小车发出转向信号,转向电机根据转向信号正向或反向旋转一定角度,电机通过齿轮、齿条系统带动转向架摆动一定角度,最终带动与转向架固定在一起的前轮偏摆一定角度。小车在转向时由于内、外侧的车轮的转弯半径不同,所以内外侧车轮的转速也不相同。前轮为从动轮,会根据转弯角度的大小自动调节内、外侧车轮的转速;而后轮为主动轮,其转速分别由两个电机独立驱动,不会根据转弯半径自动调节转速。因此小车转弯时,控制系统在控制转向电机的同时还需要根据转向角度的大小向两个驱动电机发出控制信号,调节两个驱动电机的转速使之产生特定的转速比,从而使转弯顺利进行。在这里,转弯的角度、转速比与小车的尺寸及转弯半径有关。 3 控制系统 控制系统包括两大部分,一部分位于遥控器内,用于识别控制者的命令并将响应的控制信号发送出去;一部分位于小车上,用于接收遥控器发出的控制信号,并根据控制信号控制转向机构和驱动机构,使小车实现预期的动作。 遥控器 遥控器主要由语音识别模块和无线发送模块(编码芯片、射频发送模块)组成,如图3所示。遥控器的工作原理为:控制者通过麦克风发出控制命令,该命令经过语音识别模块识别后,根据控制信号的类型产生一个8位的控制码,语音识别模块通过其P1端口将控制码输出至无线发送模块,然后语音识别模块发出控制信号,控制无线发送模块将该控制码以无线电波形式发送出去,车载控制部分接收到后便控制小车产生预期的动作。 3.1.1 语音控制模块 语音控制模块主要由Sensory公司的集成语音识别芯片 RSC-364组成。该芯片是专门为语音控制家电产品而设计的,外围辅助器件少,采用典型应用电路时只需要一个麦克风、一个晶体振荡器、一个小场声器和几个电阻、电容即可。该芯片内部集成了语音识别、语音合成、语音身份识别、录音回放功能。芯片内部采用的是神经网络的语音识别算法,和说话者无关的语音识别准确率可以达到97%,和说话者相关的语音识别准确率可以达到99%。该芯片的功能框图如图4所示。该芯片内部集成了一个八位的可编程微处理器,对外有 16个可编程控制的I/O口,16位地址总线和8位数据总线及相应的控制信号,可方便地扩展外部ROM以及与外部器件通讯。本文中对RSC-364的资源使用情况为:其P1口用于传输与控制命令相应的控制码,口用于启动无线发送模块发送数据。

语音控制小车毕业设计论文

NO:毕业设计题目: 语音控制小车

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期:年月日 导师签名:日期:年月日

基于语音识别的智能小车设计设计

基于语音识别的智能小车设计设计

基于语音识别的智能小车 摘要 随着计算机技术、模式识别和信号处理技术及声学技术等的发展,使得能满足各种需要的语音识别系统的实现成为可能。近二三十年来,语音识别在计算机、信息处理、通信与电子系统、自动控制等领域中有着越来越广泛的应用。本设计是语音识别在控制领域的一个很好实现,它将原本需要手工操作的工作用语音来方便地完成。 语音识别按说话人的讲话方式可分为孤立词(Isolated Word)识别、连接词(Connected Word)识别和连续语音(Continuous Speech)识别。从识别对象的类型来看,语音识别可以分为特定人(Speaker Dependent)语音识别和非特定人(Speaker Independent)语音识别。本设计采用的识别类型是特定人孤立词语音识别。 本系统分上位机和下位机两大方面。上位机利用PC上MATLAB强大的数学计算能力,进行语音输入、端点监测、特征参数提取、匹配、串口控制等工作,根据识别到的不同语音通过PC串口向下位机发送不同的指令。下位机是单片机控制的一个小车,单片机收到上位机传来的指令后,根据不同的指令控制小车完成不同的动作。 该设计对语音识别的现有算法进行了验证和实现,并对端点检测和匹配算法进行了些许改进。本设计达到了预期目标,实现了所期望的功能效果。 关键词:MATLAB,语音识别,端点检测,LPC,单片机,电机控制

SMART CAR GASED SPEECH RECOGNITION ABSTRACT With the development of computer technology,pattern recognition,signal processing technology and acoustic technology etc, the speech recognition system that can meet the various needs of people is more possible to achieve.The past three decades, the voice recognition in the field of computer, information processing, communications and electronic systems, automatic control has increasingly wide range of applications. Speech recognition by the speaker's speech can be divided into isolated word (Isolated Word) identification, conjunctions (Connected Word) and continuous speech recognition (Continuous Speech) identification. Identifying the type of object from the point of view, the voice recognition can be divided into a specific person (Speaker Dependent) speech recognition and non-specific (Speaker Independent) speech recognition. This design uses the identification type is a specific person isolated word speech recognition. This design is of a good implementation of speech recognition in the control field, it does the work that would otherwise require manual operation by the voice of people easily.This system includes two major aspects:the host system and the slave system. The host system use the MATLAB on the computer which has powerful mathematical computing ability to do the work of voice input, endpoint monitoring, feature extraction, matching, identification and serial control,then it send different commands through the PC serial port to slave system according different recognised voice. The slave system is a car controlled by a single-chip

基于单片机的语音识别系统_毕业设计 推荐

基于单片机的语音识别系统

基于单片机的语音识别系统 摘要 近几年来,智能化和自动化技术在玩具制造领域中越来越被关注。本文介绍一种智能化小车控制系统的设计——语音控制小车。语音控制小车是基于SPCE061A的代表性兴趣产品,它配合61板推出,综合应用了SPCE061A的众多资源,小车采用语音识别技术,可通过语音命令对其行驶状态进行控制。首先介绍了SPCE061A的主要性能及其引脚的功能;接着完成了电源电路、复位电路、键盘电路、音频输入电路,音频输出电路和无线控制电路等硬件功能模块的设计。软件设计模块能实现智能小车的前进、后退、转向、停止、避障、表演动作以及循线等功能。测试表明,在环境背景噪音不太大,控制者的发音清晰的前提下,语音控制小车的语音识别系统能对特定的语音指令做出智能反应,做出预想中的有限的动作 关键词:spec061a 语音识别驱动电路声控小车智能反应

Abstract In recent years, Intelligent and automation technology in the toy manufacture have been paid more and more attention.Introduce an intelligent vehicle control system design. SPCE061A program the system to single-chip, based on implementation of the car's voice control, This paper introduces the hardware sub-system design and implementation. The SPCE061A's main characters and pin function are introduced firstly. Completed the power circuit, reset circuit, keyboard circuitry, audio input circuits, audio output circuit and control circuit of wireless hardware such as the design of function modules. Software design module can achieve smart car forward, backward, turn, stop, obstacle avoidance, performing actions, as well as on-line functions. Test showed that the background noise in the environment is not too great, control persons under the premise of clear pronunciation, voice control car speech recognition systems for specific voice commands to make intelligent reaction, limited to the desired action. Keywords: spec061a 、voice recogniton、Driving circuit、Voice control dolly、intelirent response

相关文档
最新文档