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で一眼レフカメラのシャッターを制御する(MicroBridge接続)

以前書いた、Androidで一眼レフカメラのシャッターを制御するでは、AndroidとArduino

記事を読む

no image

S2 Resistor Color Code 公開しました。

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

記事を読む

no image

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

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

記事を読む

no image

米粒AVRで小型8連ナイトライダーを作ってみた

米粒AVR(ATtiny10)を2つ使って、8つのLEDを順番に点灯しています。 &nbs

記事を読む

no image

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

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

記事を読む

no image

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

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

記事を読む

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

米粒AVRでSoftModem的なこと

米粒AVRとAndroidを繋いで、データのやりとりを行ってみたいと思います。 2つを繋ぐイン

記事を読む

no image

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

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

記事を読む

Hello Tiny10

米粒AVRでI2C通信を使ってLCD表示

前の記事で紹介したI2Cライブラリを使った、LCDの表示のライブラリ的なもの  

記事を読む

no image

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

何度か、Android+リモコンのネタを書いたことがあるのですが、今回はAndroid Access

記事を読む

Arduinoで温湿度計 #2

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

Arduinoで温湿度計

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

ArduinoでSDカード

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

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

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

秋月の小型キャラクタLCD

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

PAGE TOP ↑