- 要件:
- ソフトウェアのダウンロードとインストール:
- Arduinoハードウェア部品と回路図:
- Arduinoソフトウェアパート:
- 超音波レーダー用のAndroidモバイルアプリケーション:
- 作業説明:
これは、ArduinoとAndroidの能力を調査して、ArduinoとUltra Sonic Sensorを使用してBluetoothを使用してモバイルアプリケーション(Android)に情報をブロードキャストする監視デバイスを作成する興味深いプロジェクトです。
安全とセキュリティは、古くから私たちの主な関心事でした。チルトとパンのオプションを備えたナイトモードを備えたセキュリティカメラをインストールすると、ポケットに大きな穴が開いてしまいます。したがって、ビデオ機能なしでほぼ同じことを行う経済的なデバイスを作りましょう。
このデバイスは、超音波センサーの助けを借りて物体を感知するため、夜間でも機能します。また、サーボモーターの上にUS(Ultra Sonic)センサーを取り付けています。このサーボモーターは、自動的に回転して領域をスキャンするように設定することも、モバイルアプリを使用して手動で回転させることもできるため、超音波センサーの焦点を合わせることができます。私たちの必要な方向とそこに存在するオブジェクトを感知します。米国のセンサーによって感知されたすべての情報は、Bluetoothモジュール(HC-05)を使用してスマートフォンにブロードキャストされます。したがって、ソナーやレーダーのように機能します。
おもしろいですね?….このプロジェクトを実行するために必要なものを見てみましょう。
要件:
ハードウェア:
- + 5V電源(電源にArduino(別の)ボードを使用しています)
- Arduino Mega(プロミニからユンまで何でも使えます)
- サーボモーター(任意の定格)
- Bluetoothモジュール(HC-05)
- 超音波センサー(HC-SR04)
- ブレッドボード(必須ではありません)
- 接続線
- Androidモバイル
- プログラミング用コンピュータ
ソフトウェア:
- Arduinoソフトウェア
- Android SDK
- Androidの処理(モバイルアプリケーションを作成するには)
材料の準備ができたら、ハードウェアの構築を始めましょう。わかりやすくするために、このチュートリアルをArduinoパートとProcessingパートに分けました。完全なコードはチュートリアルの最後に記載されており、そのように使用できるため、処理に不慣れな人はそれほど恐れる必要はありません。
ソフトウェアのダウンロードとインストール:
ArduinoのIDEは、ここからインストールすることができます。お使いのOSに合わせてソフトウェアをダウンロードしてインストールしてください。 Arduino IDEには、Arduinoハードウェアと通信するためのドライバーが必要です。ボードをコンピューターに接続すると、このドライバーは自動的にインストールされます。例からまばたきプログラムをアップロードして、Arduinoが稼働していることを確認してください。
処理IDEはここからインストールすることができます。処理は、さまざまな用途に使用できる優れたオープンソースアプリケーションであり、さまざまなモードがあります。「Javaモード」では、Windowsコンピューターアプリケーション(.EXEファイル)を作成できます。「Androidモード」では、Androidモバイルアプリケーション(.APKファイル)を作成できます。「Pythonモード」など、Pythonプログラムを作成できる他のモードもあります。 。このチュートリアルでは、処理の基本については説明しません。したがって、Javaプログラミングまたは処理について学びたい場合は、このすばらしいYouTubeチャンネルに進んでください。
Arduinoハードウェア部品と回路図:
このプロジェクトには、サーボモーター、Bluetoothモジュール、超音波センサーなどの多くのコンポーネントが含まれます。したがって、まったくの初心者の場合は、これらのコンポーネントを含む基本的なチュートリアルから始めて、ここに戻ることをお勧めします。サーボモーター、Bluetoothモジュール、超音波センサーに関するさまざまなプロジェクトをここでチェックしてください。
サーボモーター、Bluetoothモジュール、およびUSセンサーがすべて、Arduinoが供給できない大量の電流を消費するため、すべてのコンポーネントがArduino自体から電力を供給されるわけではありません。したがって、外部の+ 5V電源を使用することを強くお勧めします。手の届くところに外部+ 5V電源がない場合は、私が行ったように、2つのArduinoボード間でコンポーネントを共有できます。Servos電源レールを別のArduinoボード(赤色)に接続し、BluetoothモジュールHC-05と超音波センサーHC-SR04をArduinoメガに接続しました。注意:1つのArduinoボードを使用してこれらすべてのモジュールの電源を入れると、Arduino電圧レギュレーターが起動します。
このArduinoベースのソナープロジェクトの接続図を以下に示します。
接続が完了したら、以下に示すように、USセンサーをサーボモーターに取り付けます。
センサーを取り付けるために、ジャンクに入っていた小さなプラスチック片と両面テープを使用しました。あなたは同じことをするためにあなた自身の考えを思いつくことができます。同じ目的で使用できるサーボホルダーも市場に出回っています。
サーボがマウントされ、接続が与えられると、次のようになります。
接続に問題がある場合は、上部の回路図に従ってください。それでは、ArduinoIDEを使用してArduinoMegaのプログラミングを始めましょう。
Arduinoソフトウェアパート:
オブジェクトとUltraSonicセンサーの間の距離を計算し、それをモバイルアプリケーションに送信できるように、コードを作成する必要があります。また、サーボモーターがスイープし、Bluetoothモジュールが受信したデータから制御されるようにコードを記述する必要があります。しかし、Arduinoとそのライブラリのおかげで、プログラムがイメージできるよりもはるかに単純であることを心配しないでください。完全なコードは、以下のコードセクションに記載されています。
以下の機能を使用して、サーボモーターを自動的に左から右(170から10)にスイープし、再び右から左(10から170)にスイープします。同じことを実現するために、2つの for ループが使用さ れ ます。両方の関数内で関数us()が呼び出され、センサーとオブジェクトの間の距離が計算され、Bluetoothにブロードキャストされます。サーボをゆっくり回転させるために50msの遅延が与えられます。モーターの回転が遅いほど、測定値が正確になります。
// **サーボがスイープする関数** // voidservofun(){Serial.println( "Sweeping"); //デバッグ用for(posc = 10; posc <= 170; posc ++)//極端な角度では一部のサーボが動作しない可能性があるため、0〜180度よりも10〜170度を使用しても安全です{servo.write(posc); //サーボモーターdelay(50);の位置を設定します我ら(); // USセンサーを歌うオブジェクトの距離を測定します} for(posc = 170; posc> = 10; posc-){servo.write(posc); delay(50);我ら(); // USセンサーを歌うオブジェクトの距離を測定します} Serial.println( "Scan Complete"); //デバッグ用flag = 0; } // **サーボスイープ機能の終了** //
先に述べたように、サーボモーターはスマートフォンから手動で制御することもできます。右にスワイプしてモーターを右に動かし、左にスワイプしてモーターを左に動かします。上記の関数は、同じことを実現するために使用されます。サーボモーターのエンジェルはBluetoothモジュールによって直接受信され、変数 BluetoothDataに 格納されます。次に、サーボは、 servo.write(BluetoothData) 行を使用して、その特定のエンジェル内に配置され ます。
// **サーボを手動で制御する関数** // void manualservo(){us(); //ユーザーから値を取得し、サーボを制御しますif(Blueboy.available()){BluetoothData = Blueboy.read(); Serial.println(BluetoothData); Servo.write(BluetoothData); Serial.println( "Written"); if(BluetoothData == 'p'){フラグ= 0; }}} // __手動制御機能の終了__ //
オブジェクトの前に距離存在は、以下の関数によって計算されます。これは、速度=距離/時間という単純な式で機能します。米国の波の速度と所要時間はわかっているので、上記の式を使用して距離を計算できます。
// **距離を測定する関数** // void us(){int duration、distance; digitalWrite(trigPin、HIGH); delayMicroseconds(1000); digitalWrite(trigPin、LOW); 期間= pulseIn(echoPin、HIGH); 距離=(期間/ 2)/ 29.1; //センサーからの距離を計算しますif(distance <200 && distance> 0)Blueboy.write(distance); } // __距離測定機能の終了__ //
プログラムに疑問がある場合は、コメントセクションを自由に使用してください。したがって、コードの準備ができたら、すぐにコードをハードウェアにダンプできます。ただし、監視デバイスは、Androidアプリケーションに接続されるまで機能しません。また、完全に機能するかどうか、最後のビデオを確認してください。
超音波レーダー用のAndroidモバイルアプリケーション:
独自のアプリケーションを作成せず、代わりにこのチュートリアルで使用したものと同じアプリケーションをインストールしたい場合は、以下の手順に従ってください。
1.以下のリンクからAPKファイルを直接ダウンロードできます。このAPKファイルはAndroidバージョン4.4.2以降(キットカット以上)用に作成されています。zipファイルからAPKファイルを抽出します。
超音波レーダー用のAndroidアプリケーション
2..Apkファイルをコンピューターから携帯電話に転送します。
3.Androidの設定で不明なソースからのアプリケーションのインストールを有効にします。
4.アプリケーションをインストールします。
正常にインストールされると、以下に示すように、「Zelobt」という名前のアプリケーションが携帯電話にインストールされます。
このAPKをインストールしている場合は、以下の部分をスキップして次のセクションにジャンプできます。
処理を使用した独自のアプリケーションのプログラミング:
上記の.APKファイルを使用するか、ここで説明するようにProcessingを使用して独自のアプリを作成できます。プログラミングに関する知識がほとんどなくても、Androidアプリケーション用に独自のコードを書くのは非常に簡単です。ただし、始めたばかりの場合は、初心者レベルよりも少し高いため、このコードから始めることはお勧めできません。
このプログラムは、すなわち2つのライブラリを使用して 「ケータイライブラリー」 と 「ControlP5ライブラリを」 。ketaiライブラリは、携帯電話内にあるすべてのハードウェアを制御するために使用されます。電話のバッテリーレベル、近接センサー値、加速度センサー値、Bluetooth制御オプションなどは、このライブラリから簡単にアクセスできます。このプログラムでは、このライブラリを使用して、Bluetooth電話とArduino Bluetooth(HC-05)間の通信を確立します。 「ControlP5ライブラリは、」 私たちのレーダーシステムのためのプロットのグラフに使用されています。
完全なアンドロイドのプログラムが添付されますが、ここからダウンロードすることができ、。
注意:コードは上記の添付ファイルに記載されているデータフォルダから画像をインポートするため、上記のライブラリをインストールすることを忘れないでください。また、コード部分だけをコピーして貼り付けないでください。したがって、それだけをダウンロードして使用してください。
コーディング部分が完了し、正常にコンパイルされたら、データケーブルを介して携帯電話をコンピューターに直接接続し、再生ボタンをクリックしてアプリケーションを携帯電話にダムします。他の処理プロジェクトも確認してください:Arduinoを使用したピンポンゲームと処理を使用したスマートフォン制御のFMラジオ。
作業説明:
これで、ハードウェアとソフトウェアの部分の準備が整いました。ハードウェアの電源を入れ、モバイルをBluetoothモジュールにペアリングします。ペアリングしたら、インストールしたばかりの「Zelobt」アプリケーションを開き、1秒待つと、Bluetoothモジュール(HC-05)が自動的にスマートフォンに接続されていることがわかります。接続が確立されると、次の画面が表示されます。
画面上部に「接続先:デバイス名(ハードウェアアドレス)」と表示されていることがわかります。また、サーボモーターの現在の角度とUSセンサー間の距離も表示されます。測定された距離に基づいて、青いグラフも赤い背景にプロットされます。オブジェクトが近づくほど、青い領域が高くなります。上の2番目の図には、いくつかのオブジェクトを近くに配置したときに測定されたグラフも示されています。
前に述べたように、モバイルアプリからサーボモーターを制御することもできます。これらを行うには、停止ボタンをクリックするだけです。これにより、サーボが自動的にスイープするのを防ぎます。画面の下部には、スワイプすると時計回りまたは反時計回りに回転する円形のホイールもあります。このホイールをスワイプすることで、サーボモーターをその特定の方向に回転させることもできます。スワイプすると更新されるホイールとグラフを下の図に示します。
Arduinoコードを以下に示します。AndroidアプリケーションのAPKファイルはこちらです。プロジェクト全体の動作は、以下のビデオに示されています。あなたがプロジェクトを理解したことを望みます。ご不明な点がございましたら、下記のコメント欄をご利用ください。