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

米粒AVRのEAGLEライブラリ

EAGLEを使って米粒AVR(ATtiny10)の回路図を書こうと思ったら何か様子がおかしい。

記事を読む

Raspberry Piのスクリーンショット

  ブログで使う用に、Raspberry Piのスクリーンショットを撮りたいと思った時、

記事を読む

no image

米粒AVR(ATtiny10)

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

記事を読む

no image

Android + Arduino でリモコン2 (softmodem接続)

以前、LAN接続のリモコン Android + Arduino でリモコン と言うものを作ったのです

記事を読む

soundIR 送信機

赤外線リモコン送信機(イヤホンジャック接続)の回路

前回は受信機で、今回は送信機を作ってみました。 受信機と違って、送信機の作成は少し面倒です。

記事を読む

米粒AVRで温度計

米粒AVRで温度計(STTS751使用)

前回までに紹介したI2CライブラリとLCDライブラリを使って作る、温度計のサンプルです。 温度

記事を読む

no image

S2 Resistor Color Code 公開しました。

このアプリは、抵抗のカラーコードから抵抗値を素早く見る為のAndroidアプリです。 4本帯と、5

記事を読む

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

今回は秋月電子のI2C接続のリアルタイムクロック(RTC)モジュールを買ったので、ちょっと試してみま

記事を読む

Androidで気圧高度計

androidで気圧・高度計(LPS331AP使用)

Androidと大気圧センサー(LPS331AP)をイヤフォンジャックで繋いで気圧と高度、ついで

記事を読む

no image

AndroidでSoftModemを試してみた

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

記事を読む

Arduinoで温湿度計 #2

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

Arduinoで温湿度計

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

ArduinoでSDカード

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

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

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

秋月の小型キャラクタLCD

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

PAGE TOP ↑