- Published on
Raspberry Piに「HMC5983」を接続し制御する
1312文字3分で読めます–––
閲覧数
- Authors
- Name
- 将 有坂
- short bio
- ラズパイやArduinoで電子工作をしてます。
はじめに
Raspberry Piは豊富なGPIOピンを備え、様々なセンサーやデバイスを接続して利用することができます。この記事では、地磁気センサー「HMC5983」をRaspberry Piに接続し、Pythonを使用して制御する方法について解説します。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚
1. HMC5983 地磁気センサーの概要
HMC5983は、三軸地磁気センサーであり、地磁気を測定することができます。I2C通信を介してデータを取得し、地磁気の変動や方向を検出することが可能です。このセンサーをRaspberry Piに接続することで、地磁気データを取得して利用することができます。
2. HMC5983の接続
HMC5983をRaspberry Piに接続するためには、I2C通信に対応したGPIOピンを使用します。通常、以下のような接続が行われます。
- VCC(赤色): 3.3Vの電源
- GND(茶色): 接地
- SDA(緑色): I2Cデータライン
- SCL(青色): I2Cクロックライン
3. Pythonコードの作成
Raspberry PiでHMC5983を制御するために、Python言語を使用します。まず、Raspberry Piにsmbus
というI2C通信用のライブラリがインストールされていることを確認します。インストールされていない場合は、以下のコマンドでインストールします。
sudo apt-get install python3-smbus
sudo apt-get install i2c-tools
次に、Pythonコードを作成します。
import smbus
import time
# HMC5983のI2Cアドレス
HMC5983_I2C_ADDR = 0x1E
# 初期化
bus = smbus.SMBus(1)
def read_data():
# HMC5983からデータを読み込む
data = bus.read_i2c_block_data(HMC5983_I2C_ADDR, 0x00, 6)
# X, Y, Zの値を取得
x = (data[0] << 8) | data[1]
z = (data[2] << 8) | data[3]
y = (data[4] << 8) | data[5]
return x, y, z
try:
while True:
# 地磁気データを取得
x, y, z = read_data()
# 取得したデータを表示
print(f"X: {x}, Y: {y}, Z: {z}")
# 1秒待つ
time.sleep(1)
except KeyboardInterrupt:
pass
finally:
bus.close()
4. コードの実行と動作確認
Pythonコードを保存し、Raspberry Pi上で実行します。地磁気データが表示されるはずです。センサーを回転させると、それに合わせてデータが変動することが確認できます。
これで、Raspberry PiにHMC5983を接続し、Pythonを使用して地磁気データを取得する基本的な手順が完了しました。取得したデータを利用して様々なプロジェクトを構築することができます。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚