大佬教程收集整理的这篇文章主要介绍了我无法用 Raspberry pi 计算°/s 数据 MPU6050,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的 mpu6050 陀螺仪和 RaspBerry Pi 计算机有问题。 我的项目有 mpu 的功能。 我使用此代码:
import time
import smbus
def mpu(mpudat_m):
PWR_MGMT_1 = 0x6B
SMPLRT_div = 0x19
CONfig = 0x1A
GYRO_CONfig = 0x1B #FS_SEL
INT_ENABLE = 0x38
ACCEL_XOUT_H = 0x3B
ACCEL_YOUT_H = 0x3D
ACCEL_ZOUT_H = 0x3F
GYRO_XOUT_H = 0x43
GYRO_YOUT_H = 0x45
GYRO_ZOUT_H = 0x47
def mpu_Init():
#write to sample rate register
bus.write_byte_data(Device_Address,SMPLRT_div,7)
#Write to power management register
bus.write_byte_data(Device_Address,PWR_MGMT_1,1)
#Write to Configuration register
bus.write_byte_data(Device_Address,CONfig,0)
#Write to Gyro configuration register
bus.write_byte_data(Device_Address,GYRO_CONfig,0b0)
#Write to interrupt enable register
bus.write_byte_data(Device_Address,INT_ENABLE,1)
def read_raw_data(addr):
#Accelero and Gyro value are 16-bit
high = bus.read_byte_data(Device_Address,addr)
low = bus.read_byte_data(Device_Address,addr+1)
#concatenate higher and lower value
value = ((high << 8) | low)
#to get signed value from mpu6050
if(value > 32768):
value = value - 65536
return value
bus = smbus.SMBus(1) # or bus = smbus.SMBus(0) for older version boards
Device_Address = 0x68 # mpu6050 device address
mpu_Init()
print (" Reading Data of gyroscope and Accelerometer")
timer=0
Gx=0
Gy=0
Gz=0
while True:
timer=0.01
#Read Accelerometer raw value
acc_x = read_raw_data(ACCEL_XOUT_H)
acc_y = read_raw_data(ACCEL_YOUT_H)
acc_z = read_raw_data(ACCEL_ZOUT_H)
#Read gyroscope raw value
gyro_x = read_raw_data(GYRO_XOUT_H)
gyro_y = read_raw_data(GYRO_YOUT_H)
gyro_z = read_raw_data(GYRO_ZOUT_H)
#Full scale range +/- 250 degree/C as per sensitivity scale factor
Ax = acc_x/16384.0
Ay = acc_y/16384.0
Az = acc_z/16384.0
Gx = gyro_x/131
Gy = gyro_y/131
Gz = gyro_z/131
'''
FS_SEL | Full Scale Range | LSB Sensitivity
-------+--------------------+----------------
0 | +/- 250 degrees/s | 131 LSB/deg/s
1 | +/- 500 degrees/s | 65.5 LSB/deg/s
2 | +/- 1000 degrees/s | 32.8 LSB/deg/s
3 | +/- 2000 degrees/s | 16.4 LSB/deg/s
'''
print ("Gx=%.2f" %Gx,u'\u00b0'+ "/s","\tGy=%.2f" %Gy,"\tGz=%.2f" %Gz,"\tAx=%.2f g" %Ax,"\tAy=%.2f g" %Ay,"\tAz=%.2f g" %Az)
time.sleep(.01)
mpu(0)
...我在终端读到这个数据:
Gx=3.23 °/s Gy=1.66 °/s Gz=0.14 °/s Ax=0.98 g Ay=0.17 g Az=0.15 g
Gx=3.37 °/s Gy=1.79 °/s Gz=0.23 °/s Ax=0.98 g Ay=0.17 g Az=0.14 g
Gx=3.25 °/s Gy=1.67 °/s Gz=0.34 °/s Ax=0.97 g Ay=0.18 g Az=0.15 g
Gx=3.27 °/s Gy=1.55 °/s Gz=0.22 °/s Ax=0.98 g Ay=0.16 g Az=0.15 g
Gx=3.46 °/s Gy=1.67 °/s Gz=0.42 °/s Ax=0.98 g Ay=0.16 g Az=0.15 g
Gx=3.32 °/s Gy=1.66 °/s Gz=0.21 °/s Ax=0.98 g Ay=0.17 g Az=0.15 g
Gx=3.18 °/s Gy=1.57 °/s Gz=0.41 °/s Ax=0.98 g Ay=0.18 g Az=0.14 g
Gx=3.30 °/s Gy=1.63 °/s Gz=0.27 °/s Ax=0.98 g Ay=0.17 g Az=0.14 g
Gx=3.15 °/s Gy=1.67 °/s Gz=0.37 °/s Ax=0.98 g Ay=0.18 g Az=0.16 g
Gx=3.28 °/s Gy=1.54 °/s Gz=0.37 °/s Ax=0.98 g Ay=0.16 g Az=0.14 g
Gx=3.34 °/s Gy=1.44 °/s Gz=0.29 °/s Ax=0.97 g Ay=0.17 g Az=0.15 g
Gx=3.38 °/s Gy=1.54 °/s Gz=0.40 °/s Ax=0.97 g Ay=0.17 g Az=0.14 g
Gx=3.34 °/s Gy=1.60 °/s Gz=0.62 °/s Ax=0.98 g Ay=0.17 g Az=0.15 g
Gx=3.35 °/s Gy=1.50 °/s Gz=0.23 °/s Ax=0.97 g Ay=0.16 g Az=0.15 g
Gx=3.29 °/s Gy=1.72 °/s Gz=0.31 °/s Ax=0.98 g Ay=0.16 g Az=0.15 g
Gx=3.24 °/s Gy=1.61 °/s Gz=0.34 °/s Ax=0.98 g Ay=0.19 g Az=0.16 g
Gx=3.28 °/s Gy=1.70 °/s Gz=0.40 °/s Ax=0.98 g Ay=0.17 g Az=0.15 g
Gx=3.37 °/s Gy=1.63 °/s Gz=0.20 °/s Ax=0.98 g Ay=0.17 g Az=0.15 g
Gx=3.16 °/s Gy=1.34 °/s Gz=0.24 °/s Ax=0.98 g Ay=0.17 g Az=0.15 g
Gx=3.37 °/s Gy=1.49 °/s Gz=0.30 °/s Ax=0.98 g Ay=0.17 g Az=0.16 g
Gx=3.39 °/s Gy=1.56 °/s Gz=0.18 °/s Ax=0.98 g Ay=0.19 g Az=0.16 g
Gx=3.40 °/s Gy=1.71 °/s Gz=0.31 °/s Ax=0.98 g Ay=0.16 g Az=0.15 g
Gx=3.13 °/s Gy=1.63 °/s Gz=0.37 °/s Ax=0.98 g Ay=0.17 g Az=0.15 g
Gx=3.40 °/s Gy=1.70 °/s Gz=0.21 °/s Ax=0.97 g Ay=0.19 g Az=0.13 g
Gx=3.18 °/s Gy=1.60 °/s Gz=0.35 °/s Ax=0.97 g Ay=0.19 g Az=0.15 g
Gx=3.21 °/s Gy=1.53 °/s Gz=0.22 °/s Ax=0.97 g Ay=0.19 g Az=0.15 g
Gx=3.27 °/s Gy=1.66 °/s Gz=0.21 °/s Ax=0.98 g Ay=0.16 g Az=0.15 g
Gx=3.43 °/s Gy=1.75 °/s Gz=0.38 °/s Ax=0.97 g Ay=0.17 g Az=0.15 g
Gx=3.37 °/s Gy=1.68 °/s Gz=0.15 °/s Ax=0.98 g Ay=0.17 g Az=0.15 g
Gx=3.22 °/s Gy=1.69 °/s Gz=0.15 °/s Ax=0.97 g Ay=0.16 g Az=0.14 g
Gx=3.26 °/s Gy=1.54 °/s Gz=0.40 °/s Ax=0.97 g Ay=0.17 g Az=0.15 g
Gx=3.37 °/s Gy=1.41 °/s Gz=0.22 °/s Ax=0.97 g Ay=0.18 g Az=0.15 g
Gx=3.15 °/s Gy=1.71 °/s Gz=0.21 °/s Ax=0.98 g Ay=0.17 g Az=0.15 g
Gx=3.47 °/s Gy=1.61 °/s Gz=0.28 °/s Ax=0.97 g Ay=0.17 g Az=0.15 g
Gx=3.21 °/s Gy=1.56 °/s Gz=0.33 °/s Ax=0.98 g Ay=0.18 g Az=0.13 g
Gx=3.24 °/s Gy=1.60 °/s Gz=0.27 °/s Ax=0.98 g Ay=0.18 g Az=0.15 g
Gx=3.22 °/s Gy=1.72 °/s Gz=0.27 °/s Ax=0.98 g Ay=0.19 g Az=0.14 g
为什么? 我计算真实数据,如果 FS_SEL (0x1b) == 0。我把这个寄存器写为 0,但不好的是这个。 我测试,如果我删除计算,结果是什么。所以这是自然读取的数据。
Gx=438.00 °/s Gy=212.00 °/s Gz=48.00 °/s Ax=0.98 g Ay=0.16 g Az=0.15 g
Gx=429.00 °/s Gy=234.00 °/s Gz=38.00 °/s Ax=0.98 g Ay=0.17 g Az=0.13 g
Gx=438.00 °/s Gy=231.00 °/s Gz=34.00 °/s Ax=0.98 g Ay=0.17 g Az=0.13 g
Gx=428.00 °/s Gy=211.00 °/s Gz=36.00 °/s Ax=0.98 g Ay=0.17 g Az=0.15 g
Gx=418.00 °/s Gy=196.00 °/s Gz=15.00 °/s Ax=0.98 g Ay=0.17 g Az=0.15 g
Gx=415.00 °/s Gy=198.00 °/s Gz=53.00 °/s Ax=0.98 g Ay=0.17 g Az=0.14 g
Gx=429.00 °/s Gy=211.00 °/s Gz=62.00 °/s Ax=0.98 g Ay=0.17 g Az=0.15 g
Gx=451.00 °/s Gy=222.00 °/s Gz=29.00 °/s Ax=0.98 g Ay=0.17 g Az=0.15 g
Gx=443.00 °/s Gy=219.00 °/s Gz=35.00 °/s Ax=0.98 g Ay=0.17 g Az=0.15 g
Gx=416.00 °/s Gy=215.00 °/s Gz=46.00 °/s Ax=0.98 g Ay=0.16 g Az=0.15 g
Gx=444.00 °/s Gy=190.00 °/s Gz=-254.00 °/s Ax=0.97 g Ay=0.16 g Az=0.14 g
Gx=447.00 °/s Gy=221.00 °/s Gz=36.00 °/s Ax=0.98 g Ay=0.17 g Az=0.15 g
Gx=431.00 °/s Gy=208.00 °/s Gz=35.00 °/s Ax=0.97 g Ay=0.16 g Az=0.15 g
Gx=444.00 °/s Gy=184.00 °/s Gz=34.00 °/s Ax=0.98 g Ay=0.16 g Az=0.15 g
Gx=440.00 °/s Gy=206.00 °/s Gz=24.00 °/s Ax=0.98 g Ay=0.18 g Az=0.15 g
Gx=445.00 °/s Gy=208.00 °/s Gz=6.00 °/s Ax=0.98 g Ay=0.19 g Az=0.14 g
Gx=446.00 °/s Gy=190.00 °/s Gz=29.00 °/s Ax=0.97 g Ay=0.16 g Az=0.13 g
Gx=432.00 °/s Gy=204.00 °/s Gz=39.00 °/s Ax=0.99 g Ay=0.17 g Az=0.15 g
Gx=439.00 °/s Gy=209.00 °/s Gz=37.00 °/s Ax=0.98 g Ay=0.16 g Az=0.14 g
Gx=420.00 °/s Gy=203.00 °/s Gz=52.00 °/s Ax=0.98 g Ay=0.17 g Az=0.15 g
Gx=451.00 °/s Gy=217.00 °/s Gz=36.00 °/s Ax=0.98 g Ay=0.16 g Az=0.14 g
Gx=435.00 °/s Gy=187.00 °/s Gz=51.00 °/s Ax=0.98 g Ay=0.17 g Az=0.14 g
Gx=428.00 °/s Gy=198.00 °/s Gz=8.00 °/s Ax=0.97 g Ay=0.19 g Az=0.15 g
Gx=445.00 °/s Gy=178.00 °/s Gz=38.00 °/s Ax=0.98 g Ay=0.17 g Az=0.14 g
Gx=449.00 °/s Gy=191.00 °/s Gz=48.00 °/s Ax=0.98 g Ay=0.16 g Az=0.15 g
Gx=433.00 °/s Gy=197.00 °/s Gz=36.00 °/s Ax=0.97 g Ay=0.17 g Az=0.15 g
Gx=431.00 °/s Gy=206.00 °/s Gz=50.00 °/s Ax=0.97 g Ay=0.17 g Az=0.15 g
Gx=423.00 °/s Gy=202.00 °/s Gz=37.00 °/s Ax=0.97 g Ay=0.17 g Az=0.15 g
Gx=431.00 °/s Gy=221.00 °/s Gz=51.00 °/s Ax=0.98 g Ay=0.18 g Az=0.15 g
Gx=431.00 °/s Gy=190.00 °/s Gz=37.00 °/s Ax=0.98 g Ay=0.17 g Az=0.15 g
Gx=414.00 °/s Gy=2.00 °/s Gz=33.00 °/s Ax=0.97 g Ay=0.17 g Az=0.15 g
如果分发这个~450、~200、~35,这样好吗? 我对所有新的解决方案持开放态度。在我的项目中,需要以度为单位的陀螺仪倾斜度(如果°/s 值很好,这很容易)和加速度计数据(这很完美)。
谢谢!我的英语不完美,抱歉。
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的我无法用 Raspberry pi 计算°/s 数据 MPU6050全部内容,希望文章能够帮你解决我无法用 Raspberry pi 计算°/s 数据 MPU6050所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。