二、ROS小车闭环控制:树莓派 3B 接MPU6050方法 以及ROS应用(1)

发布于:2021-10-17 20:42:41

首先,这个是最原始的出处:http://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就是直接退出不保存。


开整:


sudo vi /etc/modules
//文件的最后写入
i2c-bcm2708
i2c-dev
//保存退出

然后是可选的,把设备解除屏蔽,一块全新的板子可能是没有的。


但去看看没毛病:


sudo vi /etc/modprobe.d/raspi-blacklist.conf

//如果一下设备被屏蔽了,就注释上(#),解除屏蔽
#blacklist spi-bcm2708
#blacklist i2c-bcm2708

接着去树莓派选项里面,把GPIO打开:


sudo raspi-config
//进入interfacing options,进入I2C选项,选yes,开启I2C

可以*羰鬏闪 sudo reboot


3、查找设备


树莓派联网状态下


sudo apt-get install i2c-tools //可能你的已经安装了,运行一遍总没错。

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、测试设备


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包之后不好用,分析了半天也没找到问题所在,于是乎索性换了思路,参见下一篇。

相关推荐

最新更新

猜你喜欢