MEMSセンサーデータの探索的分析

MEMSセンサーデータの分析

MPU6050センサーからデータを読み取り、収集し、分析する

MEMS(マイクロ電気機械システム)センサーは、ゲームコントローラーやスマートフォンから無人航空機まで、さまざまなアプリケーションで広く使用されています。この記事では、ジャイロスコープと加速度センサーを接続する方法、それから取得できるデータの種類、およびこのデータを処理して視覚化する方法を紹介します。

さあ、始めましょう。

ハードウェア

MPU-6050は、3軸ジャイロスコープ、3軸加速度計、およびI2Cインターフェースを組み合わせた6軸センサーです。データシートに記載されているように、タブレットやスマートフォンで広く使用されています。スマートフォンやスマートウォッチがワークアウト中の歩数やカロリーを計算する場合、実際にはMEMSセンサーからのデータが使用されています。しかし、このようなセンサーはスポーツに限らず、さまざまな用途に使用することができます。私は自分のアパートメントにセンサーを設置し、数日間建物内のさまざまな振動を検出し分析できるかどうかを確認することにしました。

数日間データを収集したい場合、Raspberry Piはそのための良い解決策です。Raspberry Piは安価(30〜50ドル)なシングルボードコンピュータで、消費電力が低く、さまざまな種類のハードウェアを接続するための多数のピンがあります。MPU-6050の試作ボードはAmazonで3〜5ドルで注文することができます。センサー自体はデータ転送にI2Cバスを使用し、Raspberry Piにはわずか4本の配線で接続することができます:

Connection diagram, Image by author

センサーを使用する前に、Raspbian OSでI2Cバスを有効にする必要があります(MPU6050をRaspberry Piに接続する方法については十分なチュートリアルがありますので、ここでは「ハードウェア」の詳細を省略します)。センサーを接続した後、センサーデータを読み取り、「そのまま」ログファイルに書き込む単純なPythonアプリケーションを作成しました:

from datetime import datetime
import smbus
import math
import time
# MPU6050 Registers
PWR_MGMT_1   = 0x6B
SMPLRT_DIV   = 0x19
CONFIG       = 0x1A
GYRO_CONFIG  = 0x1B
INT_ENABLE   = 0x38
ACCEL_XOUT_H = 0x3B
ACCEL_YOUT_H = 0x3D
ACCEL_ZOUT_H = 0x3F
GYRO_XOUT_H  = 0x43
GYRO_YOUT_H  = 0x45
GYRO_ZOUT_H  = 0x47
bus = smbus.SMBus(1)
address = 0x68
def device_init():
    """ MPU-6050を初期化する """
    bus.write_byte_data(address, SMPLRT_DIV, 0x4)...

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more