树莓派l连接mpu6050


树莓派读取mpu6050内容

sudo gedit /etc/modules 
//文件的最后写入 
	i2c-bcm2708 
	i2c-dev 
//保存退出 
然后是可选的,把设备解除屏蔽,一块全新的板子可能是没有的。

 接着去树莓派选项里面,把GPIO打开: 

	sudo raspi-config 

  这里有个选项回车进去会有I2C的选项,再回车选择OK就行了,之后重启树莓派

sudo reboot

  之后让树莓派联网状态下运行

sudo apt-get install i2c-tools //可能你的已经安装了,运行一遍总没错。

链接设备

sudo i2cdetect -y 1 //这里有点忘记了,也可能是0,最后出来这个就对了 

  

 然后代码如图所示:(首先要安装 mpu6050-raspberrypi模块)

pip install mpu6050-raspberrypi

 样例1

from mpu6050 import mpu6050
from time import sleep

sensor = mpu6050(0x68)

while True:
    accel_data = sensor.get_accel_data()
    gyro_data = sensor.get_gyro_data()
    temp = sensor.get_temp()

    print("Accelerometer data")
    print("x: " + str(accel_data['x']))
    print("y: " + str(accel_data['y']))
    print("z: " + str(accel_data['z']))

    print("Gyroscope data")
    print("x: " + str(gyro_data['x']))
    print("y: " + str(gyro_data['y']))
    print("z: " + str(gyro_data['z']))

    print("Temp: " + str(temp) + " C")
    sleep(0.5)

  样例2 单独开一个进程

#!/usr/bin/python
# -*- coding: utf-8 -*-
import time
from multiprocessing import Process,Manager
 
 
from mpu6050 import mpu6050
from time import sleep

print_debug=1
def mpuProcess(ShareImages,lock):
    
    sensor = mpu6050(0x68)

    while True:
        accel_data = sensor.get_accel_data()
        gyro_data = sensor.get_gyro_data()
        temp = sensor.get_temp()

        if print_debug==1:print("Accelerometer data")
        if print_debug==1:print("x: " + str(accel_data['x']))
        if print_debug==1:print("y: " + str(accel_data['y']))
        if print_debug==1:print("z: " + str(accel_data['z']))
        
        if print_debug==1:print("Gyroscope data")
        if print_debug==1:print("x: " + str(gyro_data['x']))
        if print_debug==1:print("y: " + str(gyro_data['y']))
        if print_debug==1:print("z: " + str(gyro_data['z']))
        
        ShareImages[1]=gyro_data['x']
        ShareImages[2]=gyro_data['y']
        ShareImages[3]=gyro_data['z']

        if print_debug==1:print("Temp: " + str(temp) + " C")
        sleep(0.5)
        
  
if __name__ == '__main__':   
    lock = Manager().Lock()#创建共享内存容器
    ShareImages=Manager().dict()#存str类型数据
    ShareImages[1]=1.0#
    ShareImages[2]=1.0#
    ShareImages[3]=1.0#


    p = Process(target=mpuProcess, args=(ShareImages,lock))#开启进程
    p.deamon=True  #伴随主进程关闭而关闭,但是有时候还是关闭不了,单独搞个标志位来控制
    p.start()#开始
    
    while True:
        print("main----",ShareImages)
        time.sleep(1)
        

样例3 使用mpu测算速度