刘映群,黄嘉源,李泳智,何梓嵘,杨佳颖
1.广东开放大学(广东理工职业学院),广东广州 510091
2.广州理工学院,广东广州 510540
3.广州城市理工学院,广东广州 510800
4.广东技术师范大学,广东广州 524094
5.湛江科技学院,广东湛江 524094
人口老龄化作为“百年未有之大变局”在人口年龄结构上的具体表现,目前已成为中国等大多数国家的基本国情。《国家积极应对人口老龄化中长期规划》明确提出“强化应对人口老龄化的科技创新能力”与“把技术创新作为积极应对人口老龄化的第一动力和战略支撑”;党的“十九大”报告提出“智慧养老”概念,这些都为物联网、人工智能等带来了发展的契机[1]。根据联合国对老龄社会的定义标准,我国在2021 年就已经正式跨入老龄社会,必然会加剧监护人对老人监护不到位,缺乏对老人身体情况的掌握与老人情感需求不满足等多方面的问题,在农村,实际居住人口老龄化程度可能进一步加深,而老人在独居生活当中受到身体机能老化带来的行动不便、记忆力衰退等影响,容易存在忘记吃药、摔倒、体征数据异常等方面的问题。
现有的居家养老监护系统,如燕丽红[2]提出的基于物联网的智能居家养老看护系统,可实现老人居家状况监控和报警功能,但缺乏对老人防摔倒的功能;李昌奇等人[3]提出的基于Android 和WiFi 的智能家居监控系统,通过STM32 主控连接所有传感器模块,影响到传感器的检测准确性与系统的效率,并同样缺乏老人防摔倒功能。目前,防摔倒的方法有基于视觉的非接触式设备与基于传感器的接触式设备,非接触式如张晓华[4]提出的基于Jetson TX2 的老人跌倒监护与王鹏等人[5]提出的基于FPGA 的视频监控摔倒检测报警系统,都能够无佩戴式监测跌倒异常,但存在当摄像头受到光照、角度与遮挡物等多因素影响准确率的问题;接触式如罗文志等人[6]提出的基于LoRa 的老人跌倒监护系统与蒋亚飞等人[7]提出的基于Arduino的智能摔倒监控报警系统,通过传感器检测,较好规避复杂视觉环境误判老人摔倒的风险,但存在设备可能需要频繁充电而老人经常忘记的问题。针对以上问题,本文提出监护机器人与智能手表的设计,两种方式结合更为全面地监测老人状态,降低误判可能性,并开发移动端App,实时控制机器人与获取手表检测数据等,使系统支持远程监控和控制,解决独居老人的生活保障问题。
系统组成主要包括移动端App、智能手表和机器人主体部分。在此系统中,移动端App 拥有语音控制、体征数据、场景控制、远程视频、报警信息提示与实时跟踪等对机器人实时控制的功能;机器人主体则负责执行由App 下达的指令;智能手表通过搭载各类传感器进行对老人体征数据的采集,并将采集到的体征数据传输至App。通过此系统,能够达到对老人体征数据的远程和实时监测、对机器人远程控制协助监护的功能,以此实现对居家老人监护智能化、安全化的目的。系统设计总框图如图1 所示。
机器人主体由摄像头、底层硬件控制板与移动轮组成,采用树莓派4B 作为核心控制,烧录树莓派官方支持的Raspberry Pi OS 作为操作系统,并使用Python编程语言进行开发。Python 是一种面向对象的开源跨平台设计语言,拥有各区域的代码,如单元监测、图像处理和操作系统接口等,可以通过调用这些代码进行开发,以此来减少代码冗长和缩短开发周期,还能将其他语言如C/C++等编写的模块代码很轻松地整合到一起,便于开发[8-9]。
摄像头:基于树莓派系统来搭配摄像头作为“眼睛”,搭载的二自由度摄像头可通过摄像头俯仰视180°、转动云台环视180°实现对场景进行多方位的监视,通过调用OpenCV(轻量级视觉的开放源代码的API(Application Programming Interface,应用程序编程接口))函数库来进行视觉处理,实现对目标识别、跟踪和测量等功能的开发。
底层硬件控制板:将电机、陀螺仪与电池等外设与STM32 单片机连接控制,再将所有硬件配置全部封装在底板中,最后通过串口通信使树莓派4B 连接到STM32 单片机。至此,完成机器人主体的设计和通信连接。
对于老人佩戴的手表来说,智能手表的操作简单性和续航时间是比较重要的,而STC8A8K64SA12芯片的低功耗能够极大提高手表的续航能力,4 个高速串口波特率时钟源最快可为FOSC/4。此外,I2C(Inter-Integrated Circuit,集成电路总线)通信协议可支持主机模式和从机模式。通过STC8A8K64SA12 芯片搭配其他外设、模块,可以满足设计需求。佩戴智能手表监测设备可以测量多种体征,如心率、血氧与体温等,同时可以实现跌倒行为监测[10]。
因此,智能手表的设计方案为:硬件核心采用STC8A8K64SA12 芯片,使用串口连接蓝牙模块、NBIoT(Narrow Band Internet of Things,窄带物联网)模块,通过I2C 通信协议将实时时钟PCF8563、血氧心率传感器MAX30102模块和陀螺仪等模块与主控芯片通信。手表上搭载的体征数据传感器和动作姿态(屏幕双击、抬腕唤醒)采集数据后,在室内模式可通过蓝牙通信向机器人发送数据,在室外模式则通过NB-IoT 模块将数据直接发送到云端服务器。手表硬件设计如图2 所示。
机器人主体通过搭载电机驱动模块、摄像头模块、声纹识别模块、语音播报模块、WiFi 模块与蓝牙模块来实现移动、语音控制与对话、远程视频与实时跟踪等功能。
电机驱动电路:采用FD6288芯片和搭建三线桥设计的STM32电机驱动扩展板,支持4 路编码器直流电机,板载两路5 V 电源,最大电流5 A,具有丰富的板载资源和扩展接口,非常适合和树莓派这样的ROS 主控组成ROS机器人。
摄像头电路:OV2640 是一款CMOS 类型的数字图像传感器,具有高灵敏度、低电压与小体积等优点,支持色度饱和度、色相、伽马、锐度等设置,支持图片压缩,支持输出JPEG 和RGB565 等格式的图像数据。其中,SIO_C 与SIO_D 通信协议跟I2C 十分相似,且OV2640 的SCCB 特性与I2C 无差别,可以与STM32很好地兼容。采用OV2640 数字图像传感器与STM32结合,设计一个图像采集系统,实现视频捕捉、图像识别、对象跟踪等功能。因此,该摄像头十分适合应用于嵌入式设备中[11-13]。
声纹识别电路:采用Wolfson 推出的WM8978 全功能音频处理器[14-15],其具有高级的片上数字信号处理功能,包含一个5 路均衡功能,同时在ADC 的线路上提供数字滤波功能,每个输出都有一个单独的音量控制 PGA,一个输出推动或电平转换位,一个消声使能,能够驱动一个8 Ω 的BTL 扬声器,还提供许多麦克风配置,如包含差分和单端输入等,能够很好地接收语音指令。
语音播报模块:YF017 是一款用于声音提示、声音识别等功能的语音芯片,能够直接驱动喇叭,无需再通过音频放大电路,外围只用一个0.1 μF 电容就可以稳定工作,而且还能够通过外部按键或串口进行控制,连接简便,方便地实现语音提示、语音识别等功能,被广泛应用于各种电子设备[16]。使用机器人主控的树莓派驱动,通过配合声纹识别电路进行程序设计,可以实现陪伴老人聊天的功能。
WiFi 模块:ESP-01S 是基于ESP8266 芯片的低成本、超低功耗的UART(Universal Asynchronous Receiver/Transmitter)-WiFi 模块,其采用32 bit/80 MHz 精简指令处理器,具有完备的传输控制协议/网际协议(Transmission Control Protocol/Internet Protocol,TCP/IP)栈,可通过AT(Attention)指令快捷地进行TCP/IP 连接[17]。该模块可以通过WiFi 或局域网与其他设备通信,确保不在老人身边时可以实时通信得到数据反馈,在面对无网络的情况下也能做出相对的调整。
智能手表搭载陀螺仪模块、血氧心率检测传感器模块、蓝牙模块与NB-IoT 等模块,实现老人摔倒监测、步数计算、定位、血氧心率检测与数据传输的功能。
陀螺仪模块:LSM6DSM 是由3 轴加速度和3 轴陀螺仪组成的6 轴传感器,采用创新型电源管理技术,增强型陀螺仪设计,具有高效的数据批处理能力。同时集成加速度驱动的步伐政策、步数计算,以及倾斜度和大幅度运动检测。与多个独立传感器解决方案相比,LSM6DSM 不仅节省元器件数目和电路板空间,而且功耗较低。结合该传感器的特性,在手表上添加了实现抬腕中断、计步器、解算姿态获得倾角等功能。
蓝牙通信模块:采用Nordic nRF52840 模块,向下兼容4.2、4.0 协议,支持串口数据透传。这是一款低功耗、高性能的片上系统(System on a Chip,SoC),内置ARM Cortex-M4 处理器和2.4 GHz 射频收发器,支持蓝牙低能耗(Bluetooth Low Energy,BLE)和无线ANT 协议技术,同时具备多种外设接口,也是目前业界最低功耗蓝牙模块,为手表提供更长的续航时间。
NB-IoT 模块:NB-IoT 是一种专门为物联网设计的蜂窝技术,所占用的带宽很窄,只需约180 kHz,适用于信号覆盖范围大与低功耗的应用场景[18]。采用M5310A 芯片,支持多种通信协议,包括NB-IoT,并且可在多个频段(包括L1、L3、L5 等)上运行。此外,该芯片还支持多种安全特性,包括数据加密、身份认证和防篡改等,以确保通信的机密性、完整性和可用性。智能手表通过搭载该模块可以实现定位和上传体征信息,收集信息到云服务器。
血氧心率电路:MAX30102 为MAXIM 公司推出的专为可穿戴设备设计开发的血氧饱和度和心率监测传感器,集光源、接收、滤波和数字化为一体,采用一个1.8 V 电源和一个独立的3.3 V 用于内部LED 的电源,标准的I2C 兼容的通信接口[19]。智能手表搭载该模块用来检测老人的血氧心率,并通过I2C 通信协议与蓝牙模块进行数据的传输与同步。
机器人主体基于图像处理技术,实现对老人实时跟踪、摔倒报警,与App 通信来实现数据传输与指令下达,同时,根据老人的信息调节机器人的日程安排,如提醒老人按时按量吃药、就寝等。子女可以通过App 远程视频功能来调用机器人主体的摄像头模块与音频模块,实时与老人对话,关注老人动态。机器人还配备语音助手,能够接收老人下达的语音指令并执行,如报告天气情况、自动播放音乐等基本的语音指令,省去老人不会操作智能设备的麻烦。语音聊天功能则能够与老人进行一些简单的互动,可根据老人喜好完善程序的设计,使语音聊天内容更加丰富。机器人主体设计如图3 所示。
智能手表使用传感器检测技术、无线通信等方式,能够读取老人定位、血氧心率与步数的数据信息,实时采集多个重要生命体征数据,并且也配备了防摔倒的功能,防止因机器人移动故障、摄像头模块监测异常或机器人不在老人身旁的特殊场景而疏忽了对老人摔倒的监测。手表会将采集到的数据信息通过无线传输传送至机器人,监护人则可通过移动端App 中的体征数据功能查询老人的实时体征情况。智能手表软件设计如图4 所示。
为了方便监护人对老人的照料,根据应用需求,开发出了移动端App。App 有语音控制、特征数据、远程视频以及实时跟踪等对机器人进行远程控制的功能,配合机器人与智能手表,能够对老人实时、远程地监护,并对体征数据设定了一个报警阈值,当采集到的体征数据超出设定的报警阈值时,App 将给予警示。移动端App 如图5 所示。
在设计过程中,基于应用场景对机器人与智能手表较为重要的防摔倒功能进行测试。在对防摔倒功能测试中,模拟老人摔倒如图6 所示。首先,手表会远程发送信号至机器人端,机器人快速移动至老人周围,在摔倒老人周围反复移动并发出警报,如图7 所示;然后,将情况通过App 告知监护端,如图8 所示;监护人能够通过App 远程视频功能控制摄像头获取当前老人摔倒实时场景,如图9 所示。经过多次模拟应用场景测试,判断该系统能够满足设计要求。
根据应用需求,提出了针对老人的居家监护系统的设计,并对设计系统进行功能开发,实现了整套系统。通过对系统的现实场景应用测试证明,以树莓派高性能处理器为核心,结合摄像头模块、音频处理模块与无线通信模块等设计的机器人主体,配合内嵌多种传感器的智能手表与移动端App 构成的居家老人监护系统,能够解决现如今随着独居老人群体不断扩大而难以照料的问题。该系统比较适用于家庭场景或养老院等室内场景,系统样机如图10、11 所示。期待物联网技术与人工智能能够在更多领域辅佐人类,代替人类完成更多、更艰难的工作。