その4 開発に必要な機材、このシステムの問題点




使用部品 購入先
ACアダプタ・・・・・・・ DC5V 1A : GP05-US0510 秋月電子通商




ブレッドボード・・・・・ サンハヤト : SRH-32(ボード)、SKS-290(ワイヤー) 千石電商




PICプログラマー・・・・・ AKI-PICプログラマーVER.3.5キット+電源セッ ト 秋月電子通商




PICプログラマー・・・・・ AKI-PICプログラマーVER.4バージョンアップキッ ト 秋月電子通商




デジタルマルチテスター・ CD721 : 三和電気計器  




参考図書・・・・・・・・ 「PICマイコンプログラミング&電子工作」高 橋 隆雄 著 秀和システム ISBN4-7980-0895-8




 
☆ブレッドボードは、回路修正が簡単で電子ブロック感覚で実 験が可能です。ジャンプワイヤーは被服のあるメッキ線(はりがね)を

 ガーデニングコーナーで見つけて使っています。推奨はできませんが、安くて、切って使えるので便利です。

 
☆今回のシステムはまだプリント基盤を設計していません。温 度センサーを2個にして、マルチ測定にしたいと思っています。
 
☆Xportの足のピッチが2段の千鳥になっているので、そ のままではブレッドボードにも、1つ目プリント基盤にも実装ができません。
 私は、破損を覚悟でラジオペンチで無理矢理足を曲げて、1 つ目基盤に実装した上で、ソケットを介してブレッドボードヘ繋いでいます。
 無理はしないで、専用プリント基盤を秋月電子通商で購入す るか、高橋さんの本を参考にして、プリント基盤を製作する事をお薦めいたします。
 
☆今回のハードウエアは、PICに対してXportより双方 向にデーター通信ができるようにしてあります。ソフトウエアでパソコン側から

 PICへ専用コマンドを送って、それを解釈して動作をかえるようなプログラミングをしてやれば、もっと面白い事ができます。

 

問題点は、現状の Xport側に仕込むJavaアプレット方式では、10001ポートに1対1でのみデーター転送を行うような仕様になっています。

もともとXportの使命はRS232CデバイスをLANを 介して仮想COMポートへ1対1で繋ぐ事を目的として開発された装置ですから当然です。
しかしこのままでは、自分のWebサーバー等にリアルタイム で温度を公開するようなことはできません。
外部から参照可能なデーターを書き出せば良いのですが、 Javaアプレットは相手側のパソコンで勝手に動作するという性質上、
セキュレティーに関する制限を受ける為、外部へファイルデー ターを書き出す事ができません。
 

これを克服するのには、Javaアプレットではなく、自宅サーバー上で動くJavaアプ リケーションを使ってXportの10001へソケット接続し、

共通に開く事のできる温度情報の絵文字を自宅サーバー上に書 き出させて、それをWebドキュメントで公開すれば良いと思います。(本当かなぁ?)
 
JavaアプリケーションバージョンのTempLanソフト を開発中です。(いつになる事やら・・・)
 
また、このTempLanを先に通 電した状態で姑く放置した後に、Webで接続すると、Xport内部にPIC側からの相当な量のデーターが蓄積されていて、
それが一気に表示されてしまいます。
 
また、接続状態でTempLan側の電源が切れる等してデー ターが途切れた場合の処理をしていません。

TempLan側が自動復旧しても、表示が更新されなくなるので、このへんもJavaの ソフトを考えなくては、無人化できません。

 
まだまだ、さまざまな問題を抱えて おりますね!あー、奥が深い!!(趣味趣味!)



追記:
「仕様と回路図」の追記でも書きましたが、0.1℃という分解能をどこまで信用できるかという問題に突き当たり、
結構真剣に考えてしまいました。

もとはと言えば、自分がしっかり素子の特製や、オペアンプの仕様を押さえておかなかった事が原因でした。

12Vと5Vの2電源仕様になってしまったTempLanの電源の単一化ですが、
現在12Vを安定化3端子ICで5Vに落としてPICに使用しています。

12Vから5Vに落とすには、安定化3端子ICが
、手で触れないぐらい(50℃ぐらいまで) 発熱しますので、
大きなアルミ製ヒートシンク(450mm×450mm×30mm)
が必要になってしまいまし た。

DSC00249.jpg
一応単一電源になりましたが、これはとっても邪魔です。
今度は9Vぐらいで試してみようかと思っています。


結局、大形の棒温度計と、家庭菜園用のサーミスター式デジタル温度計を買って、それぞれの平均値で現在の温度として校正。
また、デジタル温度計で氷り水を計ったり、45℃のお湯を計ったりして校正しました。
さらには、体温計で自分の体温を計って校正しました。(おそらく体温計が一番シビアじゃないかなぁ?)
 注意すべきことは、オペアンプの増幅度をデジタルボルトメーターで正確に9.764倍に合わせておくと、
後の校正が楽です。

LM35の出力を読みながら、PICの表示部の温度表示を校正しても良いのですが、
デジタル測定器をOPアンプの出力や、PICのA/D変換入力部に繋ぐと、外部誘導等の外乱を受けて現在値を
正しく表示されません。
 OPアンプの出力を計っておき、測定装置を外して、PICの表示を確認する等、何回かの作業が必要です。

LM35によっても差がある様ですが、購入したこのLM35は、2.0℃分高く検出する様です。10mV/℃は正確の様です。
別のLM35は、もっと高く出るものもあったので、やはり校正は必要です。

 PICの余ったポート(Cポート等)に入力にして、1ビット判定でタイマーを切り替えることに成功しました。
1000ms遅延サブルーチンを作っておくと便利です。
校正時には、1sで表示させて、通常は長い設定値でサンプリングさせる等、この切り替えはけっこう使えます。

 また、アプリケーションとして、XPort上に転送して使用する、Javaアプレット方式を使用していますが、
これは、単純に私がXPortの仕様や、Javaについて「ど素人」であるためと、他に例が見当たらなかったため、
XPortからの送信データーを受け取る為のアプリケーションを作成できる、無料の高級言語がJavaしか手持ちがなかった、
WindowsでもMacOSでも同一環境で使用できるので便利だったなどが、主な理由です。

でも、Javaアプレットには、Webブラウザから誰でもアクセスでき、アクセスした本人のところにXPortから転送されたアプリケーションが、
データーのやり取りを勝手に始めるのです。
 Javaアプレットには、 XPortから視て相手方コンピューター上のファイルを勝手に、
操作できない等の制限事項が安全の為に施されています。

 この制限の為に、Javaアプレットで行っている以上データーのファイルへの保存など、ファ イルアクセスができません。
これを回避するには、アクセスする側で直接実行するクライアント形式のJavaアプリケーションに治せばうまくいくようです。

  アプレットと同様にXPortのIPアドレス+ポート番号(10001)でJava上でソケットで接続してやれば良いわけですが、
結局、アプレットのお世話にならずにアプリケーションとして実現するには、
結構奥が深いです。実験中!(言い訳ですね!)

スタートレック(古!)の医療ベットの表示器のように、横を向いた赤い三角が、温度変化と共に動き、
現在の体温や、過去の最大最小、過去の推移情報をパッと表示できるようになるのには、
私のような暇に任せて遊んでいるJavaの「ど素人」には、いつになるのか分かりません。


注意事項
General disclaimer

トッ プページへ
なお、当ホームページで公開しているデーター(写真、音声)等を個人の枠を超えて複製・転用する事はご遠慮下さいませ。
ご意見/苦情/ご感想はこちらまで