🌞

Raspberry Pi Pico WでBMP280を使う

に公開

概要

Raspberry Pi Pico Wでいろいろ作ろうと思うのですが、まずは使い方に慣れるため、BMP280(温度・気圧センサー)のサンプルコードを実行してみることにしました。
USBシリアル経由でデータを取得するところまでをまとめました。

サンプルコードはこちらにあるものを使っています。
https://github.com/raspberrypi/pico-sdk

1. 環境準備

必要なもの

配線

BMP280はI2Cで接続します。
exampleのフォルダの中に配線図もあるので、そのとおりに繋ぎます。

  • GPIO 4 (Pin 6)SDA (BMP280)
  • GPIO 5 (Pin 7)SCL (BMP280)
  • 3.3V (Pin 36)VCC (BMP280)
  • GND (Pin 38)GND (BMP280)

2. ビルド方法

CMakeLists.txtの変更

シリアル通信で動作結果などを確認する際、USBシリアル出力の有効化の設定が必要になります。
CMakeLists.txtにあるpico_enable_stdio_usbを以下のように変更します。
pico_enable_stdio_usb(bmp280_i2c 1)

Pico W用にビルド

cd /pico-examples
mkdir -p build
cd build
cmake .. -DPICO_BOARD=pico_w
make bmp280_i2c

3. プログラムの書き込み

UF2ファイルをPico Wに書き込む

BOOTSELボタンを押しながらPico WをPCに繋ぎます。

cp build/i2c/bmp280_i2c/bmp280_i2c.uf2 /media/ユーザー名/RPI-RP2/

または、ファイルマネージャーで RPI-RP2 にドラッグ&ドロップ
書き込まれたら自動で実行されます。

4. シリアルモニターで接続

デバイス確認

ls -l /dev/ttyACM*

通常は /dev/ttyACM0 として認識されます。

シリアルモニターで確認します。

picocom -b 115200 /dev/ttyACM0

うまく動いていれば

Pressure = 100.303 kPa
Temp. = 25.20 C
Pressure = 100.303 kPa
Temp. = 25.20 C
Pressure = 100.303 kPa
Temp. = 25.20 C
Pressure = 100.303 kPa
Temp. = 25.20 C
Pressure = 100.302 kPa
Temp. = 25.20 C
Pressure = 100.302 kPa
Temp. = 25.20 C
Pressure = 100.302 kPa
Temp. = 25.21 C

という表示になります。

Discussion