基于Arduino的语音报警系统

2016-06-04 20:48邹元鹏
企业文化·下旬刊 2016年5期
关键词:报文串口以太网

邹元鹏

摘 要:介绍了一种基于Arduino的语音报警系统。文中描述了语音系统的实现原理和具体功能,该系统通过接收以太网上的UDP报文,解析成文本并进行语音朗读,实现智能化的语音报警。本设计硬件部分选用了开放式的硬件平台Arduino和文本语音转换(TTS)模块;软件部分给出了控制器中具体的程序逻辑实现;最后对系统的控制方法作了说明。

关键词:Arduino;语音报警系统

当前市场上常用的语音报警系统分两种。一种是带录音功能的语音报警器,内置通用的多种报警语音,按条件触发播放。这种语音报警系统声音自然,易于使用。但是如果需要修改语音,或是需要播报的语音条目太多时,需要做的工作量非常大,且难以实现智能化的语音报警(如在语音中自动插入报警的设备号)。近年来,随着语音文字转换技术(TTS)的发展,另一种采用此种技术的语音报警系统开始普及,极大的提高了工业报警系统的自动化和智能化程度。

本文介绍一种以SYN6658 TTS语音模块、W5100以太网模块以及开源Arduino平台实现的基于以太网的语音报警系统。该系统可方便的与工厂中常用的多种PLC直接对接。系统从以太网接收GBK编码的UDP报文,将其以指定语速及音色朗读。具有扩展性好,网络负载低、易于实现等多种优点,为相关语音系统的构建提供了参考。

一、硬件设计

本设计采用了Arduino Nano 控制板、W5100以太网模块、SYN6658语音模块及有源音箱、稳压电源等构成。系统的组成如图所示。

系统通过W5100接收报文,经过Arduino解析并再次封装,发送给SYN6658模块,模块将编码转换为语音并驱动音箱播放。

Arduino是一种基于Atmel的微控制器的开源软硬件平台,近年来随着智能硬件的普及得到了广泛应用,这种控制板细分为众多型号,本次设计中使用的是基于ATmega328的Arduino Nano版本。该版本体积比标准板更小,采用更友好的MiniUSB供电接口,提供14个数字输入输出引脚和8个模拟输入引脚,32KB 闪存,2KB SRAM和1KB EEPROM。

W5100是一款多功能的单片网络接口芯片,内部集成了10/100M以太网控制器,主要用于各种高集成、高稳定、高性能和低成本的嵌入式系统中。W5100内部集成了全硬件的TCP/IP协议栈。

SYN6658是一款优秀的语音合成芯片,芯片通过UART接口或SPI接口通讯方式接收待合成的文本数据,实现文本到语音的转换,主要应用于公交语音报站、自动售货机、排队机等领域。芯片支持文本智能分析、多音字处理、中文姓氏处理、语音语调切换等多种功能。

Arduino Nano与W5100间使用SPI对接,可以实现以太网数据的读取和写入,同时与SYN6658间使用TTL串口通讯,实现语音报文的发送。

二、软件设计

软件部分采用Arduino1.6.8编程软件平台完成,该平台使用了一种类C的语言进行编程序编制。程序通过Socket通讯机制接收UDP报文,然后通过串口发送文本信息。

简化后的主要程序逻辑如下:

void setup() {

Ethernet.begin(mac, ip); //初始化网络模块

Udp.begin(localPort); //开始监听端口

Serial.begin(9600);}

void loop() {

int packetSize = Udp.parsePacket(); //接收报文

if (packetSize) {

Udp.read(packetBuffer, UDP_TX_PACKET_MAX_SIZE);

unsigned char head[packetSize+5]; //封装文本数据

head[0] = 0xFD;

head[1] = 0x00;

head[2] = packetSize+2;

head[3] = 0x01;

for(int i=0; i<=packetSize; i++){

head[i+2] = packetBuffer[i];}

for(int i=0; i

Serial.write(head[i]);}}} //发送给语音模块

三、系统控制方法

本语音系统的报警可使用任意支持以太网Socket连接的设备触发。调试时可使用PC上的Socket测试助手进行连接,也可使用高级语言编写控制端软件进行控制。实际工业现场中,由于现在大部分PLC都支持Socket连接,可直接将该语音报警系统连入现场以太网,通过在PLC中编写程序与报警系统进行对接。

四、结语

经测试,该语音报警系统能够根据现场发送的文本进行报警,硬件可靠性,搭配的放大电路及有源音箱的功率也足够,满足可用性要求。但本方案中并未考虑现场电磁屏蔽保护,如果现场电磁干扰较强,需要设计防护外壳为系统屏蔽电磁干扰,同时选用TCP连接协议进一步增加数据可靠性。另外,该系统也可设计为使用如串口、数字量等其他方式进行控制,以适应不兼容以太网的其他工业现场。

参考文献:

[1]王满利,张涛.基于单片机的语音报警系统[J].2014(11).

[2]BANZIM.Getting started with Arduino[M].California:O`REILLY,2009.

[3]蔡睿妍.Arduino的原理及应用[J].电子设计工程,2012(8).

猜你喜欢
报文串口以太网
海法新港一期自动化集装箱码头电子数据交换报文系统设计与实现
基于报文类型的限速值动态调整
网络智能平台和云服务为以太网注入新动力
MCS—51单片机中的多串口通讯技术的应用
三大因素驱动创新提速以太网快步迈入“灵活”时代
三大因素驱动创新提速 以太网快步迈入“灵活”时代
用户设备进行组播路径追踪的方法及系统
全国计算机等级考试机房准备工作探讨
微机串口的测试诊断
基于ENC28J60的嵌入式以太网/CAN网关设计