
視覚障害者向けに色センサーを作ろうとしていますが、いまだ完成に至りません。
応用として、センサー部分を温度センサーとして「しゃべる温度計」をつくってみました。
温度センサーは定番のナショナルセミコンダクターのLM35です。このセンサーは10mV/℃の電圧を発生するので、PICの12F675のADコンバータで値を読み込みます。
電源はUSBのバスパワーですので、電源電圧は5Vです。ADコンバータの基準を電源電圧とすると、最大500℃ということになってしまいます。シャントレギュレータTL431の2.5Vを分圧して0.5Vをつくりこれを基準として最大50℃としました。
12F675のADコンバータも最大精度の10bitで使います。見かけの精度はおよそ0.05℃あることになります。
PCとの接続はUSB経由で、USBコントローラはFTDI社のFT232BMです。仮想COMポートドライバーによるシリアル転送となります。
PC側で受信データをクリップボードに送り込み、スクリーンリーダで読み上げさせるのは「色センサー」と同じです。
スクリーンリーダに読み上げさせるため、PIC側の処理として、測定された温度データを数字として送るのではなく、文字として送るための変換をしています。21.0℃であれば 0x30+2、0x30+1、0x2E、0x30+0,0x82,0xC7 とすることで「にじゅういちてんぜろど」と読むわけです。
温度が高すぎるときと、低すぎるときは「そくていはんいがいです」のメッセージをPCに送って注意を喚起するようにしてあります。
通常の連続測定のほかに、スイッチを切り替えることにより、測定値の最大値を保持して、読み上げる「体温計モード」をつけてみました。
FT232BMはユニバーサル基板では実装できないので、感光基板をつかって専用基板を起こしました。
ケースは単三2本の電池ケースを使っています。
さて、使い勝手は?
体温計として使うには、絶対精度が不足ですね。相対的にはいいのですが、熱があるとき37℃なのか38℃なのかは非常に重要なのですが、LM35は25℃で0.5℃の誤差があることになっています。
測定ばらつきも問題ですね。平均化の処理はしているのですが、まだ不十分のようです。もともと信号をADコンバートするときのばらつきを減らすことも課題ですね。
普通の温度計とするにはまあまあですが、体温計とするにはまだまだです。