Arduino搭載「サードアイ」:視覚障害者のための補助視覚デバイス
コンポーネントと用品
| SparkFun Arduino Pro Mini 328 - 5V/16MHz | × | 5 |
| 超音波センサー | × | 5 |
| ユニバーサル基板 | × | 5 |
| 振動モーター | × | 5 |
| ブザー | × | 5 |
| 5mm赤色LED | × | 5 |
| スライドスイッチ | × | 5 |
| メスヘッダー 8ピン 1列 (2.54mm) | × | 2 |
| オスヘッダー 40ピン 1列 (2.54mm) | × | 2 |
| ジャンパーワイヤー(汎用) | × | 4 |
| モバイルバッテリー | × | 1 |
| ゴムバンドとステッカー(バンド型装着用) | × | 1 |
| 3.7V LiPoバッテリー | × | 1 |
必要な工具と機械
- はんだごて(汎用)
- グルーガン(汎用)
アプリとオンラインサービス
- Arduino IDE
このプロジェクトについて




- 視覚障害者向け初のウェアラブルテクノロジー
- 超音波で障害物を検知
- 振動/ブザー音でユーザーに通知
視覚障害者のための「サードアイ(第三の目)」は、超音波を使って近くの障害物を検知し、ブザー音や振動で知らせることで、視覚障害者が速さと自信を持ってナビゲートできるようにする革新的なデバイスです。バンドや衣服のように着用するだけで使えます。
WHOによると、世界中で約3,900万人が盲目と推定されています。彼らは日常生活で多くの困難を抱えています。従来は白杖が使われてきましたが、効果的である一方で多くの欠点があります。もう一つの方法は盲導犬ですが、非常に高価です。このプロジェクトの目的は、視覚障害者がより快適に、速く、自信を持ってナビゲートできる、安価でより効率的な方法を開発することです。
ステップ1:既存システム

- 白杖
- 盲導犬
- スマートデバイス(例:視覚障害者向けトーチ「Vision」など)
既存システムの問題点
- 白杖 - 簡単に割れる/壊れる、舗装のひびや様々な物体に杖が引っかかる
- 盲導犬 - 巨大なコスト(約42,000ドル / 280万ルピー)
- 共通の欠点(スマートデバイス含む) - 持ち運びが容易でない、使いこなすのに多くの訓練が必要
「サードアイ」の特徴: このデバイスを着用すれば、白杖やその他のデバイスを完全に不要にできます。棒を持つ必要がなくなり(これは彼らにとって少し煩わしい)、バンドや衣服のように着用するだけで非常に正確に機能し、使い方の訓練はごくわずかで済みます。
ステップ2:プロジェクトの全容


Arduinoボードベースの特別なウェアラブルデバイスを設計しました。これは衣服のように着用できます。5つの超音波センサーを搭載し、5つのモジュールで構成され、体の異なる部位に取り付けます。そのうち2つは両肩、2つは両膝、1つは手に取り付けます。5つの超音波センサーを使うことで、視覚障害者は周囲を5方向から検知でき、どこへでも容易に移動できます。超音波センサーが障害物を検知すると、デバイスは振動とビープ音でユーザーに通知します。振動の強さとビープ音の頻度は距離が近くなるほど増大し、完全に自動化されています。
機能改善案:
プロジェクト全体をジャケットの形にすれば、デバイスを一つずつ装着する必要がなくなります。 特別に設計されたボードをArduino代わりに使い、高品質な超音波センサーを用いれば、より高速な応答が可能になり、混雑した場所でも機能するようになります。
ステップ3:視覚障害者の協力でテスト成功

詳細は、学校の科学教師によるFacebook投稿をご覧ください。
この革新で受賞した賞:
- PPTイノベーションアワード 1位
- 州レベル科学フェア 2位(ケララ州政府主催)
ステップ4:プロトタイピング - 使用パーツ



材料
- Arduino Pro Mini × 5
- 超音波センサー × 5
- ユニバーサル基板 × 5
- 振動モーター × 5
- ブザー × 5
- 赤色LED × 5
- スイッチ × 5
- オス/メスヘッダーピン
- ジャンパーケーブル × 4
- モバイルバッテリー × 1
- 3.3V旧携帯電話バッテリー × 1
- ゴムバンドとステッカー(バンド型装着用)
ステップ5:回路図


配線手順
- LED、ブザー、振動モーターのGNDをArduinoのGNDに接続
- LEDの+極とスイッチの中央足をArduinoピン5に接続
- ブザーの+極をスイッチの第1足に接続
- 振動モーターの+極をスイッチの第3足に接続
- 超音波センサー
- 超音波センサー VCC - Arduino VCC
- 超音波センサー GND - Arduino GND
- 超音波センサー Trig - Arduinoピン12
- 超音波センサー Echo - Arduinoピン12
ここで使っているスイッチはモード選択用です(ブザーモードか振動モード)。
図2 - モジュールへの給電 - 4つのArduino Pro MiniをUSBオスピンに接続し、モバイルバッテリーに繋ぐ。手首用モジュールには小型リチウム電池を使用。
ステップ6:モジュールの製作


- まずユニバーサル基板を5×3cmにカットし、Arduino用のメスヘッダーを基板にはんだ付け
- ブザーをはんだ付け
- グルーガンで振動モーターを固定し、配線をはんだ付け
- LEDを接続
- スイッチを接続
- 超音波センサー用と電池入力用のオスヘッダーピンを接続
- 回路図通りにはんだ付け
- Arduinoと超音波センサーを基板に接続
ゴムバンドをすべてのモジュールに取り付けます。
あと3つのモジュールも上記と同じ要領で作りますが、手首用の最後のモジュールだけ少し違います。次のステップを見てから作ってください。
ステップ7:コード + 手首用モジュールの製作

- 超音波センサーを4本のジャンパーケーブルで基板に接続
- 3.7V携帯電話用バッテリーをこのモジュールに接続
- 図のようにゴムバンドを取り付け
最後に各Arduinoボードにコードをアップロードし、他の4モジュールをモバイルバッテリーで給電します。
Arduinoで使用したコード:
//VISIT : www.robotechmaker.com
const int pingTrigPin = 12; //Trigger connected to PIN 12
const int pingEchoPin = 10; //Echo connected to PIN 10
int buz=5; //Buzzer to PIN 5
void setup() {
Serial.begin(9600);
pinMode(buz, OUTPUT);
}
void loop() {
long duration, cm;
pinMode(pingTrigPin, OUTPUT);
digitalWrite(pingTrigPin, LOW);
delayMicroseconds(2);
digitalWrite(pingTrigPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingTrigPin, LOW);
pinMode(pingEchoPin, INPUT);
duration = pulseIn(pingEchoPin, HIGH);
cm = microsecondsToCentimeters(duration);
if(cm<=50 && cm>0) {
int d= map(cm, 1, 100, 20, 2000);
digitalWrite(buz, HIGH);
delay(100);
digitalWrite(buz, LOW);
delay(d);
}
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(100);
}
long microsecondsToCentimeters(long microseconds) {
return microseconds / 29 / 2;
}
Third_eye_for_blinds.ino
コード
Arduinoで使用したコード
//VISIT : www.robotechmaker.com
const int pingTrigPin = 12; //Trigger connected to PIN 12
const int pingEchoPin = 10; //Echo connected to PIN 10
int buz=5; //Buzzer to PIN 5
void setup() {
Serial.begin(9600);
pinMode(buz, OUTPUT);
}
void loop() {
long duration, cm;
pinMode(pingTrigPin, OUTPUT);
digitalWrite(pingTrigPin, LOW);
delayMicroseconds(2);
digitalWrite(pingTrigPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingTrigPin, LOW);
pinMode(pingEchoPin, INPUT);
duration = pulseIn(pingEchoPin, HIGH);
cm = microsecondsToCentimeters(duration);
if(cm<=50 && cm>0) {
int d= map(cm, 1, 100, 20, 2000);
digitalWrite(buz, HIGH);
delay(100);
digitalWrite(buz, LOW);
delay(d);
}
Serial.print(cm);
Serial.println("cm");
delay(100);
}
long microsecondsToCentimeters(long microseconds) {
return microseconds / 29 / 2;
}
回路図

製造プロセス
- Raspberry Piの可能性を最大限に引き出す必須アクセサリー
- SIGHT:視覚障害者を支援するスマートグラス
- スマートホーム連携向けマルチポジション温度センサーシステム
- 862D+はんだごて用DIY温度コントローラー:精度と信頼性を両立
- MotionSense: ArduinoとESP8266で作るスマート侵入検知システム
- CoroFenceサーマルディテクター:Grid-EYE & PIRセンサー搭載IoT体温監視
- 心からの別れ:出版業界40年の歩みを終えて
- インバー36部品:材料、特性、信頼できる購入先
- IoTデバイス向け堅牢なクラウドベース・ソフトウェア・アップデート
- クラフテックの耐久性プラスチックファスナーが、視覚障害者向け教育ツール「APH」を支える
- プラスチック部品が自動車燃費をどう向上させるか