首先,这个是最原始的出处:https://blog.bitify.co.uk/2013/11/interfacing-raspberry-pi-and-mpu-6050.html
需要优雅上网才能看。
但国内也有人翻译搬运过来并未注明个出处的(我估计图片都是直接粘贴的难怪打不开)
那么我们整理一下吧:
1、硬件安装:
注意了,这个图 1 接线图是树莓派 1 上的,我们是 3B!!不是+!!那么就要参照树莓派 3B 的接口,如图 2。
图 1:树莓派 1 的硬件接法,注意到接这四个就行了,VCC(3.3V!) GND,SCL,SDA,其他的也同理,查到相应的引脚图就行。
图 2:树莓派 3B 的的 GPIO 引脚
这样我们就知道了,左侧的 01,03,05,09 分别接到 MPU6050 上的 VCC,SDA,SCL,GND 上就行了,断电情况下接上,搞掂。建议万用表测一下不要接错,接到 3.3V 这一侧。SD 卡槽在下且 USB 在左的方向看过去,GPIO 的 3.3V 是你面朝方向比较远那排的右上。
2、硬件识别。
需要编辑几个文件,用你中意的编辑方式就行,比如这里以 VI 为例,注意 esc 键是切换控制指令和输入状态的按键,点 i 是进入输入模式,esc 后输入:wq 就是保存并退出,万一搞错了,直接:q 就是直接退出不保存。
开整:
[cpp] view plain copy
sudo vi /etc/modules
// 文件的最后写入
i2c-bcm2708
i2c-dev
// 保存退出
然后是可选的,把设备解除屏蔽,一块全新的板子可能是没有的。
但去看看没毛病:
[cpp] view plain copy
sudo vi /etc/modprobe.d/raspi-blacklist.conf
// 如果一下设备被屏蔽了,就注释上(#),解除屏蔽
#blacklist spi-bcm2708
#blacklist i2c-bcm2708
接着去树莓派选项里面,把 GPIO 打开:
[cpp] view plain copy
sudo raspi-config
// 注意了,这里有个选项回车进去会有 I2C 的选项,再回车选择 OK 就行了,具体的我忘了截图,相信你能找到!
可以重启树莓派了 sudo reboot
3、查找设备
树莓派联网状态下
[cpp] view plain copy
sudo apt-get install i2c-tools // 可能你的已经安装了,运行一遍总没错。
[cpp] view plain copy
sudo i2cdetect -y 1 // 这里有点忘记了,也可能是 0,最后出来这个就对了
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: -- -- -- -- -- -- -- --
如果提示:Could not get lock /var/lib/dpkg/lock - open
请看这个帖子,总之就是 kill 掉占用的 https://blog.csdn.net/github_35160620/article/details/51933605
4、测试设备
[cpp] view plain copy
sudo i2cget -y 0 0x68 0x75
上面的 0 也可能是 1,出现:0x75,就对了。
5、ROS 应用,参考
GITHUB 已经写好了 ROS 发送节点。当然了,只想读读测试一下,参考这个应该也可以:
https://blog.csdn.net/lyj19960106/article/details/77719601
上面这个脚本使用的时候需要注意,树莓派 3B 中好像是 python3.0,最显著的区别就是 print 后面的内容必须用()括号括上,不然会报错。在树莓派里面,可以用自带的 python 编辑器 run->run module 就行了。
主要是 ROS 应用,不多说了,可能要你自己重新编译工作空间的话,可以选择性的只编译这个包就行了。
奇怪的是,我的树莓派尝试了几个 ROS 包之后不好用,分析了半天也没找到问题所在,于是乎索性换了思路,参见下一篇。