この冬、私は急に太ってしまった。 寒さから食欲が増したことと、食事の時間が不規則な食生活に原因があると思われる。 腰回りの肉のせいで体を反らしにくくなったり、すぐ疲れるようになったりして、自覚するようになってきた。 今思えば、体重計が家に無いせいで、自分の体重についてそれほど気にしていなかったのも良くなかった。
とりあえず体重計を買おうと思った。できればネットに記録を上げられるような良い奴が欲しい。 witnessというやつが今のところ一番良さそうだった。
しかし、思ったより高かった。普通の体重計を改造してWifiモジュールを取り付けてやれば安価に作れるのではないか?と思った。
早速、秋葉のヨドバシでタニタの3000円くらいの体重計(体脂肪計測機能つき)を買ってきた。 店頭にあった体重計を裏返して物色し、ネジで簡単に開けられそうなやつを選んだのだった。 果たして普通のドライバーでネジを回してやって、マイナスドライバーをちょっと差し込んでやるだけで、簡単に裏蓋を開けることができた。
体重などの数値を取得するために、LCDに入力している部分を横から他のマイコンで読み取れないものかと算段していた。 体重計に付いている液晶は、7セグメント液晶と同じ原理なんだろうと、考えていた。 しかし蓋を開けてみてみれば、LCDのセグメント数と端子数は明らかに違った。 マトリクス状に回路が組んであって、2つの端子の組み合わせで、表示するセグメントを決めるのだろうと推察した。 ちょっと面倒だが、解析できなくもないだろうと思った。
オシロスコープをマイコンからLCDにつながっている部分に当ててみると、なんと、500Hzほどのパルスが出ているではないか。 しかもPeek to Peek が 1v程度であった。 LCDをドライブするのにこんなことが行われいるなんて全く知らなかった私は非常に混乱した。
結局、ネットを調べているうちに、こちらのブログ記事を発見した。 LCD(TN 1/3 bias, 1/4 duty) を汎用I/Oポートで出力制御
バイアスとデューティーを巧みに設定して、各セグメントにおける平均電圧が0になるように入力が与えられるのか…。
こういった出力を用意することは、マイコンのLCDドライブ機能を使えば簡単にできるが、これを読み取るのは容易なことではない。 体重計のLCDの端子は18本だったので、18本のA/D変換を用意しなければならない。 さらに、時系列も考慮して、デューティー分の表示をタイミングよく記憶しておかなければならない。
体重計のIoT化は、あきらめた。