ヒュー・ハーのことを聞いたことがありますか?彼は彼の障害の限界を打ち砕いた有名なアメリカのロッククライマーです。彼は、テクノロジーが障害者の通常の生活に役立つ可能性があると強く信じています。彼のTEDトークの一つで君が言った「 人間が無効になっていません。人は決して壊れることはありません。私たちの構築された環境、私たちの技術は壊れており、無効になっています。私たち国民は私たちの限界を受け入れる必要はありませんが、技術革新を通じて障害を移転することができます 」。これらは単なる言葉ではありませんでしたが、彼は彼らに人生を送りました。今日、彼は義足を使用し、通常の生活を送っていると主張しています。そうです、テクノロジーは確かに人間の障害を中和することができます。これを念頭に置いて、いくつかの簡単な開発ボードとセンサーを使用して、Arduinoを使用して超音波ブラインドステッキを作成しましょう それは視覚障害者のための単なるスティック以上のことをすることができます。
このスマートスティックには、障害物からの距離を感知する超音波センサー、照明条件を感知するLDR、および視覚障害者がスティックをリモートで見つけることができるRFリモコンがあります。すべてのフィードバックは、ブザーを介して盲人に与えられます。もちろん、ブザーの代わりにバイブレーターモーターを使用して、創造性を駆使してさらに前進することもできます。
必要な材料:
- Arduino Nano(どのバージョンでも動作します)
- 超音波センサーHC-SR04
- LDR
- ブザーとLED
- 7805
- 433MHzRF送信機と受信機
- 抵抗器
- コンデンサ
- ボタンを押す
- パフォーマンスボード
- はんだ付けキット
- 9V電池
このスマートブラインドスティック プロジェクトに必要なすべてのコンポーネントをここから購入できます。
ブラインドスティック回路図:
このArduinoスマートブラインドスティックプロジェクトには、2つの別々の回路が必要です。 1つは盲人の棒に取り付けられる主回路です。もう1つは、メイン回路の位置を特定するために使用される小さなリモートRF送信機回路です。超音波センサーを使用してブラインドスティックを作成するためのメインボードの回路図を 以下に示します。
ご覧のとおり、Arduino Nanoはすべてのセンサーの制御に使用されていますが、arduino unoを使用して、同じピン配置とプログラムに従ってこのスマートブラインドスティックを構築することもできます。ボード全体は、7805電圧レギュレーターを使用して+ 5Vに調整される9Vバッテリーで駆動されます。超音波センサは、 5Vによって供給され、上記のようにトリガーとエコーピンはArduinoのナノピン3,2に接続されています。LDRは、分圧器を形成するために、値10Kの抵抗で接続され、電圧の差がArduinoのADCピンA1によって読み取られます。 ADCピンA0は、RF受信機からの信号を読み取るために使用されます。ボードの出力は、ピン12に接続されているブザーによって提供されます。
RF遠隔回路は、以下に示されています。その動作についてもさらに説明します。
私はこのRFリモートコントロール回路を機能させるために小さなハックを使用しました。通常、この433 MHz RFモジュールを使用する場合、以前のRF送信機および受信機回路のように、エンコーダーとデコーダーまたは2つのMCUが機能する必要があります。しかし、私たちのアプリケーションでは、送信機がいくつかの信号を送信しているかどうかを検出するために受信機が必要です。したがって、トランスミッタのデータピンは電源のグランドまたはVccに接続されます。
受信機のデータピンはRCフィルターを通過し、次に示すようにArduinoに渡されます。これで、ボタンが押されるたびに、レシーバーは一定のADC値を繰り返し出力します。ボタンを押さないと、この繰り返しは見られません。そこで、ボタンが押されたかどうかを検出するために繰り返される値をチェックするArduinoプログラムを作成します。これが、視覚障害者がスティックを追跡する方法です。ここで確認できます:RF送信機と受信機がどのように機能するか。
私はパフォーマンスボードを使用してすべての接続をはんだ付けし、スティックで無傷になるようにしました。ただし、ブレッドボードで作成することもできます。これらは、arduinoを使用してこのブラインドスティックプロジェクト用に作成したボードです。
スマートブラインドスティック用のArduinoプログラム:
ハードウェアの準備ができたら、Arduinoをコンピューターに接続してプログラミングを開始できます。完全なコードこのページのために使用さは、あなたのArduinoボードに直接アップロードすることができ、このページの下部に見つけることができます。ただし、コードがどのように機能するかを知りたい場合は、さらに読んでください。
すべてのプログラムと同様に、 void setup() から始めて、入出力ピンを初期化します。このプログラムでは、ブザーとトリガーのピンは出力デバイスであり、エコーのピンは入力デバイスです。また、デバッグ用にシリアルモニターを初期化します。
void setup(){Serial.begin(9600); pinMode(Buzz、OUTPUT); digitalWrite(Buzz、LOW); pinMode(trigger、OUTPUT); pinMode(echo、INPUT); }
メイン ループ内では、すべてのセンサーデータを読み取っています。まず、超音波センサーのセンサーデータの距離、LDRの光度、RF信号を読み取って、ボタンが押されているかどうかを確認します。これらのデータはすべて、将来の使用のために以下に示すように変数に保存されます。
compute_distance(trigger、echo); シグナル= analogRead(Remote); インテンス= analogRead(Light);
まず、リモート信号をチェックします。 類似 値と呼ばれる変数を使用して、RF受信機から同じ値が何回繰り返されているかを確認します。この繰り返しは、ボタンが押されたときにのみ発生します。したがって、カウントが100の値を超えると、リモートプレスアラームをトリガーします。
//リモートが押されているかどうかを確認しますinttemp = analogRead(Remote); 類似カウント= 0; while(Signal == temp){Signal = analogRead(Remote); 類似カウント++; } //リモートで押された場合if(similar_count <100){Serial.print(similar_count); Serial.println( "Remote Pressed"); digitalWrite(Buzz、HIGH); delay(3000); digitalWrite(Buzz、LOW); }
コンピュータのシリアルモニターで確認することもできます。
次に、盲人の周りの光の強さをチェックします。LDRの値が200未満の場合、それは非常に暗いと見なされ、200msの特定の遅延トーンでブザーを介して警告を発します。強度が800を超える非常に明るい場合は、別のトーンで警告を出します。アラーム音と強さは、以下のコードのそれぞれの値を変更することで簡単に変更できます。
//非常に暗い場合if(Intens <200){Serial.print(Intens); Serial.println( "ブライトライト"); digitalWrite(Buzz、HIGH); delay(200); digitalWrite(Buzz、LOW); delay(200); digitalWrite(Buzz、HIGH); delay(200); digitalWrite(Buzz、LOW); delay(200); delay(500); } //非常に明るい場合if(Intens> 800){Serial.print(Intens); Serial.println( "ローライト"); digitalWrite(Buzz、HIGH); delay(500); digitalWrite(Buzz、LOW); delay(500); digitalWrite(Buzz、HIGH); delay(500); digitalWrite(Buzz、LOW); delay(500); }
最後に、障害物からの距離の測定を開始します。測定距離が50cmを超えてもアラームは発生しません。ただし、50cm未満の場合は、ブザーのビープ音でアラームが鳴ります。オブジェクトがブザーに近づくと、ビープ音の間隔も短くなります。オブジェクトが近いほど、ブザーのビープ音が速くなります。これは、測定された距離に比例する遅延を作成することによって実行できます。以来 遅延() 変数を受け入れることができないアルドゥイーノに我々が使用しなければならない ため 、以下に示すように、測定された距離に基づいて、ループループ。
if(dist <50){Serial.print(dist); Serial.println( "オブジェクトアラート"); digitalWrite(Buzz、HIGH); for(int i = dist; i> 0; i-)delay(10); digitalWrite(Buzz、LOW); for(int i = dist; i> 0; i-)delay(10); }
超音波センサーとArduinoを使用した距離の測定の詳細をご覧ください。
比較に使用する値を変更することで、プログラムをアプリケーションに簡単に適合させることができます。シリアルモニターを使用して、誤警報がトリガーされたかどうかをデバッグします。問題がある場合は、以下のコメントセクションを使用して質問を投稿できます
Arduinoブラインドスティックの動作:
最後に、ブラインドスティックarduinoプロジェクトをテストします。回路図に従って接続が行われ、プログラムが正常にアップロードされていることを確認してください。ここで、9Vバッテリーを使用して両方の回路に電力を供給し、結果を確認し始める必要があります。 Ultra Sonicセンサーをオブジェクトに近づけると、ブザーのビープ音が鳴り、スティックがオブジェクトに近づくにつれてこのビープ音の頻度が高くなります。 LDRが暗い場所で覆われている場合、または光が多すぎる場合は、ブザーが鳴ります。すべてが正常であれば、ブザーは鳴りません。
リモートのボタンを押すと、ブザーが長いビープ音を鳴らします。Arduinoを使用した視覚障害者向けのこのスマートスティックの完全な動作は 、このページの最後にあるビデオに示されています。また、小さなスティックを使用してアセンブリ全体をマウントし、大きなスティックまたは実際のブラインドスティックを使用して動作させることができます。
ブザーが常にビープ音を鳴らしている場合は、アラームが誤ってトリガーされていることを意味します。シリアルモニターを開いてパラメーターを確認し、どれがクリティカルになっているのかを確認して調整することができます。いつものように、あなたは助けを得るためにコメントセクションにあなたの問題を投稿することができます。プロジェクトを理解し、何かを構築することを楽しんだことを願っています。