banner

基于语音和手势识别的智能护理床

icon
发布时间:2021-05-20

概述

       据权威专家表示,到2030年,中国将有3100万中风病人,目前的数字为1100万。这将意味着要面对的不仅是早死,而是会造成大量病人因中风致残。如果一个家庭有一个中风病人,不单单是病人痛苦,而且需要很多人照顾他,陪伴他。但病人的家人也不可能时刻照顾他们,那如果家人不在,而病人想上厕所或需要人帮助怎么办呢?就这个问题我们设计并发明了智能护理床,它可以在病人无人照顾的情况下,通过手势和语音完成如厕,也可以通过语音向外需求帮助,以此来帮助病人更好的生活。

功能简介

    常规的护理床具有升降功能,但是一般都是通过手动按键或摇杆进行控制,无法做到由病人自主控制进行。当有便意,如果等待家人前来协助升起护理床,一方面耗时耗力,对于自尊心强的病人对于喊人帮助自己如厕,也有顾虑和内疚之情。我们设计的智能护理床具有以下功能:

(1)语音识别控制:使用语音识别模块对于用户设置的关键字进行响应

(2)手势识别控制:对于中风影响语言表达受限的病人,提供手势识别功能,可以用一根手指进行挥动就实现预设的功能操作。

(3)语音播报功能:使用语音播放模块,当收到病人的求助指令时,发出告警信息,或者定期播放家人的语音信息对病人进行心理安慰。

硬件清单
1x
掌控板
1x
掌控扩展板
2x
DF9GMS 180° 微型舵机
1x
手势识别带触摸传感器
1x
I2C语音识别模块
1x
语音合成模块
1x
金属合页
5x
M3*10 螺丝
x
x

制作说明

下面从电路搭建、代码编写、结构设计、作品组装四个方面来进行介绍。

1、电路搭建

首先我们根据需求先完成电路搭建。

1)手势传感器接在uart上,对应13,14

2)   语音识别和语音合成接在iic上

3)两个舵机分别接在8,9上

具体见下面的硬件接线示意图:

projectImage

2、代码编写

首先对语音合成、手势识别、舵机进行初始化。

设置语音识别的关键字为:

1)“qi shen" 表示起身,抬起床靠背,并打开排便口

2) “ping tang”表示平躺,放下床靠背,关闭排便口

3)"bang zhu" 表示需要家人帮忙,发出语音提示信息

手势识别设置:

向左挥:起身

向右挥:平躺

按下触摸按键5:表示需要帮助

projectImage
代码
/*!
 * MindPlus
 * mpython
 *
 */
#include<DFRobot_ASR.h>
#include <DFRobot_Servo.h>
#include<DFRobot_Gesture_Touch.h>
#include<DFRobot_SpeechSynthesis.h>

// 动态变量
String         mind_s_a, mind_s_b;
volatile float mind_n_flag;
// 创建对象
DFRobot_SpeechSynthesis_I2C sstts;
Servo                       servo_P8;
Servo                       servo_P9;
DFRobot_Gesture_Touch       DFGT(&Serial1);
float                       GTVar=-1;
DFRobot_ASR                 asr;


// 主程序开始
void setup() {
	sstts.begin();
	servo_P8.attach(P8);
	servo_P9.attach(P9);
	sstts.setVolume(10);
	sstts.setSpeed(5);
	sstts.setSoundType(sstts.FEMALE1);
	sstts.setTone(5);
	Serial1.begin(9600,P14, P13);
	DFGT.setGestureDistance(10);
	asr.begin(LOOP,MIC);
	asr.addCommand("qi shen",1);
	asr.addCommand("ping tang",2);
	asr.addCommand("da bian",3);
	asr.start();
	servo_P8.angle(abs(90));
	servo_P9.angle(abs(90));
	mind_s_a = (F("有人在吗?"));
	mind_s_b = (F("我需要帮助,谢谢"));
}
void loop() {
	GTVar=DFGT.getAnEvent();
	mind_n_flag = (asr.read());
	if (((mind_n_flag==1) || (GTVar==DFGT_EVT_LEFT))) {
		servo_P8.angle(abs(180));
		delay(2000);
		servo_P9.angle(abs(0));
	}
	if (((mind_n_flag==2) || (GTVar==DFGT_EVT_RIGHT))) {
		servo_P8.angle(abs(90));
		delay(2000);
		servo_P9.angle(abs(90));
	}
	if (((mind_n_flag==3) || (GTVar==DFGT_EVT_TOUCH5))) {
		for (int index = 0; index < 2; index++) {
			sstts.speak(mind_s_a);
			delay(1000);
			sstts.speak(mind_s_b);
			delay(1000);
			yield();
		}
	}
}

3、结构设计

结构设计使用了lasermaker软件。

下图是底座设计。

在底座上进行开口,与护理床体、舵机、掌控扩展板进行连接紧固。

 

projectImage

下图为护理床设计图,包括床体、床脚、床板、床垫、床靠背、隔板。

将床脚和靠背接在床体上,然后依次将床板和床垫放置在床体上,其中床板由两块木板构成,通过合页进行连接,由舵机角度的变换顶起床板。隔板一面固定在舵机的转页上,需要排便的时候,隔板向下打开。

 

projectImage

4、作品组装

完成作品设计和开发后,就开始进行作品的组装调试。这个过程会逐步对作品进行调优操作,针对发现的问题进行迭代升级。

projectImage
projectImage

作品完成后的效果图:

projectImage
projectImage
附件
icon 陈贤奇邱焕惯+智能护理床.zip 1.24MB
下载
队伍名称 梦想启航队 参赛组别 初中
参赛学生 陈贤奇 汕头聿怀实验学校 邱焕惯 汕头聿怀实验学校
指导老师
温良 汕头聿怀实验学校
指导老师
李婷 汕头聿怀实验学校