NHKが映らないワンセグを作れないだろうか。
(ワンセグでもNHK受信料というのが確定したので)
以前にワンセグチューナーを改造して、チャンネルのつまみ(ロータリーエンコーダー)を回して操作するような回路を外付けするのを試した。
→ TVアナログ放送終了と、その後
改造の元になったのは東芝のワンセグチューナーキットSD-PDT1という機種だ。
TOSHIBA ワンセグチューナーキット(マグネット付き小型アンテナ付属)(Amazon)
改造は、
チューナー本体のケースを分解し、基板を取り出し、チャンネル操作ボタンの部分に配線を半田付けした。
Arduinoマイコンボードと、自作のアナログスイッチシールドという拡張基板を接続し、アナログスイッチをマイコンで操作して、ワンセグチューナーのチャンネルを操作する信号のOn/Offすることでボタンを押したような電気的な状態を作り出すことができる。
ソフトはArduino開発環境を使わずにWinAVRというAVRマイコン用のC言語で開発した。
メインのソースコードはこんな感じだ。
// TV-Tuner controller by Kako #include <stdio.h> #include <string.h> #include "uart.h" #include <avr/io.h> #define F_CPU 16000000UL // 16MHz #include <util/delay.h> int main() { int i,recv_flag,ctrl_flag,ctrl_data; char buf[80],c; unsigned char data,d,d_; // I/O port init DDRC |= 0b00111100; /* In/Out direction 1...Output / 0...Input */ PORTC = 0x03; /* internal pull up */ DDRD |= 0b11111111; /* In/Out direction 1...Output / 0...Input */ PORTD = 0x00; /* out pins */ // UART init rs_init(9600); rs_puts("TV-Tuner controller by kako \n"); i=0; while (1) { // encoder check ctrl_flag=0; d = PINC; if (d_ != d) { if (((d & 0x01)==1)&&((d_ & 0x01)==0)) { if (d&0x02) { ctrl_flag=1; ctrl_data=1; rs_putc(0x0d); } else { ctrl_flag=1; ctrl_data=2; rs_putc(0x0d); } } } d_ = d; // uart check recv_flag=0; if (rs_size()>0 ) { c=rs_getc(buf); buf[i]=c; if (i<=79) { i++; } if (c==0x0d) { buf[i-1]='\0'; i=0; recv_flag=1; } } if (recv_flag==1) { if ((strcmp(buf,"?")==0)||(strcmp(buf,"h")==0)) { rs_puts("Command:"); rs_putc(0x0d); rs_puts(" up"); rs_putc(0x0d); rs_puts(" down"); rs_putc(0x0d); } if (strcmp(buf,"up")==0) { ctrl_flag=1; ctrl_data=1; } if ( (strcmp(buf,"dn")==0)||(strcmp(buf,"down")==0) ) { ctrl_flag=1; ctrl_data=2; } } // i/o output if (ctrl_flag==1) { if (ctrl_data==1) { data = 0x01; PORTD = (data << 3); _delay_ms(50); data = 0x00; PORTD = (data << 3); rs_puts("Channel up."); rs_putc(0x0d); } if (ctrl_data==2) { data = 0x02; PORTD = (data << 3); _delay_ms(50); data = 0x00; PORTD = (data << 3); rs_puts("Channel down."); rs_putc(0x0d); } } if ((recv_flag==1)||(ctrl_flag==1)) { rs_putc('>'); // prompt } } }
回路的には、Port Cにエンコーダを接続し、Port Dにアナログスイッチを接続している。
PC0,PC1がエンコーダーで、PD3,PD4にアナログスイッチが繋がっていて、これらのアナログスイッチはワンセグのチャンネルの上ボタンと下ボタンに繋げた。
このソフトでやっているのは、
・エンコーダが右回転するの検出すると、PD3を50ミリ秒だけHighにしたあとLowに戻す。
・エンコーダが左回転するの検出した場合、PD4を50ミリ秒だけHighにしたあとLowに戻す。
・シリアル通信で現在の状態を通信して、PCに状態を表示させている。
・また、シリアル通信でPC側から”up”.”dn”のコマンドの文字列を受信すると、同様のPORTDを操作する。
という動作だ。
というところまで昔、作ったのだった。
そして、これを自作のブラウン管TVに内蔵させて、ブラウン管のワンセグTVを作ろうかと考えていた。
上記のワンセグTVをNHKが映らないワンセグTVにするにはどうするか考えてみる。
1つはNHKが映らないようにアンテナ部分にフィルターを入れるという方法だ。
iranehk 関東広域圏向け地上波カットフィルタ― (UHF26,27ch用) IRANEHK-AK27AB26N(Amazon)
単純に部品をはめ込んだだけでは外すことが可能なので、NHKの受信料を払う義務を回避できない。半田付けするなどして完全にチューナーと一体化させてしまう必要がある。
2つ目の方法としては、上記のAVRマイコンのソフトを改造し、現在のチャンネル番号を常にチェックして、チャンネル切り替え時(up,down時)にはNHKのチャンネルに切り替わらないように余分に信号を送ってチャンネルをスキップしてしまうというのができるだろう。
チャンネル番号のチェック方法は、ワンセグチューナーの基板上にチャンネル番号表示のLEDがあるので、そこに出ている7セグ部分2桁の電圧を全部読み取ればできそうな気がする。
あるいは、この両方を組み込んだ「NHKが映らないワンセグTV」を作れば、NHKの受信料を払う義務を回避できそうな気がする。