树莓派读取mpu6050内容
1 2 3 4 5 6 | sudo gedit / etc / modules / / 文件的最后写入 i2c - bcm2708 i2c - dev / / 保存退出 然后是可选的,把设备解除屏蔽,一块全新的板子可能是没有的。 |
接着去树莓派选项里面,把GPIO打开:
1 | sudo raspi - config |
这里有个选项回车进去会有I2C的选项,再回车选择OK就行了,之后重启树莓派
1 | sudo reboot |
之后让树莓派联网状态下运行
1 | sudo apt - get install i2c - tools / / 可能你的已经安装了,运行一遍总没错。 |
链接设备
1 | sudo i2cdetect - y 1 / / 这里有点忘记了,也可能是 0 ,最后出来这个就对了 |
然后代码如图所示:(首先要安装 mpu6050-raspberrypi模块)
1 | pip install mpu6050 - raspberrypi |
样例1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | 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 单独开一个进程
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | #!/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测算速度
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律