2021年6月24日木曜日

M5StickCのジャイロ加速度センサー(MPU6886)とGroveブザーで、すばやく振り回したときブザー音が鳴るようにする(MicroPython)

M5StickCにはジャイロ加速度センサー(MPU6886)が搭載されています。MicroPythonでM5StickCのジャイロ加速度センサー(MPU6886)とGroveブザーで、すばやく振り回したときブザー音が鳴るようにするには以下の手順を実行します。

〇M5StickCとGroveブザーを接続した写真

開発手順

1. M5StickC上にlibフォルダを作成しAXP192ドライバーをアップロード
以下のページのRAWボタンを右クリックして「名前を付けて保存」を選択してmpu6886.pyをダウンロードします。
https://github.com/tuupola/micropython-mpu6886/blob/master/mpu6886.py

/libフォルダがない場合はThonnyのファイルペインのデバイスから右クリックしてNew directory...を選択して、フォルダ名libを入力して作成します。次にlibフォルダに移動後、PC側フォルダのmpu6886.py上で右クリックメニューからUpload to /libを選択します。

2. プログラミングと実行
MPU6886の加速度センサーの値はx, y, zのタプルで取得する事が出来ます。以下をmain.pyとして、M5StickCに保存して実行します。M5StickCをすばやく振り回すと、ブザー音が短く鳴ります。
import machine
import mpu6886
import time

# ジャイロ加速度計の初期化
i2c = machine.I2C(scl=machine.Pin(22), sda=machine.Pin(21))
sensor = mpu6886.MPU6886(i2c)

#sensor.calibrate()

# Groveブザー
pin33 = machine.Pin(33, machine.Pin.OUT)
pin33.value(0)

while True:
    sv = sensor.gyro
    maxval = max(abs(sv[0]), abs(sv[1]), abs(sv[2]))
    if maxval >= 4.2: # 閾値は適当に調整してください
        # ブザーON
        pin33.value(1)
        time.sleep(0.2)

        # ブザーOFF
        pin33.value(0)        

    print(maxval)
    time.sleep(0.1)

関連情報

・使用したMicroPython firmware: esp32-20210418-v1.15.bin
https://micropython.org/download/esp32/

・MPU6886のドライバー
https://github.com/tuupola/micropython-mpu6886

Groveデバイスまとめ

0 件のコメント:

コメントを投稿