微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 智能玩具的设计-聪明宝宝

智能玩具的设计-聪明宝宝

时间:06-09 来源:互联网 点击:

gKeyID的值 对应处理
1 左手按键处理
2 背部按键处理
3 脸部触摸键处理
4 肚部触摸键处理
5右手按键处理
0 异常情况

主程序包括端口的初始化,提示语音的播放,主循环以及进入睡眠状态前中断的初始化、端口的初始化。 主循环包括:键扫描,判断标志位及相应子程序,AD转换及比较。 端口的初始化包括A口和B口的初始化,A口的IOA0~IOA4设置为带唤醒的下拉电阻输入,IOA6设置为悬浮输入的光敏器件输入端;B口的IOB9设置为低电平输出,作为TimerA脉宽调制输出;其余未使用的端口设置为低电平输出。 提示语音的播放即“您好”的播放,主要应用于系统重新启动以及复位键的触发,在这里,复位键既可当一个功能按键来使用,也可以在系统无反应时当作重启键来使用。 进入睡眠状态前的系统初始化包括:端口A口的重新初始化,保证系统运行的可靠性;唤醒中断的允许、开中断;睡眠信号的写入。 其主流程见图 4.1:


图 4.1主程序流程图

4.2 S480语音播放子程序
SACM-S480自动方式程序流程如图 4.2:


图 4.2 SACM-S480自动方式程序流程

4.3 语音的识别及训练程序流程图
语音的识别取材于凌阳语音库bsrv222SDL.lib及相关头文件,如bsrSD.h。SPCE061只有特定发音人模式,即只能辨识特定的使用者,辨识前需由单个人训练,且最多识别6条命令,序号范围从0x100到0x105,每条命令只有1.3秒,超出了1.3秒只有前1.3秒命令有效。在本系统中,利用通过光敏电阻的暗电阻较大,分压值也较大的原理,产品触发后通过AD采样,与原环境光线采集值比较有较大变化时,置标志位,从而在主循环中进入识别模式。而训练模式通过左手按键经IOA0触发,训练模块和语音识别框图如下所示:


图4.3 训练模块

图 4.4语音识别框图

在辨识主循环中,辨识得到确认后就可以执行相应的处理子程序,整个流程如图4.5所示。


图 4.5语音辨识处理子程序

4.4 按键动作执行子程序
当外部输入的按键、触摸键触发时,进入睡眠唤醒中断。在中断中获取光敏器件采集到的AD值,主程序中扫描键盘,将取得的键值写入gKeyID,再根据gKeyID寄存器来判断到底进入哪个子程序。具体的执行子程序如下各图所示:


图 4.6左手按键处理子程序

图 4.7背部按键、肚子上触摸键处理子程序

图 4.8脸部触摸键处理子程序

图 4.9右手键处理子程序

4.5 中断及键处理子程序
在本系统中利用了FIQ_TMA快速中断、IRQ3_KEY、IRQ5_4HZ共4个中断。各中断的作用及返回值如表 4.2所示:
表 4. 2

中断类型 返回值 作用
FIQ_TMA 用于语音播放及语音辨识服务,gRecPlay=0进入语音识别;gRecPlay=1进入语音播放
IRQ3_KEY 返回环境光线强度值gADEnviroment 外部键唤醒中断后的取值以及主程序的进入
IRQ5_2HZ 定时到返回gTime1Minuteh=1 用于时间计时基准,各动作执行时所需延时及定时


图 4.10FIQ_TMA中断服务子程序

图4.114HZ时基中断服务子程序

在图 4.12中,语音辨识子程序执行的是BSR_FIQ_Routine(),而语音播放子程序执行的是F_FIQ_Service_SACM_S480()。


图 4.12IRQ3_KEY中断

5结语
系统用凌阳SPCE061A十六位单片机实现体现了它的极大优越性,集中体现在实现功能齐全、内部资源丰富、外围电路简单等方面。编程采用C和汇编混合编程来实现,集两种语言之优点于一体,它们的完美结合极大限度地简化了编程过程,丰富了编程思想,给开发者带来了莫大的方便。而凌阳单片机提供了很好的语音播放和录制机制以及简单的API接口编程,使得用凌阳单片机开发产品简单快捷。

6参考文献
[1] 凌阳大学计划网站
[2] 雷思孝、李伯成、雷向莉,单片机原理及实用技术—凌阳16位单片机原理及应用 陕西:西安电子科技大学出版社

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top