MAPLE-mini TypeA基板用プログラムの改良
.
昨日、今日と以前にアップした MAPLE-mini TypeA基板用のプログラムの改良をやってみた。
まずはLCDでアイコンを表示する
これはライブラリに入っていたので、その関数を呼んだだけで簡単にできた。
次に SDカードスロットのCD1信号線の利用
信号線自体はカードが挿入されていればGNDに落ちるという単なるスイッチなので利用は簡単。
せっかくなので SDFileSystemクラスを継承してCD信号線の扱いを加えたクラスを書いてみた。
ここまでは順調でとっても楽しい作業だった(^_^) だが…
最後に加速度磁気センサ
今まで使っていたライブラリに温度計読み取りを付け加えるだけだから簡単かと思ったら、必要なメンバが private なので継承してもダメ。
んじゃ直接いじるかと思い。改めてソースを読んでみたところ、このライブラリって方位の取得に特化していて加速度データの取り出しとか全然入っていない。さらには加速度計部分のI2Cアドレスが間違ってる。
これを書き換えるくらいなら、最初から書き直した方が早いな…ってことで書いちゃいました。
書いてみて思ったんだけど、LSM303DLHC って変なとこが多い。
加速度センサ部ではデータレジスタが X,Y,Z の順で Low、Highで並んでいるのに、地磁気センサ部ではHigh、Lowで並んでる。これにはすぐに気づいたのだけど、さらに並びが X,Z,Y になってるという罠があった(これに気づかずにハマって数時間費やした(^^;)
おかげで忘れそうになってたけど今回の改良のそもそもの目的は温度センサ部のデータの読み取り。というわけでやってみたのだが、デートシート通りに取得しても正しいとは思えない値しか得られない。色々調べてみたところマルツの販売ページにあったサンプルプルグラム(MyARM基板っていう物用なので直接 mbed1768には流用できない)では何故かデータに 25 を足していることが判明した。
確かに25を足すとそれらしい値になる。気温よりも5℃くらい高いけどチップの表面温度を赤外線温度計で測ってみるとほぼその値になっていた。納得は出来てないけど、とりあえずはこれで良しとする。
とにかく苦労した割に「気温よりずっと高くなるので使えない物」だったという落ちでした(^_^)
(シャットダウンモードにしたりしてチップの温度が下がったときに計測するとかすれば使えないこともないだろうけどね)
Please log in to post comments.