マイコン換装「でかボタンリモコン改」

ダイエーの低価格ブランド「コルティナ」製TVのリモコンを紛失してしまったので、その代用品として、市販されている何種類かの数社対応TVリモコンを調べましたが、コルティナ製TVに対応したものは見当たりませんでした。

コルティナ製TVのリモコンデータは、GB-REMで採取していたので、GB-fREMeを使えば、コルティナ製TVのリモコンが出来上がりますが、このTVの現在の使用者であるカミさんのお母様に、GBCを使ってもらうわけにはいかないので、 PIC等で自作リモコンを作るしかないのですが、基板むき出しというわけにもいかないし、ケースに納めてもケースの形状やボタンの操作性、そして見栄えを考えると満足のいくものが作れそうにありません。

市販されている数社対応TVリモコンを調べた中に、「でかボタンリモコン」という非常にシンプルでボタンが大きく使い勝手の良さそうなリモコンを見つけました。このリモコンのマイコン部をPICに換装してコルティナ製TVのリモコンを製作しました。

PIC用赤外線リモコンのソフトウェアは、トムキャットさんPIC16F84使用赤外線リモコン送信器のプログラムを使わせて頂きました。


分解(ケースの開け方)
分解1電池ボックスの底にねじが1本だけあるので、これを外します。

分解2表裏2つ割れのケースは5箇所(下側中央1個所、側面左右各2箇所)の爪で引っ掛かっています。ケースの下側中央の2つ割れの隙間に細いマイナスドライバを差し込んでやると爪が外れます。

分解3マイナスドライバを隙間に沿って左右の側面の方へ滑らせ隙間を広げていくと、他の爪が外れていきます。

分解4ケースを開けた様子

写真協力:小四娘
ハードウェア
入力回路(ボタン部)
ボタン部の回路はそのまま使います。ボタン部の回路をトムキャットさんのプログラム&回路に対応させたものを下図に示します。 各キースイッチの右下の文字はボタンの名称、右上の数字はトムキャットさんのプログラムで使用されるキーボタン番号です。リモコンデータはこのボタン番号に対応したものをプログラムソースに書きます。図の左側にPICのピンアサインを示します。
入力回路図

出力回路(赤外線送信部&赤色LED)
赤外線送信部の回路はマイコン出力をトランジスタでドライブしており、トムキャットさんの回路と同じなので、そのまま使います。出力回路は、このほかに表示ランプとして赤色LED回路があります。これについてもPICで制御するようにします。図の左側にPICのピンアサインを示します。
出力回路図

マイコン換装
上述の通り、入出力回路はそのまま使えるので、純正マイコンをPICに換装するだけとなります。以下に手順を説明します。

改造1純正マイコン部周りの不要な部品(コンデンサC3,C4,C5、クリスタルX1)をニッパで切除します。

改造2不要部品の切除後の様子。

改造3純正マイコン部周りの不要な基板部分を切除するための切り取り線を書きます。

改造4不要基板部分の切除後の様子。

改造5プリントパターン面に配線端子部を作ります。表面の塗装を剥がした銅板部分に半田をコーティングします。

改造6切除した部分に、PIC用18ピンICソケットとセラロックを取り付けたユニバーサル基板を5mm程度重ねて瞬間接着材でくっつけます。

改造7リード線で配線します。
左の写真をクリックすれば、結線図が見れます。

改造8結線をテスターでしっかりチェックし、OKであればプログラムを焼いたPICをICソケットに刺し、ケースを組立てれば完成です。

(部品リスト)
  • PIC16F84:1個
  • セラロック4MHz:1個
  • ICソケット18pin:1個
  • ユニバーサル基板:少々
  • リード線:少々


ソフトウェア
赤色LEDを光らせる
「でかボタンリモコン」には、リモコン送信状態確認用として赤色LEDが付いていて、リモコン送信中は赤色LEDが点灯します。トムキャットさんのプログラム&回路はこの赤色LEDを光らすような仕様となっていませんが、プログラムと回路を少し変更するだけで赤色LEDを光らすことができます。トムキャットさんのプログラム&回路でボタン入力として使われているPICのポートRB3とRB7は「でかボタンリモコン改」では未使用です。この未使用ポートのうちポートRB3を赤色LEDの制御用として使います。プログラムの修正部分は以下の通りです。

770行目あたり
	;	_portb: Bポートの操作するビット名設定
	_keyout0	equ	0
	_led	equ	1		; 赤外線Led
	_keycom5	equ	2
	;_keycom6	equ	3		; (以下に変更)
	_led2	equ	3		; RB3は赤色LEDで使う
	_keyout1	equ	4
	_keyout2	equ	5
	_keyout3	equ	6
	_keyout4	equ	7
800行目あたり
	;	_keyscan: ループエンドビット
	;_sc_end	equ	7		; (以下に変更)
	_sc_end	equ	6		; 6列目まで
850行目あたり
	keyread:
		clrf    _keyflag
		clrf	_porta			; ポートA 初期化
		clrf	_portb
		bsf	_portb,_led2		; (追加)赤色LED OFF
		clrf	_intcon
		bsf	_intcon,_rinte
		bsf	_intcon,_rbie
		sleep
860行目あたり
	keyread_01:
		movlw	b'00011111'
		movwf	_porta			; ra0 - ra4 high
		bsf	_portb,_keycom5
	;	bsf	_portb,_keycom6		; (削除)
		movf	_keyscan,W
		movwf	_porta			; _keyscan low (1 bit)
		btfss	_keyscan,5
		bcf	_portb,_keycom5
	;	btfss	_keyscan,6		; (削除)
	;	bcf	_portb,_keycom6		; (削除)
		nop
		nop
		nop
		comf	_portb,W			; ローデータリード
	;	andlw	b'11110000'		; (以下に変更)
		andlw	b'01110000'		; RB7は使用しない
		movwf	_keydata
910行目あたり
	keyread_04:
		bcf	_portb,_led2		; (追加)赤色LED ON
		call	transmit			; データを送信する
		bsf	_portb,_led2		; (追加)赤色LED OFF
		bsf	_keyflag,_kwf
		movf	_rptwait_bf,W
		movwf	_rptwait			; リピート待ち時間セット
		btfsc	_IntStatus,_mode_rp	; リピートモードチェック
		bsf	_keyflag,_krp		; keyリピートフラグセット
		goto	keyread_02
リモコンデータ(2002/12/03追加)
トムキャットさんのリモコンデータフォーマットはGB-REMとほぼコンパチなので、以前にGB-REMで採取しておいたコルティナ製TVのリモコンデータをデータエリアに書き込む。GB-REMの採取データをデータエリアのどこに書くかは以下のコメント文を参照ください。
;***********************************************************************
;	**  送信データエリア  **

; --- key 02 ---(コルティナTV電源)
	retlw	b'00000000'	; 送信モード:モード0,リピートなし
	retlw	0x03		; 送信データ数:以下の3バイト
	retlw	0x29		; GB-REMのENCモードで1 HIGHまたはLOWのCodeの1バイト目
	retlw	0x68		; GB-REMのENCモードで1 HIGHまたはLOWのCodeの2バイト目
	retlw	0x7d		; GB-REMのENCモードで1 HIGHまたはLOWのCodeの3バイト目
	retlw	0x00
	retlw	0x00
	retlw	0x00
	retlw	0x00
	retlw	0x00


;***********************************************************************
;	モードタイミング設定

; --- モード0設定値(コルティナ) ---   (1 = 0.1ms)
vl_0_start_h	equ	33		; スタート信号 on 時間     :GB-REMのENCモードで1 HIGHのLeader
vl_0_start_l	equ	32		; スタート信号 off 時間   :GB-REMのENCモードで1 LOWのLeader
vl_0_data_0h	equ	9		; データ0信号 on 時間     :GB-REMのENCモードで1 HIGHのData-0
vl_0_data_1h	equ	9		; データ1信号 on 時間     :GB-REMのENCモードで1 HIGHのData-1
vl_0_data_0l	equ	8		; データ0信号 off 時間   :GB-REMのENCモードで1 LOWのData-0
vl_0_data_1l	equ	24		; データ1信号 off 時間   :GB-REMのENCモードで1 LOWのData-1
vl_0_stop_h	equ	9		; ストップ信号 on 時間     :GB-REMのENCモードで1 HIGHのTrailer
vl_0_rptwait	equ	2		; リピート待ち時間 (1 = 10ms):GB-REMのENCモードで1 LOWのTrailer÷100

optset_0:	macro
	bcf	_ScnStatus,_carri40	; キャリア38kHz
	bcf	_ScnStatus,_carri33
	bcf	_ScnStatus,_sharp	; 通常モード
		endm

更新履歴
2002/12/03:Tさんのご質問により、GB-REMで採取したデータの使用例を追加
2002/04/06:ページの構成を一部変更
2002/03/10:ページを公開
INDEXに戻る

Copyright(C) 2002 Kiyoshi Izumi