• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
MKT-porter
博客园    首页    新随笔    联系   管理    订阅  订阅
树莓派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测算速度

posted on 2022-02-27 19:07  MKT-porter  阅读(381)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3