logo
Published on

Raspberry Piに「MLX90393」を接続し制御する

Authors
  • avatar
    Name
    Shou Kawakami / 川上翔
    Twitter

はじめに

Raspberry Piは豊富なGPIOピンと様々な機能を備えたシングルボードコンピュータであり、センサーとの組み合わせにより多岐にわたるプロジェクトを実現できます。この記事では、デジタル三軸磁気センサー「MLX90393」をRaspberry Piに接続し、制御する方法について解説します。

※モジュールの価格を比較 ▶ TemuAliExpress楽天メルカリ

1. MLX90393センサーの概要

MLX90393は、三軸磁気センサーであり、非常に高い精度で磁気フィールドを検知できます。これをRaspberry Piに接続することで、周囲の磁場の強さや方向を計測できます。

2. MLX90393の接続

MLX90393をRaspberry Piに接続するためには、通常、以下のような接続が必要です。

  • VCC(赤色): 3.3Vの電源
  • GND(茶色): 接地
  • SDA(データ): I2C通信用のデータライン
  • SCL(クロック): I2C通信用のクロックライン

これらの線をRaspberry PiのGPIOピンに接続します。なお、Raspberry Piには複数のGPIOピンがありますが、I2C通信には通常、GPIO2(SDA)とGPIO3(SCL)が使われます。

3. Raspberry Piコードの作成

MLX90393を制御するためには、Pythonなどのプログラミング言語を使用します。以下は、簡単な例です。

import smbus
import time

# MLX90393のI2Cアドレス
MLX90393_ADDRESS = 0x0C

# I2Cバスの初期化
bus = smbus.SMBus(1)  # Raspberry Pi 3以降の場合は1, それ以前の場合は0を指定

def read_mlx90393():
    # データの読み取り
    data = bus.read_i2c_block_data(MLX90393_ADDRESS, 0x06, 7)
    
    # x, y, z軸の値を取得
    x = (data[1] << 8) | data[0]
    y = (data[3] << 8) | data[2]
    z = (data[5] << 8) | data[4]
    
    return x, y, z

try:
    while True:
        x, y, z = read_mlx90393()
        print(f"X: {x}, Y: {y}, Z: {z}")
        time.sleep(1)

except KeyboardInterrupt:
    pass

finally:
    print("終了")

このコードは、MLX90393から磁場の強さを読み取り、それをX、Y、Z軸ごとに表示するものです。必要に応じてデータの処理を追加し、具体的なプロジェクトに組み込むことができます。

4. コードの実行と確認

Raspberry PiにMLX90393を接続し、コードを実行します。磁場のデータが取得され、正しく表示されれば、接続と制御は成功しています。

これで、Raspberry PiにMLX90393を接続し、簡単な制御を行うための基本的な手順が完了しました。MLX90393のデータを利用して、地磁気や方向を検知するプロジェクトを進めていくことができます。