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

気になる物

HT-03Aで使えるのかどうかは知らないけど、Bluetooth-シリアルモジュール(BT-MOD1

記事を読む

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

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

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

記事を読む

no image

Atmel Studio 6

米粒AVR(ATtiny10)の開発を行う為に、Atmel Studio 6.0をインストールし

記事を読む

S2 SoundIR analyzer

赤外線リモコン受信機(イヤホンジャック接続)のアプリ

 前回の赤外線リモコン受信機(イヤホンジャック接続)の回路 を使う為のAndroidア

記事を読む

no image

Androidで一眼レフカメラのシャッターを制御する

またSoftModemネタです。 調子に乗って arms22さんの記事 iPhoneで一眼レフカメ

記事を読む

no image

PIC24FJ64GB002でADKを試す(その2)

 前回「PIC24FJ64GB002でADKを試す(その1)」では回路の説明までしたので、

記事を読む

soundIR 送信機

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

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

記事を読む

Arduino + STTS751

パソコンで温度計

ありきたりのPC温度計ですが、なんとなく作りたくなったので作ってみる。 コントローラーは手軽な

記事を読む

no image

Android Open Accessory開発時のWiFiデバッグ

Android Open Accessory開発時のデバッグは、ADBをWiFiで接続しろと、USB

記事を読む

no image

米粒AVRの動作周波数

  米粒AVR(ATtiny10)のデフォルトでは内臓発振器利用の1MHzが指定されてい

記事を読む

Arduinoで温湿度データロガー
Arduinoで温湿度計 #2

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

Arduinoで温湿度計
Arduinoで温湿度計

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

SDカード・マイクロSDカード
ArduinoでSDカード

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

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

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

秋月電子 キャラクタLCD
秋月の小型キャラクタLCD

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

PAGE TOP ↑