これは非常に興味深いプロジェクトで、ArduinoとProcessingを使用してバーチャルリアリティを実装する方法を学びます。私たちのほとんどにとって、ジョンファヴローの映画「アイアンマン」は、私たちの生活をより簡単で楽しいものにする新しいものを構築するためのインスピレーションでした。私は個人的に映画に登場する技術を賞賛し、常にそれに似たものを作りたいと思っていました。そのため、このプロジェクトでは、映画で発生するバーチャルリアリティを模倣しようとしました。たとえば、コンピューターの前で手を振って、ポインターを目的の場所に移動し、いくつかのタスクを実行することができます。
ここでは、ウェブカメラの前で手を振って、コンピューターに何かを描く方法を紹介します。また、仮想的に手を動かし、空中で指でクリックすることでライトを切り替える方法についても説明します。
概念:
これを実現するには、ArduinoとProcessingを組み合わせたパワーを活用する必要があります。ほとんどの人はArduinoに精通しているでしょうが、Processingはあなたにとって新しいかもしれません。処理はArduinoと同じようにアプリケーションであり、オープンソースであり、無料でダウンロードできます。 Processingを使用すると、簡単なシステムアプリケーション、Androidアプリケーションなどを作成できます。また、画像処理と音声認識を行う機能もあります。これはArduinoと同じで、習得が非常に簡単ですが、このチュートリアルは非常に単純なので、興味のある人なら誰でもすぐに機能させることができるので、処理にまったく慣れていなくても心配する必要はありません。
このチュートリアルでは、Processingを使用して、UIを提供し、画像処理を使用して手の位置を追跡する単純なシステムアプリケーションを作成しています。次に、指を使って左クリックと右クリックを行う必要があります。それを実現するために、Arduino Nanoによって読み取られる2つのホールセンサー(1つは人差し指に、もう1つは中指に)を使用しました。Arduinoは、クリックステータスをBluetooth経由でワイヤレスでコンピューターに送信します。
複雑に聞こえるかもしれませんが、私を信じてください。思ったほど難しくはありません。それでは、このプロジェクトを立ち上げて実行するために必要な資料を見てみましょう。
必要な材料:
- Arduino Nano
- ホールセンサー(A3144)– 2Nos
- 磁石の小片
- Bluetoothモジュール(HC-05 / HC-06)
- 9V電池
- 接続線ドットボード。
- 一対の手袋
- Arduino IDE(ソフトウェア)
- IDE(ソフトウェア)の処理
- WebカメラとBluetoothを搭載したコンピューター(コンピューターに外部BluetoothまたはWebカメラを使用することもできます)
回路図とハードウェア:
このプロジェクトのハードウェア部分は非常にシンプルで、簡単に構築できます。完全な回路図を以下に示します。
Arduino、抵抗器、バーグスティックピンは、以下に示すようにドットボードにはんだ付けされています。
ホールセンサーとBluetoothモジュールは、以下に示すようにコネクタワイヤーにはんだ付けされています。
これらの2つのセクションの準備ができたら、使いやすいように手袋に組み立てることができます。お近くの医療店で購入できる使い捨てのプラスチック手袋を使用しました。磁石が親指の指に付いていることを確認し、ホールセンサー1とホールセンサー2がそれぞれ人差し指と中指の前にあることを確認する必要があります。コンポーネントを所定の位置に固定するためにダックテープを使用しました。コンポーネントを組み立てると、次のようになります。
それでは、ArduinoIDEを開いてプログラミングを始めましょう。
Arduinoのプログラム:
このArduinoコードの目的は、ホールセンサーのステータスを読み取り、Bluetoothモジュールを使用してそれらをブロードキャストすることです。また、Bluetoothからデータを受信し、入力値に基づいてオンボードLEDを切り替える必要があります。完全なプログラムは、このチュートリアルの最後にあります。また、以下の数行についても説明しました。
if(Phs1!= HallState_1-Phs2!= HallState_2)//新しいキーが押されているかどうかを確認する{if(HallState_1 == LOW && HallState_2 == LOW)Aisha.write(1); if(HallState_1 == HIGH && HallState_2 == LOW)Aisha.write(2); if(HallState_1 == LOW && HallState_2 == HIGH)Aisha.write(3); if(HallState_1 == HIGH && HallState_2 == HIGH)Aisha.write(4); }
ホールセンサーのステータスに基づいて上記の行に示されているように、Bluetoothは特定の値を書き込みます。たとえば、ホールセンサー1が高く、ホールセンサー2が低い場合、Bluetoothモジュールを介してベール「2」をブロードキャストします。値をBTモジュールに書き込み、印刷しないようにしてください。書かれている場合に限り、処理側でのみ読みやすいからです。また、値は前の値と同じでない場合にのみ送信されます。
if(BluetoothData == 'y')digitalWrite(ledpin、HIGH); if(BluetoothData == 'n')digitalWrite(ledpin、LOW);
これらのラインは、BTモジュールが受信した値に基づいて、ピン13に接続されているオンボードLEDを切り替えるために使用されます。たとえば、モジュールが「y」を受信するとLEDがオンになり、「n」を受信するとオフになります。
処理のためのプログラム:
処理プログラムの目的は、UI(ユーザーインターフェイス)として機能し、特定のオブジェクトを追跡するための画像処理を実行できるシステムアプリケーションを作成することです。この場合、上の手袋に貼り付けた青いオブジェクトを追跡します。プログラムには基本的に4つの画面があります。
- キャリブレーション画面
- メインスクリーン
- ペイント画面
- LEDトグルスクリーン
手を振って画面を空中でドラッグするだけで、ある画面から別の画面に移動できます。また、目的の場所をクリックしてLEDを切り替えたり、画面に何かを描画したりすることもできます。
完全な処理プログラム(最後に表示)をコピーして貼り付け、創造性に基づいて変更するか、ここからEXEファイルをダウンロードして、次の手順に従ってアプリケーションを起動できます。
- 以前にインストールしたことがない場合は、JAVAをコンピューターにインストールします
- コンピュータに完璧なYouCamをインストール
- Arduinoの電源を入れ、コンピューターをBluetoothモジュールとペアリングします
- アプリケーションファイルを起動します
すべてがうまくいけば、BluetoothモジュールのLEDが安定し、Webカメラのライトが点灯していることに気付くはずです。問題が発生した場合は、コメントセクションからご連絡ください。サポートさせていただきます。
最後のビデオを見て、アプリケーションを調整して使用する方法を確認してください。
コードを変更してこれにさらに機能を組み込みたい場合は、プログラムの次の洞察を使用できます
処理IDEはここからダウンロードできます。処理についてさらに学び、より興味深いプロジェクトを作成したい場合は、こちらのチュートリアルにアクセスしてください。
処理にはシリアルデータを読み取る機能があります。このプログラムでは、シリアルデータはBluetoothCOMポートから取得されます。以下の行を使用して、Bluetoothが接続するCOMポートを選択する必要があります
ポート=新しいSerial(this、Serial.list()、9600);
ここで私は私の1つのを選択したST私の場合はCOM5であるCOMポートを(下の画像を参照)と私はブルートゥースモジュールで9600ボーレートで実行されていることを述べました。
前に述べたように、処理には画像処理を行う機能もあります。このチュートリアルでは、画像はWebカメラを使用してスケッチ内に送信されます。各画像では、特定のオブジェクトを追跡します。これについて詳しく知るには、このチュートリアルにアクセスしてください。
私はコメント行を通してプログラム(最後に与えられた)を説明するために最善を尽くしました。ここからファイルをダウンロードできます。
スケッチについてもっと知りたい場合は、コメントセクションから私に連絡してください。私がお手伝いします。
ワーキング:
ハードウェアとソフトウェアの準備ができたら、手袋を着用して、何らかのアクションの準備をします。ここで、Arduinoに電源を入れてから、アプリケーションを起動するだけです。BluetoothモジュールのLEDが安定するはずです。これは、システムアプリケーションがArduinoとのBluetoothリンクを確立したことを意味します。
追跡するオブジェクトを選択する必要がある次の画面が表示されます。このトレースは、オブジェクトをクリックするだけで実行できます。この場合、オブジェクトは青いディスクです。これで、オブジェクトを移動して、ポインタがオブジェクトの後に続くことに気付くことができます。最良の結果を得るには、独自の色のオブジェクトと明るい部屋を使用してください。
人差し指で親指をタッチすると、「Key 1 Pressed」というメッセージが表示され、中指で親指を押すと「Key 2 Pressed」と表示されます。これは、すべてが正常に機能し、キャリブレーションが終了したことを示します。次に、[完了]ボタンをクリックします。
[完了]ボタンを押すと、メイン画面に移動し、下のビデオに示すように、オンエアでペイントしたり、ArduinoボードのLEDを切り替えたりできます。