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

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

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

ADK-IrRemote

今回は、回路図やプログラムのソースも公開していますので、お暇な方は是非作って遊んでみて欲しいです。

デバイスの仕様

・タイトル通り、メインとなるのはArduinoです。 ちなみに、僕のArduinoはDuemilanoveで最新のUNOでは有りません。 動作に問題は無いと思いますが、確証は有りません。 (便宜上、プログラムの名前にADKと付けていますが、ADKボードで動作すると言う意味ではありません。 僕は本物のADKボードを持っておらず、ADKボードで動く物は作れませんので・・・)

・Android Accessoryで接続する為に、USB Host シールドを利用

・その他の主な部品は、動作確認用LED・赤外線送信用LED・赤外線受信モジュールを各1個づつ。

・データ仕様/コマンド仕様は、KURO-RS(PC-OP-RS1)と、その機能拡張版と言えるIRIO88形式用。

・データ保存用のバッファは、512バイト。 本当はもっと多く確保したかったが、メモリが足りないっぽいので、安定動作する512バイトにしています。 この部分は様子をみながら増減させると良いかも・・・あまり大きくすると突然暴走してしまったりする(正直なところ、別のところに問題があるのかもしれない・・・ArduinoのOutOfMemoryの捕捉の仕方が分からないでorz)

512バイトのバッファで、100usのサンプリングだと、409.6msまでの長さのリモコンデータを記録できる。(512バイト x 8ビット x 100us)
ちなみにKURO-RSは、データバッファが240バイトでサンプリングレートが100usなので、192msの記録ができる。

サンプリングレートは20us~100usまで指定できる。(サンプルアプリでは、20us・50us・100usから選べるようにした)

参考リンク)

IRIO88(InfraRed-Input/Output for atmega88) – Electric House

玄人志向 – KURO-RS(販売終了品)
BUFFALO PCastTV2対応 PC用学習リモコンキット PC-OP-RS1(Amazon)

PC-OP-RS1のコマンド仕様・データ仕様 PC-OP-RS1

 

パーツリスト

名前&メーカーリンク 数量 記号 備考&販売店リンク
Arduino Duemilanove 1   スイッチサイエンス(UNO)
Sparkfun USBホストシールド 1   スイッチサイエンス
赤色LED 1 LED1 動作確認用LED(秋月)
OSI5LA5113A 1 LED2 赤外線LED(秋月)
OSRB38C9AA 1   赤外線受信モジュール(秋月)
2SC1815 1   NPNトランジスタ(秋月)
抵抗 – 1k 2 R1-2 (秋月)
抵抗 – 47 1 R3 (秋月)
       

 

赤外線LED OSI5LA5113A
赤外線LED
OSI5LA5113A
袋買いしちゃってますw
赤外線リモコン受信モジュール OSRB38C9AA
赤外線リモコン受信モジュール
OSRB38C9AA
2個で100円

 

その他・オススメパーツ

Sparkfun USBホストシールドには連結用のピンヘッダが付属していないので、別途購入の必要があります。

ブレッドボードで作る場合

 

回路図

adk-irremote 回路図

※実際には、ArduinoにUSBホストシールドを接続してから、各部品の配線を行います。

※必要最小限の回路です。

※回路図中のRESETピンに繋がっているタクトSWは必要ありません。僕は押しやすいようにSWを外付けしたので、とりあえず記載しておきました。

ブレッドポードで作る場合(実態配線図)

adk-irremote 実態配線図

今回初めて、Fritzingと言う回路図作成ツールで、ブレッドボード用の実態配線図を作ってみました。
なかなか使いやすくて良いです。http://fritzing.org/

図中の青いLEDが赤外線LEDとなります。白いLEDも選択できたのですが、見難いので青LEDで代用しました。

 

Arduino用プログラム(ソース)

↓のzipファイルに、本記事のソース一式をまとめています。
zipファイル内の Arduino Firmwareフォルダ内に、Arduino用のソースが入っています。

ADK_IrRemote20110803.zip

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

 

注意点

上記の回路図や実態配線図通りに部品を接続し、ArduinoIDEを使ってプログラムをArduinoに書き込めばデバイスは完成です。

プログラムをArduinoに書き込む手順は、Arduino + USBホストシールド で ADK を試す(その3) を参照してください。

完成後、電源を接続して、動作確認LEDが一回点滅すれば、デバイスの初期化までは正しく動いていると言えます。
ここから先の動作チェックは、実際にアプリを使って確認してください。

USBホストシールドのUSB給電問題

SparkfunのUSBホストシールドは、USBから給電で動作させる場合、電圧不足でAndroid Accessoryのデバイスとして認識されません。 その原因と対策は、Arduino + USBホストシールド で ADK を試す(その2)のUSBホストシールドの項 を参照してください。

 

adk-irremote
ブレッドボード
adk-irremote
ユニバーサル基板を切って作ったなんちゃってシールド

  

デバイスの作り方は 以上です。
Androidのアプリの紹介は次のページで行います

 

関連記事

no image

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

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

記事を読む

no image

Arduino + USBホストシールド で ADK を試す(その1)

先日Google IOで発表された Android Open Accessory。みなさん知ってます

記事を読む

no image

Android + Bluetooth + Arduino

 以前書いた『気になる物』で紹介したBluetoothモジュールですが、本当に気になって実

記事を読む

no image

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

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

記事を読む

S2 SoundIR analyzer

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

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

記事を読む

SDFormatter

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

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

記事を読む

no image

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

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

記事を読む

Raspberry Pi

Raspberry Piを買った

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

記事を読む

no image

Softmodem Terminal 公開しました。

需要がどれほど有るのか疑問に思いつつ、以前のエントリ(AndroidでSoftModemを試してみた

記事を読む

米粒AVT(tiny10) リモコンレシーバー

米粒AVRでリモコン受信処理

  米粒AVR(Tiny10)で赤外線リモコンを受信して処理をするサンプルを作ってみまし

記事を読む

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

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

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

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

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

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

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

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

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

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

PAGE TOP ↑