[[VIR-USB 接続赤外線学習リモコン]] -VIR: USB 接続赤外線学習リモコンユニットに関する技術の解説です。 -VIR が入出力する赤外線信号のテキストフォーマットについては別ページにまとめました: [[VIR-フォーマット]] *回路 [#q6ba721f] **DigiSpark [#o87c95d2] DigiSpark は AVR マイコン ATTiny85 を搭載した小型の Arduino 互換ボードです。専用の USB コントローラ IC は積んでいませんが、ソフトウェアによる USB 通信ライブラリ V-USB によって、PC から USB 経由でファームウェアを書き込んだり、外部と USB で通信することができます。このキットは、DigiSpark に赤外線送受信回路を追加して、USB で制御する赤外線リモコンを実現しています。 **オリジナル赤外線送受信シールド [#zf625cfc] Arduino に外部回路を追加するための拡張基板をシールドと呼びます。本家からも赤外線送受信用の [[Infrared Shield:https://digistump.com/wiki/digispark/tutorials/ir]] が発売されていますが、本家版の回路では赤外線 LED を ATTiny85 の出力ピンで直接駆動しているため、赤外線信号が遠くまで届きませんでした。そこで、ATTiny85 の出力でトランジスタを駆動し、赤外線 LED を大電流で光らせる、赤外線送受信シールドを独自に開発しました。シールドのピン配列は本家版と互換になっていますので、そのまま置き替えて使うこともできます。基板上のジャンパパターンも本家版と互換になっているため、組み立ての際は J1 と J4 をショートさせる必要があります。 本家版 Infrared Shield にはありませんでしたが、手動操作ができるように、シールド基板上にスイッチを1つ追加しました。ただ ATTiny85 の I/O ピンは PB0~PB5 の6ピンしかありませんが、PB3,PB4 は USB 用に占有されていて、PB1 には元々赤色 LED と電流制限抵抗(R5, 回路図には値がないですが、実測 700Ω 程度) が接続されていて、ピンに空きがありません。そこで表示用の LED が接続されている PB1 に、LED と並列にスイッチを入れて、PB1 を入出力共用にしています。PB1 は通常は出力ピンですが、時分割で短時間入力ピンとしても利用しています。スイッチを ON にしたときに出力がぶつかってショートしないように、スイッチには直列に200Ωの抵抗を入れています。スイッチを ON にすると、この200Ωの抵抗を通して LED が薄く点灯してしまいますが、ピンを入出力共用にしている都合上やむを得ません。 なお、本来の Digispark では PB5 が入出力ピンとして利用できますが、クローン品では PB5 がリセットのままになっているケースがあるため、どちらのボードでも使用できるように、今回は PB5 は使用していません。 今回の DigiSpark の ATTiny85 のピンの用途は下記の表の通りです。 |Tiny85ピン番号|I/O|用途| |1|PB5|リセット(クローン版 Digispark のみ)| |2|PB3|USB-| |3|PB4|USB+| |4|GND|GND| |5|PB0|赤外線LED| |6|PB1|表示用可視光 LED / スイッチ(時分割で入出力共用)| |7|PB2|赤外線受信モジュール| |8|VCC|VCC(5V)| **赤外線 LED と受光モジュール [#afdbcce8] 赤外線 LED は、できるだけ赤外線が広角に照射されるという観点で [[TSAL4400:https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0ahUKEwiwuuLqzJnQAhUIyLwKHdKbDQkQFggdMAA&url=http%3A%2F%2Fwww.vishay.com%2Fdoc%3F81006&usg=AFQjCNHr5zJUm2Yr5NVkUkB230ekpCx8kA]] を選択しました。データシートでは指向角が±25度となっており、受光部を正確に狙わなくても動作します。 赤外線受光モジュールは似たスペックの製品でもノイズへの強さ、動作電圧や電圧変動への強さ、受信した信号を正確に再現するかなど、かなりの特性の差があります。今回は信号の再現性を重視して、TSOP38238 を選択しました。 今回使用した赤外線 LED, 受光モジュールは海外製品で、入手性があまりよくないのが難点です。 *マイコン側ファームウェア [#sf812602] *PC側制御プログラム [#m259ee97] *Pukiwiki プラグイン [#yce45d4c] **回路図[#s898a180] 図をクリックすると拡大表示されます。左が DigiSpark の回路図、右が赤外線送受信シールドの回路図です &ref(回路図1.png,zoom,400x300); &ref(回路図2.png,zoom,400x300);