- blogs:
- cles::blog
2018/05/12

MMA8452Q を Raspberry Pi から使う



ちょっと加速度センサーが必要になったので、秋月のMMA8452Q使用3軸加速度センサーモジュールキットを入手して Raspberry Pi から使ってみました。
† 準備
MMA8452Q は I2C 接続なので、Raspberry Pi と SDA, SCL, +3.3V, GND の4線を接続しておきます。
Python から接続するために smbus-cffi をインストールしておきます。
sudo apt-get install build-essential libi2c-dev i2c-tools python-dev libffi-dev
sudo pip install cffi smbus-cffi
† サンプルプログラム
加速度をリアルタイムに取得する簡単なアプリを書いてみました。
sample_accl.py
# Based on https://github.com/ControlEverythingCommunity/MMA8452Q/blob/master/Python/MMA8452Q.py
import smbus
import time
I2C_ADDR=0x1D
# Get I2C bus
bus = smbus.SMBus(1)
# Select Control register, 0x2A(42)
# 0x00(00) StandBy mode
bus.write_byte_data(I2C_ADDR, 0x2A, 0x00)
# Select Control register, 0x2A(42)
# 0x01(01) Active mode
bus.write_byte_data(I2C_ADDR, 0x2A, 0x01)
# Select Configuration register, 0x0E(14)
# 0x00(00) Set range to +/- 2g
bus.write_byte_data(I2C_ADDR, 0x0E, 0x00)
time.sleep(0.5)
while True:
data = bus.read_i2c_block_data(I2C_ADDR, 0x00, 7)
xAccl = (data[1] * 256 + data[2]) / 16
if xAccl > 2047 :
xAccl -= 4096
yAccl = (data[3] * 256 + data[4]) / 16
if yAccl > 2047 :
yAccl -= 4096
zAccl = (data[5] * 256 + data[6]) / 16
if zAccl > 2047 :
zAccl -= 4096
print "X,Y,Z-Axis : (%5d, %5d, %5d)" % (xAccl, yAccl, zAccl )
time.sleep(1)
実行すると以下のような感じで、重力の方向がリアルタイムに表示されるようになっています。
$ python sample_accl.py
X,Y,Z-Axis : ( 80, 177, 1007)
X,Y,Z-Axis : ( 79, 179, 1005)
X,Y,Z-Axis : ( 81, 175, 1008)
X,Y,Z-Axis : ( 81, 177, 1006)
X,Y,Z-Axis : ( 81, 176, 1004)
X,Y,Z-Axis : ( 82, 179, 1002)
X,Y,Z-Axis : ( 83, 177, 1003)
X,Y,Z-Axis : ( 77, 180, 1005)
X,Y,Z-Axis : ( 80, 178, 1001)
† さらに高度なことがやりたい場合
MMA8452Q の詳細な仕様については「MMA8452Q, 3-axis, 12-bit/8-bit digital accelerometer」に記載されています。
細かいことがやりたい場合にはこちらを参照する必要があります。
また、ポーリングではなく、状態が変わったときの割り込みを利用したい場合には以下のコードが役に立ちそうです。
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/10165
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
サイト内検索
検索ワードランキング
へぇが多いエントリ
閲覧数が多いエントリ
1 . アーロンチェアのポスチャーフィットを修理(114426)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(112948)
3 . 年次の人間ドックへ(112374)
4 . 2023 年分の確定申告完了!(1つめ)(111943)
5 . 三菱鉛筆がラミーを買収(111817)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(112948)
3 . 年次の人間ドックへ(112374)
4 . 2023 年分の確定申告完了!(1つめ)(111943)
5 . 三菱鉛筆がラミーを買収(111817)
cles::blogについて
Referrers