智能桌面时钟(speaker版)——《无线电》2014.07
2014-08-13 16:12:23笔者之前做过的电子时钟不下5 种类型,总感觉显示方式大同小异,这次想开发一个具有真人语音报时功能的电子时钟,于是在minideskclock(beep 版)(刊载于2013 年第8 期《无线电》杂志)诞生之后开发了这款speaker 版的电子时钟。
制作旅程
有了minideskclock(beep 版)的基础,这款时钟的硬件搭建当然只需要在之前的基础上稍作修改。在硬件电路中,只是将有源蜂鸣器的i/o 口用单排孔预留出语音模块的工作接口,方便speaker 版扩展语音模块通信使用。说到语音模块这个硬件,有必要和大家多说说。
语音模块的主芯片是wt588d,这款芯片的功能还是挺强大的,支持内置spiflash和外挂spi-flash 等,具体功能读者可以在网上下载用户使用手册,在此不多说。模块中的语音信息可根据用户需要自由编程定制,修改语音信息内容非常方便。
wt588d 具有多种操作模式,模式通过下载软件进行设置,在与单片机通信上有三线和一线通信方式,为了简洁,在这里我采用了一线通信方式。
wt588d 芯片在网上有很多现成的模块, 有内置flash 的,
有外挂flash 的,还有usb 型的。但这些模块中却少有设计minideskclock了3.3v 稳压芯片的,由于wt588d 芯片需要提供一个3.3v 的电压才能工作,所以这些模块在使用时需要另外设计一个3.3v的稳压电路。本着设计简洁的目的,我在wt588d 语音模块中新增了一个3.3v 的稳压芯片,而外挂flash 使用的是16mb 存储芯片。有些朋友手上有8mb 的存储芯片,为了增加设计的通用性,在程序中增加了一个可识别功能,用于识别16mb 和8mb 的语音模块,以方便使用者根据存储空间选择对应的音效文件。
wt588d 芯片可以播放处理音频,但不能录制,怎么办呢?不急,这款芯片虽不具备录制功能,但可以利用下载器下载我们需要的音频内容,比如自己用录音机录制一段,再用第三方软件处理一下音频格式,再下载到芯片中即可。(第三方软件介绍见文后“tips”。)
minideskclock(speaker 版) 的主控电路如图1 所示,wt588d 模块的电路如图2
所示。两部分电路分别焊接到两块板子上,通过相应接口连接。
整体焊接过程读者们可移步到《无线电》2013 年第611 期中的《设计巧妙的minideskclock》一文中阅读了解。这里仅将语音模块的组装向大家介绍一下,其实物焊接效果如图3 所示,其中包括一条40 脚的圆孔排母和一个扬声器等元件。
从beep 版升级到speaker 版,笔者并不甘心仅实现一个语音报时功能,于是不断在程序上下功夫,在beep 版的基础上新增了开机音乐、整点报时(休息时间段停止)、内置节日提醒(语音芯片存储空间有限,仅设计了3 个节日)、断电记忆,循环切换解决铃声、增加set 长按退出调节模式、30s内无键操作自动回到正常走时模式等功能。
闹钟发生时,除了有铃声外,单片机的txd 和rxd 引脚以及mosi、miso 均有输出动作。在闹钟期间,txd 和miso 引脚受sck 引脚的控制,即sck 输入高电平时txd 和miso 输出均为低电平,而sck 第一次输入低电平后txd 和miso
引脚均输出高电平,sck 第二次输入低电平后txd和miso 引脚再次恢复成低电平,同时闹钟期间rxd 和mosi 引脚输出为低电平,这两个引脚的信号不受sck 输入信号的控制;当3min 的闹钟结束后,rxd 的mosi
引脚输出高电平,而txd 和miso 引脚需要接受sck一次低电平输入才能恢复成高电平。
在实物硬件上,有很多的jp 口,其中jp5 默认是短路的,程序检测到后运行的控制是针对16mb 存储空间的语音模块的,在使用前需要为语音模块下载具有16mb 存储空间的bin 文件。当jp5 被断开后,控制的是8mb 存储空间的语音模块。