以前关于MPU6050的文章多是基于Arduino控制器的,这次我们来探讨如何把树莓破与一个六轴陀螺仪和加速计传感器连接起来使用,六轴陀螺仪和加速计传感器传感器采用的是MPU-6050。之所以选择MPU6050,主要是因为在taobao上这个模块很常见,而且成本较低。
树莓派上的设置(for Rasbian)
由于MPU6050传感器模块基于I2C通信协议,所以需要先在树莓派上安装相关的Linux驱动程序,以下操作都是基于树莓派rev2.0 Model B 操作系统为Rasbian的。操作方法如下:
1、打开文件进行编辑(需要 sudo)
sudo vi /etc/modules
2、将以下几行代码添加到文件的末尾,保存然后重新启动树莓派
i2c-bcm2708
i2c-dev
3、打开并核对blacklists文件
sudo vi /etc/modprobe.d/raspi-blacklist.conf
4、确保下面代码行是以#(注释)开头的,如果没有则添加即可,目的是注释掉bcm2708自有的SPI和I2C通信功能。
#blacklist spi-bcm2708
#blacklist i2c-bcm2708
连接树莓派与传感器
树莓派REV2.0 GPIO引脚定义图
要连接MPU6050传感器我们需要用到树莓派上的GPIO针脚,主要会用到的GPIO针脚如下:
树莓派Pin 1 – 3.3V —-> MPU6050 – VCC
树莓派Pin 3 – SDA —–> MPU6050 – SDA
树莓派Pin 5 – SCL —–> MPU6050 – SCL
树莓派Pin 6 – Ground –> MPU6050 – GND
具体的电路连接图,如下图所示:
按图连接完成后,我们来测试一下树莓派是否已经检测到MPU6050。测试之前需要通过以下命令来安装i2c工具:
sudo apt-get install i2c-tools
然后,运行命令:
sudo i2cdetect -y 0 (对应树莓派REV1.0板)
或
sudo i2cdetect -y 1 (对应树莓派REV2.0板)
然后可以在屏幕上看到I2C设备的地址信息
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
如果正常显示则代表树莓派已经检测到在0x68(十六进制)地址上的MPU6050传感器,然后输入以下命令,如果传感器正常工作,我们应该在屏幕上获取到0x68地址上传感器的输出数据。
sudo i2cget -y 0 0x68 0x75
该命令的作用是与 0x68 地址上的传感器进行交互,并检索寄存器 0x75 中的值,默认值是和传感器I2C地址一样的值:0x68。至此,树莓派与MPU6050传感器的连接就算成功了。下一次,我们将讨论如何使用Python来读取MPU6050传感器的数据。