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 Open Accessory開発時のWiFiデバッグ

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

記事を読む

no image

米粒AVRでLチカ

  米粒AVR(ATtiny10)でLチカしてみました。 LチカとはLEDをチカチカと

記事を読む

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

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

記事を読む

no image

USBホストケーブルとUSBケーブルの違い

USBホストケーブル(OTGケーブル)と普通のUSBケーブルの違いは、USBホストケーブルとして振る

記事を読む

no image

米粒AVRの動作周波数

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

記事を読む

パソコンで温度計 #4

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

記事を読む

no image

米粒AVR(ATtiny10)

通称「米粒AVR」で知られるTiny10を使ってみたくて、秋月の通販で買ってみました。 超小型

記事を読む

no image

Android + Arduino でリモコン

今こんなのを作ってますと言う動画です。   DoCoMoのFOMA携帯

記事を読む

Raspbianの最初の設定

  Raspbianのインストール後にraspi-configを使って行う最初の設定

記事を読む

soundIR 受信機 回路図

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

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

記事を読む

Arduinoで温湿度計 #2

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

Arduinoで温湿度計

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

ArduinoでSDカード

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

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

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

秋月の小型キャラクタLCD

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

PAGE TOP ↑