私は、自宅のさまざまなリモコンを取り除き、それらすべての機能を組み込むことができる単一のものを構築するために、このプロジェクトを開始しました。友人の携帯電話にIRブラスターが内蔵されているのを見て、このアイデアを思いつきました。当時、同じような携帯電話を購入するのではなく、既存の携帯電話と互換性のある自分のデバイスを作ることにしました。そこで、ここでは、Arduinoを使用してAndroidフォンをIRリモートに変換し、自宅のさまざまなデバイスを制御します。
必要なコンポーネント:
- Arduino Uno
- IR LED
- TSOP-IRレシーバー(1838T)
- Bluetoothモジュール(HC05)
- Androidデバイス(電話、タブレットなど)
作業説明:
通常、自宅でテレビを操作するために2つのリモコンを使用します。1つはテレビ用、もう1つはセットトップボックス用です。このプロジェクトでは、これら2つのリモコンをターゲットにして、AndroidフォンをIR Blasterとして機能させ、テレビを電話で制御できるようにします。 、リモコンに触れることなく。
Arduino Unoボードを使用すると、IRのデコードとエンコードの部分を簡単に処理できるようになりました。カスタムメイドのシールドは、ちょうどこのプロジェクトの利便性の一部にに追加されます。シールドは、TSOP IRレシーバー(1838T)、IR LED、およびBluetoothモジュール(HC-05)で構成されています。下の画像を参照してください。
以下のセクションの「回路図」に示すように、カスタムシールドを作成するか、コンポーネントをArduinoに直接接続することができます。
先に進む前に、まず「IRリモコンのしくみ」について説明しましょう。ほとんどのIRリモコンは38KHzの周波数で動作します(これが私が18 38 Tを選択した理由です)。このトピックにさらに関与すると、これらのIRデータ送信方法には0と1の固定表現がないことがわかります。これらのコードは、私たちが工学シラバスで研究しているさまざまなエンコード技術を利用しています(私は電子工学の学生であるため)。 38 KHzの重要性は、論理的に高いときに信号が発振する周波数であるということです。つまり、これは信号の搬送周波数です。下の写真を見てください。これはNECプロトコルの例です。これにより、概念がより明確になります。
これがこのIRブラスターの仕組みです; カスタムメイドのAndroidアプリを搭載したAndroidフォンはBluetooth経由でArduino回路に信号を送信し、さらにArduinoはTSOP-IRレシーバー(1838T)を介して信号を受信して分析します。次に、ArduinoはIR LEDに、そのAndroidデバイスアプリで押されたボタンに対応する特定のパターンで点滅するように命令します。この点滅パターンは、テレビまたはセットトップボックスのIRレシーバーによってキャプチャされ、チャネルの変更や音量の増加などの指示に従います。
ただし、その前に、既存のリモコンをデコードする必要があります。前述のように、このプロジェクトでは2つのリモコンを使用しました。1つはテレビと通信し、もう1つはテレビに接続されたセットトップボックス用です。
回路図:
Arduinoを使用したIRリモートコントロール信号のデコード:
ここでのArduinoボードは、2つのフェーズで機能します。1つはリモートからIRコードをデコードするために使用する場合、もう1つはIRブラスターデバイスとして使用する場合です。
最初のフェーズについて話しましょう。今IRボタンコードをデコード、私が使用行った ケンShirriffのIRremoteの ヘッダファイルを。このヘッダーファイルには、IRコードの操作を簡単にするために、多くの定義済みの例/コードが含まれています。
- まず、ここhttps://github.com/z3t0/Arduino-IRremoteからIRリモートライブラリをダウンロードしてインストールする必要があります。
- それを解凍し、Arduinoの「ライブラリ」フォルダに配置します。次に、抽出したフォルダーの名前をIRremoteに変更します。
- 次に、以下のコードをArduinoに書き込み、上記のようにカスタムシールドをプラグインし、デコードするリモコンをTSOPIRレシーバーの前に配置します。このArduinoに対応するシリアルモニターを開き、リモートから任意のボタンを押します。ターミナル上に表示されるいくつかの情報が表示されます。この情報には、コードのタイプ、その値、およびそれに関連するビット量が含まれます。外観は次のとおりです。
#include
目的のデコード部分が完了したら、対応するボタン名を押して、すべてのデコード値とその他の情報を書き留めます。これは、Arduinoの次のフェーズのデータベースとして機能します。上記のプログラムは、IRremoteライブラリの「examples」フォルダから取得したものです。IRリモートの使用方法について詳しくは、他の例を確認してください。これが、IRリモート出力をデコードする方法です。
次に、最後のコードセクションに記載されているコードをこの同じボードに書き込みます。おめでとうございます。このプロジェクトの前半は完了です。
IR Blaster用のAndroidアプリの構築:
後半はAndroidアプリ制作です。このような種類のアプリを作成するには、MITのAPPinventor-2を使用することをお勧めします。あなたがAndroidコーディングのアマチュアである場合、これはあなたの時間を節約し、良い結果を提供します。このアプリの作成に使用される主なコンポーネントはそれほど多くはなく、ボタンとBluetoothクライアントパッケージがいくつかあります。アプリのコーディング中に、画面上で押されたボタンごとに送信される対応するテキストを提供します。これにより、Arduinoは、個々のリモコンで行われるのと同じ方法でIRLEDを点滅させることができます。また、BluetoothHC-05モジュールの正しいアドレスを指定していることを確認してください。これは、Androidスマートフォンでの最終的なアプリの外観です。
アプリをビルドするためのステップバイステップのプロセスは次のとおりです。
ステップ1:
このリンクにログオンします:ai2.appinventor.mit.edu、またはGoogleでMITappinventor-2を検索してみてください。AI2にサインインするにはGoogleアカウントが必要なので、持っていない場合は作成してください。
ステップ2:
Googleアカウントでログインすると、AI2が機能するWebページにリダイレクトされます。次のようになります。
上部の[プロジェクト]タブをクリックして新しいプロジェクトを開始し、[新しいプロジェクトの開始]を選択します。ネーミング部分とすべてが完了すると、空白の画面が表示され、上記のようにボタンとテキストを配置できます。これはGUI画面であり、アプリがユーザーにどのように表示されるかを決定します。
ボタンパッケージを使用するには、画面左側の「ユーザーインターフェイス」セクションにある「ボタン」タブを選択します。左側のメニューからパッケージをドラッグして、作業画面にドロップするだけです。同様に、テキスト関連のものを表示するには、「ラベル」パッケージを使用します。
ステップ3:
すべてのボタンとラベルを配置したら、このアプリのコードを作成します。ただし、その前に、Arduinoと通信するためのBluetoothパッケージも選択する必要があります。
このパッケージは画面に表示されず、「非表示コンポーネント」の下に表示されます。これらは、GUI構成では重要ではないコンポーネントです。
ステップ4:
次はコーディングセクションです。ここでは、選択して操作するコンポーネントの関数を定義します。
画面の左側に、GUIセクションで選択したすべてのパッケージが表示されます。上の画像は、使用できる特定のパッケージに含まれるすべてのコンポーネントを示しています。また、Bluetoothモジュールのアドレスをテキスト形式で提供する必要があることにも注意してください。
SETP 5:
アプリを使用する準備ができており、エラーも発生していないと感じたら、上記のように[ビルド]タブをクリックして、2番目のオプションを選択します。これにより、自分で作成したアプリが「.apk」形式でコンピューターにダウンロードされます。次に、この.apkファイルを任意のAndroidデバイスに転送し、クリックしてインストールします。
つまり、これがスマートフォンでIRリモコンデバイスを制御する方法です。スマートフォンで制御したいアプライアンスのリモコンをデコードし、ArduinoコードのリモートボタンのデコードされたHEXコードを置き換えるだけです。