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コンパチで動くプログラムも同梱しました。

 

最後に

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

 

関連記事

米粒AVR リモコン

米粒AVRでリモコン送信機

米粒AVR(tiny10)を使った赤外線リモコン送信機を作ってみました。 これで送信できるのは

記事を読む

SDFormatter

Raspbianの起動SDカードを再利用

一度、Raspbianのイメージを書き込んだSDカードは、フォーマットが違う為にWindowsでは利

記事を読む

no image

赤外線リモコン受信機(イヤホンジャック接続)を作ってみた

最近、このブログ何も書いて無かったので、作成中の物の紹介・・・  これは、Andro

記事を読む

Raspberry Pi 起動SDカード

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

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

記事を読む

raspi-colortest

Raspbianの起動

Raspbianの起動画面をキャプチャしてみた。 SDカードにイメージを書き込んだままのデフォ

記事を読む

no image

Android+Arduinoでリモコン4(Microbridge接続)

前回AndroidAccessory接続で作った赤外線学習リモコンを、今回はMicrobridge接

記事を読む

Raspberry Pi

Raspberry Piを買った

先日、Raspberry Pi(ラズベリーパイ)を買いました。 Raspberry Piは噂で

記事を読む

raspi-pin-header

そうだ、Raspberry Pi用にピンヘッダーのオス・メス変換アダプタを作ろう

  Raspberry PiのI/O端子は、ピンヘッダーとなっていて、電極が出っ張ってる

記事を読む

Androidで気圧高度計

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

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

記事を読む

no image

Atmel Studio 6

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

記事を読む

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

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

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

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

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

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

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

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

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

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

PAGE TOP ↑