- 1月22日
回路図と基板図は出来た。
(16F1827にしたが、電流的には16LF1827を使いたい。秋月で有るみたい)
TV用リモコンの回路図と基板図に入れた。
面積的に2つで100x100mmに入れた。
プログラムはまだ作っていないので 1827(4kバイト)で間に合うかわからない。
コンパイラの効率が悪いのでちょっと不安だが、受信データ表示と出力を別のプログラムにすれば何とかなるだろう。
二つのハードで、違うプログラムを入れて、使い分ける事になる。
- 1月23日
ガーバーファイルも出来た。
基板図とガーバーファイルはテレビ用リモコンの物と同じ。
- 1月29日
テレビ用リモコンを変更したので基板図とガーバーファイルが変更になった。
「テレビ用リモコンの基板図と「ジグの図面」と「リモコンデータの表示と出力の基板図」を合成した物。
そのガーバーファイル。
- 2021年6月15日
テレビ用リモコンと共通の部品表を作った
- 2021年6月16日
他のデカトロンスピナー、ニキシー管チェッカー、Z563m時計用アクリルと一緒に、基板をelecrowに注文した
- 2021年6月25日
昼頃、佐川で荷物が届いた。いつもながらOCSは速い。
中を見たら、段ボール箱が有り、
その中の基板は全て10枚づつ有った。デカトロンのだけ10枚で頼んだのだが、
他の基板も10枚になっていた。
まあ 値段は同じか。
- 2021年6月26日
一枚の基板は、テレビ用リモコンと、リモコン信号の表示と出力 の2種類の基板がくっついている。
(表、裏)
- 2021年7月5日
基板を切り離して 必要な基板だけにした。
(表、裏)
デカトロンスピナー、ニキシー管チェッカー、テレビ用リモコンと一緒に、不足部品を注文した
- 2021年7月6日
千石に頼んだ部品(タクトスイッチ)、RSに頼んだ部品の一部(モレックス、チップ抵抗)が入った。
- 2021年7月7日
ウィルコに頼んだ部品(ビス類)、廣杉計器に頼んだ部品(スペーサー、コネクタ)、秋月に頼んだ部品(B6B-ZR以外)が入った。
残りは マルツとRSの海外在庫品とJPセミコンのICになる。いつになるか?来週中には入るだろう。
- 2021年7月8日
JPセミコンのICと、後から秋月に頼んだ部品(B6B-ZR)が入った。
RSの海外在庫品内 2点は明日届きそう。残り一点は来週初めになるとの連絡が来た。
マルツはいつになるか?来週中には入るだろう。
- 2021年7月9日
RSの海外在庫品内 2点が届いた。
- 2021年7月12日
RSの残っていた海外在庫品内 1点(16F1827-I/SO)が届いた。
マルツは納期回答もまだ無い
- 2021年7月15日
IC(16F1827-I/SO)を半田付けした。
- 2021年7月17日
SMDは全て半田付けした。
- 2021年7月18日
スルーホール部品も半田付けした。基板表、基板裏
まだプログラムを作っていないので動作はわからない
- 2021年8月31日
プログラムはニキシー管チェッカーを元にまずLEDの点灯から始めてみる。PB1(青LED)の点滅を書いてビルド完了した。
が、PICKIT3を繋いでもCPU(16F1827)を認識しない。
書き込みコネクタ(6Pコネクタ)のMCLRがCPUのMCLRに繋がっていない。回路図で繋がっていない。なぜ?
今日はここまでとする
- 2021年9月1日
書き込みコネクタ(6Pコネクタ)のMCLR(1ピン)からのパターンをカットして、
CPUのMCLR(4ピン)に接続した。
-->PICKIT3がCPUを認識できて、プログラムを書き込めた
青LEDも点滅した。やっとスタートラインについた感じ。
スイッチ入力の確認をしたが、SW4(RA4)とSW5(RA0)がうまく読めない。
原因は、外部のプルアップ抵抗が無かった。IC内部には存在しない。ニキシー管チェックの時と同じ思い込み。
-->二つとも100kΩでプルアップしたら正常にスイッチ入力出来た。
- 2021年9月2日
DSMの確認のプログラムをテレビ用リモコンを元に書いたが、コンパイルが通った所までで、ちょっと中断する。
- 2021年9月3日
テレビ用リモコンのプログラムと ニキシー管時計用のプログラムは動いた。(別々のプログラムとして)
DSMは動作したと言う事で、残りはLCDと赤外線受信になる。
- 2021年9月4日
LCDに関しては 明六つ時計の時のLCD表示を流用(ポート、ビットは修正)すれば、動くと思う。
但し、その時は16F1827ではプログラム領域が足りなくなって、16F1847を使った様に思うので
今回は大丈夫だろうか?。足ピンは同じなので付け替えれば良いのだが、手間である。(在庫は有る)
LCD表示とフォントのファイルをプロジェクトに追加してビルドしたら、プログラム領域の約61%を使っている事になった。
LCD表示はまだ呼んでいないので、もしかして実際にはリンクをしていない可能性が有るので、動くプログラム(LCD表示を呼ぶ)を
作ってみないと本当の所はわからない。
今日はここまで
- 2021年9月5日
LCDに[0123456789ABCDEF]を表示するプログラムを 追加した。
-->表示しない。LCDのRST端子のビット指定を間違えていた。
直したら表示したので、LCDは動作OK
赤外線受光器は出力についているLEDがリモコンの信号で点滅するので、受光器その物は動いている。
CPUでその信号を見て、青LEDに反映させたら、同じように点滅するので、CPUでも取り込めた。
これで ハード的には全て動いている事になる筈。後はそのハードをソフト的どう動かすかになる。
つまり、これからはソフトを作ると言う事
- 9月6日
16F1827のEEPROMの読み書きはどうやるのだったか?(何か関数が有ったと思うが)
これをクリアにしないとまずい。-->以前のLED表示器で使った筈(16F1847では無いが同じ様なはず
プログラム領域の問題から16F1847に付け替えた。
プロジェクトを16F1847用に変更しなければならないが、今日はここまで
- 9月7日
プロジェクト名とターゲットCPUを16F1847に変更した。
再度ビルドして、CPUに書き込み、現状の動作を確認した
- 9月8日
I/Oデータのテレビチューナー用のリモコン(HVT-BRC1)のデータを見た。この基板を使いオシロで赤外線受光器の出力を見た。
信号はNECフォーマットに近い。リーダー部と各ビットの表し方(ON、OFFの時間)は同じ様だが、
データがNECフォーマットとは違うみたい。
Lが赤外線有り(ON)、Hが赤外線無し(OFF)とすると、リーダー部はON:8.9mS・OFF:4.48mS。
データは 0(ゼロ)はON:0.56mS・OFF:0.56mS、1(イチ)はON:560mS・OFF:1.6mSに
なっているみたい。
電源ボタンは5バイトのデータを送っているみたいで、00H、01H、48H、00H、40H となっていた。
気長にオシロで調べれば、テレビ用リモコンの送信データを変更すれば I/Oデータ用のリモコンも出来る事になる。
東芝のエアコンのリモコンの信号も見た。これは信号長が長いみたいで全体で182mSも有った。どうも二つのブロックを続けて出しているみたい。
信号としては 0.56mSと0.56mSの物と、0.56mSと1.60mSの物を組み合わせているみたい。リーダーは4.4mSと4.4mSみたい。
これもデータがハッキリわかればテレビ用リモコンでソフトを作れば出せるだろう
東芝テレビ以外の見た所 NECフォーマットのデータを表示できると結構他の物も見られそうな気がしてきた。
キー操作、EEPROM保存などの面倒な事は後回しにしても、NECフォーマットのデータを見られると面白くなりそう。
- 9月11日
受信データ表示のプログラム(簡易判定)を書いた。コンパイルは通った。
- 9月12日
CPUに書き込み動作させた。
-->リーダー部はそれらしい値を表示したが、データ部は数がおかしいし、値もおかしい。
データ数表示を追加した。データ表示の所が間違っていたので修正した。
表示のフォーマットは合ったが、データ数とデータ値がおかしい。最初の1ビットが抜けているみたいにも見える
終わりを見ていなかったので、自然には終わらず、スイッチを押して終わる事になった。
-->これは修正の必要が有る。
OFFの時間が1(イチ)の判断時間より長くなったら終わりと判断する事にした。
これで1フレームが取れた。
だが、まだ データ値はおかしい。
おかしいが、何回やってもデータは変化しないので、
ソフトでどこか論理的な間違いが有ると思える。
- 9月13日
まだ データ値はおかしい。
プログラムを検討した。ON時間、OFF時間の合計が判定範囲外の時は0になる。
なので、プログラムの処理が遅くて、正常に赤外線ONの立ち上がりが取れないと 本来1のビットが0に化けて、1ビット取り損ねる事になる。
この様な状態が有るかもしれない。
本当にONの立ち上がりが取れないのか調べる為に、立ち上がりで青色LEDを反転させるソフトを追加して、オシロで確認するつもり。
プログラムは追加して、青色LEDが点滅する事は目視で確認した。オシロではまでしていない。
- 9月14日
青色LEDの点滅信号をオシロで見る為に、チェック用の線を付けた。
裏側の信号なので表側に線を回した。
オシロで見た所時間が足りない事は無いみたい。オシロで見る限りでは大きな遅れは見られない(15uS~25uS)
そうするとソフト上の論理(考え方)の問題に絞られる。
怪しいのは、
・リーダー部の時間取得から、データ部のON/OFFの状態を見る所に移行する所?
・ビットをシフトしながらバイトデータにして、1バイトづつ保存する所?
もう一度 ソースコードを良く見直す必要が有る。
-->ビットをシフトしながらバイトにして、1バイトづつ保存する所が間違っていた。
修正したら、思ったようなデータが取れた。
- 9月15日
今回は簡易的な判断だが、本来のリモコンを使って近距離で受光するので、とんでもないデータは来るはずがないので この方式で良しとする。
但し、フォーマットの違い(NEC、家電協等)は決め打ちなので、その違いを判別するのが一段階必要かもしれないが、それは追々考えるとする。
他のリモコンも試してみた。正しいかどうかわからないが、I/Oデータのリモコン、DENONのリモコン、東芝エアコンのリモコンのデータも表示は出来た。
DENONのリモコンはデータ数が1なのでどうも怪しい
- 9月17日
構想 9月16日の仕様でソフトを作り始める
DENONのリモコンRC-1173の波形を見たら、家電協フォーマット(データ6個)だった。
これを基準にすればソフトも作りやすいだろう。
- 9月19日
基板を箱(キャンドゥの1BOX)に入れた。
が、完全な箱では無く、スイッチ、LCDの面は開放になる。
箱が大きすぎる感じ。半分ぐらいの高さの物が有れば良かった。
- 9月20日
受信部分のNECフォーマットと家電協フォーマットの部分は書いて、コンパイルも通った。
ニキシー管時計フォーマットの受信がまだ出来ていない。(ソニーは保留)
送信部分も全てまだ出来ていない。
- 9月21日
CPUに書き込みに現状のプログラムを入れた。NECフォーマットと家電協フォーマットは表示した。
赤外LEDから送信がダメ。(プログラムは作ってある)なぜ?
DSMの初期化を直前に入れたが、ダメ
以前のプログラムとほとんど同じでターミネーターでなくデーター数指定に反抗しただけの筈。送信データ内に00Hが有るかもしれないので
ターミネータ方式ではダメになった。
- 9月22日
仮に 今までのタ-ミネ-タ-方式で 今までのSW1のデータを送る様にしてみたが、赤外LEDからの送信は出来なかった。
と言う事は、何かの設定が狂っているのだろう。DSMの初期化は入れてもダメだったのでその他だろう。何??
- 9月23日
仮に 今までの送信動作の所で、データ数指定の送信関数を呼ぶと 赤外LEDからの送信は出来る。
と言う事は、やはり、何かの設定が狂っているのだろう。何??
-->単純な事だった。DSMをイネーブルにしていなかった。イネーブルにしたら出力した。(LEDが光った)
I/Oデータのリモコンの電源コードを受信し、表示した後、
赤外LEDから送信したら、電源をON/OFF出来た。チャンネル変更も同じように出来た。
- 9月24日
テレビのリモコンとは違うが、東芝エアコンのリモコンのデータを見た。NECフォーマットでは6個のデータが取れた。
家電協フォーマットではデータが取れなかった。
なので多分NECフォーマットなのだろうが、リーダー部の時間がON時間とOFF時間が同じくらいで4.4mSになっている。
このフォーマットも送信できるようにするにはリーダー部のON/OFF時間もEEPROMに保存する様にしないとダメだろう。
それは、もう少し後にする。
ソニーとニキシー管は除いて、プログラムを書いたつもり。ビルドは出来た。
送信動作は見た目は動いているみたいだが、受信動作でEEPROMに保存したデータが送信できない。
データフォーマットとデータ数は保存した物になっている。どうも受信動作の保存が上手く無いみたいな気がする。
- 9月25日
受信動作の保存について、MPLABでEEPROMの中身を見ると、
確かにデータフォーマットとデータ数は書き変わっているが、データは変わっていない。
なので、書き込み(保存)が悪い様だ。
-->保存関数の中のデータ数を見る所が間違っていた。forループの中身が1度も実行されなかったみたい。
大筋は出来た感じ。SONYとニキシー管は出来ていないが....。
- 9月26日
家電協のリモコン動作だが、DENONのリモコンのENTERとSOURCEはデータが取れるが、STOPとPLAY(POUSE)のデータが取れない。
取れたデータを送れば、動作は確認できたので、受信動作がまだ完全では無いみたい。
色々操作した結果、リモコンに二つのモード(CDとNET)が有り、
NETモードの時は送信データはこの機械で読み取れるが、そのモードではCDプレーヤーは反応しない。
CDプレーヤーが反応するのは、もう一つのモードのCDモードにする必要が有ったが、そのモードの送信データはこの機械で読み取れない。
このデータは家電協ともちょっと違うみたい。リーダー部の長さがずいぶん違う。オシロで解析をしないと無理な感じ。
NECのLED照明器具のリモコンは、当然ながらNECフォーマットで送信データが読み取れた。
ダイキンエアコンのリモコン(ARC478A20)は、データが取れない。
webで調べたら、2フレーム送る事になっていて、1フレームの前にON/OFFの繰り返し信号が入っている。
どうも そのON/OFF信号から取り始めてしまって肝心の1フレーム目からのデータが取れないみたい。
取れたとしても1フレーム目が20バイト、2フレーム目が19バイトと言う事なので、今のプログラムではデータが取れない。
このエアコンのリモコンデータが取れない事は置いておいて、ON/OFF繰り返し信号で取れないと言うのはまずいので
最初のON時間とOFF時間を計測して、リーダー部として認識してから次のデータを取る必要が有るだろう。
-->プログラムは修正して、
リーダー部のON時間とOFF時間の合計を見るようにした。
今まで取れていたデータは今まで通り取れる。
が、DENONリモコンのCDモードは取れない。オシロで解析しないとダメみたい。
NECのリーダーの比では無いが、NECフォーマットでデータ数1でデータが取れる。本当?違いような気がする。
今後の事を考えるとリーダー部のON時間とOFF時間でNECフォーマットと家電協フォーマットフォーマットを判別できるかも?
と言うよりは、そうしないと持ってきたリモコンのフォーマットがわかっていないと何もできない事になってしまう。
それと2フレームは取れないとまずそうだし、1フレームのデータ数も16では足りないので、25データ/1フレーム位にしないとダメだろう。
但し、それはエアコンまで考えた時であり、テレビ、照明器具、CDプレーヤー辺りなら、
今のプログラムの方式で、リーダー部の認識は必要だろうが、行けると思う。
ニキシー管時計用のデータ受信だが、これは必ずわかっている物(私しか作らない筈なので)なので必要ないだろう。
送信に関してはこの基板をリモコン代わりに使うとしたら、有っても良いと思うが、必ずしも必要とは思えない。
なので、受信のニキシー管フォーマットは止める。
- 9月27日
DENONリモコンの波形をオシロで見た。
0と1を表し方は似ているが、時間が全然違ってる。
2パターン有り、仮に 第1パターン(ON:340uS, OFF:690us)を0(ゼロ)とし、
第2パターン(ON:340uS, OFF:1740uS)を1(イチ)とする。これで データは表せる。
そして リーダー部は無い。もしかして最初の方のデータがリーダー部に当たるかもしれないが...。
トレーラー部はハッキリわからない。最後のデータが1ビットがトレーラー部に有らるかもしれないが...。
と言う事で NECフォーマットでも家電協フォーマットでもない独自フォーマットと言う事になる。
送信はデータがわかればすぐ作れると思うが、この様な独自フォーマットを受信してデータを取得する必要が有るか?
これが CDプレーヤーの標準だと言うのなら、やっても良いと思うが、どうかわからないので受信は必要ないだろう。
どうしても必要なら オシロで解析出来るので この機械には受信は入れなくて良いだろう。
但し 送信は入れるが、バイト単位の送信でなく、ビット単位で送信できるように、基本構造を変えたい。
また、DENONリモコンの場合は、スイッチごとにフォーマットが違う事になるので、
グループごとのフォーマットでなく、スイッチごとにフォーマットを指定出来るようしないといけない。
別の事だけど、動作で変更したい事が有る
-
受信動作のフォーマット指定を電源ON時にいつも行うのは面倒なので、スイッチが押されていなければ前回のフォーマットで動くようにしたい。
-
送信動作でグループを選択する時、EEPは良しとしても、GP1~5では、わかりにくい。3文字で良いから わかる文字列にしたい。
-
いつも受信動作に行って、そこから抜けて、送信動作に行くのは面倒なので、最初にスイッチで受信か送信か選ぶようにしたい。
-
最初にスイッチで受信か送信か選ぶのも、スイッチが押されていない時は前回の動作をする様にしたい。
- 9月28日
DENONリモコンの固有フォーマットの送信だけ出来ても
元になるデータを解析するのが手間なので、受信動作もできるように考えた。
それらしいデータが表示できる。受信動作の送信も作ったが、正確にリモコンデータが送信できているかは未確認
(赤外は出ているみたいだが動くかどうかわからない)
- 9月29日
DENONリモコンの固有フォーマットの受信したデータを送信しても、
CDプレーヤーは動作しない。オシロで見ると同じ様なデータが出ている(1%から1.5%短い)ので
動くと思ったがダメ。
オシロで信号をよく見ると、始めのブロックの後100mS位経過した後に、違うパターンが出ているみたい。
その後ろにも100mS位経過した後 違うパターンが出ている。つまり3つのブロックが出ているみたい。
但し、2番目と3番目が違うパターンかははっきりしない。それとデータを解析する事が出来ない。
オシロにディレードトリガーが無いので全体を見るしかなく、その時間軸だとはっきり解析できない。
やるとしたら、プログラムで別にトリガー信号を出してやる必要が有る。
今は、そこまでやらなくても良いのではないか?
いずれは エアコンの事も有るので複数ブロックに対応する必要がある。
この際 この機械の仕様を考え直す必要が有るように思う。
-
送信動作は必要ない
送信する事は必要だが、リモコンみたいに送信機として使う動作はいらない。
リモコンの送信機は「テレビ用リモコン」を使えば良い。
当然、プログラムはCDプレーヤー用、照明器具用、エアコン用に特化する必要はある。
その送信データの解析用、確認用の機械と言う位置づけで良い。
簡易的な送信動作として、受信データをスイッチに対応させてEEPROMに保存して、
それでリモコンみたいに動かして確認したいとも思う。
-
データブロックは3ブロックまでとする
エアコンや、DENONのリモコンは複数ブロックで送信するので、それに対応する。
-
1ブロックのデータは23までとする
エアコンのデータが21バイトみたいなので、23バイトとし、頭に送信ビット数を入れて24バイトを1ブロックにしたい。
-
スイッチ毎にデータフォーマットを指定できるようにしたい
これは 送信動作的な物を残す時に必要になる事で、送信動作を完全に止めるならばこの様な事を考えなくても良い。
以上の事柄は プログラム領域が足りなくなりそうだと言う事に 大きく影響されている。
余分なルーチンが有るとしても、既にプログラム領域が93%位埋まっているので、
機能をいくらでも入れられると言う状態ではない。必要な機能に絞って入れる必要が有る。
また、入れるとしても優先度と言う事を考えながら入れる必要が有る。
- 9月30日
DENONリモコンの固有フォーマットのデータを調べてみた。
リーダーは無し、15ビットのデータで、トレーラー有り、2ブロック有り、ブロック間は40mS位。
ボタンを押し続けると その2ブロックが何度も送信されるみたい。
この機械の仕様を再検討したいので「構想」の所に記述する
ソースファイルを分割して ある程度機能別にした。
- 10月3日
再検討した仕様で作り直した。ビルドは出来た。
動かすと不具合は有りそうだが、今日はここまでとする。
- 10月4日
NECフォーマットは良いみたい。I/Oデータリモコンで確認した。部屋の照明のリモコンでも確認できた。
家電協フォーマットはDENONリモコンの家電協リモコンが出る ENTERとSOURCEで確認した。
DENON固有フォーマットは送受信とも表示上は良いみたいだが、CDプレーヤーは制御できない。まずは、オシロで見ないと 何が悪いかわからないだろう。
SONYは そもそもリモコンも装置も何もないので、確認の仕様がないし、作っていない部分もある。
- 10月5日
DENON固有フォーマットの送信をオシロで見た。波形を重ね合わせ比べた。
1ブロック目は本当のリモコンと同じに見える。微妙な時間差は有るが数%なので多分違いに入らないと思う。
但し、2ブロックまでの休み時間が5mSほど短い。リモコンでは45mSだが これの送信では40mSになっている。
しかし、これが制御できない原因とは思えない。
2ブロック目がハッキリ同じかわからない。2ブロック目はトリガーの関係で細かい時間軸で保存できないので
同じみたいにも見えるが、ハッキリしない。
細かく波形を比較するには プログラムを細工して、2ブロック目にトリガになる信号を出す必要が有る。
-->今も2ブロック目に青LEDを点灯させている(トリガーが有る)。
消していないので2度目以降はトリガーにならないので見落としていた。
そのトリガを使って2ブロック目のこの機械の送信データと、リモコンの送信データを比べてみた。
1ブロック目と同じ様に数%の微妙な時間差は有るが、同じデータが出ている事を確認した。
なぜ CDプレーヤーを制御できないのか、わからない。違うのは何が有るか?
繰り返し回数か? リモコンはボタンを押している時は繰り返し、信号を出している。
しかし、この機械は1回(2ブロック)だけ。ここだろうか?
- 10月6日
手動で何度も連続で早く送信したが CDプレーヤーを制御できない。
手では遅いのかもしれない(せいぜい200mS間隔位だろう)
プログラムを細工して DENONに限り 2データ1ブロックで6ブロックを受信するようにした。
また 15ビット1ブロックで6ブロックを送信するようにした。
受信をして表示させた時、リモコンを短く押す(CDプレーヤーは反応する)と6ブロックまでは送らない。
もう一度リモコンボタンを短く押して6ブロックにした時のデータは最初の2ブロックの繰り返しに近いが、
ちょっと違っている。この6ブロックのデータを この機械からそのまま送るとCDプレーヤーは反応した。
と言う事は、最初にボタンを押した時に出たデータ3ブロック以上で5ブロック未満のデータが必要なデータと言う事になる。
実際に何ブロックかは、オシロで見ればわかる筈。
-->オシロで見たら 15ビット1ブロックの5ブロックを送信していた。
CDプレーヤーで主に使うボタンの送信データは5ブロックだった。
受信も6ブロック受信するのではなく、間隔が空いたらそこまでのデータを生かして終了するようにすれば良いはず。
保存もそのデータ数分を保存する事にする。
或いは5ブロック決め打ちにするか?どうせ DENONリモコンの専用フォーマットだからそれでも問題は無いはず。
受信は5ブロックと言う事にしてプログラムを作った。
が、まだ完全ではなく、5ブロックのデータでは表示に行かない。表示データは5ブロック分で内容も合っている。
今日はここまでとする
DENONリモコンのデータを調べて思った事は、資料のほとんどない物もデータを知るのは大変だ。
と言う事と、リモコンとCDプレーヤーが有ったから出来たが、無かったらプログラムを作っても無意味だろう。
確認も出来ない物を作っておいても無意味だろう。
なので、SONYフォーマット関連は消す事にする。プログラム領域も99.6%になっており、
確認用のプログラムも入れられないような状況なので、取りあえず使わない(使えない?)物は消す事にする。
- 10月7日
DENONリモコンの確認をやってみると、3ブロックでもCDプレーヤーの制御が出来る。
リモコンのボタンを短く押した時には3ブロックだったり、4ブロックだったりの時が有ったので、試してみた。
3ブロックで良ければ、データ構造をDENONリモコン用に特別な使い方をしないで、ビット数を3つに増やし、
送受信データを12個にすれば、以前の考え方をあまり変えないで済みそう。
-->3ブロックまででプログラムを作り直した。ビルドしてCPUに書き込み、動かした。
表面上は問題ない。実際に制御できるかは未確認
- 10月8日
DENONリモコンの確認を、3ブロックのプログラムで、CDプレーヤーの制御が確認した。OK。
YAMAHAのCDプレーヤーとカセットデッキのリモコンが有ったので受信のテストをしてみたら、
NECフォーマットでデータが表示出来た。
カセットデッキは2~3のボタンの確認は出来た。
CDプレーヤーは、動く機械が無いので動作確認は出来なかった。(多分正しいと思う)
NECフォーマットが受信できて表示できると結構色々な機種のリモコンデータが見られるみたいだ。
プログラムの機能的な事はこれで良しとして、使い勝手、表示などを調整する必要が有る。
-->表示などを整理した。
それと、送信のタイミングの時間を__delay_us(n)を使っているが、nが定数なので
それを変数が使えるような物にしたい。
-->ハードタイマーを見るようにすれば、出来そうな気がする
そうすれば、今は別々のデータフォーマットの送信プログラムを共通化出来そう。
- 10月9日
__delay_us(n)をTimer1(1uSカウント)を使って、
NEC、家電協、DENONフォーマットの出力を行った。
NECと家電協で機械(テレビとCDプレーヤー)の操作は出来たが、DENONフォーマットは操作が出来なかった。
オシロで波形を見る必要が有るだろう。
今日はここまでとする
- 10月10日
この機械のDENON波形をオシロで見た。
大きくは違っていないが、赤外受光器の所を見るとON時間が長い。420uSになっている。
出力の所(LED)で見ると360uSになっている。赤外受光器で60uS長くなるみたい。
と言う事は、このDENONリモコンの時間を見た時は赤外受光器で波形を見て、それで340uSと決めたが
その値は60uS長くなってこの長さなので、出力は340-60=280uSと言う事になる。
因みにOFF時間は短くなっていて、周期は赤外受光器で1070uSで、出力では1060uSとほとんど同じになっている。
なのでON時間を短くしたらその分OFF時間を長くする事になる。
時間をゼロは ON=250uS、OFF=750uS、
1(いち)は ON=250uS、OFF=1750uSにした。
-->何となくON時間とOFF時間は受光器で見てリモコンと近い感じにはなった。(260でも良いかな?)
でもCDプレーヤーは操作できない。オシロで見たら、1ブロックが15ビット無い。
14ビットで最後の1ビットが足りない。
NECフォーマットと家電協フォーマットは 規格として出力時間が決まっているのでその時間で出力すれば
赤外受光器がON時間を長くしてもその程度のズレは機械側(テレビ、CDプレーヤー等)が元々見込んでいると言う事になる。
今日はここまでとする
- 10月11日
DENNON出力が14ビットしか無い件が推察で来た。トレーラー部のON時間が0になっているので
STOPビット(?)がない事になり、最後のビットがわからなくなっているみたい。データのON時間は
ばらつきが有るにしろ 15ビット分の15回は出ているみたい。
-->トレーラー部のON時間を入れた。ON時間は全て260uSにした。
これで CDプレーヤーの操作は出来た。
LED出力と受光器の時間に差が有るので調べてみた。
STOPデータで 受光器出力でON時間の平均値が288uSになっている。
最小は208uSで 最大は352uSになっている。
LEDの所で見た出力は250uS~260uSになっている。
同じ様にリモコンSTOPデータではON時間の平均値が319uSになる。
最小は308uSで 最大は340uSになっている。バラつきが少ない。
この機械のLED出力を受光器で見た時は、どうしても反射波になるので その影響も有ると思う。
しようがないだろう。
正確にLED出力の時間を決めるには、フォトトラ(フォトダイオード)を使って、
38kHzのフィルターの無い信号をみて 時間を測る必要が有るだろうが、
そこまでやらなくても 良いだろう。面倒なのと、その値を正確にソフトに反映させるのも大変だろう。
今のソフトの作りでは それほど精度は出ないだろう。
この機械のON時間は10uS位増やしてもよさそう。270uSにした。
0(ゼロ)OFF時間は780uS、1(イチ)OFF時間は1820uSにした。
トレーラー部のOFF時間45mSにした。
それと 受信の0(ゼロ)判定下限を840uSに、上限を1270uSにして、
1(イチ)判定下限を1670uSに、上限を2520uSにした。
これで CDプレーヤーの操作が出来て、リモコンデータも表示出来た。良しとする。
- 10月14日
取説を書いた。
プログラムも出来た
- 12月11日
フォトトラ(RPT-34PB3F)を使って DENNONの信号をオシロで見た。
テスターの抵抗レンジで黒をコレクタ、赤をエミッタに繋いで、電圧と負荷抵抗を繋いだことにした。
その時の、エミッタとコレクタ間の信号を見た。抵抗レンジはx1にした。1V位の出力電圧になる。
x10以上だとレベルは高くなるが、信号がだらけるので、x10辺りが限界。
フォトトラは遅いので(規格上は 負荷抵抗100Ω、電圧5Vで応答時間は10uS、
実際は負荷抵抗はもっと多きはずなのでもっと遅いと思う))
39kHはデューティーは1:1には見えないが、立ち上がりからの1周期を測ると39kHz相当にはなっている。
これでON信号とOFF信号の時間を測ると ON時間は252uSで、
OFF時間は800uSと1840uSになっていた。フォトトラのディレーが10uSは有るだろうから
今のプログラムのON時間とOFF時間は当たらずとも遠からずのには行っている様だ。
このままで良いだろう。