聋盲通信与 1Sheeld/Arduino
组件和用品
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 |
关于这个项目
基本上,这个项目解决了盲聋沟通问题。
盲人唯一的交流方式是说和听,而聋人只能打字和看,所以就用它吧!
视而不见:
- 对话 → 文字 → 显示
聋到瞎:
- 类型 → 文本 → 语音
现在让我们将其转化为硬件。
第一步:硬件设置




- Arduino Uno 或任何
- LCD(对于本教程,我使用的是 16*2 的)
- 智能手机
- 电位器(10k 即可)
第 2 步:连接






为了能够使用 1Sheeld,您首先需要下载 1Sheeld 库并将其添加到您的 Arduino。此外,您需要将 1Sheeld 应用程序下载到您的手机并进行安装。您可以从 1Sheeld 站点获得:https://1sheeld.com/downloads/
请按照本教程了解如何将 1Sheeld 插入 Arduino 以及如何上传代码:https://1sheeld.com/tutorials/getting-started/
现在我知道电路可能看起来有点乱,但它是一个简单的 LCD 电路:
- LCD RS 引脚 → 数字引脚 12
- LCD 使能引脚 → 数字引脚 11
- LCD D4 引脚 → 数字引脚 5
- LCD D5 引脚 → 数字引脚 4
- LCD D6 引脚 → 数字引脚 3
- LCD D7 引脚 → 数字引脚 2
- LCD R/W 引脚 → 地
- LCD VSS 引脚 → 地
- LCD VCC 引脚 → 5V
- 10K 电阻端 → +5V 和地
- 雨刷 → LCD VO 引脚(引脚 3)
现在交流如下:
视而不见
- 语音识别→文本→LCD
聋到瞎
- 键盘 → 文字 → 文字转语音
基本上,语音识别会将语音转换为文本,然后将其发送到 LCD,因此聋人可以看到它。文字转语音将把键盘上的文字转换成语音,让盲人也能听到。
您需要从手机上的 1Sheeld 应用程序中选择语音识别、键盘、文本到语音和短信屏蔽。使用短信屏蔽,我们将能够向远方的联系人发送消息。这是一个演示其工作原理的视频:
既然您对我们正在尝试做的事情有了很好的了解,那么让我们来谈谈代码吧。
第 3 步:软件
#define CUSTOM_SETTINGS#define INCLUDE_VOICE_RECOGNIZER_SHIELD#define INCLUDE_TEXT_TO_SPEECH_SHIELD#define INCLUDE_KEYBOARD_SHIELD#define INCLUDE_SMS_SHIELD#define INCLUDE_TERMINAL_SHIELD#quid1sgl INCLUDE_TERMINAL_SHIELD#quid1sgl2;int INCLUDE_TEXT_TO_SPEECH_SHIELD#define INCLUDE_TEXT_TO_SPEECH_SHIELD发送 =0;int i =0;String phoneNum =""; //在此写入电话号码 patternOne[6] ={1000, 2000, 1000, 2000, 1000, 2000};int patternOneSize =6;void setup() { OneSheeld.begin(); VoiceRecognition.start(); lcd.begin(16, 2);}
基本上,只需添加我们将使用的库并初始化我们稍后将使用的一些变量。请记住,我们将使用振动传感器和变量 patternOne
和 patterOneSize
与它有关。我们还将使用短信屏蔽来进行长距离通信,这就是我们添加变量“phoneNum
”的原因 ”,它将保存您将向其发送短信的电话号码。
//盲到聋 if (VoiceRecognition.isNewCommandReceived()) { String msg1 =VoiceRecognition.getLastCommand(); //如果用户先说“sms”则远联系 if (msg1.substring(0, 3) =="sms") { String msg1f =msg1.substring(3); SMS.send (phoneNum, msg1f); TextToSpeech.say("发送短信");延迟(4000); } //密切联系 else { if (msg1.length()> 16) { lcd.clear(); lcd.setCursor(0, 0); for (int i =0; i <=16; i++) { lcd.print(msg1[i]); } lcd.setCursor(0, 1); for (int j =16; j <=msg1.length()-1; j++) { lcd.print(msg1[j]); } } else { lcd.clear();液晶。打印(味精1); } }
你可以看到在这部分我添加了2个案例,远接触和近距离接触。对于远方的联系人,盲人需要先说“短信”。否则,它只会显示在 LCD 上。另外,LCD本身有两种情况,当消息超过16个字符时需要告诉它转到第二行,因为它每行只能打印16个字符。
void MsgBuild (char pC){ i++; if (sent <2) { if (pC =='S') { sent +=1;味精 +=电脑; } else { 发送 =0;味精 +=电脑; } } else if (sent =3) { i =i - 3; msg.remove(i); msg.toLowerCase();}
现在这部分有点棘手,所以请耐心等待一段时间。如果使用键盘,将调用此函数。这个函数主要做两件事:首先,它获取你使用键盘输入的每个字符,并用它来构建稍后要发送的消息;其次,它会检查您是否要立即发送消息。我意识到我无法正确使用屏蔽键盘中的 Enter 按钮,因此我使用此代码发送消息:如果我连续单击“s”按钮 3 次。当然,您可以将其更改为任何其他按钮。和以前一样,对于远方的联系人,请先输入短信。
其余的代码是不言自明的。所以,我希望你喜欢它,如果你有任何问题,请在下面评论。
盲到聋人
示意图

制造工艺