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

オシロスコープを手に入れた

ついにオシロスコープを買っちゃいました。 と言っても、DSO QUADと言うポータブルタイプの

記事を読む

sdcards

Raspberry Pi SDカードのクラスと起動速度

SDカードにOSをインストールするので、起動にはそれなりに時間がかかります。 では、どれくらい

記事を読む

no image

PIC24FJ64GB002でADKを試す(その1)

先日、MicrochipからPIC向けのAndroid Open Accessoryのライブラリが公

記事を読む

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

ArduinoでSDカード

電子工作で大量のデータを保存する方法を調べていると、 Arduinoでも比較的簡単にSDカードを

記事を読む

no image

AndroidにPS2キーボードを繋いでみた

@yishiiさんの素のAndroid端末を外部のキーにより操作する実験と言う記事を参考に、Ardu

記事を読む

米粒AVR リモコン

米粒AVRでリモコン送信機

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

記事を読む

thermometer overlay

パソコンで温度計 #4

前回までに作ったPC温度計のログデータを、計測と同時に撮影した映像にオーバーレイ表示(スーパーイ

記事を読む

no image

米粒AVRでアナログ入力を試してみた

米粒AVR(ATtiny10)に搭載されている8ビット4チャンネルのアナログ入力を試してみました

記事を読む

no image

Android + Bluetooth + Arduino

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

記事を読む

soundIR 受信機 回路図

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

  前回からだいぶと時間が経ってしまっていますが、今回はイヤホンジャック接続のリモコン受

記事を読む

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

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

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

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

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

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

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

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

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

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

PAGE TOP ↑