爱板网论坛

查看: 1406|回复: 0

[大赛作品提交] 基于树莓派的智能床垫

[复制链接]

主题

好友

201

积分

秀才

  • TA的每日心情
    擦汗
    2018-7-10 23:03
  • 签到天数: 36 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2017-12-19 12:47:20 |显示全部楼层
    一、项目名称:
    基于树莓派和Arduino的智能医疗床垫
           首先感谢爱板网提供此次比赛,e络盟提供的500元购物券,使得这个设计可以顺利制作。
    1.      原理介绍:
    考虑到当前医疗卫生机构夜间对病人身体检测存在一定的不便,此设备可以方便医院在夜间对病人进行监护,提高救助几率,避免治疗不及时等状况的出现,同时也可为医院节省夜间查房的费用。此设备通过温度、湿度、按压、陀螺仪等传感器实时检测用户身体的各项指标,诸如:身体不同部位的温度、湿度、呼吸频率等信息,记录用户的离床时间,并通过以上数据判断用户的睡眠质量。同时此设备还可以感知用户睡眠姿势,根据用户的姿态调节床垫不同部位的温度,给用户最优的睡眠体验。本设计使用Arduino采集各传感器的信息,并通过串口将相关数据发送给树莓派,医生通过办公电脑使用VNC或SSH登录即可查看用户的身体状态。结合这些数据判断病人的病情,调整治疗方案和治疗计划,以保证病人的治疗效果。加快治疗时间,提高救助效果。
    2.      具体设计:
    ①  Arduino篇
    考虑到树莓派I/O口驱动能力、模拟量读取能力并不十分强大,故选用Arduino读取各传感器的状态,通过串口传输给树莓派。Arduino Mega 2560接口丰富、数量多、驱动能力强,编程简单适用于此次设计。下面来详细讨论如何传感器部分。
    过程记录—照片IMG_20171110_204542.jpg

    Arduino MEGA 2560
    IMG_20171217_102013.jpg

    Arduino UNO R3
                     
    a.      DHT11
    可以方便的检测用户身体的温度和湿度,但其精度并不十分理想,故将其排布在床垫上用户身体四肢的部位,这些部位在医疗中并不十分重要,其主要作用是为床垫上的加热片提供反馈,协助加热片改变用户身体不同部位的温度,提供优质的睡眠体验。
    DHT11展示.jpg

    过程记录—照片IMG_20171109_202436.jpg

    DHT11.jpg

    DHT11测试.jpg


    b.      DS18B20
    相比于DHT11它并不能检测湿度,但是测温的精度要好于DHT11,故选用它来检测用户身体主要部位的温度,布置在床垫上用户的主要身体部位,提供可靠的体温数据,方便医生根据这些信息判断病人的身体状态。
    DS18B20展示.jpg

    过程记录—照片IMG_20171109_210659.jpg

    DS18B20二.jpg

    DS18B20.jpg


    c.      MPU6050
    使用陀螺仪检测用户的呼吸频率,并根据数据的波动状况反应用户的睡眠质量。
    mpu6050展示.jpg

    MPU.jpg

    过程记录—照片IMG_20171109_212533.jpg

    d.      74HC595
    虽然Arduino Mega 2560已经拥有了很多的I/O口,但是床垫上的加热片以及按压传感器都需要很多的I/O口,所以选用74HC595扩展Arduino的输出,最大限度的提供更多的加热片,提高I/O口的利用率。
    74测试.jpg

    74HC595.jpg

    过程记录—照片74HC1.jpg

    过程记录—照片IMG_20171110_212742.jpg

    过程记录—照片IMG_20171110_212747.jpg


    e.      74HC165
    和74HC595配套使用,利用它扩展Arduino的输入,读取更多的按压传感器,提高检测用户身体姿态的精度,实际设计中每个按压传感器配合一个加热片,使数据处理更加方便。
    过程记录—照片74HC0.jpg

    (Ps:亲们可以吐槽我拙劣的焊工,QAQ)
    f.       程序设计
    直接采用arduino IDE中各传感器的支持库,简化编程,首先分开调试,待分别调试完成时,再将所有的代码进行汇总,并进行综合调试。不出意料,在汇总代码后出现了传感器库不兼容的情况,通过更换库以及修改库文件中的C++代码,最后调试通过。最后调试通过的代码,见最后附件(使用arduino1.6.6编译通过,板卡:Arduino MEGA 2560 )。
    arduinoIDE.PNG

    注:板卡必须选择arduino MEGA 2560才可以编译通过

    树莓派
    因为此设计需要用到远程登录查看用户身体的各项信息,而树莓派可以提供VNC和SSH两种登录,且树莓派3代B型,板载WIFI和蓝牙,配置完成后,只需将树莓派供电即可自动连接无线,省去了网线连接的步骤,使用简单,操作便捷
    树莓派展示.jpg

    帅不帅,O(∩_∩)O哈哈~
    a.      系统
    选用常用便于操作的RASPBIAN STRETCH WITH DESKTOP系统,上手简单,例程丰富、容易上手、使用简单,简单的学习后就可以熟练使用VNC或SSH登录到树莓派进行数据的查看。适用于医生查看病人的身体数据。关于系统安装网上已有众多教程在此不做赘述

    PS:新版系统默认不支持SSH远程登录,在系统烧写完成后新建一个文本文件,然后将文件改为ssh,注意删除扩展名!
    还有一点需要注意,树莓派3B将串口默认分配给了蓝牙,所以使用USB转TTL登录会出现连接超时,所以建议还是准备一个显示器,我在配置网络的时候就意外掉线,然后连接不上。只能借了实验室的显示器。
    树莓派系统.PNG

    b.      系统配置
    安装好树莓派的系统后,我们需要对系统进行一些相应的配置,需要注意的是当前   系统默认不开启SSH远程登录,可以直接在树莓派系统下自己新建一个SSH的文件,即可使用SSH登录到树莓派,进行使用,还有关于SD卡、时区、键盘、开启VNC的配置可以参考爱板网的其他教程
    系统配置.PNG

    c.      minicom
    在links系统下常用的串口工具就是minicom,它可以直接在SSH登录后的命令行中使用,不用进入树莓派桌面打开,配置也相对简单,同时按住Ctrl+A键后在按下Z进入minicom的配置界面,默认波特率是115200,这里修改位9600,其他的数据位、停止位、奇偶检验位、停止位也可以在此界面完成相关设置。设置完成后可以使用USB线链接Arduino和树莓派,运行minicom,当打印出Hello I am Arduino后证明minicom配置成功
    1. sudo apt-get install minicom
    复制代码
    安装minicom,注意只有在存在串口设备时minicom才可以使用,
    1. sudo minicom
    复制代码
    打开minicom键盘同时按下Ctrl和A后再按下Z进入设置界面
    minicom Z.PNG

    Arduino的程序如下所示:   

    helloAD.PNG

    连接ADR3.jpg
            
    1. void setup()
    2. {
    3.   Serial.begin(9600);
    4. }

    5. void loop()
    6. {
    7.    Serial.println("Hellow I am arduino");
    8.    delay(20);
    9. }
    复制代码
    测试时用的是Arduino UNO
                                  
    d.      固定IP地址
    使用过SSH或VNC的人都会发现树莓派每次连接路由器都会分配一个随机的IP地址,这对重复登录造成了影响,因为每次重启树莓派后都需要查看新的IP地址才可以登录到树莓派,这对医生的工作造成了干扰,所以我在桌面环境下固定了树莓派的IP地址即设置树莓派的静态IP,这里我设置为192.168.1.111,这样每次登录都会使用这个IP地址,可以将其保存在菩提中每次双击就可以打开。PS:尝试过按照网上的教程修改文件内容的方式但是一直没有成功,最后在图像界面设置
    ip静态.PNG

    e.      使用汉字字库
    因为本人英语水平本来就不高,而且此设计目前仅面向于中国医疗卫生机构,所以就将系统设置修改为汉字显示,而显示汉字就需要相应的汉字字库的支持,这里推荐一个,下载安装后修改系统设置为默认语言为汉字即可使用,虽然仍有一部分是英语显示,但总好了许多,使用了一段时间并没有发现问题。
    这是汉化以后的效果     
    汉化以后.PNG

    ③ 主体设计
    a.      SOILDWORKS简介
    SolidWorks是达索系统下的子公司,专门负责研发与销售机械设计软件的视窗产品,主要进行机械建模,设计,干涉检查,操作界面简单,容易上手,3D可视效果优越,相比于传统CAD它支持三维立体图绘制,并且可以进行装配体的设计。本次设计选用此款软件进行床垫整体外观、传感器布局以及装配效果的设计。
    sw2006.jpg

    我用的版本比较老是SoildWorks2006,但是平时设计一些东西足够用了
    b.      外观设计
    为了适合医疗卫生机构的使用,达到方便移动、清洗、便于安装的特点,在床垫的设计时,采用传统的平板式床垫设计,折叠弯曲后即可方便移动,床垫表面并无较大凹陷,接近平滑,便于铺设一次性床套,达到卫生安全标准,防止二次传染。
    床垫外观.PNG

    c.      传感器布局
    为了使用有限的传感器达到优良的效果,故传感器在床垫上的布局显得格外重要,合理的传感器布局在有效减少制造成本的同时也兼顾了日常用户的使用。此次设计参考人体体型的信息,将精度高的传感器布置在人体想比重要的部位,整体传感器布局与人体体型分布相当。
    传感器_完全.PNG

    传感器定点.PNG

    传感器装配关系.PNG


    d.      实际效果
    下面展示配合完成后的效果图,在最后会附上soildworks的文件。
    床架.PNG

    整体装配.PNG


    二、源代码附件
    游客,如果您要查看本帖隐藏内容请回复

    其中MPU6050算法部分可以参考mpu6050数据手册和科尔曼滤波的相关书籍
    三、Soildworks文件
    SolidWorks所有文件.rar (962.4 KB, 下载次数: 2)
    四、样张展示
    由于经费的问题,加上实验室没有床!!!只能做成这样子,QAQ
    IMG_20171218_112657.jpg

    IMG_20171218_112705.jpg

    IMG_20171218_112715.jpg

    IMG_20171218_112725.jpg

    IMG_20171218_112735.jpg


    IMG_20171218_114319.jpg

    IMG_20171218_114330.jpg

    五、演示视屏(优酷连接如下:)



    由于自己比较紧张说的不怎么清楚,还一卡一卡的,万望各位大佬见谅,由于铺设了垫子,所以传感器的数据不会在用户躺上去时立刻显示出来,所以在开始之前我们的测试人员,已经躺了大概15分钟,同样传感器的数据在用户离开后也不会立刻消失,中间由于自己感冒咳嗽的声音剪辑了一下,在笔记上可以显示出用户身体不同部位的温度,呼吸频率,本来mpu6050是放在床板上测量的,但是由于没有床架,放在地上,只能将mpu拆下放在了被测人员的身上,获取呼吸频率,
    展示.png

    使用的是VNC远程登录,实际使用时仅要求在同一个路由器下即可。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /3 下一条

    手机版|爱板网

    GMT+8, 2018-9-25 06:02 , Processed in 0.123154 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-5   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001056号

    Powered by Discuz!

    返回顶部