No 30E73    パソコンタイマー(パソコンで留守録したい −征服−)

「パソコンで留守録したい」へ ・・・ 一番始めの頁へ
〜前書〜
(前書はいらない)


  「電波時計のアラーム設定をパソコンで操作したい!!」で トライステートの電波時計のソフトを改造し、パソコンからアラームの設定が出来るようにしました。これで、ガンガン留守録できると思ったら大間違いで、大問題が有りました。
そうです、電波が受信せえへん。うちの部屋は、鉄筋!!真南向きと最悪の受信条件です。マンションですので表にアンテナを張るわけにも行きません。こんなわけで、電波時計でパソコンを自動起動出来た実績はあまりありません。もっぱら、もう、現役を引退したオーデオタイマーで起動させてました。やっぱり、不便です。オーデオタイマーでは、パソコンからタイマーセット出来ませんからね。なんか、もっと電波時計の受信が上手く行かないものかと思っていました。
今年のまだ桜も咲かない寒い時期に、時計屋の店頭でカシオの電波時計を千円でワゴンセールしていたのを見かけ、思わず買ってしまいました。なんと、カシオの電波時計の受信感度のよい事!!何時でも何処でも(一寸オーバーかな)OKです。トライステートの電波時計よりも格段に良いのです。おお!こいつの信号を横取りしてパソコンを起動するタイマーを作れば....なんて、妄想が膨らんでいきます。
と、冷静に考えてみるとこれが、結構難しいですね、このプログラム。さてどうするかなんて考えているうちに、桜がさき、リストラで片道2時間以上の遠距離通勤者にされてしまいました。こうなると、難しい事を考える気力が萎えてしまい、それでも、オーデオタイマーの不便さを何とかしたく、安易な方法を思いつきました。
PICでただのタイマーを作れば良いんですよ。ただのね。

〜計画〜
(計画はどうでもいい)


 ということで、パソコンから、シリアル通信を使用して、タイマーの設定が出来るパソコンを起動するタイマーです。マイコンはPICを使います。
留守録をする為のタイマーですから「何年何月何日に何時何分に起動する。」と言うように、タイマーの設定は日付時刻で設定できなければ役に立ちませんが、この部分はパソコン側のアプリケーションで行う事にして、PICのタイマーの設定は、「後、何時間何分何秒後に起動する。」と言う設定にします。
設定時間をカウントダウンしていき、0時間0分0秒になったらDOをONさせる動きです。何も、表示がないと寂しいので、LCDでカウントダウンの様子を表示する事にしましょう。

〜ハードウェア〜
(とりあえず次ぎへいく)


 最終的な回路は、このようになりました。
今回は、色々と上手く行かず、最初の回路とは大分違うものになっています。最初は、LCDの入力はRB0〜RB7を使用して8Bitの入力としていましたが、何故か表示が上手くいかず、結局、電波時計の接続と同じにしてしまいました。
ちなみに、LCDは壊してしまった電波時計の物を使っています。
パソコンを起動するRA5の接続も、最初は、VCC→抵抗1KΩ→フォトカプラ→RA5端子と接続していました。これは、LEDセンサーのLED表示の部分と同じ接続ですが、これでは、フォトカプラをON/OFFできませんでした。そこで、RA5→抵抗1KΩ→フォトカプラ→GNDの接続に変えました。

大きい回路図


〜ソフトウェア〜


 PICのソフトの処理内容は次のようなものです。
@シリアルでパソコンからの設定値が届くのをひたすら待つ。
A設定値のフォーマットはHHHMMSSmmddhhmmのテキスト15Byteとし、HHHMMMSSは、HHH時間MM分SS秒後にRA5をONする。mmddhhmmは、mm月dd日hh時mm分に起動予定と言う事で、これはLCDに表示するだけです。
B設定値15Byte分受信したら、PICのTIMER1を起動して、カウントダウンタイマーとして動き出します。
C1秒ごとに、残り時間のLCD表示を更新します。
DシリアルでパソコンよりCもしくはcの文字コードが送られてきた場合は、TIMER1を停止リセットして、設定値の到着待ちの状態に戻ります。
E残り時間が、0時間0分0秒になったら、RA5を1秒間ONします。

とこんなもんですが、今回は、LCDの表示が上手く行かず大変苦労してしまいました。何度もプログラムを書き換え、その度に、PICを抜き差しし、ついには、ピンを折ってしまいました。
最初、LCDの入力は8Bitにしてました。8Bitであれば、1文字表示させるのに1回の入力で済みますから、プログラムもその分楽になるとの魂胆でしたが、大間違いでした。何故か、3Bit目が1の状態になってしまいます。「0」を表示したいのに「8」が表示されてしまいます。インターネットで色々調べてみましたが解決できず、PICの取説を見ると「ポート全部を使うと動作が不安定になる。」みたいな事が書いてありました。でも、電波時計は全部使ってますねぇ〜。
しかたなく、8Bit入力は諦めて、4Bit入力に半田付けしなおしました。
で、4Bit入力であっさり上手く言ったかと言いますと、これも中々上手く行きません。
結果、現在のソースも全ての文字コードを表示する事が出来ませんでした。どうも、4ビット目が0のコードをLCDに表示しようとすると滅茶苦茶な表示になって、その後表示を更新する事が出来なくなってしまいます。そんな訳で0x41から始まるアルファベットの殆どを表示する事が出来ず、気の利いたメッセージも表示しない寡黙なタイマーとなってしまいました。現在の表示内容は、1段目に起動予定時刻、例えば「07-31 13:45」、2段目に起動までの残り時間、例えば「001:59:43」だけです。非常に寂しい表示です。本当は、パソコン側からシリアル通信でメッセージを送ってそれを表示する様な機能もほしいところでした。
 一応、PICのアプリケーションソフトをアップしておきます。LHAで圧縮してあります。
コピーレフトとしますが、このプログラムを使用した事により損害や事故等々が発生したとしても、当方 は一切関知いたしません。御使用はあくまでも個人の責任で行ってください。

パソコンタイマーPICソースコード


〜 リ ン ク 〜

Home Page MYU
  このタイマーを自作されたそうです。「自分の覚え書き のため」と仰ってましたが、EPGに対応させたパソコン側のVBソフトも作られたそうです。トップページから「教育関連(CMI)・一般ソフト」とリンクを辿ると紹介やソースコード諸々がありました。


〜 重 要 〜

いかなる場合でも、このページの内容およびそれを参考に行った事の結果に関しては一切の責任を負いません。