stm32平衡小车--(3)mpu6050传感器

1、mpu6050简介

MPU6050是一款集成了传感器和处理器的微型加速度计和陀螺仪模块。它由一体化的MEMS(微机电系统)加速度计和陀螺仪芯片以及数字运动处理器(DMP)组成。MPU6050可以通过I2C(Inter-Integrated Circuit)总线与微控制器进行通信,从而实现对物体的加速度和旋转角速度的检测和测量。它广泛应用于飞行器、机器人、运动追踪设备等各种需要进行准确姿态测量的领域。

 

 mpu6050是一个6轴姿态传感器,可以测量芯片自身X、Y、Z轴的加速度和角速度参数。可以通过数据融合进一步得到姿态角(欧拉角)

欧拉角:

欧拉角(Euler angles)是一种用于描述物体在三维空间中旋转的方法。它由三个角度组成,分别表示绕三个坐标轴(通常是X、Y、Z轴)的旋转。

滚转角(roll):绕X轴旋转。可以想象成飞机做翻滚运动。

俯仰角(pitch):绕Y轴旋转。可以想象成飞机抬头向上与俯冲向下。

偏航角(yaw):绕Z轴旋转。可以想象成飞机的飞行方向,向左或向右。

2、硬件部分

硬件电路:

引脚定义:

                   

XCL与XDA用来扩展芯片功能,比如可外接磁力计,气压计等

AD0为从机地址的最低位,接低电平时iic从机地址为1101000,接高电平时为1101001(但mpu6050的AD0引脚内接了一个电阻,所以引脚悬空的时候默认弱下拉到低电平

mpu6050供电范围为2.375~3.46v,属于3.3v供电设备,但其外置了一个3.3v稳压器,只要在3.3v~5v的电压都可以通过3.3v稳压器输出稳定的3.3v电压。

3、mpu6050参数

16位ADC采样传感器的模拟信号,量化范围:-32768~32768

加速度计满量程选择:±2、±4、±8、±16(g)

陀螺仪满量程选择:±250、±500、±1000、±2000(°/sec)

选择的量程越小,测量分辨率就越高;选择的量程越大,测量范围就越大。比如选择加速度计的满量程为±4,那么ADC采样值为32768的时候对应的是4g。

可配置的数字低通滤波器:如果输出数据抖动太大,可以配置滤波器使数据输出平缓

可配置的时钟源和采样分频:控制ADC转换快慢

芯片进行iic通信时,从机地址:AD0引脚等于0的时候,从机iic地址为1101000(0x68);AD0引脚等于1的时候,从机iic地址为1101001(0x69)。

因为在进行iic通信的时候,是7位地址位+1位读写位(在上一章iic通信详细说明过,不懂的小伙伴可以去看看),所以在发送字节的时候往往将0x68左移1位然后加上读写位,即(0x68<<1)|(1/0)(读/写),此时发送的是0xD0(写)0xD1(读),所以有的地方就默认0xD0为从机地址,在写操作时直接发送0xD0,读操作时使用0xD0|0x01。

4、相关寄存器

①采样频率分频器

 可以配置采样频率分频系数,分频越小内部AD转换越快,数据寄存器刷新越快。

采样频率(数据刷新率)=陀螺仪输出时钟频率  /(1+分频值)

不使用低通滤波时,陀螺仪时钟为8khz,使用低通滤波时,陀螺仪时钟为1khz

②配置寄存器

我们只关心低3位:配置低通滤波器

配置滤波器参数越大,输出数据抖动越小(7为保留位,没有使用)

③陀螺仪配置寄存器

                                                  

Bit7~Bit5为自测使能位,Bit4~Bit3为满量程选择位。

④加速度计配置寄存器

                                                   

Bit4~Bit3为满量程选择位。

⑤数据寄存器

加速度计数据寄存器

 陀螺仪数据寄存器

 温度传感器数据

⑥电源管理寄存器1

 Bit7:设备复位,写1所有寄存器恢复默认值;

 Bit6:睡眠模式,写1芯片睡眠不工作,进入低功耗,该位上电默认为1,即上电默认睡眠,所以在操作之前要先解除睡眠,否则操作其他寄存器是无效的

 Bit5:循环模式,写1设备进入低功耗,过一段时间启动一次,唤醒频率由电源管理寄存器2的Bit7和Bit6决定;

 Bit3:温度传感器失能,写1禁用内部温度传感器;

 Bit2~Bit0:用来选择系统时钟来源,一般选择陀螺仪晶振(比较准确);

                        

 ⑦电源管理寄存器2

前两位用来用来控制循环模式的唤醒频率,后六位分别控制六个轴进入待机模式

⑧ID号寄存器

 ID号即iic地址固定值为0x68,不受AD0引脚状态而改变

  • 18
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
STM32平衡小车是一款基于STM32微控制器的智能小车,它能够通过传感器实时感知车身的姿态,并且通过驱动电机调节车身的倾斜程度,从而实现平衡行驶的功能。对于STM32平衡小车的代码资源,可以从以下几个方面进行说明: 1. 源码开源:STM32平衡小车的代码通常是开源的,开发者可以从官方网站或者社区平台上获得。这方面的代码资源包括了控制算法、传感器数据处理、电机驱动等关键部分的代码。 2. 功能完善:STM32平衡小车的代码资源通常包括了多种功能的实现,如平衡调节、前进、后退、转向等。这些功能由对应的代码模块实现,用户可以根据自己的需要来配置和调整。 3. 库函数支持:STM32平衡小车的代码资源通常会使用STM32提供的官方库函数来进行开发,这些库函数可以帮助开发者简化开发流程,并且提供了丰富的功能接口供用户使用。 4. 示例代码:为了帮助开发者更好地理解和使用STM32平衡小车的代码资源,通常会提供一些示例代码。这些示例代码会演示如何使用库函数和关键模块进行编程,让用户能够迅速上手并进行二次开发。 总之,STM32平衡小车的代码资源丰富而全面,开发者可以通过获取开源代码、库函数支持和示例代码等途径来进行开发和定制。通过学习和理解这些代码资源,可以更好地掌握平衡小车的工作原理,并进行个性化的功能增加和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值