嵌入式linux远程控制机器人毕业论文(编辑修改稿)内容摘要:

数转换接口 ■ SPI 接口 ■ IIS 数字音频输入 /输出接口 ■ 10M 以太网接口 ■ 4个板上轻触键外部中断或 I/O 输入 ■ 4个 LED指示灯及 2个电源指示灯 ■ EXBUS 全扩展接口 6 电路方框图及说明 主控元件采用凌阳 SPCE061A 单片机,属于凌阳 u‘ 16 位结构的微控制器。 在存储器资源方面 考虑到用户的较少资源的需求以及便于程序调试等功能, SPCE061A 里只内嵌 32K 字的闪存( FLASH),但用在此系统上已经绰绰有余。 较高的处理速度使 u‘ 、快速地处理复杂的数字信号。 因此以 u‘ 核心的 SPCE061A 微控制器也适用在数字语音识别应用领域。 SPCE061A 在 ~ 工作电压范围内的工作速度范围为 ~,较高的工作速度使其应用领域更加拓宽。 2K 字 SRAM 和 32K 字 FLASH 仅占一页存储空间, 32位可编程的多功能 I/O 端口;两个 16 位定时器 /计数器; 32768Hz 实时时钟;低电压复位 /监测功能; 8通道 10位模 数转换输入功能并具有内置自动增益控制功能的麦克风输入方式;双通道 10 位 DAC 方式的音频输出功能,这就为本系统的特定人辨识和语音播报打下了基础。 各部分电路设计 SPCE061A I/O 图 为了要模拟机器人说话,因此要加入声音与闪光同步,即说活时头部灯同时闪亮。 机器人头内部安装一个 LED 灯,当 IOB1 有输出时, LED 灯闪亮。 AT89S51 I/O 图 机器人下肢行走时是由一个直流电机驱动,而凌阳 SPCE061A 单片 机的输出电流只有 10mA 左右,而直流电机的额定电流是大于 1A,因此用一个 L289IC 来驱动直流电机,下面是接线图。 麦克录音输入及 AGC 电路 凌阳的 SPCE061A 是 16 位单片机,具有 DSP 功能,有很强的信息处理能力,最高时钟可达到 49M,具备运算速度高的优势等等,这为语音的播放、录放、合成及辨识提供了条件。 本系统接入 MIC电路如图示, MIC 为录制语音辨识命令服务。 下图是简化的语音识别原理如图 ,其中实线部分成为训练模块,虚线部分为识嵌入式 Linux 远程控制机器人 7 别模块。 辨认特定的使用者即特定语者 (Speaker Dependent, SD)模式,使用者可针对特定语者辨认词汇 (可由使用者自行定义,如人名声控拨号 ),即在启动小车前,系统将会提示输入语音命令作简单快速的训练纪录,在这里输入“启动”“停止”“返回”和“模式切换”四个语音命令,通过使用者的声音特性来加以辨认。 随着技术的成熟,进入语音适应阶段 SA(speaker adaptation),使用者只要对于语音辨识核心,经过一段时间的口音训练后,即可拥有不错的辨识率。 注:此图中的实线部分成为训练模块,虚线部分为识别模块 图 语音识别原理图 电路语音播报电路 音频部分的原理图 所示,在图 9 中可以看到两个跳线,其作用在于可以测量 DAC的输出波形;另外拔掉跳线,可以断开 DAC到喇叭放大的通路,使得 DAC 通道处于开路状态。 这样便于用 DAC 做其他用途,用户可以用过这个跳线来加入自己的外围电路。 凌阳音频压缩算法根据不同的压缩比分为以下几种: SACMA2020:压缩比为 8:1, 8:, 8: SACMS480: 压缩比为 80:3, 80: SACMS240: 压缩比为 80: 按音质排序: A2020S480S240 用凌阳 Compress Tool 事先把所需要的语音信号录制好,本系统共包括十多个语音资源,整个语音信号经凌阳 SACM_S480 压缩算法压缩只占有 存储空间, SPCE061A图注:小五号宋体,置于图题之上 8 单片机具有 32k 闪存,使用内部 flash 即可满足要求。 凌阳 SPCE061A 单片机自带双通道 DAC 音频输出, DAC DAC2 转换输出的模拟量电流信号分别通过 AUD1 和 AUD2 管脚输出, DAC 输出为电流型输出,所以 DAC 输出经过 SPY0030 音频放大,以驱动喇叭放音,放大电路如图 9(只列出了 DAC1,DAC2 类似 ),这为单片机的音频设计 提供了极大方便。 在它们后面接一个简单的音频放大电路和喇叭即可实现语音播报功能,音频的具体功能主要通过程序来实现。 图 音频原理图 声音是一种很难识别的信号,同一个字在不同的人口里发出来会出现不同波长和振幅,如图 ,因此要看硬件的精度有多高确定识别声音的精度。 图 声音波形图 语音识别电路 凌阳的 SPCE061A 是 16 位单片机,具有 DSP 功能,有很强的信息处理能力,最高时钟频率可达到 49MHz,具备运算速度高的优势等等,这些都无疑为语音的播放、录放、合成 及辨识提供了条件。 凌阳压缩算法中 SACM_A20 SACM_S480、 SACM_S240 主要是嵌入式 Linux 远程控制机器人 9 用来放音,可用于语音提示,而 DVR 则用来录放音。 对于语音辨识主要有以下两种: ( 1)特定发音人识别 SD( Speaker Dependent):是指语音样板由单个人训练, 也只能识别训练人的语音命令,而他人的命令识别率较低或几乎不能识别。 ( 2)非特定发音人识别 SI( Speaker Independent):是指语音样板由不同年龄、不同性别、不同口音的人进行训练,可以识别一群人的命令。 图 语 音识别电路图 10 系统结构设计 系统开发模式 前后台模式:分为前台程序 (任务级 )和后台程序(事件处理级)。 其中中断服务子程序( Interrupt Service Routine,ISR)负责处理异步事件属于前台程序 (Foreground),而后台程序( Background)一般是一个无限的循环,负责管理整个嵌入式系统软硬件资源的分配,管理以及任务的调度,是一个管理调度程序。 系统总流程图 图 系统总流程图 嵌入式 Linux 远程控制机器人 11 模块设计 声音播放模块 凌阳的 SPCE061A 播放 声音时,先将声音资源以队列的形式存放(顺序存放在32Kflash 中),每个资源都有一个地址(编号),然后在调用播放子函数时进行中断声音取资源地址( FIQ 快速中断),进行播放。 播放流程图 图 播放流程图 12 播放中断程序图 图 播放中断程序图 声音识别模块 SPCE061 的特定语者辨识 SD( Speaker Dependent), SD 即语音样板由单个人训练,也只能识别训练某人的语音命令,而他人的命令识别率较低或几乎不能识别。 语音辨识的一个整体框图 图 语音辨识图 在程序中我们通过语句的训练演示特定人连续音识别,训练完毕开始辨识当识别出触发名称后,开始发布命令,则会听到自己设置的应答。 嵌入式 Linux 远程控制机器人 13 LED 闪亮与下肢行走模块 SPCE061A 提供了位控制结构的 I/O 端口,每一位都可以被单独定义用于输入或输出数据。 通常,对某一位的设定包括以下 3个基本项:数据向量 Data、属性向量 Attribution和方向控制向量 Direction。 3 个端口内每个对应的位组合在一起,形成一个控制字,用来定义相应 I/O 口位的输入输出状态和方式。 例如,假设需要 IOA0 是下拉 输入管脚,则相应的 Data、 Attribution 和 Direction 的值均被置为“ 0”。 如果需要 IOA1 是带唤醒功能的悬浮式输入管脚,则 Data、 Attribution 和 Direction 的值被置为“ 010”。 与其它的单片机相比,除了每个 I/O 端口可以单独定义其状态外,每个对应状态下的 I/O端口性质电路都是内置的,在实际的电路中不需要再次外接。 例:设端口 A口为带下拉电阻的输入口,在连接硬件时无需在片外接下拉电路。 此模块用到 IOB 口(与 A同理)。 图 下肢行走模块图 Qt/Embedded 和 Qtopia 介绍及其开发环境的建立 目前嵌入式 Linux 的主流 GUI 系统主要有 MiniGUI、 Microwindows、 OpenGUI、Qt/Embedded,这些 GUI 在接口定义、体系结构、功能特性存在很大差别,采取的技术路线也有所不同。 MiniGUI 是建立在比较成熟的图形引擎之上,开发的重点在于窗口系统,其小巧精致并且尽量与 Win32 兼容。 MicroWindows 目前开发的重点在底层的图形引擎,窗口系统和图形接口方面功能比较欠缺,与 Win32 和 X Windows 窗口系统保持兼容,提供了相对完善 的图形功能。 OpenGUI 基于一个用汇编实现的 x86 图形内核,提供了一个高层的 C/C++图形 /窗口接口,它的资源消耗小,可移植性差,不支持多进程。 14 Qt/Embedded 是一个多平台的 C++图形用户界面应用程序框架,其对象容易扩展,可。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。