树莓派mpu6050C语言,树莓派采集Mpu6050数据

#!/usr/bin/python

import smbus

import math

# Power management registers

power_mgmt_1 = 0x6b

power_mgmt_2 = 0x6c

def read_byte(adr):

return bus.read_byte_data(address, adr)

def read_word(adr):

high = bus.read_byte_data(address, adr)

low = bus.read_byte_data(address, adr+1)

val = (high << 8) + low

return val

def read_word_2c(adr):

val = read_word(adr)

if (val >= 0x8000):

return -((65535 - val) + 1)

else:

return val

def dist(a,b):

return math.sqrt((a*a)+(b*b))

def get_y_rotation(x,y,z):

radians = math.atan2(x, dist(y,z))

return -math.degrees(radians)

def get_x_rotation(x,y,z):

radians = math.atan2(y, dist(x,z))

return math.degrees(radians)

bus = smbus.SMBus(0) # or bus = smbus.SMBus(1) for Revision 2 boards

address = 0x68       # This is the address value read via the i2cdetect command

# Now wake the 6050 up as it starts in sleep mode

bus.write_byte_data(address, power_mgmt_1, 0)

print "gyro data"

print "---------"

gyro_xout = read_word_2c(0x43)

gyro_yout = read_word_2c(0x45)

gyro_zout = read_word_2c(0x47)

print "gyro_xout: ", gyro_xout, " scaled: ", (gyro_xout / 131)

print "gyro_yout: ", gyro_yout, " scaled: ", (gyro_yout / 131)

print "gyro_zout: ", gyro_zout, " scaled: ", (gyro_zout / 131)

print()

print "accelerometer data"

print "------------------"

accel_xout = read_word_2c(0x3b)

accel_yout = read_word_2c(0x3d)

accel_zout = read_word_2c(0x3f)

accel_xout_scaled = accel_xout / 16384.0

accel_yout_scaled = accel_yout / 16384.0

accel_zout_scaled = accel_zout / 16384.0

print "accel_xout: ", accel_xout, " scaled: ", accel_xout_scaled

print "accel_yout: ", accel_yout, " scaled: ", accel_yout_scaled

print "accel_zout: ", accel_zout, " scaled: ", accel_zout_scaled

print "x rotation: " , get_x_rotation(accel_xout_scaled, accel_yout_scaled, accel_zout_scaled)

print "y rotation: " , get_y_rotation(accel_xout_scaled, accel_yout_scaled, accel_zout_scaled)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值