ブログパーツUL5

学習リモコンの製作

 学習リモコンも多くの方が自作されており、今更、新規開発することもないので探してみました。ボタンの数は最終的には、PS2コントローラを赤外リモコンにするのですからそのボタン数だけあれば良いのですが、適当なものがなかなかありません。小型な学習リモコンの「学習リモコンの作成」を参考に改良することにしました。

 ハードは標準のユニバーサル基板に納まるように配置して、省力別電源の回路はフィルタ回路を挿入してノイズ対策をしております。一応、試作は5Vでの動作を考えていますが、赤外LEDの到達距離よりも消費電力を削減する為に、正式のリモコンは単3電池2本の3Vにするつもりです。なお、I2CのSCLにプルアップ抵抗が入っていないので規格上問題なのでSDAとSCLに1.5K(3V化するので推奨最小値に)を入れました。

 プログラムソースを見たら見慣れないソースでDOS版のPA.EXEでコンパイルするようになっていました。一部修正なので、最新版のPA.EXE(pa-3.0.5sはここから)をインストールすることにしました。しかし、オリジナルソースをコンパイルしてもいろいろ問題が発生しました。

(1)pIC16F84Aに対応していない
 PIC16F84のままコンパイルして、HEXファイルの後半にあるデバイスのコンフィグレーション部分は削除する。
 判りにくいので図で説明します。一般的なエディタでファイルを開いて、後半部分で左の反転表示させている部分を削除します。

(2)コンパイルエラー
 多分、バージョンの違いだろうと思いますが、561行と609行の2ヶ所エラーが発生します。

・561行のエラー箇所
cja bit_len,#BUF_LEN*8,n_get_err
→修正方法
mov data_buf,#BUF_LEN*8
cja bit_len,data_buf,n_get_err ; データバッファオーバーフロー
・609行のエラー箇所
cja bit_len,#BUF_LEN*8,s_get_err
→修正方法
mov data_buf,#BUF_LEN*8
cja bit_len,data_buf,s_get_err ; データバッファオーバーフロー

上記の修正でコンパイルエラーはなくなります。
(work_bufをdata_bufに修正しました)

(3)書込みソフト
 デバイスはPIC16F84Aを指定して、書込みソフトでコンフィグレーションを指定してから書き込みます。

あとは、リモコンのコードを理解して出来るかまた赤外線LEDがちゃんと発光しているかのチェックが必要である。これでも小型でボタン数は少ないですが、ページ切替できるので多機能である。小型なのでこれだけでも携帯電話感覚でRZ-1をコントロールできそうである。

(4)操作方法
.據璽孤充LED
 次のように表示されるページが現在のページです。
●●(ページ1)、●●(ページ2)、●●●(ページ3)・・・●●●(ページ7)
各ページに14個のデータを記憶できるので、最大14×7=98個のデータを記憶できる。
▲好董璽織坑味釘
 点灯中は操作可能で、消灯中は省電力モードになっている。短く2回点滅はReady状態で次の操作可能で、長く3回点滅はエラー状態でやり直しする。
ページキー
 1回押すごとにページ(増加)が切り替わり、7ページの次は1ページに戻る。
ぅ如璽燭竜憶
 メモリキーを押し、Ready表示されたら記憶させたいリモコンを本機に向けて目的の操作をする。続いてReady表示されたらもう一度リモコンを本機に向けて目的の操作をする(ちょっと面倒ですが2回行う)。次に記憶させたいキー(1〜14のどれか)を押せば記憶完了です。記憶させる前にページキーでページを切り替えることもできる。
 エラー表示された場合、もう一度同じ操作を行ってみて、それでもダメな場合は残念ながらそのリモコンは対応できないコードです。
ゥ如璽燭料信
 表示ページで、押されたキー(1〜14)に記憶されたデータを送信する。
Δ修竜’
・5秒以上何も操作しないと省電力モードに切り替わる。
・メモリ内容を全て消去したい場合、RB6と7を同時にGNDに接触(回路図内のJPをショート)させるとメモリクリアが行われる。クリア中はステータス点灯、ページLEDは消灯する。Ready表示され、ページLEDが点灯すればクリア完了です。
0

    コメント
    コメントする








       
    この記事のトラックバックURL
    トラックバック

    カレンダ

       1234
    567891011
    12131415161718
    19202122232425
    2627282930  
    << November 2017 >>