设计触摸玩具控制器

\u9ad8\u5206\u6c42\u8bbe\u8ba1\u89e6\u6478\u73a9\u5177\u63a7\u5236\u5668

\u8001\u5927\uff0c\u8fd9\u79cd\u6559\u7a0b\u4e00\u822c\u4e0d\u4f1a\u53d1\u5e03\u5230\u7f51\u4e0a\uff0c\u800c\u4e14\u5373\u4f7f\u6709\u80af\u5b9a\u4e5f\u662f\u6536\u8d39\u7684\uff01
\u597d\u597d\u5b66\u4e60\u5427\uff01\u6700\u597d\u4e70\u672c\u76f8\u5173\u7684\u4e66\u53bb\u7814\u7a76\u3002
\u5e0c\u671b\u4f60\u80fd\u660e\u767d\uff01\u795d\u597d\u8fd0\uff01

\u90fd\u53ef\u4ee5\u554a
\u90a3\u5c31\u7b2c\u4e00\u4e2a\u5427\uff01

\u7535\u8def\u5927\u6982\u7ed3\u6784\uff1a\u53d8\u538b\u5668\uff0d\u6574\u6d41\uff0d\u6ee4\u6ce2\uff0d\u7a33\u538b\uff0d\u6ee4\u6ce2\uff0d18V

\u6240\u9700\u96f6\u4ef6\uff1a20V\u53d8\u538b\u5668\u4e00\u53ea\uff0c\u6574\u6d41\u4e8c\u6781\u7ba11N4007 4\u4e2a\uff0c1000uf/25v\u7535\u89e3\u7535\u5bb9\u4e00\u53ea\uff0c100uf/25v\u7535\u89e3\u7535\u5bb9\u4e00\u53ea\uff0c7818\u4e09\u7aef\u7a33\u538b\u96c6\u6210\u7535\u8def\u4e00\u53ea,\u4e07\u80fd\u677f\u4e00\u5757\u3002

\u63a5\u4e0b\u6765\u710a\u63a5 \u5229\u7528\u4f60\u6240\u5b66\u77e5\u8bc6 \u5c06\u5176\u7ec4\u5408\uff01\uff01
\u5c06\u56db\u4e2a\u4e8c\u6781\u7ba1\u7ec4\u6210\u6574\u6d41\u7535\u8def \u7535\u538b\u5c06\u8f93\u51fa\u4e3a\u76f4\u6d41 \u7136\u540e\u5c061000uf\u7684\u90a3\u4e2a\u7535\u5bb9\u52a0\u5230\u6b63\u8d1f\u6781\u4e24\u7aef\u8fdb\u884c\u6ee4\u6ce2 \u63a5\u4e0b\u6765\u5c06\u4e09\u7aef\u63a5\u5165 \u6709\u4e09\u4e2a\u5f15\u811a \u4ece\u5de6\u5012\u6709\u4f9d\u6b21\u4e3aIN GND OUT IN\u7aef\u63a5\u6ee4\u6ce2\u540e\u7684\u6b63\u6781 GND\u63a5\u5730\uff08\u8d1f\u6781\uff09 OUT\u4e3a\u8f93\u51fa\u7aef \u5c31\u662f\u6700\u7ec8\u768418V\u7535\u538b \u63a5\u597d\u540e\u6700\u540e\u5c06100uf\u7684\u7535\u5bb9\u63a5\u5230\u4e09\u7aef\u7a33\u538b\u7684\u8f93\u51fa\u7aef\u518d\u6b21\u6ee4\u6ce2\uff01 \u710a\u63a5\u5b8c\u6bd5 \u63a5\u4e0b\u6765\u901a\u7535\u6d4b\u8bd5\uff01 \u7535\u538b\u4e3a18V \u8bf4\u660e\u6210\u529f \u7535\u538b\u4e0d\u6b63\u5e38 \u5219\u68c0\u67e5\u7535\u8def \u76f4\u5230\u6b63\u5e38\u5373\u53ef\uff01\uff01

摘 要:本文主要介绍利用SPCE061A单片机来开发的一款智能玩具——聪明宝宝的实现方案。
关键词:语音识别 SPCE061A 智能玩具

1 引言
智能化已成为玩具行业的新趋势,让语音技术融入到玩具中,不仅可以赋予玩具“听”“说”的交流能力,使其更加生动、智能,还有利于在儿童中普及现代科学技术,推动语音技术产业化的发展。一些领先技术被应用于今天的玩具领域如:无线电、红外通讯、传感器、语音识别等等。
本文介绍的是基于SPCE061A的一种具有语音识别功能的玩具产品,并着重介绍了软硬件设计方法。

2 系统结构
硬件结构框图如图 2.1所示:主要由按键输入电路、触摸键输入电路、直流电机驱动电路、光敏器件输入电路、单片机最小系统等部分组成。

图 2.1 系统整体框图

整个系统工作于4.5V电压下,由3节5号电池提供4.5V电压,经过SPY0029稳压到3.3V为单片机系统供电。 整个系统在无操作时,处于睡眠状态,当3个按键、2个触摸键被触发时,睡眠被唤醒,进入相应的操作,执行完操作后1分钟内无任何按键触发,则再次进入睡眠。光敏器件在睡眠前不断采集光线强度,如果跟环境光线有较大变化,则会进入语音识别模式,MIC、直流电机、扬声器则是各动作的相应辅助器件。

3 硬件电路设计
3.1 微控制器电路
控制器采用凌阳科技公司的SPCE061A,其硬件资源分配见表 3.1。
表3.1 硬件资源分配表

IO口使用情况 使用 IOA5:光敏器件输入; IOA4 ~~~ IOA3:触摸键输入; IOA2 ~~~ IOA0:按键输入; IOB9:BPWM输出口;
剩余IO及处理方式 剩余IO: IOA15~IOA6、IOB15~IOB10、IOB8 ~IOB0 处理方式: 软件上设置为输出,输出低电平;
Timer使用情况 TimerA 训练过程、放音时使用
TimerB BPWM输出频率的控制以及占空比的设置
ADC使用情况 使用6通道 用来做光敏信号采集
中断使用情况 1) 训练、放音时使用FIQ_TMA;
2)使用IRQ3_KEY来完成睡眠唤醒操作;
3)使用IRQ5_2Hz做计时基准;

3.2 键盘输入电路
键盘输入电路如图 3.1所示,当有键按下时,对应的IO口被拉到高电平,CPU处理后做相应处理。

图 3.1 键盘输入电路

3.3 触摸键输入电路
触摸键主要由555集成电路来实现,其原理如图 3.2所示,左边的触摸片为金属铜片,正常情况下,人本身会产生幅度为80~100mv的正弦波电压,当人手触摸到金属片时,产生的感应电压叠加在偏置电压上(偏置电压设置在0.6V),使得三极管导通,触发555集成电路使之3脚产生单稳态输出,从而系统从睡眠状态被唤醒。

图3.2 触摸键输入原理

3.4 光感输入电路
光照感应电路由电阻与光敏电阻器组成。光敏电阻器是一种受光照射导电能力急剧增加的电子元件。常用的型号为MG45,适用于可见光谱范围(0.4~0.76μm),亮电阻≤2~10kΩ,暗电阻≥1~10MΩ。使用时,耗散功率不要超过10mW,例如工作电压在5V时,通过的电流不应超过2mA。另外,应避免强光长时间照射,防止光敏材料老化。 在环境光照强度下,采集一个标准值,然后在主循环中,不断采集比较,当变化比较大的时候,意味着有手挡着,则进入相应的辨识子程序。 接口电路如图 3.3所示。

图3.3 光感输入电路

3.5 直流电机驱动电路
直流电机控制电路比较简单。由I/O口输出信号,通过NPN型三极管8050反相驱动电路去控制电机。其控制电路如图 3.4所示。二极管起保护作用,防止电机的反向电流过大击穿器件。

图3.4 直流电机控制电路

3.6 MIC输入电路和扬声器输出电路
MIC采用驻极体电容话筒,这种话筒具有灵敏度高、无方向性、重量轻、体积小、频率响应宽、保真度好等特点。SPCE061A内置专门用于语音信号采集的具有自动增益控制放大器(AGC)的麦克风输入通道(MIC_IN)。语音信号经麦克风转换成电信号,由隔直电容隔掉直流成分,然后输入至内部前置放大器,最后通过ADC转换成数字信号。 扬声器采用一般的喇叭,电压不超过5V。凌阳SPCE061A单片机自带双通道DAC音频输出,DAC1、DAC2转换输出的模拟量电流信号分别通过AUD1和AUD2管脚输出,DAC输出为电流型输出,61板自带音频放大电路,所以外接一喇叭即可。

4 软件设计
4.1 主程序流程及说明
整个系统的外部输入包括:按键、触摸键、感光控制及语音控制,其中语音控制需等到感光唤醒之后才能进行。当各控制键触发后,系统从睡眠状态唤醒,通过判断标志位,进入相应的处理子程序,之后在主程序中不断检测,1分钟内若无任何操作,则再次进入睡眠状态。 具体程序中,通过判断gKeyDoubleUseSign的值来确认执行何种操作,当为1时,进入键处理子程序;为2时,进入复用键处理程序;为0时,不执行任何操作,认为是出错或出现异常情况。在键处理子程序中,根据标志位gKeyID来判断进入哪一个处理程序,如表 4.1所示。
表4.1

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.10 FIQ_TMA中断服务子程序

图4.11 4HZ时基中断服务子程序

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

图 4.12 IRQ3_KEY中断

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

我都毕业半年了。。资料都不知道在哪了。。。。

  • 绉戞妧灏忕帺鎰忓効鍒朵綔绠鍗
    绛旓細鍒朵綔绠鍗曠鎶灏忕帺鎰忓効鐨勬柟娉曞涓嬶細1銆佸埗浣滀竴涓畝鍗曠殑鏈烘鎵嬭噦锛氭潗鏂欙細涓浜涢噾灞炵墖銆佷竴鏍瑰鏂欑銆佷竴涓數鏈恒佷竴涓鎺у埗鍣銆佷竴浜涜灪涓濆拰铻烘瘝绛夈傛楠わ細灏嗛噾灞炵墖鍒囧壊鎴愰傚綋鐨勫ぇ灏忓拰褰㈢姸锛岀劧鍚庡皢瀹冧滑鐢ㄨ灪涓濆拰铻烘瘝杩炴帴璧锋潵锛屽舰鎴愪竴涓満姊版墜鑷傘傚皢鐢垫満鍜屾帶鍒跺櫒杩炴帴璧锋潵锛屽苟灏嗘満姊版墜鑷傝繛鎺ュ埌鐢垫満涓娿2銆佸埗浣滀竴涓畝鍗曠殑...
  • 楂樺垎姹璁捐瑙︽懜鐜╁叿鎺у埗鍣
    绛旓細鑰佸ぇ锛岃繖绉嶆暀绋嬩竴鑸笉浼氬彂甯冨埌缃戜笂锛岃屼笖鍗充娇鏈夎偗瀹氫篃鏄敹璐圭殑锛佸ソ濂藉涔犲惂锛佹渶濂戒拱鏈浉鍏崇殑涔﹀幓鐮旂┒銆傚笇鏈涗綘鑳芥槑鐧斤紒绁濆ソ杩愶紒
  • 鎹夊▋濞冩満鎬庝箞鍋
    绛旓細4.璋冭瘯鎺у埗鍣 纭繚鎹夊▋濞冩満涓绘帶绋嬪簭璁剧疆涓嶅嚭閿咃紝璋冩暣鍣ㄤ欢鏉ヨ皟璇曗滄崏鍒扳鐜╁叿鐨勪綅缃拰鍔涘害锛岀劧鍚庤繛鎺モ滃す瀛愮壍寮曞绾库濓紝灏濊瘯涓涓嬬數鏈哄榻胯疆鐨勫疄闄呭炬枩瑙掑害鏄惁鍙互杈撳嚭鎵鏈夋壄鐭╁硷紝骞朵娇鐢ㄩ儴鍒嗗姛鑳藉伐鍏锋祴璇曞悇绉嶈Е鍙戝櫒鍜岀Щ鍔ㄨ缃5.杩愯娴嬭瘯 瀹夎瀹屾墍鏈夐厤浠跺拰鐢电嚎鍚庯紝杩涜缁堟瀬娴嬭瘯銆傚湪寮濮嬫祴璇曞墠锛岃纭繚鎮ㄧ殑...
  • 浣曞繝鎮︽暀瀛﹀伐浣
    绛旓細鏁欏鏂规硶涓婏紝浣曞繝鎮︽暀鎺堥噰鐢ㄥ叏绋嬫渚嬪紡鏁欏娉曪紝缁撳悎瀹為檯椤圭洰鈥斺旀櫤鑳鐜╁叿灏忚溅鎺у埗鍣鐨勫嵃鍒剁數璺澘璁捐涓庡埗浣滐紝閫氳繃浠诲姟椹卞姩鐨勬柟寮忥紝璁╁鐢熷湪瑙e喅瀹為檯闂涓彁鍗囦笓涓氭妧鑳姐傝绋嬭瘎浠蜂互鑳藉姏鑰冩牳涓轰富锛屾棬鍦ㄥ煿鍏诲鐢熺殑涓撲笟鐭ヨ瘑銆佷笓涓氭妧鑳藉拰涓撲笟绱犲吇锛屼娇涔嬫垚涓哄叿澶囩患鍚堢珵浜夊姏鐨勭數瀛愬伐绋嬩汉鎵嶃
  • 鏍戣帗娲惧彲浠ョ敤鏉ュ共浠涔
    绛旓細鏍戣帗娲惧彲浠ョ敤鏉ヨ繛鎺ユ棤绾跨儹鐐癸紝鎴栬呬綔涓烘満姊板亣鑲㈢殑鎺у埗鍣锛屼篃鍙互鐢ㄦ潵鍋氭垚绠鏄撶殑鑷埗绗旇鏈紝鎴栬呯敤鏉鎺у埗鐜╁叿杞﹁鍔紝杩樺彲浠ョ敤鏉ユ帶鍒惰溅搴撻棬寮鍏筹紝鎴栬呬綔涓虹綉绔欑殑鍚庡彴鏈嶅姟鍣ㄦ惌寤虹綉绔欍傛爲鑾撴淳鍙互鐢ㄦ潵骞蹭粈涔 鏍戣帗娲炬槸涓绉嶅井鍨嬬數鑴戯紝鑻辨枃鍙仛RaspberryPi锛岀畝鍐欎负RPi锛屾渶鍒濇槸涓哄涔犺绠楁満缂栫▼鏁欒偛鑰璁捐鐨勶紝澶栧舰鍙湁...
  • 鐜╁叿璁捐涓庡崟鐗囨満鏈夊叧涔?
    绛旓細绠鍗曠殑鐜╁叿鐢ㄤ笉鍒板崟鐗囨満锛屾病蹇呰锛岄兘鏄畝鍗曠數璺厓浠舵惌鐨勩傞櫎闈炲緢澶嶆潅鐨勭帺鍏锋墠鍙兘鐢ㄥ埌鎺у埗鍣銆
  • 鍗佷簩浼鎺у埗鍣鍎跨鐜╁叿杞︽槸鐢卞摢鍑犻儴鍒嗙粍鎴愮殑
    绛旓細涓夐儴鍒嗐傜數鍔ㄧ杞︾敱鐢靛姩鏈恒佽溅韬拰鎺у埗寮鍏崇瓑涓変釜閮ㄥ垎缁勬垚銆鐜╁叿绔ヨ溅鏄効绔ョ帺鍏蜂腑鐨勪竴绉嶏紝鏄寚涓撲緵鍎跨娓告垙浣跨敤鐨勭帺鍏疯溅銆
  • 鐜╁叿璁捐甯堝浠涔堜笓涓
    绛旓細涓撲笟鏍稿績璇剧▼涓庝富瑕佸疄璺电幆鑺傦細鏈烘鍒跺浘銆佹満姊璁捐鍩虹銆佸効绔ヨ壊褰╀笌鍥炬銆鐜╁叿鏉愭枡銆佹ā鍏疯璁′笌鍒堕犮佹ā鍏稢AD/CAM銆佸井鐢垫満鎶鏈佸彲缂栫▼鎺у埗鍣銆侀仴鎺ф妧鏈佺帺鍏烽犲瀷鍙婄粨鏋勮璁°佺帺鍏风殑瀹夊叏鏍囧噯涓庢娴嬨侀噾宸ュ疄涔犮佺數宸ュ疄涔犮佸埗鍥炬祴缁樸佽绋嬭璁°佺帺鍏锋櫤鑳芥帶鍒跺疄璁佺數瀛愮帺鍏疯閰嶅疄璁佺敓浜у疄涔犮佹瘯涓氬疄涔狅紙璁捐锛夌瓑...
  • 鐜╁叿璁捐涓庡埗閫犺绋嬭缃
    绛旓細妯″叿璁捐涓庡埗閫犱互鍙婃ā鍏稢AD/CAM璇剧▼锛岃瀛︾敓鐔熸倝妯″叿鐨勫埗浣滆繃绋嬪拰鏁板瓧鍖栨妧鏈殑搴旂敤銆傚井鐢垫満鎶鏈拰鍙紪绋鎺у埗鍣鐨勫涔狅紝涓鐜╁叿鐨勮嚜鍔ㄥ寲鍜屾櫤鑳藉寲鎿嶄綔鎵撲笅鍩虹銆傞仴鎺ф妧鏈拰鐜╁叿閫犲瀷鍙婄粨鏋勮璁″垯鍏虫敞鐜╁叿鐨勪簰鍔ㄦу拰瀹炵敤鎬с傚浜庣帺鍏风殑瀹夊叏鏍囧噯涓庢娴嬶紝璇剧▼浼氭繁鍏ヨ瑙o紝纭繚璁捐绗﹀悎琛屼笟瑙勫畾銆傚疄璺电幆鑺傚悓鏍烽噸瑕侊紝鍖呮嫭...
  • 鍏夌嚎鏋殑绗竴浠鎺у埗鍣
    绛旓細绾㈢櫧鏈哄厜绾挎灙鎺у埗鍣锛1984骞达級鏃╂湡鐨勫厜绾挎灙娓告垙鏈哄彴鎴鐜╁叿澶氬崐浣跨敤浼氬彂鍑哄厜绾跨殑鏋笌鑳戒睛娴嬪厜绾跨殑鏍囬澏鎵鏋勬垚锛屼笉杩囩數瑙嗘父涔愬櫒鎵浣跨敤鐨勫睆骞曟湰韬苟鏃犳硶渚︽祴鍏夌嚎锛屽洜姝ょ數瑙嗘父涔愬櫒鍏夌嚎鏋噰鐢ㄧ浉鍙嶇殑璁捐锛屽皢鍏夌嚎渚︽祴鍣ㄨ鍦ㄦ灙鍙e唴閮紝浠ユ劅搴旂數瑙嗗睆骞曚寒搴︾殑鏂瑰紡鏉ュ弽鎺ㄧ瀯鍑嗙殑浣嶇疆銆傜孩鐧芥満鍏夌嚎鏋噰鐢ㄤ簡姣旇緝绠鍗曠殑鏂瑰紡锛...
  • 扩展阅读:班长熟练的调手中的遥控器 ... 自制振荡器 ... 控制别人的遥控器 ... 发泄玩具 ... 把遥控器调到最大档 ... 控制遥控器 ... 他的遥控器gb ... 玩控拼插玩具 ... 男子用遥控器控制女友的心 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网