接下来我们再来看一个关键性的芯片MPU-6050,这是一个陀螺仪,可以感知3维空间里x、y、z三个维度测量加速度和3轴旋转速度。对于3维加速度我们目前还用不到,当然,如果你要对四轴做自稳算法时就需要用到它了。我们只对3轴的旋转角速度做处理。我们知道对旋转角速度的积分即时角度(当然这时所说的积分是狭义上的定积分)。
我们再来看一下MPU6050与树莓派的接线方式:
1) 陀螺仪VCC接树莓派3.3V DC Power
2) 陀螺仪GND接树莓派Ground
3) 陀螺仪SCL树莓派SCL
4) 陀螺仪SDA树莓派SDA
接线完成后,启动树莓派,MPU6050会有红灯亮起。另外还要对树莓派的系统做一些设置:
1)修改/boot/config.txt文件,去掉下面3行的注释
dtparam=i2c_arm=on dtparam=i2s=on dtparam=spi=on
2) 修改/etc/modules文件,追加以下内容
i2c-bcm2708 i2c-dev
3) 修改/etc/modprobe.d/raspi-blacklist.conf将下面两行内容删除或用#注释掉
修改前: blacklist spi-bcm2708 blacklist i2c-bcm2708 修改后: #blacklist spi-bcm2708 #blacklist i2c-bcm2708
4) 安装i2c-tools工具
sudo apt-get install i2c-tools libi2c-dev
5) 重启树莓派:
sudo reboot -n
之后使用以下命令查看设备是否正常:
sudo i2cdetect -y 1 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陀螺仪。同时可以使用以下命令看看/dev/下是否有i2c设备:
ls /dev i2c-1
我们使用树莓派的MPU6050开源驱动,可以直接取得旋转角:
https://github.com/richardghirst/PiBits.git
此驱动是用C++编写的,下载后编译运行即可。
[-0.11001 -0.29976 -0.013939]
[-0.11001 -0.29976 -0.013939]
[-0.11001 -0.29976 -0.013939]
[-0.10981 -0.30104 -0.014503]
[-0.10981 -0.30104 -0.014503]
[-0.10981 -0.30104 -0.014503]
[-0.10961 -0.30205 -0.015050]
[-0.10961 -0.30217 -0.015057]
[-0.10961 -0.30217 -0.015057]
[-0.10951 -0.30295 -0.015734]
Copyright © 2015-2023 问渠网 辽ICP备15013245号