Getting pressure from Grove Barometer Sensor (HP206C) with micro:bit (Block editor version)
気圧センサ(HP206C)をmicro:bitとGroveシールドで試してみた。下記python編で詳細な仕様などについてはこちらを参照。
今回はブロックエディタの方で動かす方法を試してみたらこうなった。
扱いやすいように準備ができたらスマイルアイコンを表示、ボタンAを押すと気圧をhPaで表示する。
コマンド間の待ち時間は単純にpythonと同じではうまく動かなかったので、ざくっと多めに入れてある。

実際のブロックコードはこちら。

Grove Barometer HP206C
Made with ❤️ in Microsoft MakeCode for micro:bit.
ブロックエディタでI2Cから24bitの数値を取得する方法
このデバイスはI2Cから24bitだけ取得する必要があるのだが、ブロックで取得できる数値型は8,16,32,64bitしかないため、単純には正しい数値が取得できない。
やるならば32bitで取得してから不要な8bitをビットシフト相当のことをして捨てる必要がある。
そこでそのための関数 `I2C 数値を24bit読み取る` を作っている。
下位8ビットを捨ててビットシフトしてやる必要があるが、ビット演算ができないので、2の8乗=256で割って小数点以下を切り捨てて無理やりビットシフト相当のことをしている。
コメント