简单手语发声机模型

2017-05-034.1万
精华项目
AI 快速预览详细 收起
简单手语发声机模型是一款利用Arduino主控器和弯曲传感器识别手势,并通过DFPlayer Mini播放器模块播放语音的装置。该项目旨在帮助聋哑人与普通人进行沟通。硬件清单包括Arduino Uno、flex4.5”单向弯曲传感器、DFPlayer Mini等。通过定义明确的手势姿态,可以提高手语识别的准确率。最终效果是聋哑人可以通过该装置将手语转换成语音,实现与普通人的无障碍沟通。
不知道大家还是否记得当年的机械手了,为了让机械手能干点别的,所以有了下面的东西……

创意思路:
       手语是聋哑人沟通的主要途径,但懂得手语的人却不多。如何帮助这些特殊人群让更多的人能够理解他们所要表达的意思呢。于是我们制作了手语发声机这个模型,期望为聋哑人这个特殊群体在一定程度上提高与普通人沟通效率。聋哑人借助该手语发声机,可以将手语表达转换成我们正常人可以听懂的语言,从而达到与正常人交流的目的。
简单手语发声机模型图1
这款手语发声机使用了Arduino主控器,结合5根flex4.5”单向弯曲传感器来识别手指姿态,通过DFPlayer Mini 播放器模块播放识别的语音,如图2所示。
简单手语发声机模型图2
项目器材:
组装连接:

4.5"弯曲传感器通过弯曲程度转换成电阻值的变化,弯曲越大,电阻越高。但是需要对该传感器进行相应改造,来获取合适的串口值,本次使用下拉电阻(1K)的方式。如下图所示
简单手语发声机模型图3
图3

将焊接好的弯曲传感器接头用AB胶粘在手套的5根手指上,注意弯曲传感器焊接头部位请务必用胶带或绝缘材料包裹保护,以免弄断。
简单手语发声机模型图4
图4

五根手指分别对应Arduino主控板上A1-A5,其它线按上图中弯曲传感器的接法来接。MP3模块与小喇叭模块与主控器连接如下图所示。
简单手语发声机模型图5

工作原理
简单手语发声机模型图6
图6
上图分别代表平直状态、45度、90度状态下对应阻值。通过串口监视器可以查看到三种状态下的不同值。经过实际测量,平直状态下串口输出值为80;弯曲45度时串口输出值为60左右;而当弯曲角度达到90时,串口输出值为30-40之间。

语音素材:

从网上下载或者自己录制一部分语音素材,将其拷贝至TF卡里。注意TF卡里文件夹命名需要是mp3,放置在卡根目录下,而mp3文件命名需要是4位数字,例如"0001.mp3",放置在mp3文件夹下。如需中英文命名,可以添加在数字后,例如"0001hello.mp3"或者"0001语音.mp3"。

定义动作:
简单手语发声机模型图7

手语的识别是根据手势的姿态来判断,而这里手势姿态是通过弯曲传感器的串口值来表达。为了提高识别的准确率,事前定义明确的动作显得尤为重要。例如,表示OK的手势如下。

我们就可以将其定义为拇指和食指弯曲角度达到90度,对应串口值的条件为:(sensorValue1<40) and (sensorValue2<40),此时触发播放对应的语音。同样的方法可以定义多个语音手势。

  1. #include <SoftwareSerial.h>
  2. #include <DFPlayer_Mini_Mp3.h>
  3. void setup() {
  4.   Serial.begin(9600);
  5.   mp3_set_serial (Serial);        //set Serial for DFPlayer-mini mp3 module
  6.   mp3_set_volume (100);
  7. }
  8. void loop() {
  9.   int sensorValue1 = analogRead(A1);
  10.   int sensorValue2 = analogRead(A2);
  11.   int sensorValue3 = analogRead(A3);
  12.   int sensorValue4 = analogRead(A4);
  13.   int sensorValue5 = analogRead(A5);
  14.   // print out the value you read:
  15.   Serial.println(sensorValue1);
  16.   Serial.println(sensorValue2);
  17.   Serial.println(sensorValue3);
  18.   Serial.println(sensorValue4);
  19.   Serial.println(sensorValue5);
  20. //delay(2000);
  21.   if (sensorValue1<40)
  22.   {
  23.     digitalWrite(12,HIGH);
  24.     mp3_play (0001);
  25.     delay(3000); //for light
  26.    }
  27.   else
  28.   {
  29.     digitalWrite(12,LOW);
  30.   }
  31.   
  32.   if (sensorValue2<40)
  33.   {
  34.     digitalWrite(12,HIGH);
  35.     mp3_play (0002);
  36.     delay(3000); //for light
  37.    }
  38.   else
  39.   {
  40.     digitalWrite(12,LOW);
  41.   }
  42.   
  43.   if (sensorValue3<40)
  44.   {
  45.     digitalWrite(12,HIGH);
  46.     mp3_play (0003);
  47.     delay(3000); //for light
  48.    }
  49.   else
  50.   {
  51.     digitalWrite(12,LOW);
  52.   }
  53.   
  54.   if (sensorValue4<40)
  55.   {
  56.     digitalWrite(12,HIGH);
  57.     mp3_play (0004);
  58.     delay(3000); //for light
  59.    }
  60.   else
  61.   {
  62.     digitalWrite(12,LOW);
  63.   }
  64.    if (sensorValue5<40)
  65.   {
  66.     digitalWrite(12,HIGH);
  67.     mp3_play (0005);
  68.     delay(3000); //for light
  69.    }
  70.   else
  71.   {
  72.     digitalWrite(12,LOW);
  73.   }
  74. }
复制代码

简单手语发声机模型图8简单手语发声机模型图9简单手语发声机模型图10

对模型上电后,手指做出不同的形态,带动弯曲传感器形成不同的角度,被系统识别后发出不同的语音表达。
注:本文为安徽省教育科学规划课题:基于Arduino平台的普通高中通用技术课程开发项目成果。项目编号:JG14218。

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(14)
dongtai
dongtai
2017年的通用技术课程就研究这个了,好厉害呀!
hnyzcj
hnyzcj
作者
回复dongtai
多年前的回忆
meganxu
meganxu
哇啊优秀啊
meganxu
meganxu
太棒了啊
DFS1b-v8vGu
DFS1b-v8vGu
大神,只有一个手势吗?
qq215104863549
qq215104863549
我也做了一个,加上了加速度传感器
hnyzcj
hnyzcj
作者
回复qq215104863549
拿出来晾凉,让我学习下
nahao8
nahao8
好创意
Forgotten
Forgotten
手势控制加神经元
nicho
nicho
好奇图二是用什么软件画的
hnyzcj
hnyzcj
作者
回复nicho
WORD的自选图形
nicho
nicho
好项目!
O_oYYQ
O_oYYQ
感觉可以使用Genuino 101的机器学习功能,事先学好一些特定的明显动作,这样应该能提高点识别的准备率,而且还方便互动什么的
许培享
许培享回复O_oYYQ
提示了我这里机器学习是指利用传感器数据储存特定动作:D
hnyzcj
hnyzcj
作者
回复O_oYYQ
:victory:
super-power
super-power
好创意啊,不过弯曲传感器挺贵的。
xar
xar回复super-power
用的人多了会便宜的
luna
luna
建议以后产品清单,加一下链接~ 有兴趣模仿制作你项目的人可以方便购买~
hnyzcj
hnyzcj
作者
回复luna
已加连接
hnyzcj
hnyzcj
作者
回复luna
OK
hnyzcj
hnyzcj
作者
为何视频加载不了呢
luna
luna回复hnyzcj
我这边可以啊~是不是浏览器问题?
dsweiliang
dsweiliang
厉害~就是换一个没那么厚的手套就更好了
dsweiliang
dsweiliang回复hnyzcj
我这边的气温,看到这个手套都觉得热
hnyzcj
hnyzcj
作者
回复dsweiliang
把传感器放进手套里,不用这么裸露着
共3条回复,已加载2条,点击查看更多共3条回复,已加载全部
- 没有更多了 -