程序问答   发布时间:2022-05-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了我无法用 Raspberry pi 计算°/s 数据 MPU6050大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决我无法用 Raspberry pi 计算°/s 数据 MPU6050?

开发过程中遇到我无法用 Raspberry pi 计算°/s 数据 MPU6050的问题如何解决?下面主要结合日常开发的经验,给出你关于我无法用 Raspberry pi 计算°/s 数据 MPU6050的解决方法建议,希望对你解决我无法用 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,请注明来意。
标签: