前段时间在某宝上39大洋买了个MPU6050陀螺模块。好不容易有空,用掏出了个树莓派来用用这个屌丝陀螺模块。
首先看到关于树莓派串口有这样的介绍:树莓派3/4b的外设一共包含两个串口,一个称之为硬件串口(/dev/ttyAMA0),一个称之为mini串口(/dev/ttyS0)。硬件串口由硬件实现,有单独的波特率时钟源,性能高、可靠,mini串口性能低,功能也简单,并且没有波特率专用的时钟源而是由CPU内核时钟提供,因此mini串口有个致命的弱点是:波特率受到内核时钟的影响。
陀螺嘛怎么说也算是高精密的东西,虽然贼便宜,但是理应上/dev/ttyAMA0,严肃对待。还得上wringpi这个树莓派高性能库。我不知道这个库什么个情况。但是之前一直苦于树莓派本身python的延时函数精度实在太次。后面搜到有这个库。用了这个库里的延时函数,一下子就精确很多。所以感觉贼牛逼。这个库还有牛逼的线程函数,和牛逼的高性能串口。所以没有这个库的话先输入pip install wiringpi
安装它。
接下来确保你的树莓派打开了串口服务。
sudo raspi-config
选择Interfacing Options
选择serial
再选择 否,禁用串口登录功能,将串口用于通信。
再选择 是,启动串口硬件。然后树莓派重启。串口就可以用了。
接着要禁用蓝牙,树莓派3或4的蓝牙与串口是冲突的,只能2选1,系统默认是选择蓝牙,现在需要关闭蓝牙:
1)打开文件 sudo nano /boot/config.txt
2)在文件的最后添加 dtoverlay=pi3-disable-bt
该语句是关闭蓝牙 ,然后按下Ctrl+X, 再按 Y 保存文件 。(这句是给菜鸟用的,老鸟可无视~~~)
3)重启树莓派
后发现任务栏上的蓝牙图标变灰色证明已经关闭蓝牙,(原来是蓝色的)
再下来是接线:
陀螺模块的TX要接在树莓派的RX上(10号脚),模块的RX要接在树莓派的TX(8号脚)上。陀螺VCC接树莓派 DC Power 的 (2或4脚)。GND接Groud(6)。
接下来写一个简单的Python脚本:
import wiringpi as wpi
import time
wpi.wiringPiSetup()
serial = wpi.serialOpen('/dev/ttyAMA0', 115200) # Requires device/baud and returns an ID
wpi.delayMicroseconds(100)
while True:
while wpi.serialDataAvail(serial) != -1:
byte = wpi.serialGetchar(serial)
print(byte)
wpi.delayMicroseconds(10)
运行看看有没有数据打印出来。正常会打印陀螺发来的原始数据。后续会放出协议解算程序