APP下载

智能家居服务型机器人的设计与开发

2016-03-12吉林大学珠海学院严毓培陈志钦严泽强郑镗浩

电子世界 2016年23期
关键词:下位上位串口

吉林大学珠海学院 严毓培 陈志钦 严泽强 郑镗浩

智能家居服务型机器人的设计与开发

吉林大学珠海学院 严毓培 陈志钦 严泽强 郑镗浩

随着当今机器人技术的迅猛发展,目前机器人的应用已由工业自动化领域向家庭服务领域扩展,因此家庭服务型机器人成为了当今消费类电子产品的一支潜力股,我们设计的家庭服务型机器人可实现家庭安防报警和家人健康监测的功能,该系统采用上位机加下位机的设计模式,上位机拥有1块4.3寸触摸显示屏,显示优美简单的QT界面,主芯片采用Exynos 4412 SOC加自主设计的底板组成,采用Linux+QT系统负责显示和控制下位机。下位机又主芯片是STM32F103ZET6的核心板加自主设计的两块底板,以及众多外围传感器组成。支持非特定人群语音识别,语音播报,WIFI数据传输,GSM短信报警,烟雾报警,温湿度传感器,大气空气质量检测,大气甲醛含量,通过蓝牙模块建立无线信道,支持无线采集血压,心率,体温等生理参数,突破先有有限测量模式。经测试该系统运行稳定可靠,满足最初的设计要求。

机器人;Linux;QT;STM32

一、简介

随着社会的不断发展,机器人已经慢慢进入了人们的视野,最为典型的是工业机器人在生产车间完成复杂精细的生产任务,在仓库搬用沉重和种类繁多的货物,与此同时,家庭服务型机器人的相关产品也逐渐成熟,比如早教机器人可以帮助小朋友学习,和小朋友对话,成为了小朋友的智能小伙伴,由此可以看到家庭服务型机器人广阔的发展前景,针对目前服务型机器人的发展现状,我们研发了一款家庭服务型机器人,该机器人可以实现安防报警和生理监测的功能,填补了目前市面上家庭服务型机器人功能上的欠缺。

本家庭服务型机器人系统主要有语音健康助手系统,安防报警系统和便携式健康监测仪组成,其中语音健康助手系统部分有三个部分组成上位机加下位机,其中上位机采用Exynos 4412 SOC作为主控芯片,运行Linux+QT系统能做出优美简单且具有强交互性的界面[1]。下位机由两个部分组成信息采集系统,主控芯片采用STM-32F103ZET6作为主控芯片,该芯片有十分丰富的外设,驱动外部传感器模块,完成信息采集处理,再通过串口传送至上位机。上位机和下位机采用串口互连,相互配合,完成整个系统的功能[2]。

便携式健康监测仪集成两个传感器模块,一个是非接触式体温测量传感器GY-MCU90615,另外一个是血压模块,这两个模块通过蓝牙模块建立的无线信道连接到下位机从机的串口,实现血压模块和体温模块的远距离测量,两个模块通过无线信道脱离和主系统的物理连接,即减小的主系统的体积,也争强了测量的灵活性。

图一 智能家居服务机器人的核心电路板

主系统是由上位机+下位机主机+下位机从机,每个部分都以独立的电源进行供电,确保系统各部分互不干扰。上位机部分主要是通过Linux+QT界面显示下位机采集过来的数据,并提供功能菜单,方便用户控制下位机功能的开启和关闭。

下位机主机主要是负责采集温湿度,甲醛,PM1.0,PM2.5,PM10,的含量,自己和主机通信的同时,还要作为下位机从机和上位机通信的中继,同时还要负责语音播报功能。下位机从机主要是采集血压,体温模块,光学传感器的数据,发送给主机。如果语音识别有识别结果,也应当将识别结果发送给主机。如果GSM报警打开的,那么每次测量完血压,都会将血压的测量结果发送至设定好的手机号码中,这一功能可以更好的帮助用户了解家里人的身体情况,体贴照顾到用户对家里人的关切之情。特别对于远离家乡,时刻牵挂的人来说,就是温馨报警,简单来说就是千里报平安,而这也是本系统具有特色性、创新性的一个体现,另外主机那边的煤气检测传感器,检测到家里如果发生煤气泄漏,会发送指令,要求从机驱动GSM模块发送煤气泄漏报警短信,及时通知用户,保障家庭安全。

智能服务型机器人软件可以实现如下功能:

(1)血压、心率、体温三项生理参数测量解析及QT和APP界面显示。

(2)温湿度、甲醛、大气颗粒物含量、烟雾四项环境参数测量解析及QT和APP界面显示。

(3)语音播报(QT界面设置语音播报提示、火警、生理参数、环境参数的变化及给出相应的提示、预警)

(4)语音识别(识别用户输入的语音交互命令,执行相应的命令操作,包括语音开启血压测量、语音设置系统功能等)

(5)GSM发送短信报警(火警报警以及家庭成员生理参数测量结果提示)

(6)QT界面图形化生理参数以及环境参数波形显示,以及提醒建议。

二、功能实现

1.系统硬件设计

整套系统的底板都是由我们自主画的PCB交由生产厂家生产的。

图二 系统硬件架构图

1.1 主芯片模组

上位机的主芯片使用三星所生产的4核处理器Exynos4412soc,可以运行Linux Android Ubuntu系统,所以这块芯片是足以搭载我们的Linux+QT系统,并且流畅运行的。

下位机的芯片是STM32F103ZET6,STM32F103ZET6主芯片最高工作频率可达72M,有丰富的IO口资源和联接到两条APB总线的外设,包含3个12位的ADC、4个通用16位定时器和2个PWM定时器,还包含标准和先进的通信接口:多达2个I2C接口、3个SPI接口、2个I2S接口、1个SDIO接口、5个USART接口、一个USB接口和一个CAN接口[3]。丰富的外设资源,低廉的价格提现出芯片的性价比相当之高,这也是选择其作为主控芯片的原因[4]。

1.2 非接触式体温模块

体温模块采用非接触式体温测量传感器GY-MCU90615, GYMCU90615 是一款低成本红外温度模块。工作电压 3-5v 功耗小,体积小。

1.3 血压模块

血压模块的测量原理是通过阻塞袖带中的震荡波的测量,实现动脉血压的测量的间接方法。该模块由数字血压监测模块,充气汞,电磁阀,放气阀,气路管件和袖带组成。

1.4 GSM通信模块

SIM800A 是 SIMCOM 公司推出的一款高性能工业级 GSM/ GPRS 模块,SIM800A 开发板板载工业级双频GSM/GPRS 模块:GSM900/1800MHz。SIM800A基本版本可以低功耗实现语音、DTMF、SMS(短信,彩信)、GPRS 数据的传输。

1.5 蓝牙模块

DX-BT05-A 4.0 蓝牙模块是专为智能无线数据传输而打造,采用美国 TI 公司 CC2541 芯片,配置 256Kb 空间,遵循 V4.0 BLE 蓝牙规范。支持 AT 指令,可根据需要更改串口波特率、设备名称、配对密码等参数,使用灵活。模块支持 UART 接口,并支持 SPP蓝牙串口协议,具有成本低、体积小、功耗低、收发灵敏性高等优点,只需配备少许的外围元件就能实现其强大功能。

1.6 心率光学传感器模块

PulseSensor是一款用于心率测量的光电反射式模拟传感器。将其佩戴于手指,耳垂等处,其输出线输出的模拟信号是随人的脉搏的改变而改变,利用导线将采集到的模拟信号传送给STM32,由STM32内置的ADC功能将模拟信号转换为数字信号。再经过STM32进行简单的计算就可以得到心率值。

1.7 语音识别模块

LD3320 芯片是一款“语音识别”专用芯片,由 ICRoute 公司设计生产。该芯片集成了语音识别处理器和一些外部电路,包括AD、DA 转换器、麦克风接口、声音输出接口等。

1.8 ESP8266 WIFI模块

乐鑫智能互联平台——ESP8266 拥有高性能无线 SOC,给移动平台设计师带来福音,它以最低成本提供最大实用性,为 WiFi 功能嵌入其他系统提供无限可能。ESP8266 是一个完整且自成体系的WiFi 网络解决方案,能够独立运行,也可以作为 slave 搭载于其他Host 运行,ESP8266 在搭载应用并作为设备中唯一的应用处理器时,能够直接从外接闪存中启动。内置的高速缓冲存储器有利于提高系统性能,并减少内存需求。另外一种情况是,无线上网接入承担 WiFi 适配器的任务时,可以将其添加到任何基于微控制器的设计中,连接简单易行,只需通过 SPI/SDIO 接口或中央处理器 AHB桥接口即可。ESP8266 强大的片上处理和存储能力,使其可通过GPIO 口集成传感器及其他应用的特定设备,实现了最低前期的开发和运行中最少地占用系统资源。

1.9 甲醛模块

甲醛检测模块,供电电压为3.3v,有两种读取指令的方式,一个是读取之后,不需要再次发送指令,另外一种是读取之后需要再次发送指令,通信方式为串口头型,默认布波特率为9600。

1.10 空气质量检测

空气质量检测模块,供电电压为5V,上电默认输出数据,不需要单片机再发送读取指令,极为方便。通信方式为串口通信方式,默认波特率为9600。

2.系统软件设计

本系统中Linux+QT作为健康监测助手的上位机部分,能实现的功能是解析下位机(基于STM32)传来的信息以及发送对下位机控制的指令,将解析好的数据分类显示在QT程序的前端界面上[5]。

本系统中Linux+QT部分硬件基于三星Exynos 4412核心板,Exynos 4412又称为Exynos 4 Quad,Exynos 4412采用了三星32nm HKMG工艺,是三星的第一款四核处理器,主频为1.4GHz[6]。这颗处理器有高主频、低功耗的特点,能处理复杂的任务同时又不用考虑功耗过大的问题,这颗芯片在因为出了有段时间,存在大量可供查阅的资料,所以我们采用这颗芯片,为以后拓展更复杂的功能打好硬件基础[7]。

图三 QT主界面图

本QT程序分为前台和后台两部分。首先后台控制Exynos 4412的串口电路,每秒对串口缓冲区的数据进行5次的读取,下位机发送原始数据的频率是1秒/次,这样能保证上位机不会漏读每次下位机发送过来的数据从而造成丢包。通过读取下位机发来的原始信息,根据上位机和下位机之间设定好的数据协议来解析数据,然后把它们分别保存到定义好的变量中,等待程序其他部分对他们的调用。上位机和下位机串口通信的波特率为115200。程序前端主要是UI界面的设计与显示,用户操作的检测,用户动作与控件事件响应之间的链接,相应功能的触发。比如,当用户点击测量血压按钮来进行血压的测量时,上位机会给下位机传输控制字符以启动血压测量的功能;当用户点击环境监测按钮时候会显示当前环境参数,给出缩略信息图,点击相应选项会进入详细的波形图界面;当煤气泄漏时候,系统会处于警报状态,这时候可以通过上位机来解除警报状态。此外,在这部分中我们设定了某些指标的阈值,当环境监测值,例如甲醛过高,UI上会显示当前环境是否适合居住。

三、总结

该产品与其他类型的家庭服务型机器人相比,具有功能实用丰富,操作简单,运行稳定的特点,首先各种传感器报警功能在家庭安防中有非常重要的作用,同时健康监测功能可使用户及时了解家人的身体健康状况;其次该产品提供了液晶触摸屏和手机监控功能,使用起来非常简单方便;最后该产品经过了多次的连续测试,运行非常稳定可靠,为产品的商业化提供了后续保证。

该产品在研发过程中曾出现了一个难度较大的挑战,该挑战是使用Linux下的QT在设计的液晶触摸屏时出现了控件响应不及时的问题,后续排查可知是Linux出现了多进程阻塞,导致QT插槽函数被挂起。

该产品的创新之处在于该产品将安防报警和健康监测融合在了一起,丰富了家庭服务机器人功能,提升了家庭服务机器人的档次,比市面上的早教机器人更具有应用的普适性和广阔性,填补了市面上同类产品的空缺,所以具有非常大的市场前景。

[1]Alan Ezust,ul Ezust.C++ Qt设计模式[M].电子工业出版社出版,2012.7.

[2]崔惠婷,陈蔚芳.基于ARM的嵌入式机器人控制系统的设计[J].机械与电子,2016.9.

[3]孙书鹰,陈志佳,寇超.新一代嵌入式微处理器STM32F103开发与应用[J].微计算机应用,2010.12.

[4]杨百军.轻松玩转STM32微控制器[M].电子工业出版社,2016.7.

[5]谭浩强.C语言程序设计教程[M].清华大学出版社,2010.9.

[6]杨志忠.数字电子技术(第4版)[M].高等教育出版社,2013.7.

[7]童诗白,华成英.模拟电子技术基础(第五版)[M].高等教育出版社,2015.7.

猜你喜欢

下位上位串口
浅谈AB PLC串口跟RFID传感器的通讯应用
发射机房监控系统之下位机
特斯拉 风云之老阿姨上位
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
景洪电厂监控系统下位机数据传输网络改造
围观党“下位”,吐槽帝“登基”
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
串口技术的实物调试和虚拟仿真联合教学模式