【主题】
智能爱心工具——基于语音识别的智能升降洗漱台
【概述】
所谓智能家居是现代电子技术、自动化技术及通信技术相结合的产物。它能够自动控制和管理家电设备,对家庭环境的安全进行监控报警,并且能够为住户提供安全舒适、高效便利的学习生活及工作环境。家居智能化系统将家庭中各种与信息相关的通信设备、家用电器以及家庭保安装置通过有线或无线的方式连接起来,并进行集中或异地的监控、管理,保持家庭住宅环境的舒适、协调。普通的家居相比,智能家居不仅具备传统的居住功能,提供舒适温馨,高效安全的高品位生活环境,还将一个被动静止的居住环境提升为一个有一定智慧协助能力的体贴的生活帮手,进一步优化住户的生活质量。
随着二胎的放开,许多家庭中有了两个小孩,但是年龄的差距却带来了许多问题。现有的洗漱台高度是固定的,一般都是面向健康成年人,对于孩子和残疾人士来说则不够人性化。有次去商场厕所就发现小朋友身高不够,就需要垫着脚或者大人抱着洗手,但湿滑的地面却常常是一种安全隐患。所以便萌生做出一种可以面向不同身高人员的智能升降自适应洗漱台。
【研究意义】
市面上洗漱台也不是很人性化,面向健康成人没有问题,但面向一些特殊人群,就需要弯腰或者垫脚都很难洗漱;特别是儿童问题,家用洗漱台一般都没有小朋友合适的高度,一般在家里都是垫着小凳子让小朋友去洗漱,但是洗水台周围比较湿滑的话,就能要摔倒,造成不可挽留的后果;毕竟现在儿童的家庭安全是头等大事,儿童意外伤害是一个重要的全球性公共卫生问题,目前已成为世界范围内儿童的头号“杀手”,我国儿童因意外引起的死亡占儿童总死亡率的50%左右。儿童意外伤害多发生在儿童每日活动较多的场所,即家庭、路上、学校和运动场,其中家庭是最主要的活动场所。所以就想避免这一问题,让可预见的意外消逝,所以想结合科技和生活制作一个只能的洗漱台,智能的根据人们具体情况而上升或者升下降到一定高度,以适应不同身高人群,来避免意外的发生。
【创新点】
1.基于人体工程学可自适应升降洗漱台;
2.基于智能硬件,通过机器深度学习,可实现智能,人文与人体工程结合的设备;
3.通过arduino主板控制执行器,实现自适应身高升降,简单机器学习,技术难度适中;
4.通过3D打印,激光切割等多种技术结合制作洗漱台原型,材料易得,可个性化,设计难度适中,加工难度简单;
【功能的实现】
功能全靠语音识别实现,提前通过文本转为语音系统中储存,通过系统的学习和识别,来通过编写的程序指令执行相对应的可视化动作,上升和下降是通过丝杆连接伸缩电机来实现,当然在极限处也有限位开关,防止滑动过度,外观和造型用的椴木板,用激光切割机切割组装,所有元器件均为教学器材,主板为Arduino UNO主板,其他材料均为常见材料。
1、洗漱台默认为正常的高度位置。
2、当我们发出语音“我是弟弟”“我是哥哥”或者“我是妹妹”就会对应降低到对应的高度。
3、当我们发出“高点”“低点”也会执行对应的指令。
4、当我们发出“复位”就会恢复原有的位置。
【思维导图】
【硬件接线图】
#include <ASRB.h>
#include <EEPROM.h>
#include <SPI.h>
#include <SoftwareSerial.h>
#include <Stepper.h>//步进电机
#define SUM 35//
Stepper mystepper(200,4,5,6,7);//步进电机
int set=0,vall,res;
char sRecog[SUM][38]={"kai deng","guan deng","zhun bei"};//
unsigned int fDigit[SUM]={252,253,254};//MP3
void BT(int x,int y,char (*p)[38],unsigned int dd[],int set);
void PT(int x,int y,char (*p)[38],unsigned int dd[],int set);
void ASR_while(int x,int y,char (*p)[38],unsigned int dd[],int set);
void ASR_BT(int x,int y,char (*p)[38],unsigned int dd[],int set);
//int button=4,led=5;//按键数字口4,灯数字口5
void setup()
{
ASRB.Initialise(SUM,sRecog,fDigit);
attachInterrupt(0,ExtInt0Handler,LOW);
pinMode(A0, INPUT);
pinMode(A1, INPUT);
//pinMode(button,INPUT);
//pinMode(led,OUTPUT);
//digitalWrite(led,LOW);
mystepper.setSpeed(255);//步进电机
while (digitalRead(A0) == HIGH) {
mystepper.step(50);
}
}
void loop()
{
if(vall==111) PT(SUM,38,sRecog,fDigit,set);//口令模式
else if(vall==112) BT(SUM,38,sRecog,fDigit,set);//按键模式
else //循环模式
{
while(1)
{ res=0;
res=ASRB.Asr(SUM,38,sRecog,fDigit,set);
ASR_monitor();
delay(10);
ASRB.Busy_SD();
if (Serial.available() > 0) break;
}
} //
ASRB.AT_command(SUM,38,sRecog,fDigit,set);//
delay(100);
}
void ExtInt0Handler ()
{
ASRB.ProcessInt0();
}
void ASR_while(int x,int y,char (*p)[38],unsigned int dd[],int set)
{
while(1)
{
res=0;
res=ASRB.Asr(x,y,p,dd,set);
ASR_monitor();
delay(10);
ASRB.Busy_SD();
if(res<255&&res>0) break;
if (Serial.available() > 0) break;
// else if(digitalRead(button)==LOW) break;
}
}
void ASR_BT(int x,int y,char (*p)[38],unsigned int dd[],int set)
{
ASRB.send_SD(260);//请在D13灯亮起后进入识别
delay(50);
ASRB.Busy_SD();
ASR_while(x,y,p,dd,set);
}
/**************************************语音控制LED****************************/
void ASR_monitor()
{
//if(res==1) {
while (digitalRead(A0) == HIGH) {
mystepper.step(50);
}
mystepper.step((-800));
} else if (res==2) {
while (digitalRead(A0) == HIGH)