简单手语发声机模型
不知道大家还是否记得当年的机械手了,为了让机械手能干点别的,所以有了下面的东西……https://v.youku.com/v_show/id_XMjc0MjMzNzQ1Mg==.html创意思路: 手语是聋哑人沟通的主要途径,但懂得手语的人却不多。如何帮助这些特殊人群让更多的人能够理解他们所要表达的意思呢。于是我们制作了手语发声机这个模型,期望为聋哑人这个特殊群体在一定程度上提高与普通人沟通效率。聋哑人借助该手语发声机,可以将手语表达转换成我们正常人可以听懂的语言,从而达到与正常人交流的目的。
这款手语发声机使用了Arduino主控器,结合5根flex4.5”单向弯曲传感器来识别手指姿态,通过DFPlayer Mini 播放器模块播放识别的语音,如图2所示。
项目器材:
序号名称数量
1Arduino Uno1
2LCD12864 显示屏1
3flex 4.5”单向弯曲传感器SEN00645
4DFPlayer MiniDFR02991
5TF卡1
6小喇叭1
7电阻1K5
8杜邦线若干
组装连接:
4.5"弯曲传感器通过弯曲程度转换成电阻值的变化,弯曲越大,电阻越高。但是需要对该传感器进行相应改造,来获取合适的串口值,本次使用下拉电阻(1K)的方式。如下图所示
图3
将焊接好的弯曲传感器接头用AB胶粘在手套的5根手指上,注意弯曲传感器焊接头部位请务必用胶带或绝缘材料包裹保护,以免弄断。
图4
五根手指分别对应Arduino主控板上A1-A5,其它线按上图中弯曲传感器的接法来接。MP3模块与小喇叭模块与主控器连接如下图所示。
工作原理
图6上图分别代表平直状态、45度、90度状态下对应阻值。通过串口监视器可以查看到三种状态下的不同值。经过实际测量,平直状态下串口输出值为80;弯曲45度时串口输出值为60左右;而当弯曲角度达到90时,串口输出值为30-40之间。
语音素材:
从网上下载或者自己录制一部分语音素材,将其拷贝至TF卡里。注意TF卡里文件夹命名需要是mp3,放置在卡根目录下,而mp3文件命名需要是4位数字,例如"0001.mp3",放置在mp3文件夹下。如需中英文命名,可以添加在数字后,例如"0001hello.mp3"或者"0001语音.mp3"。
定义动作:
手语的识别是根据手势的姿态来判断,而这里手势姿态是通过弯曲传感器的串口值来表达。为了提高识别的准确率,事前定义明确的动作显得尤为重要。例如,表示OK的手势如下。
我们就可以将其定义为拇指和食指弯曲角度达到90度,对应串口值的条件为:(sensorValue1<40) and (sensorValue2<40),此时触发播放对应的语音。同样的方法可以定义多个语音手势。
#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>
void setup() {
Serial.begin(9600);
mp3_set_serial (Serial); //set Serial for DFPlayer-mini mp3 module
mp3_set_volume (100);
}
void loop() {
int sensorValue1 = analogRead(A1);
int sensorValue2 = analogRead(A2);
int sensorValue3 = analogRead(A3);
int sensorValue4 = analogRead(A4);
int sensorValue5 = analogRead(A5);
// print out the value you read:
Serial.println(sensorValue1);
Serial.println(sensorValue2);
Serial.println(sensorValue3);
Serial.println(sensorValue4);
Serial.println(sensorValue5);
//delay(2000);
if (sensorValue1<40)
{
digitalWrite(12,HIGH);
mp3_play (0001);
delay(3000); //for light
}
else
{
digitalWrite(12,LOW);
}
if (sensorValue2<40)
{
digitalWrite(12,HIGH);
mp3_play (0002);
delay(3000); //for light
}
else
{
digitalWrite(12,LOW);
}
if (sensorValue3<40)
{
digitalWrite(12,HIGH);
mp3_play (0003);
delay(3000); //for light
}
else
{
digitalWrite(12,LOW);
}
if (sensorValue4<40)
{
digitalWrite(12,HIGH);
mp3_play (0004);
delay(3000); //for light
}
else
{
digitalWrite(12,LOW);
}
if (sensorValue5<40)
{
digitalWrite(12,HIGH);
mp3_play (0005);
delay(3000); //for light
}
else
{
digitalWrite(12,LOW);
}
}
对模型上电后,手指做出不同的形态,带动弯曲传感器形成不同的角度,被系统识别后发出不同的语音表达。注:本文为安徽省教育科学规划课题:基于Arduino平台的普通高中通用技术课程开发项目成果。项目编号:JG14218。 O_oYYQ 发表于 2017-5-4 09:12
感觉可以使用Genuino 101的机器学习功能,事先学好一些特定的明显动作,这样应该能提高点识别的准备率,而 ...
提示了我这里机器学习是指利用传感器数据储存特定动作:D hnyzcj 发表于 2017-5-3 13:38
不知道大家还是否记得当年的机械手了,为了让机械手能干点别的,所以有了下面的东西……
创意思路: ...
大神,只有一个手势吗? O_oYYQ 发表于 2017-5-4 09:12
感觉可以使用Genuino 101的机器学习功能,事先学好一些特定的明显动作,这样应该能提高点识别的准备率,而 ...
:victory: 厉害~就是换一个没那么厚的手套就更好了 dsweiliang 发表于 2017-5-3 13:52
厉害~就是换一个没那么厚的手套就更好了
错了,换个厚手套效果更好 dsweiliang 发表于 2017-5-3 13:52
厉害~就是换一个没那么厚的手套就更好了
把传感器放进手套里,不用这么裸露着
hnyzcj 发表于 2017-5-3 14:04
把传感器放进手套里,不用这么裸露着
我这边的气温,看到这个手套都觉得热 为何视频加载不了呢 hnyzcj 发表于 2017-5-3 15:34
为何视频加载不了呢
我这边可以啊~是不是浏览器问题?
建议以后产品清单,加一下链接~ 有兴趣模仿制作你项目的人可以方便购买~ luna 发表于 2017-5-3 17:15
建议以后产品清单,加一下链接~ 有兴趣模仿制作你项目的人可以方便购买~
OK luna 发表于 2017-5-3 17:15
建议以后产品清单,加一下链接~ 有兴趣模仿制作你项目的人可以方便购买~
已加连接 好创意啊,不过弯曲传感器挺贵的。 感觉可以使用Genuino 101的机器学习功能,事先学好一些特定的明显动作,这样应该能提高点识别的准备率,而且还方便互动什么的 super-power 发表于 2017-5-3 22:45
好创意啊,不过弯曲传感器挺贵的。
用的人多了会便宜的 {:5_168:}好项目! 好奇图二是用什么软件画的{:5_193:} nicho 发表于 2017-5-4 23:30
好奇图二是用什么软件画的
WORD的自选图形 手势控制加神经元{:5_175:} 好创意{:5_148:} 我也做了一个,加上了加速度传感器{:5_162:}
页:
[1]
2