智能化坐姿监测机器人控制系统的研究
2022-01-13孟彩茹孙明扬
孟彩茹,孙明扬,宋 京
(河北工程大学机械与装备工程学院,河北 邯郸 056038)
1 引言
如何保持正确的坐姿进行工作学习一直是一个比较热门的话题。长时间以不正确的坐姿进行工作和学习会加大近视、驼背和脊柱侧弯等疾病的发病几率。由于长时间的工作和学习的原因,身体需要长时间的保持一种姿势,导致颈肩部、四肢和腰部的肌肉造成一定损伤,从而患上了工作相关肌肉骨骼疾患(Workrelated musculoskeletal disorders,WMSDs)[1-2]。给患者在生理上和心理上造成不同程度的伤害。随着智能化时代的到来,手机、平板电脑设备的普及,由于人们长时间的使用电子产品,此类疾病的发病几率进一步增加。为了预防此类问题,坐姿监测设备因此产生,市场上此类产品众多,但在监测效果差异明显,并不能满足不同人群的需要。文献[3-4]中设计出了一种基于压力传感器的坐姿监测机器人,此类机器人都是通过监测不同坐姿下,人臀部的压力变化作为坐姿识别的依据,但此类机器人只是完成了对坐姿的识别和监测。文献[5]设计的坐姿矫正设备,此种坐姿矫正设备通过人头部与身体的角度变化作为坐姿识别的主要依据。但此种设备主要针对预防近视的问题进行设计,并不能很好的进行坐姿监测。综上所述,以上的坐姿监测设备只是完成某一部分的监测,并没有对人坐姿、坐时时长和外部环境进行监测,监测效果具有一定的局限性。
通过对坐姿监测和预防近视驼背和WMSDs疾病的任务分析,设计出智能化的坐姿监测机器人,通过对不同坐姿下身体状态进行分析,进而对出机器人进行主体结构设计。然后利用Arduino Mega 2560 单片机+薄膜压力传感器作为机器人的坐姿识别机构,通过分析不同坐姿的差异性,设计出可以进行坐姿识别和坐时长监测的机器人控制系统,方便用户并通过实验对坐姿识别的准确率进行验证。在设计过程中,为控制系统设计出一款APP,方便用户通过手机可以查看自身坐姿情况。
2 机器人结构设计
2.1 坐姿监测点的选择
人的不正确坐姿总体分为“前倾、后仰、左倾和右倾”4类。4种坐姿下,人的上半身的与标准坐姿下具有明显的差异性,即:前倾坐姿下,人头部和前胸部分向前倾斜,由于人脊椎的特性,身体胸椎和腰椎处则向后偏移;后仰坐姿下,人身体主要向后偏移;左倾坐姿下,右肩膀高于左肩膀;右倾坐姿下,左肩膀高于右肩膀。综上所示,坐姿监测机器人可以将不同坐姿下人体上半身作为坐姿识别的方法,利用薄膜压力传感器作为坐姿信息的采集设备。将人体上半身的“前胸处2点、后背处2点、左肩膀、右肩膀、胸椎和腰椎”共计8处作为坐姿信息的采集点,如图1所示。
图1 坐姿信息采集点Fig.1 Information Collection of Sitting Posture
2.2 结构设计
根据上述坐姿信息采集点的位置为基础,以构型演绎法[6]为理论基础,对机器人进行结构设计。由于不同人群的身体参数具有差异性,为了能使大量的人可以使用该机器人,可以根据文献[7]中所列出的人体参数统计表为设计的依据,选取平均尺寸作为结构设计的基本尺寸,并且需要设计出可调节装置,能够使不同身材的人群经过调节即可使用。由于监测的8个点中,有2个位于人体前侧,其余的4个位于身体后侧。所以,将设计出一个大监测支架,用于监测人体后侧;再设计2个小监测支架,用于监测人体的左右前胸2个监测点[8]。利用Solidworks软件进行三维建模,如图2所示。
图2 坐姿监测机器人结构三维图Fig.2 Three-Dimensional Diagram of Posture Monitoring Robot Structure
将大支架放置在椅子上,小支架固定在桌子上即可进行坐姿的监测,当坐姿改变时,通过触发监测位置的传感器,来对坐姿进行识别。为了适应不同身材的人群,在小支架、大支架和大支架横杆处都进行了可调节设计,用户可根据身材进行适当的调节,使监测效果更加明显。
3 控制系统的硬件设计
根据坐姿监测机器人机构设计的模型对机器人控制系统进行硬件设计。针对目前市场上产品存在的不足,坐姿监测机器人主要由3部分监测模块组成,分别对“坐姿监测、坐时监测和光照环境监测”。使坐姿监测机器人在满足坐姿监测主功能的前提下,还需要对用户的坐时时间以及所处位置的光照环境进行监测,其工作原理,如图3所示。
图3 坐姿监测机器人工作原理图Fig.3 Working Principle Diagram of Posture Monitoring Robot
坐姿监测机器人的坐姿监测部分主要由8个IMS-C20A型薄膜压力传感器和信号转换模块组成,分别安装在坐姿监测支架上。信号转换模块主要作用是将传感器信号转化为电压信号,方便接收的信息进行编译;坐时监测模块主要由RFP型柔性压力传感器构成,该部分组要的作用是对用户的坐时时长进行监控;光照环境监测模块主要由光敏传感器模块组成,用于监测所处位置的环境是否满足工作要求。控制系统除了监测模块以外,还需要相应的反馈模块对用户进行反馈,使其知道自身的坐姿情况。
为了方便用户检查传感器是否正常工作,每个压力传感器都会对应一个LED,用户可以根据在触发传感器的前提下,LED是否亮起作为判定依据,作为使用前检查不可缺少的部分。
对于坐姿监测模块,由于需要对4种坐姿进行监测,同时在工作过程中不能及时的通过手机APP进行查看。采用4个蜂鸣器模块作为反馈装置,通过声音来提醒用户坐姿是否标准。坐时时长部分除了在手机APP上有相应的显示以外,还可以对坐时时长进行设定,当时间超过设定的时间时,可以通过蜂鸣器进行提示,使用户知道应暂停当前工作,适当运动。
为了与坐姿监测部分进行区分,此部分需选择无缘的蜂鸣器模块,设定出特殊频率的声音,方便用户进行区分。为了使用户通过手机APP接收到自身的坐姿情况,需要使用Wi-Fi模块作为无线通信的主要部分。综上所述,坐姿监测机器人的控制系统各元件所需要的单片机引脚数目,如表1所示。
表1 控制系统所需引脚数目的统计表Tab.1 A Statistical Table of the Mumber of Pins Required for the Control System
单片机作为控制系统的重要部分,是使控制系统实现功能的关键。本设计采用Arduino系列单片机作为系统的主控单元。此系列单片机具有兼容型高,开发与编程简单的优点,非常适合作为机器人控制系统的主要元件[9]。
根据表1 中所需的数字引脚和模拟引脚数量的统计,选择Arduino Mega 2560型单片机符合要求。为了防止因接线不正确所导致元件损坏的情况发生,根据上段中对控制系统各部分模块设计利用Frizting软件进行虚拟装配[10],当虚拟装配结果显示“无接线错误”时,则表示该装配方案符合电路设计的基本要求。坐姿监测机器人的控制系统虚拟装配图,如图4所示。
图4 坐姿监测机器人的控制系统虚拟装配图Fig.4 Virtual Assembly Diagram of Control System of Sitting Posture Monitoring Robot
4 控制系统的软件设计
4.1 单片机控制程序的设计
根据前文中的控制系统硬件设计方案为基础,为实现包含“坐姿监测、坐时时长监测和光照环境监测”三部分的功能,通过Arduino IDE 软件为单片机编译下位机控制代码。首先要对将电路中各部分元件所选择的引脚通过软件进行定义,其伪代码如下所示:
将各部分元件定义完成之后,根据Wi-Fi模块设定的波特率进行设定,通过查阅得知所用的Wi-Fi 模块的波特率为115200,所以设定整个下位机程序的波特为115200。在前期定义程序完成之后,需要在主函数中用代码编译,在本系统中需要对传感器模拟输入值、LED灯的亮灭和坐姿监测蜂鸣器的响止进行编译,其伪代码如下所示:
由于坐姿监测部分和坐时时长监测部分的延时时间不同,将两部分写入同一主函数下会导致系统不能正常工作。为解决此类问题,采用“多线程库”的设计方案,此法可以将两个不同延时的代码可以在一个主函数中独立工作[11]。本设计采用“Scoop多线程库”来实现此功能,其框架为:
由于坐时时长监测部分需要计时,所以需要满足对坐时时间监测的同时,还需要定时监测用户是否坐在椅子上,当坐在椅子上时,则继续计时。当检测到没做到椅子上时,则跳出计时循环;当用户坐时长超过半小时,激活蜂鸣器模块,当用户离开后,蜂鸣器停止响动,直到下一次用户坐下时,再重新启动计时循环。其计时循环功能执行代码如下为:
当上述代码进行编译、检测没有错误后,将程序烧录到单片机中,然后进行程序的功能验证。在验证中无明显的逻辑错误及功能都实现时,表明下位机的控制程序设计成功。
4.2 手机APP的开发
为了使用户能够得知在工作期间内自己不正确坐姿的次数,以及在不正确坐姿中身体受力最大的部分,让用户有针对性的防护,基于安卓4.7版本,使用MVC框架为蓝本为坐姿监测机器人开发一款专用的APP[12]。该APP 包括用于坐姿监测的8个压力传感器压力值的显示、不正确坐姿次数的统计、坐时时长的显示和是否应该开灯4部分组成。使得用户直观的得知在使用过程中,用户监测机器人所有功能的使用效果,软件截图,如图5所示。
图5 身高为160cm体重为90kg实验者在“前倾坐姿”下APP收到信息截图Fig.5 The 160cm and 90kg Experimenter Received a Screenshot of the Information from APP in the“Forward Sitting Position”
5 监测功能验证实验
为了验证该设计方案是否满足设计要求,需要进行必要的验证实验根据第2节设计的监测机器人的三维模型,选取相应的材料加工成实体,将机器人监测系统的硬件部分按设计进行安装。并进行了坐姿监测实验和坐时长监测实验,如图6所示。
图6 坐姿监测机器人工作图Fig.6 Working Diagram of Posture Monitoring Robot
选取身高在(160~180)cm、体重在(70~90)kg 的学生50 名作为机器人进行坐姿监测效果验证的实验样本。让每位同学先以标准坐姿坐在监测机器人的底座上,如图6 所示。根据同学的身材进行简单的调试,使8 个压力传感器都能监测到规定的位置。然后让参加学生完成“前倾、后仰、左倾和右倾”4种坐姿。以在某种坐姿下能激活蜂鸣器为监测有效,由此将得到的实验数据整理后得到坐姿监测机器人对4 种坐姿的识别准确率,如图7所示。
图7 坐姿监测机器人对4种坐姿识别准确率Fig.7 The Robot Can Recognize Four Kinds of Posture Accurately
对于坐时时长监测的准确率的问题,仍以上述的50名同学作为实验样本,将坐时长提醒时间设定为10min,需要同学完成以下3个验证实验:
(1)在10min内,同学可以以任意姿势坐在机器人的底座上,验证10min后蜂鸣器是否被激活;
(2)同学以任意姿势坐在机器人的底座上6min时,起身离开机器人,验证4分钟后蜂鸣器是否还会继续被激活;
(3)同学以任意姿势坐在机器人的底座上6min时,起身30s再次坐下,验证重新坐下后蜂鸣器被激活的时间。
将上述3组实验的结果处理后,坐姿监测机器人对坐时时长监测准确率,如图8所示。
图8 坐姿监测机器人坐时时长监测准确率Fig.8 Accuracy of Sitting Time Monitoring for Sitting Posture Monitoring Robot
6 总结
(1)这里设计一款智能化坐姿监测机器人控制系统,将坐姿监测、坐时时长监测和光照环境监测三部分结合在一起,用户可以通过手机APP可以得知自身坐姿情况。
(2)针对系统对坐姿识别准确率的问题,根据设计的虚拟样机制作出了实体模型,选取50名同学作为实验样本,进行坐姿识别的验证实验。根据实验结果表明,控制系统对4种坐姿的识别率均在92%以上,该监测机器人可以完成对4种坐姿实时监测的任务。
(3)针对系统对用户坐时时长监测准确性的问题,通过实验结果表明,无论用户保持何种坐姿坐在监测机器人的底座上,超过设定的时间,蜂鸣器一定可以激活提醒;当用户在监测中途起身后,坐时监测也随之停止,当用户重新坐下时,时长监测也重新开始计时。