創るたのしみを応援

Pololu LPS25HB 気圧/標高センサボードを使ってみる

LPS25HB 気圧/標高センサボード

高精度な気圧/標高MEMSセンサチップを搭載したセンサボードを、Arduino・Nucleo mbed・Raspberry Piで使ってみました。I2CやSPIで、気圧、気温がかんたんに読み出せます。

主な仕様

  • サイズ:10.2×20.4mm
  • インターフェース:I2C、SPI
  • 動作電圧:2.5〜5.5V
  • 供給電流:2mA
  • 計測範囲:26kPa〜126kPa (260~1,260ヘクトパスカル)

3.3V電圧レギュレータとレベルシフタを内蔵しており、2.5V〜5.5Vの入力電圧で動作します。

通信はI2CとSPIのどちらにも対応していて、値をかんたんに読めます。

標高が1000m高くなると、気圧は約100hPa低下します。この性質を利用して標高を求められます。また、海面の気圧(標高0m)は約1013.25hPaです。これを基準に計算するとよいですが、気象状況によって変わるので注意です

使い道

天候が悪くなると気圧が下がるので、台風や雨が近づいて来たのが分かるセンサです。

「缶サット」という、宇宙版ロボコンのような競技等おいては欠かせないセンサーのようです。

単体での使い道はあまりないかもしれませんが、GPSなどと組み合わせたりすることで、UAVなど面白いデバイスを作ることができるかもしれません。

使ってみよう

開発環境

ハードウェア

  • LPS25HB 気圧/標高センサボード 朱雀技研工房ストアで購入
  • マイコンボード
  • プロトタイピングキット (ブレッドボードやジャンプワイヤなど)
  • はんだセット (はんだゴテなど)
  • USBケーブル (マイコンボード用)
  • PC や Raspberry Pi用キーボードなど

ソフトウェア

  • 開発環境
    • Arduino: ArduinoIDE 1.8.5
    • Nucleo: mbedオンラインコンパイラ
    • Raspberry Pi: raspbian OS
  • teraterm (シリアル通信用)

回路

LPS25HBピン機能

ピン名機能
VDD3.3V出力端子。外部に約150mAの電力を供給できます。
(VINを外した状態で、このピンを3.3V入力として使用できます)
VIN電源入力端子。2.5~5.5V電源を接続します。
GNDGND端子。
電源の他に、通信相手とGNDを共有する必要があります。
SDA/SDI/SDOI2C/SPIデータ端子
HIGHはVIN、LOWは0Vで、レベルシフトされてます。
SCL/SPCI2C/SPIクロック端子
HIGHはVIN、LOWは0Vで、レベルシフトされてます。
SDO/SA04線モードSPIデータ出力端子
HIGHはVDD、LOWは0Vで、VDDへプルアップされてます。
I2Cアドレスを決定するための入力としても使用します。
CS通信モード選択をします。
HIGHはVDD、LOWは0Vで、VDDへプルアップされてます。
HIGH(オープン・無接続)時: I2C通信モード
Low(0V)時: SPI通信モード
INT1プログラマブル割り込み/データレディインジケータ
3.3Vロジックレベル出力

LPS25HBセンサボード回路図

センサボード回路図

レベルシフト回路やプルアップ抵抗が通信ラインへ既についていて、追加の必要はないです。

I2Cのスレーブアドレスは、SDO/SA0がプルアップ(オープン・無接続)されてるときは0x5Dに、GNDにドライブされているときは0x5Cになります。標準のまま使うなら0x5Dのスレーブアドレスを使うとよさそうです。

接続方法

今回はI2C通信を使い、つぎのように接続します。

マイコンボード側LPS25HB
3.3V~5VVIN
GNDGND
SCLSCL
SDASDA
ArduinoとLPS25HBの接続
NucleoとLPS25HBの接続
Raspberry PiとLPS25HBの接続

マイコンボードによって、プログラミングは変わるのでボード別に使っていきます。

最後に、建物内で自分が今何階にいるか調べる実験をやってみました。現在何階にいるかを簡単に調べることができます。

  1. Pololu LPS25HB概要
  2. Arduino版
  3. Nucleo mbed版
  4. Raspberry Pi版
  5. 建物内で何階にいるか推定実験

資料

SNSでフォローする