在六轴陀螺仪的选型中,MPU6050这玩意儿简直就是电子爱好者的"国民陀螺仪"啊!从无人机到平衡车,从手机横竖屏切换到VR头盔,几乎哪儿都能看到它的身影。
便宜大碗。二十块钱就能买到模块,还自带DMP运动处理器,这不比单独买加速度计和陀螺仪香吗?再者资料丰富,Arduino、STM32、树莓派,随便一搜就有成堆的例程。新手入门做个小四轴,老手搞个姿态识别,第一个想到的都是它。
虽然现在有更先进的型号,但MPU6050就像MCU界的STM32,已经成了行业标杆。每次看到有人在论坛问"怎么做姿态控制",底下清一色推荐MPU6050的盛况,就知道这家伙的地位有多稳固了。
不过本期,我们的主角并不是MPU6050,而是它的升级版:MPU6500。
MPU6500就像是MPU6050的"Pro Max Ultra"版本,不仅继承了前代的优良传统,还带来了不少让人眼前一亮的新特性。
首先最让人心动的是它支持SPI接口了!要知道MPU6050只有I2C,有时候速率确实让人着急。现在有了SPI,数据吞吐量直接起飞,就像从绿皮火车换成了高铁,采样率最高能达到32kHz,做高速姿态捕捉也是绰绰有余了。
精度方面也是大幅提升,陀螺仪和加速度计的噪声性能都比MPU6050有着不少的提升。
在价格方面,某宝的MPU6500加个低至个位数甚至有不到一块钱的(不知道质量)
因此本期我们就介绍一下基于STM32的MPU6500设计及应用。
硬件电路设计
主控采用STM32F103C8T6作为主控制器,并且启用USB外设和上位机通信,I2C上拉俩电阻。
MPU6500的外围电路比较简单,其中SDO/AD0在I2C通讯中用于决定器件地址的低位。nCS引脚用于决定通讯方式,启用I2C通讯需要拉低nCS。
这里我把MPU6500和主控放在了背面。
驱动编写
简单写一下MPU6500的设备驱动,接着我们开启一个定时器中断,设置10ms采样上传一次:
在VOFA+中测试XYZ轴的加速度计数据,一切正常,我们调转陀螺仪方向,让其平放:
受重力影响,可以看到Z轴-1倍的重力(-1g)方向和Z轴正方向相反。


登录 或 注册 后才可以进行评论哦!
还没有评论,抢个沙发!