赤外線リモコンを検討するの巻き! 2012.7.1

このページより分離しました。

なにやらBBSでリモコンの話題があがっていますが、ものすごくやってみたかったことのひとつです。
というのも、私としては装置までの距離が近いので、リモコンの必要性自体は低いのですが、
最近ではLCDやスイッチを使う場合が多いので、基板類をケースに収めるときにたくさんの穴やスイッチ類を
配置しないといけません。しかし、リモコン側に機能の一部を移してやれば、ケース自体の加工はきわめて簡単
になります。極端な話では赤外線の受光穴だけあればよいことになりますからね。

ということもあり、ちょっと検討してみることにしました。

まずは送信機!
赤外線リモコンには送信機と受信機が必要になりますが、まずは送信機から作ってみましょう。
市販のリモコンを使う手もありますが、送信コードの解析が必要なことと、ある機能をもたせてやりたいので、
送信機自体も一から組み立てることにしました。

まず必要なのは赤外線LEDです。これは、以前に秋月で買い込んだもので10個200円のものです。
VF=1.35-1.6Vくらいなので、3Vの電池でも容易に駆動できます。青色や白色LEDではVF=3Vくらいに
なるので、電池2本では発光が難しくなりますが、赤色LEDはVFが低くて助かります。

用いた赤外線LED。

おもむろに組み立ててみました。くみたてるといっても、PICとスイッチとLEDだけです。
あとLEDの電流制限用に抵抗が2本あるだけです。なぜ2本かというと、PICの出力端子の電流は最大で25mA
ですが、もうすこし流したいので2本の出力端子をつかってそれぞれに抵抗を挿入してLEDをパラ駆動しているからです。
PICには16F819をつかいました。

 
組みあがった赤外線リモコンとその裏側

LEDの駆動方法は

これはいくつかのフォーマットがありますが、まずは家電協フォーマット(NECフォーマット)に準じることにしました。
下記のような送信パターンになります。ちなみにLEDの点灯サイクルは38kHzです。

出典:http://www.256byte.com/remocon.htm

プログラムはまずは簡単にくみ上げて動作確認しました。

受信側は

赤外線がうまく送信できているかを確認するためにも受信素子が必要です。
こちらも秋月で買った受信センサをつかいました。

受信側のテストの様子。まずは素子が動くかどうかの確認です。

小型の受信モジュールを作成しました。
電子ボリュームに接続できるように、DAコンバータも搭載しています。DACにはマイクロチップ社のMCP4222を
つかっています。12Bits分解能ですが、7bit相当分解能としてつかっています。
 
組み立てた受信モジュール

結合テスト!

ソフトを組み込んで、DAC9018Sに接続してテストです。
外付けスイッチとリモコンスイッチの両方がつかえるので、結構便利かもです。
汎用的な構成にしているので、その他の基板との接合テストもしてみましょう。

DAC9018Sとの接続。

受信機にVR追加!
リモコンで音量調整するときにボタンでアップダウンしてもいいのですが、
やはり操作フィーリングとしてはボリュームノブの方が気持ちいいです。
ということで、リモコン送信機側にVRを搭載して、そのアナログ値を送信できるようにしました。

リモコン送信部にVRを追加しました。

ここまですると、リモコンからどんな送信コードが送られているかを確認しながら作業しないと、
ややこしくなるので、別途でコードリーダを作りました。
これは簡単にLCDとPICと赤外線受信機からなる簡単なものです。
でも、これがあるとないとではデバッグは大違いです。
LCDは秋月で最近売り出した小型の16×2のもので、ピンがインラインになっているので使いやすいです。


リモコン送信コードの表示機もつくりました。

気になる消費電流は?

リモコンに入れる電池の持ちがきになるとことです。できるだけ消費電流が小さくなるようにプログラム的には工夫しています。
まず動作周波数ですが、キー入力待ちなどのときには動作クロックを125kHzまで落としています。そして、キー押されてコード
を送信するときはクロックを8MHzに変更しています。また、AD変換機は常に動作することになりますが、それでも、
AD変換が終了したらADCをOFFにして省電力モードにしたりしています。またVRに常に電圧をかけると、それだけでも
電流が流れるので、AD変換するときにだけVRに電圧をかけるようにしたりしています。
そこで、実際の電流を測ってみました。

一番気になるのは待機時ですが、このときにで電流は0.2mA程度に収めることができました。
単三電池だと約2000mAhなので、この消費電流なら約1万時間は持ちますので、電池は1年以上持ちそうです。

待機時は0.2mA               LED動作時でも1.6mAです。

備忘録のための回路図です。

送信機の回路


受信機の回路

もっと面白そうな入力デバイスは
 リニアコントロールのための入力デバイスにVRは便利ですが、折角なので面白そうなデバイスを探してみました。
いつもの秋月電子のHPを探してみるとこんなのがありました。550円とすこしお高いですが、
タッチパッド式の入力デバイスです。

http://akizukidenshi.com/catalog/g/gP-04746/

これをつかえば、指でなぞれば音量が大きくなったり、小さくなったり、
そして、ある部位をたっぴんぐすれば入力切替などに応用できれば、これひとつで
済ませられる可能性もあるので便利そうです。
ということで、早速購入してみました。

 
購入したタッチパッド。

簡単な評価ボードをつくってみましょう。LCDとPICマイコンを組み合わせて簡単に組み立てることができます。
まずは位置センシングのソフトをつくって実際に動くかどうかみてみましょう。


位置検知だけのプログラムを組み込みました。


次は位置と圧力も表示できるようにしてみました。
なかなか使えそうなデバイスです。

もっと色々なことができるように
タクトスイッチを4つほど搭載してみました。
さて、どんなソフトにしていきましょう。


とんどん部品が追加されていきます。

インテリジェントリモコンも面白いかな?

設定等が変更できるようにLCDも搭載したインテリジェントリモコンにするのも面白いかもです。
LCDを搭載すると消費電流が増えますが、一番電流が必要なのはバックライトですが、
使用しないときは消灯すればいいでしょう。またLCDのロジックも1mA程度消費しますが、
これも、使用しないときはシャットダウンさせればいいでしょう。
色々と考えるのって面白いです。

しかし、このページってシフトパラのES918Sを題材にしているはずなのですが、
なんか、赤外線リモコンのページになってきています。ちょっと分離するかな?

やっぱり

感圧センサより通常のVRの方がボリューム調整しやすいかかな〜などいろいろと
考えていましたが、やっぱりVR型に変更です。さらに、各種の情報が表示できるようにLCD
も搭載しました。このプラットフォームをつかって色々とソフトを考えていきましょう。
LCDの駆動の面から電源は単3電池3本を想定しています。
目標の電池の持ちは待機時で1年間です。

ソフト開発用のプラットフォームの出来上がり。PIC16F886を使います。

またまた計画変更・・・・ 2012.7.29

やっぱり感圧センサをつかったほうが面白そうなので、計画変更です。
ついでに、基板のパターンも描いてみました。送信機は1台で複数の受信機をコントロールできるようにして、
受信側は4枚綴りのパターンです。

外線リモコン用のパターンです。

夏休みの工作です! 2012.8.11

試作製造に出していた基板ができあがりました。

赤外線リモコンの送信機用の基板です。

組み立ての順番にはすこし注意が必要です。

このリモコン基板は両面実装であるのと、さらに足(ピン)が裏面に突き出るとまずいところがあるので
取り付ける順番を少し気をつける必要があります。

まずは40PのPIC用のICソケットから取り付けです。

Cソケットをとりつけました。

タクトスイッチは取り付ける前にリード線を短くカットしておきます。

右側のようにリード線をカット


タクトスイッチの半田付けは部品面から行います。裏面には半田が飛び出さないように少量の半田で取り付けです。

つぎは液晶をとりつけます。インラインタイプのものになります。


最後は電池ボックスです。接着力が増すように両面テープを貼っておきました。

単三電池ボックスをとりつけます。

ソフト作成の前に・・・・

ソフトの作成にかかったのはいいのだけど、PICの抜き刺しがものすごく面倒なことがわかりました。
というの、PICの裏側には液晶があります。そのためPICを差し込もうとすると、液晶を避けて反力を加える
必要があります。1,2度なら別に苦にはなりませんが、ソフト作成のために何度も抜き差しを繰り返すのは
この場合大変です。ということでISPで書き込みができるように秋月の下駄ソケットをとりつけました。

下駄ソケットをとりつけました。


その前に受信側の作成 2012.9.2

送信機のソフト作成の前に、その確認用も兼ねて受信用の基板をつくっておきましょう。
受信側の基板は小さく作り4枚綴りにしました。これは送信機1つで4つまで受信機をコントロールすることを
想定しているためです。

基板は4枚綴りです。

そのうちの1枚をポキと割り折って作ることにしましょう。

サイズは33×27mmです。

組み立ては部品点数も少ないのであっというまに完成です。
 
部品面の様子。                           半田面の様子(チップコンデンサがついています)

使うICは2つだけです。PICにはPIC16F88をつかってみましょう。いつものPIC16F819でもいいのですが、
部品箱を探してもなかったので、同じピン配置のものを流用です。DACにはマイクロチップ社のMCP4912です。
これは10Bitの2chDAです。備忘録も兼ねて、ICのピン配置をUPしました。

 

基板のパターンはこんな感じ。
 
部品面のパターン                                  半田面のパターン

コネクタのピン割り振り

GND 12 11 VOUTA
VOUTB 10 9 #4 PIN_A2
#7 PIN_A4 8 7 #3 PIN_A3
#6 PIN_B0 6 5 #2 PIN_B1
#5 PIN_B6 4 3 #1 PIN_B2
VDD 2 1 #0 PIN_B3

ここで受信機側の受信コードとその役割を定義しておきましょう。

1バイト目 2バイト目 3バイト目 4バイト目 機能
ID=0 E0 1バイト目
の反転
コード
(ただしLSB
のみ非反転。
混線防止用)
n(0-7) 3バイト目
の反転コード
SWnをON
E1 n(0-255) VOUTA出力n
ID=1 E2 n(0-7) SWnをON
E3 n(0-255) VOUTA出力n
ID=2 E4 n(0-7) SWnをON
E5 n(0-255) VOUTA出力n
ID=3 E6 n(0-7) SWnをON
E7 n(0-255) VOUTA出力n
共通 EE n(0-3) 受信IDをnに設定

上表の中でSWnのON時間は約25mSに設定しましょう。ただ、制御される側のレスポンスもあるから
これについては変更できるようにしておいてもよさそうですが、これについては途中で考えましょう。

ひさしぶりの作業再開 2012.9.15

上の表を眺めていて、DA出力が1つしかないことに気づきました。
あたらめて機能表を書き換えです。

1バイト目 2バイト目 3バイト目 4バイト目 機能
ID=0 E0 1バイト目
の反転コード
(ただしLSB
のみ非反転。
混線防止用)
n(0-7) 3バイト目
の反転コード
SWnをON
E1 n(0-255) VOUTA出力n
E2 n(0-255) VOUTB出力n
ID=1 E3 n(0-7) SWnをON
E4 n(0-255) VOUTA出力n
E5 n(0-255) VOUTB出力n
ID=2 E6 n(0-7) SWnをON
E7 n(0-255) VOUTA出力n
E8 n(0-255) VOUTB出力n
ID=3 E9
n(0-7) SWnをON
EA
n(0-255) VOUTA出力n
EB n(0-255) VOUTB出力n
共通 EE n(0-3) 受信IDをnに設定


基板上のタッチセンサも動作することを確認しました。


基板上のタッチセンサー



さて、今日は久しぶりのオフミ。用意してでかけよう!
久しぶりのオフミ



やっぱり、忘れてる〜 2012.10.15

すこし仕事も落ち着いてきたこともあり、作業を再開しようとしましたが、
さすがに1ヶ月以上も手をつけていないと、ナニをやっていたのか完全に忘れていますね。
忘れる速度が速くなったのも年のせいかな?

いざ電源を接続しましたが、何をどこまでしていたのか・・・わからない・・・

まあ、赤外線リモコンはまた思い出したときに再開しましょう。



(つづく)