本帖最后由 Earlobe 于 2019-7-30 12:07 编辑
我来辽,一时写教程一时爽,一直写教程一直爽~
对啦, 教程二之树莓派的远程控制 戳这里鸭:https://www.52pojie.cn/thread-998014-1-1.html
这次讲讲,树莓派和MPU6050模块传感器连接的故事
其实就是将MPU60550模块电子陀螺仪连接至树莓派,并通过python进行数据的读取拉~
所需材料:
1.MPU6050模块的电子陀螺仪
2.公对母杜邦线若干
3.GPIO拓展板一个
接下来我们开始操作了
方法/步骤一:硬件的连接
准备好,开始接线啦。我的树莓派是3B+,40Pin引脚,大家不要搞错哦。
接好之后连上电源,酱酱,就是这样啦-如下图,这对于一个电路白痴,还蛮有成就感哒哒哒,(#^.^#)
方法/步骤二:对树莓派的控制
1.安装vim (用完linux的vi编辑器的我哭辽 o(╥﹏╥)o)
输入命令 : sudo apt-get install vim
补充:在此简单讲一下vim的使用方法
它分为命令模式和编辑模式,以下为两者转换需要输入的键盘文字: 命令模式 ----i---> 编辑模式
命令模式<---esc--- 编辑模式
命令模式中保存文件 :wq +文件名(意为保存并退出)
如果不保存文件,直接退出 :q! cat +文件名 //查看文件
2.MPU6050传感器模块基于I2C通信协议的,所以先启用树莓派 i2c 服务
输入命令 : sudo raspi-config (同教程二的开启VNC服务类似)
选择 P5 I2C 进行开启3.在树莓派上安装相关的Linux驱动程序,操作方法如下:
1.打开文件进行编辑
sudo vim /etc/modules
2.将以下几行代码添加到文件的末尾,保存然后重新启动树莓派(重启树莓派需要用到sudo reboot该命令)
i2c-bcm2708 i2c-dev
3. 编辑blacklists文件,确保下面代码行是以#(注释)开头的,如果没有则添加即可,目的是注释掉bcm2708自有的SPI和I2C通信功能
sudo vi /etc/modprobe.d/raspi-blacklist.conf
#blacklist spi-bcm2708
#blacklist i2c-bcm2708
4.设定完之后重启树莓派
sudo reboot
3.树莓派和MPU6050传感器是否连接的测试:
1.安装i2c-tools套件
sudo apt-get install i2c-tools
2.使用i2cdetect侦测一下是否有抓到I2C的设备
sudo i2cdetect -y 1 (对应树莓派REV2.0板)或者 sudo i2cdetect -y 0 (对应树莓派REV1.0板)
可以看出来在0x69的位置有侦测到一个设备,这个就是我们的MPU-6050感测器。
3.使用i2cget指令尝试读取0x69这个I2C设备的寄存器0x75的值:
sudo i2cget -y 0 0x68 0x75
正常来说,MPU-6050的寄存器0x75的值会是0x68,如:
如果看到这样的值0x68,就代表MPU-6050已经可以把资料传回树莓派了。
注意:-y 后面对应的是0 还是 1 取决树莓派对应的是REV2.0板还是REV1.0板
至此,我们就已经完成树莓派和MPU6050传感器的连接了,接下来我们研究如何用python读取MPU6050传感器的数据
1.要通过Python从I2C总线上读取相应数据,首先需要在树莓派上安装 smbus 模块,安装代码如下:
sudo apt-get install python-smbus
2.Python代码
注意:
1.bus = smbus.SMBus(1) # or bus = smbus.SMBus(0) 这是和对应树莓派REV2.0板还是REV1.0相关
2.address = 0x69 这是mpu6050所在寄存器的位置有关 ,即执行sudo i2cdetect -y 1 或者 sudo i2cdetect -y 0命令得出的结果
ok 代码执行,成败自此一举!!!!
看来效果还是很不错的喔!
我们下期见
未经本人书面许可,禁止以任何形式引用、抄袭、转载本篇文章。
|