やってること
加速度センサmma8452qで加速度を測定し、表示させる。
環境
マイコン:Raspberry Pi Pico
プログラミング言語:MicroPython (Thony)
加速度センサ:MMA8452Q
ライブラリのインストール
Picoへ事前に以下ライブラリをインストールしておいてください。
GitHub→micropython_mma8452q→「i2c_helpers.py」と「mma8452q.py」をダウンロード→Picoをパソコンに接続してThonyを開く→左下のPicoの内部ストレージのlibフォルダを開く→何もない所を右クリックで新しいディレクトリを作成→名前を「micropython_mma8452q」にしておく→その中にダウンロードした2つのファイルを入れる→libフォルダにも「mma8452q.py」を入れておく(こうするとうまくいく。)
接続
Pico | BME 280 |
---|---|
GP0 | SDA |
GP1 | SCL |
VSYS | 3.3v |
GND | GND |
確認
以下のプログラムを実行して、BME280が正しく接続されているか確認
from machine import I2C, Pin
i2c = I2C(0, scl=Pin(1), sda=Pin(0), freq=100000)
print(i2c.scan())
何か数字が表示されればOK。されなかったら接続を再確認。
プログラム
mma8452q.py
import time
import utime
import machine
from machine import Pin, I2C
import mma8452q
# MMA8452 (I2C setting)
i2c = I2C(0, scl=Pin(1), sda=Pin(0), freq=100000)
mma = mma8452q.MMA8452Q(i2c, address=0x1D) # アドレスが0x1Dの場合
# Listen for connections, serve client
while True:
try:
x, y, z = mma.acceleration
#print(f"X: {x:0.2f} m/s^2 | Y: {y:0.2f} m/s^2 | Z: {z:0.2f} m/s^2")
#print(f"X: {x:0.2f} m/s^2 | Y: {y:0.2f} m/s^2 | Z: {z:0.2f} m/s^2 ", end="\r")
print(f"{x:0.2f} m/s^2 | {y:0.2f} m/s^2 | {z:0.2f} m/s^2")
time.sleep(0.1)
except OSError as e:
print('Process error:', e)
終わり
csvファイルにデータを記録して、Pico本体に保存するプログラムもあります。必要でしたらコメントで教えてください。何かご質問等があればとりあえず聞いてください。