西北民族大学 杨 萍 赵张燕 撒 灵 乔意凡 邓小燕 张心歌
基于嵌入式Linux的智能家居机器人
西北民族大学 杨 萍 赵张燕 撒 灵 乔意凡 邓小燕 张心歌
针对智能家居环境的需求,提出了基于嵌入式 Linux 的智能家居系统的设计方案。本系统由语音机器人和智能家居两部分组成,设计上语音机器人采用基于嵌入式Linux的芯片作为主控制器,智能家居采用低功耗、稳定性高的芯片作为控制器,整个系统综合蓝牙技术、网络技术以及传感器技术综合实现,最终实现通过语音机器人识别用户的语音命令,实现了人们多年梦寐以求的“芝麻开门”的梦想。
智能家居;嵌入式;Linux;蓝牙技术
随着计算机技术的发展,人与机器之间的交互越来越广泛和深入。交流时由于操作数据的频繁交互,人们越来越受到鼠标和键盘的束缚。在这种情况下,如何让计算机智能化地与人进行通信,使人机交互更加自然、方便和快捷成为现代计算机科学的重要研究课题之一。语言是人类获取信息最重要、最有效和最便捷的交流方式。如果计算机能够听懂人类语言,能够表述人类语言,那么就不需要鼠标键盘,不同语言的人们交流也就会更容易。这个愿望实现的技术基础就是语音识别和理解。
本系统设计的思想是通过智能机器人控制家庭中的智能家居设备,系统将基于现有的语音识别合成技术,让语音机器人在智能家居控制中扮演智能管家的角色,设计实现一套智能家居机器人系统,利用语音技术,使用户在不用操作鼠标键盘等传统方式上,实现智能家居的控制。
1.2.1 语音机器人的设计
语音机器人采用类人的设计方法,具有手臂、头等基本的外部骨架,采用移动式底盘,方便灵活控制,系统设计上采用Linux系统,在Linux系统之上开发语音识别合成、云端大脑等程序,最终语音机器人将具有人机对话、命令识别等功能。语音机器人最终实物图如图1所示。
图1 语音机器人最终实物图
图2 智能家居设计单片机最终实物图
1.2.2 智能家居的设计
智能家居设计拟采用51系列单片机作为控制器,这个系列的单片机具有低成本、稳定性高等特点,智能家居控制包括灯、风扇、门等的控制。最终实物图如图2所示。
2.1.1 Cubieboard模块
Cubieboard采用DDR3 512Mb/1024Mb内存,市场上多见的是1024Mb内存的版本,其自带有一个5v电源插口、1个SATA5v电源插口、1个SATA 2.0硬盘接口、HDMI视频接口、Micro-SD卡卡槽、耳机插口、线路输入插口、96Pin GPIO接口以及100M以太网插口和Mini-USB接口。如图3所示。
2.1.2 蓝牙模块
系统中的D蓝牙模块采用HC-05主从机一体蓝牙模块,该模块有丰富的I/O接口,传输距离可达到10M。数据传输采用串口方式,串口传输简单、可靠且速度较快。此模块的体积小、功耗低、使用方便,在本项目中使用能够快速的响应主控器的指令,达到传输数据的能力。
图3 Cubieboard模块
2.2.1 人机对话
语音机器人通过采集用户的语音信息,通过百度语音在线识别,再将处理得到的语音信息发送给图灵机器人人工大脑,人工大脑可以完成诸如百科知识、新闻资讯、天气查询、航班查询等语音互动,最后再有语音合成处理成音频文件播放出来,达到人机互动的能力。
2.2.2 语音控制
语音机器人通过采集用户的语音信息,通过百度语音在线识别或者对本地语音识别,程序内部处理返回的语音信息,如果和预定的控制指令相同或者类似,经蓝牙模块将对应的控制指令发送给微控制器,微控制器控制智能家居中的风扇、灯光以及门窗等动作,达到语音控制的目的。
整个系统的软件设计方法有三种,根据不同的应用场合和系统的负责程序采用不同的设计方法,一般情况下,简单的系统可以采用常规的软件设计方法;较为复杂的系统可以采用DSP仿真软件CCS提供的DSP/BIOS设计方法(DSP/BIOS是TI公司专门为DSP设计的嵌入式软件设计方法);最为复杂的系统需要采用嵌入式操作系统进行设计。目前,OMAP5912支持的操作系统包括WinCE、Linux、Nucleus以及VxWorks等,可以根据需要选择不同的操作系统,本系统采用嵌入式操作系统进行设计。
部分源程序:
智能家居实现:
void main()
{
led2=1;led1=1;//初始状态关闭
init();
recieve=0x00;
while(1)
{
switch(recieve)
{
case 0x31 : led1=0;break;//开卧室灯
case 0x32 : led1=1;break;//关卧室灯
case 0x33 : led2=0;break;//开卧室灯
case 0x34 : led2=1;break;//关卧室灯
case 0x35 : duoji_flag=1;Duty=25;break;//开卧室灯
case 0x36 : duoji_flag=1;Duty=15;break;//关卧室灯
case 0x37 : duoji_flag=2;Duty=25;break;//开卧室灯
case 0x38 : duoji_flag=2;Duty=15;break;//关卧室灯
case 0x39 : duoji_flag=3;Duty=25;break;//开卧室灯
case 0x30 : duoji_flag=3;Duty=15;break;//关卧室灯
}
语言识别实现:
#获取百度开发token
global token,api,ccuid,key
print ‘robot init------->>>>>>>>’
token = get_token()
key = ‘a06f57927941448faea980695b82c9ce’
api = ‘http://www.tuling123.com/openapi/api?key=’ + key + ‘&info=’
ccuid=”00-08-CA-C1-0B-CD” #板子的mac地址
deflisten():
#监听人的说话,并解析出文本
os.system(‘arecord -D “plughw:1,0” -f S16_LE -d 5 -r 8000 /root/study/listen.wav’)
use_cloud(token)
print ‘me:’,duihua
#print ‘duihua --->’,type(duihua)
def robotsay():
global duihua,api,ccuid,token,robotSay
info = duihua
duihua=’’
request = api + info
#print ‘request-->’,request
response = getHtml(request)
dic_json = json.loads(response)
a = dic_json[‘text’]
#print ‘a type--->’
#print type(a)
unicodestring = a
rebotSay = unicodestring.encode(“utf-8”)
print ‘rebot:’,rebotSay
print ‘robotSay DEBUG’
print ccuid,token
say_requests(rebotSay)
#baidu_tts_get(rebotSay,ccuid,token)
#print ‘tts to play’
os.system(‘mplayer say.mp3’)
def main():
r
obot_init()
while(True):
listen()
search(duihua)
robotsay()
if __name__ == “__main__”:
main()
‘’’
robot_init()
while(True):
baidu_tts_get(‘hello world’,ccuid,token)
os.system(‘mplayer say.mp3’)
前期调试包括系统学习Linux系统、Python编程语言、单片机原理与实践应用,在完成基础知识学习后,我们将购买材料,团队将搜集各种机器人和智能家居方面的设计资料,综合设计出一种移动灵活、美观大方的机器人硬件和智能家居模型,硬件的搭建工作预计将会用时一个月的时间来完成。
中期调试包括关键技术学习、软件程序编写、机器人模块化测试、智能家居模型测试,其中关键技术包括语音识别、语音合成、人工大脑设计,软件编写中主要包括控制命令识别,下达控制指令等,在完成技术攻克后,首先进行模块化的功能测试,测试好每一个模块的功能正常后,最后组织系统联调和硬件软件的优化工作。
后期调试主要是整个系统的调试工作,软件上排除bug,硬件上做最好的改动,最终实现整个系统稳定运行。
本项目设计改变了传统的智能家居控制方式,现今市面上绝大多数智能家居设备都是通过手机APP的方式来实现控制,APP界面往往有很多按钮和显示框,导致用户控制智能家居的时候感到繁琐,特别是对于不善于使用智能手机的老人和残障人士更是不方便,但是通过本项目的研究和设计,语音交互将成为人和机器人交流最人性化的交流方式,设计开发语音机器人,通过语音识别和合成,完成智能家居的控制,更加的方便快捷、人性化操作。在未来,我们的家庭将是智慧家庭,我们的家中将会有很多的智能设备,这些智能设备包括智能灯、智能窗户、智能门等,众多的智能设备要想协同工作,完成信息交流,用户可以和机器人进行语音交流,完成智能控制,因此我们设计的机器人在一定程度上物联机器人的智能化、人性化。
[1]刘显强.基于嵌入式无线传输文件系统的研究与设计[D].成都:电子科技大学,2012.
[2]冯开林,刘春艳,韩东旭.基于S3C2440平台搭建linux环境[J].通信技术,2013,46(11):120-123.
[3]董萍.基于nRF2401A的家庭智能系统的设计与实现[J].武汉轻工学学报,2015,34(2):87-91.
西北民族大学国家大学生创新创业训练计划项目资助(项目编号:201710742063)。
杨萍(1996—),女,云南红河人,西北民族大学2014级自动化专业本科生。