Android+Arduinoでリモコン3 その2(AndroidAccessory接続)

公開日: 電子工作 | , , , ,

何度か、Android+リモコンのネタを書いたことがあるのですが、今回はAndroid Accessoryで接続する学習リモコン・デバイスを作ったので、その報告です。
これ1台で、赤外線リモコンの学習~操作までができます。
(※注意・便宜上、プログラムの名前にADKと付けていますが、ADKボードで動作すると言う意味ではありません。)

adk-irremote-app1

今回は、アプリの説明です。デバイスの説明はこちら
このアプリは、動作チェック程度のサンプルアプリです。
アプリのソースも公開しておきますので、必要な方は改良して使って下さい。 

アプリの基本画面の説明

※実際の画面と異なる場合があります。

デバイス未接続状態の画面
デバイス未接続状態の画面

デバイス接続状態の画面
デバイス接続状態の画面

DataType

2種類からデータタイプを選びます

  • KURO-RS互換のデータ
  • IRIO88互換のデータ

KURO-RS = PC-OP-RS1

SampleRate

サンプリングレートを指定します。

  • 20us
  • 50us
  • 100us

単位 us=マイクロ秒
DataTypeがKURO-RSの場合は、100us固定となります。

learnボタン

デバイスを受信モードにして、リモコンの学習を行います。

frameボタン

赤外線のフレームデータを、それぞれのデータへ変換できます。

エディットボックス

リモコン信号のデータが表示されます。
16進数の数値データです。

saveボタン

エディットボックス内のリモコンデータを保存できます。

loadボタン

saveボタンで保存したリモコンデータを読み込むことができます。

clearボタン

エディットボックス内のリモコンデータを削除します。

sendボタン

リモコンデータを送信します。

 

デバイスの接続

Arduinoで作ったデバイスを接続すると、自動でアプリが起動されます。
デバイス接続中は、タイトルにconnectと表示され、learnボタン・sendボタンが有効になります。
デバイス未接続の状態では、タイトルにdisconnectと表示され、learnボタン・sendボタンが無効になっています。

※注意点

デバイス接続中に、他のアプリを起動したり、画面をoffになったり、その他随時・・・
connectと表示されていても、デバイスをコントロール出来ない場合が有ります。
Android Accessoryの挙動が良くわからず、この部分のバグが取り切れていません。ごめんなさいorz
その際には、ケーブルを抜いたり、リセットかけたりして対応してください。

 

リモコンの学習

始めに、データタイプとサンプリングレートを指定します。
次にデバイスを接続した状態で、learnボタンを押すと、デバイスは受信モードに移り、アプリはリモコン受信待ちになります。
デバイスが受信モードの時、デバイスの動作確認LEDが点滅します。
この状態の時に、デバイスの赤外線受信モジュールに向けて、学習したいリモコンのボタンを押します。
正しくリモコンの受信ができれば、画面のエディットボックスに学習したリモコンデータが表示されます。

adk-irremote-app3 adk-irremote-receivemode

 ※リモコン学習時の注意点

利用時の環境によっては、まわりのノイズで正しくリモコンデータを受信出来ない場合があります。 そのような場合、まわりの電化製品の電源を切ってお試し下さい。(例えば、蛍光灯・TVやPCのディスプレイ等)

 

リモコンの送信

sendボタンを押すと、エディットボックス内にあるリモコンデータが即座に送信されます。 リモコン送信中は、動作確認用LEDが点灯します。(リモコン信号は短いので、実際には一瞬点灯するだけです)

 

フレームデータで入力

KURO-RS(PC-OP-RS1)やIRIO88は、赤外線LEDの点灯・消灯時間を単純に記録しているだけのデータなのに対し、SHARPのAndroid端末やDoCoMoのiアプリで採用されているのはフレーム方式のデータです。

このデータについては、赤外線リモコンAPIでリモコンアプリを作るまで – コムギドットネットが詳しいです。
僕が昔作ったiアプリのデータベース iRemo2 リモコン・データベース

adk-irremote-app6 

実際にはフレーム方式のデータの方が、より細かなコントロールが出来たり、データサイズが小さくなると言う利点が有るのですが、学習リモコンで利用する場合には不向きです。
今回は、サンプルプログラムとして、フレームデータ→KURO-RSデータへの変換が可能となっています。

 

データの保存・読み込み

saveボタン・loadボタンで、リモコンデータを3つまで保存・読み込みができます。
ボタンを押下すると、それぞれダイアログが表示されるので、保存・読み込みしたい番号を選んでください。

adk-irremote-app4 adk-irremote-app5

 

アプリのダウンロード

Android Marketでの公開は中止しました。
野良apkとして置いておきます。

adk-irremote1.0.apk

 

アプリのソース

↓のzipファイルに、本記事のソース一式をまとめています。
zipファイル内の Android Appフォルダ内に、アプリのソースが入っています。

ADK_IrRemote20110803.zip

※2011/8/3
少しだけソース修正しました。+kuro-rsコンパチで動くプログラムも同梱しました。

 

最後に

回路的にも、プログラム的にも、実用性に乏しいかもしれませんが、お遊び用・実験用にどうぞ・・・
お子様の夏休みの自由研究なんかにどうでしょうか?

 

関連記事

no image

Wimeji Client for Arduino

前回紹介したWimeji Client for WindowsXPをArduinoでやってみました。

記事を読む

no image

米粒AVR(ATtiny10)

通称「米粒AVR」で知られるTiny10を使ってみたくて、秋月の通販で買ってみました。 超小型

記事を読む

Androidから米粒AVRへデータを送る

米粒AVRでSoftModem的なこと その2

前回は「米粒AVRからAndroidへデータを送る」ことを試しました。 今回はその逆の「And

記事を読む

no image

AndroidでSoftModemを試してみた

今回、ここで言うSoftModemとは、携帯電話のオーディオ端子(イヤホン・マイク端子)を利用し

記事を読む

no image

SoundIRModemライブラリのサンプル

 SoundIRModemライブラリは、米粒AVR(Tiny10)とAndroid端末をイ

記事を読む

Raspberry Piの起動SDカードを準備する

先日入手したRaspberry PiでLinuxを起動する為のSDカードを準備します。 Ras

記事を読む

no image

AVRISPmk2

米粒AVR(ATtiny10)のプログラム書き込み用にAVRISPmk2を購入しました。 先人

記事を読む

no image

AndroidとArduinoの接続で使えそうなBluetoothモジュール

1ヶ月ほど前に書いた、Android + Bluetooth + Arduino が割と人気があるよ

記事を読む

no image

ボツネタ~CAN的な何か

少し前に必死になって作ってたデバイス+アプリですが、気持ちが萎えてしまい、結果ボツと

記事を読む

no image

オシロスコープを手に入れた

ついにオシロスコープを買っちゃいました。 と言っても、DSO QUADと言うポータブルタイプの

記事を読む

Arduinoで温湿度計 #2

今回は、前回作った温湿度計にRTCモジュールとSDカードアダプタを

Arduinoで温湿度計

秋月電子の温湿度モジュールを使って、温湿度計を作ってみました。 以前

ArduinoでSDカード

電子工作で大量のデータを保存する方法を調べていると、 Arduin

秋月のリアルタイムクロック(RTC)モジュール

今回は秋月電子のI2C接続のリアルタイムクロック(RTC)モジュールを

秋月の小型キャラクタLCD

今回秋月電子で売られている小型のキャラクター液晶2種を買ったので、

PAGE TOP ↑