- Published on
Raspberry Piに「AK8963」を接続し制御する
1386文字3分で読めます–––
閲覧数
- Authors
- Name
- 将 有坂
- short bio
- ラズパイやArduinoで電子工作をしてます。
はじめに
Raspberry Piは小型で高性能なシングルボードコンピュータであり、様々なセンサーやモジュールを接続して利用することができます。本記事では、地磁気センサー「AK8963」をRaspberry Piに接続し、制御する方法について解説します。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚
1. AK8963地磁気センサーの概要
AK8963は、三軸地磁気センサーであり、地磁気を検知することができます。このセンサーは、地磁気の方向を計測し、様々なプロジェクトやロボット制御に利用されます。Raspberry Piと組み合わせることで、地磁気情報を取得し、利用することができます。
2. AK8963の接続
まず、AK8963をRaspberry Piに接続します。通常、AK8963には以下のようなピンがあります。
- VCC(赤色): 3.3Vの電源
- GND(茶色): 接地
- SDA(緑色): I2Cデータライン
- SCL(黄色): I2Cクロックライン
これらのピンをRaspberry Piの対応するGPIOピンに接続します。
3. Raspberry Piコードの作成
次に、Pythonを使用してAK8963を制御するためのコードを書きます。I2C通信を利用してデータを読み取ることが一般的です。
以下は、smbus
モジュールを使用した例です。
import smbus
import time
# AK8963のI2Cアドレス
AK8963_ADDRESS = 0x0C
# I2Cバスの初期化
bus = smbus.SMBus(1)
# AK8963を初期化する関数
def init_ak8963():
# AK8963をシングルモードで設定
bus.write_byte_data(AK8963_ADDRESS, 0x0A, 0x16)
time.sleep(0.1)
# AK8963からデータを読み取る関数
def read_ak8963():
# データの読み取り
data = bus.read_i2c_block_data(AK8963_ADDRESS, 0x03, 6)
x = (data[1] << 8) | data[0]
y = (data[3] << 8) | data[2]
z = (data[5] << 8) | data[4]
return x, y, z
# AK8963の初期化
init_ak8963()
# メインループ
try:
while True:
# AK8963からデータを読み取り
x, y, z = read_ak8963()
# 読み取ったデータの表示
print(f"X: {x}, Y: {y}, Z: {z}")
# 1秒待機
time.sleep(1)
except KeyboardInterrupt:
print("プログラムを終了します")
このコードは、AK8963から地磁気データを読み取り、それを1秒ごとに表示する簡単な例です。
4. コードの実行と動作確認
最後に、コードを実行してAK8963が正しく動作しているか確認します。コードを保存し、ターミナルで実行することで地磁気データが表示されるはずです。
これで、Raspberry PiにAK8963を接続し、Pythonコードを使用してセンサーを制御する手順が完了しました。必要に応じて、この基本的なプログラムを拡張して様々なプロジェクトに応用することができます。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚