赤外線リモコン送信機(イヤホンジャック接続)の回路
公開日:
電子工作 | Android, イヤホンジャック, リモコン, 米粒AVR(tiny10)
前回は受信機で、今回は送信機を作ってみました。
受信機と違って、送信機の作成は少し面倒です。
部品リスト
部品 | 数量 | 記号 | 備考 |
ATTiny10 | 1 | IC1 | 米粒AVR |
赤外線LED | 1 | LED1 | |
抵抗 – 47 | 1 | R1 | |
抵抗 – 100k | 3 | R2, R3, R4 | |
抵抗 – 150k | 1 | R5 | |
コンデンサ – 0.1u | 1 | C1 | 積層セラミックコンデンサ |
コンデンサ – 1u | 1 | C2 | 積層セラミックコンデンサ |
電池 | 1 | ||
3.5mmプラグ | 1 | 3極または4極プラグ | |
※2013/2/3 R5の抵抗の値が間違っていました。正しくは150kです(´・ω・`)
回路図
※2013/1/31 回路図修正しました。PB0とPB1の接続が逆になっていました。どうも申し訳ないです(´・ω・`)
Tiny10用ソース
米粒AVRのプログラムです。
Atmel Studio 6(Ver 6.0.196 sp2)を使って作成しました。
<br /> #ifndef F_CPU<br /> #define F_CPU 1000000UL<br /> #endif<br /> <br /> #include <avr/io.h><br /> #include <avr/interrupt.h><br /> #include <avr/sleep.h><br /> #include <avr/cpufunc.h><br /> <br /> #define LED_PIN PB2<br /> <br /> ISR(ANA_COMP_vect)<br /> {<br /> }<br /> <br /> int main(void)<br /> {<br /> CCP = 0xD8;<br /> CLKMSR = 0x00;<br /> CCP = 0xD8;<br /> CLKPSR = 0x03;<br /> <br /> DDRB |= _BV(LED_PIN);<br /> PORTB &= ~_BV(LED_PIN);<br /> <br /> ACSR = 0b00001011;<br /> DIDR0 = 0b00000011;<br /> PRR = 0b00000011;<br /> <br /> uint8_t count=0;<br /> <br /> set_sleep_mode(SLEEP_MODE_IDLE);<br /> cli();<br /> <br /> for(;;)<br /> {<br /> if(ACSR&_BV(ACO))<br /> {<br /> PORTB |= _BV(LED_PIN);<br /> _NOP();<br /> _NOP();<br /> _NOP();<br /> _NOP();<br /> _NOP();<br /> _NOP();<br /> _NOP();<br /> _NOP();<br /> PORTB &= ~_BV(LED_PIN);<br /> _NOP();<br /> _NOP();<br /> _NOP();<br /> _NOP();<br /> _NOP();<br /> _NOP();<br /> _NOP();<br /> _NOP();<br /> _NOP();<br /> _NOP();<br /> count=0;<br /> }<br /> else<br /> {<br /> count++;<br /> if(count>250)<br /> {<br /> count=0;<br /> sleep_enable();<br /> sei();<br /> sleep_cpu();<br /> sleep_disable();<br /> cli();<br /> }<br /> }<br /> }<br /> }
解説
米粒AVR
赤外線リモコンの信号は、38kHz程度のパルスに乗せて送信する必要があります。
今回は、この38kHzのパルスを発生させるために米粒AVRことATTiny10を使っています。
プログラムの書き込みには、AVRISPmk2を使っています。
赤外線LED
何でも良いと思います。
秋月電子でも多種の赤外線LEDが扱われているので、好きなのを選びましょう。
電源
この回路では、米粒AVRを動作させる為と、赤外線LEDを光らせる為に外部の電源が必要です。
この回路で想定している電圧は3Vですが、だいたい3V~5V程度で動作すると思うので、リチウムコイン電池なら1個、1.5V乾電池なら2本、エネループ等のニッケル水素充電池なら3本。
ちなみに6Vを超えるとAVRが壊れます。
3.5mmプラグ
今回の回路は送信専用で受信を行わないので、MIC入力が必要ありませんので3極プラグで十分です。
もちろん4極プラグでも問題ありません。
100均で購入する場合、3極も4極も値段は同じですが、3極だと金メッキされたプラグをちらほらと見かけるので、金メッキのプラグが有ればそちらをお勧めします。
回路の仕組み
Android側では、イヤホンジャックからの音声出力を、リモコン信号に合わせてON/OFFをコントロールします。
回路上の米粒AVRは、音声出力の状態をアナログコンパレーターで検知し、ONの間だけ約38kHzのパルスを出力する。
このパルス出力は、直接赤外線LEDを光らせて、赤外線リモコンと同等の動作をするという仕組みです。
DSO QUADで波形を確認。
黄色い線がAndroidの音声出力、水色の線が赤外線LEDへの出力です。
Androidの音声出力がONの時だけパルス出力しているのが分かります。
フリスクケースで作ってみた
主な材料
基板には秋月電子の64ホールユニバーサル基板(1.16mm)、ケースにはフリスクケース、電源にはCR2032(3Vリチウムコイン電池)を使いました。
完成した回路
中はスカスカ
多分、電源を入れっぱなしでも数ヶ月は持つ計算ですが、念のため電源スイッチを追加しています。ケースをスライドさせると見えます。
接続
実際に使ってみる
この回路はイヤホンジャック接続でサウンドデータを使ってリモコン操作が可能です。
サウンドデータなので、wavファイルとしてデータを保存しておき、ミュージックプレイヤーで再生することで特別なアプリ無しでリモコン操作をすることも可能です。
今回はとりあえず、この方法で試用できるようにサウンドデータを公開しておきます。
※注意、予めAndroidの「音の設定」で「タッチ操作音」を消しておいて下さい。
日立 TV用
三菱 TV用
パナソニック TV用
SHARP TV用
SONY TV用
東芝 TV用
対応するデータをダウンロード・解凍して、Android端末に転送してプレイヤーで再生するだけ。
ちなみに、標準のミュージックプレイヤーの曲リストから直接再生すると一気に全曲再生されてしまうので、ファイルマネージャー等を経由して1曲づつ再生することをお勧めします。
※尚、NexsusOneでは上記で公開しているデータは使えません。 NexusOneでは下記のアプリを使って各自でリモコンを学習させてデータを作成すれば利用することができます。
データの作成は
なおこのリモコン操作用サウンドデータは、以前紹介したアプリのVer 1.1.0以降で作成できるようになってます。
アプリのダウンロードはGooglePlayからお願いします。
|
関連記事
-
-
Raspberry Piのサウンドを試したら音が出なかった話
(これはX-WindowのVLCメディアプレイヤーのスクショ) Raspberry Piでは、
-
-
Arduinoで温湿度計 #2
今回は、前回作った温湿度計にRTCモジュールとSDカードアダプタを取り付けて温湿度データロガーを
-
-
米粒AVRでアナログ入力を試してみた
米粒AVR(ATtiny10)に搭載されている8ビット4チャンネルのアナログ入力を試してみました
-
-
そうだ、Raspberry Pi用にピンヘッダーのオス・メス変換アダプタを作ろう
Raspberry PiのI/O端子は、ピンヘッダーとなっていて、電極が出っ張ってる
-
-
Androidで一眼レフカメラのシャッターを制御する
またSoftModemネタです。 調子に乗って arms22さんの記事 iPhoneで一眼レフカメ
-
-
PIC24FJ64GB002でADKを試す(その2)
前回「PIC24FJ64GB002でADKを試す(その1)」では回路の説明までしたので、
-
-
Arduinoで温湿度計
秋月電子の温湿度モジュールを使って、温湿度計を作ってみました。 以前「パソコンで温度計」と言うもの
-
-
オシロスコープを手に入れた
ついにオシロスコープを買っちゃいました。 と言っても、DSO QUADと言うポータブルタイプの
-
-
米粒AVRでリモコン受信処理
米粒AVR(Tiny10)で赤外線リモコンを受信して処理をするサンプルを作ってみまし
-
-
米粒AVRで温度計(STTS751使用)
前回までに紹介したI2CライブラリとLCDライブラリを使って作る、温度計のサンプルです。 温度
- PREV
- 赤外線リモコン受信機(イヤホンジャック接続)のアプリ
- NEXT
- 米粒AVRでI2C通信(マスター)
Comment (10件)
こんにちは、はじめましてりんりんでず。
今回学校の卒業研究でアンドロイドプログラミングの研究をしており、赤外線リモコン送信機と赤外線リモコン受信機を作ろうとおもいました。
質問とお願いなんですが、ATTiny10にプログラムを書き込む装置を教えてください(名前と購入先)あと、この装置の(ブレットボード)の真上からの画像をください。
よろしくお願いします。
こんにちは。はじめまして。
(先日メールを頂いたりんりんさんとは別の方ですね?)
Tiny10にプログラムを書き込む装置は、AVRISPmk2と言います。秋月電子で購入しました。
http://s2jp.com/2012/08/avrispmk2/
あと、ブレッドボードは既に分解していて、真上からの写真はありません。
電子工作としては比較的簡単な回路なので、なんとかご自身で頑張って下さい。
よろしくお願いします。
質問とは関係ありませんが、部品の一覧に記載していたR5の抵抗の値が間違っていました。正しくは150kです。
どうも申し訳ございません。
ご購入の際にはご注意下さい。
回答ありがとうございました。
もう一点質問なんですが、イヤフォンジャックのGNDはどこに繋げばいいですか?
GNDは共通ですので、回路のGND(電池のマイナス)に繋ぐといいです。
回路図にも追加しておきましたので、ご確認下さい。
回答ありがとうございました。
作動確認用のLEDをつけたいのですが可能でしょうか?
どう言うことでしょうか?
質問なんですが、AVR Studio6でプログラムを書き込むときに、Flashでファイルを指定しProgramを押すとこのようなエラーが出てしまい書き込めませんでした。
Unable to enter programming mode. Verify device selection, interface settings, target power and connections to the target device.
Details
Timestamp: 2013-02-13 21:43:06.076
Severity: ERROR
ComponentId: 20100
StatusCode: 1
ModuleName: TCF (TCF command: Device:startSession failed.)
Failed to enter programming mode. Error status received from tool: Result received is 0×03.
電圧は5.4Vですし、ビルドでもエラーは出ませんでした。
どうすれば書き込めますか?
お手数ですがよろしくお願いします。
はじめまして。
課題研究でラジコンをスマートフォンで制御したいと思っています。
質問なのですがATTiny10の代わりにR8C38Cを使うことはできますか?
よろしくお願いします。
>まさ様
コメントありがとうございます。
残念ながらR8C38Cを使ったことが無くて、良く分かりません。
申し訳ないです。