Raspberry Pi Picoについては第36回でざっと紹介しました。当時は本体に付いているLEDを光らせてみただけですが、今回はもう一歩進んで、気温、気圧、湿度が測定できる、BME280搭載デバイスを使ってみましょう。
ラズパイとRaspberry Pi Picoが大きく異なるのが、シリアル通信「I2C」で利用する「SDA」(データ入出力)と「SCL」(クロック)に対応する端子が多く用意されていることです。ラズパイで使えるのは1番ピンと3番ピンだけですが、小型のRaspberry Pi Picoには12ペアのSDAとSCLがあり、いずれにつないでも利用できます。
気温などをラズパイで測定する方法はこの連載の第1回から第3回までで紹介しました。今回もRaspberry Pi PicoとBME280を、I2C接続で使います。使うモジュールは、秋月電子通商で販売されているBME280使用 温湿度・気圧センサモジュールキット(AE-BME280)です。
I2C接続で利用する端子ですが、分かりやすいように1番ピンと2番ピンを選びました。ここを基本としてつなげていくことになります。なおAE-BME280ですが、VDDとCSB、GNDとSDOをつないで使います。Raspberry Pi Picoとの接続は、SDIに1番ピンを、SCKに2番ピンをつなげればOKです。
プログラムですが、第36回に紹介した「Thonny」を使って入力します。以前紹介したのはRaspberry Pi版のThonnyですが、Windows版もあり、これをPCにインストールするとWindows PCとRaspberry Pi Picoをつないでプログラムを動作させられます。
PCとはUSB Type-A⇔microUSBのケーブルで接続します。その際にはRaspberry Pi Picoの基板にあるボタンスイッチを押しながら接続する必要があります。PCからはUSBマスストレージとして認識されます。
接続が終了したら、以下のプログラムを走らせて、BME280を認識しているか確認しましょう。
import machine sda=machine.Pin(0) scl=machine.Pin(1) i2c=machine.I2C(0,sda=sda, scl=scl, freq=400000) print(i2c.scan())
このプログラムでは、SDAの入力にGPIO0(1番ピン)を、SCLの入力にGPIO1(2番ピン)に設定したあと、「i2c.scan()」でI2Cに接続されている機器を検索しています。「machine」はMicroPythonで使う関数ですが、CPU、タイマー、バスなどのハードウェアを扱うためのものです。
プログラムをThonnyの上部に記述したら、左上にある「▶」をクリックすると実行されます。下のカラムに「118」と表示されればOKです。この数字は10進数で表されているので、16進数に変換すると「76」。つまり「0x76」で認識していることになり、正しく接続されています。
次に、BME280を扱うためのパッケージを導入します。Thonnyの「ツール」−「Manage Packages」を選びます。上のカラムに「bme280」と入力したら「Search PyPI」をクリックします。「Search results」にある中から「micropython-bme280」を選んで「インストール」をクリックすると、パッケージがインストールされます。これでパッケージの導入は終わりです。
Copyright © ITmedia, Inc. All Rights Reserved.
Special
PR