mpu6050加速度,角速度怎么读取

mpu6050加速度,角速度怎么读取,第1张

源码见附件。

在h文件中修改IO口引脚即可。

/I2C管脚定义/

#define IIC_GPIO (GPIOB)

#define IIC_GOIO_SDA (GPIOB)

#define IIC_GPIO_SCL (GPIOB)

#define IIC_SDA (GPIO_Pin_8)

#define IIC_SCL (GPIO_Pin_6)

//

函数说明:

void I2C_GPIO_Init(void);     //I2C初始化

void MPU6050_Init(void);    //陀螺仪初始化

//获取加速度计的值

short getAccX(void);

short getAccY(void);

short getAccZ(void);

//获取角速度值

short getGyroX(void);

short getGyroY(void);

short getGyroZ(void);

 

1和角速度陀螺仪和加速度6050计算的角度。

答:陀螺角计算,很多帖子都提到与整合,但在这里我还是再次谈论未来。

= angle_n-1 +(陀螺仪C_Gyro) R_Gyro;

angle_n当前角度值,这是度(°)

angle_n-1

计算的角度值

陀螺陀螺的敏感轴的挠度值,这是目前的敏感轴的读数

C_Gyro陀螺零点偏移值,这个值的测量方法是:把敏感轴陀螺仪液位读数在休息,我的零点偏移值是水平,垂直,倒立,1024个进行平均来读数-1778865041,但最终方案的做法,调整为-9990。或许还有其他的方法来弄明白。

R_Gyro陀螺仪的比例。提到飞思卡尔的参考值计算,我将在下面的下载,看看大家都怎么算,但在他们的论坛和调试手册所提到的,这个比例的值仍然是实验测量它更准确。

B加速度角度计算。

加速度传感器有很多种方法来计算的角度来看,有两个论坛。但它们在三角函数中使用,数学没学好,复制也不行。也许这样的事情后,飞思卡尔参考计算方法。

=(AZ-C_Z) R_Z;

angle_z Z轴计算产生,以度(°)加速度计敏感轴的倾斜角度

AZ是一样的Z轴加速度计读数

C_Z中Z轴的零点偏置的测量方法和陀螺仪。

R_Z Z轴加速度计比例

感觉使用陀螺仪是很难的,毕竟,都更多地参与面。如果你想学习的最好看的更在论坛!

下面简单列出财务函数的种类和使用方法,具体的内容可下载本题附件参考:

1

投资计算

(1)fv:用途:基于固定利率及等额分期付款方式,返回某项投资的未来值。

语法:fv(rate,nper,pmt,pv,type)

参数:rate为各期利率。nper为总投资期。pmt为各期应付金额。pv为现值或一系列未来付款的当前值的累积和,也称为本金。type为数字0或1(0为期末,1为期初)。

示例:如果a1=6%(年利率),a2=10(付款期总数),a3=-100(各期应付金额),a4=-500(现值),a5=1(各期的支付时间在期初),则公式“=fv(a1/12,a2,a3,a4,a5)”计算在上述条件下投资的未来值。

(2)pv:用途:返回投资的现值(即一系列未来付款的当前值的累积和)。

语法:pv(rate,nper,pmt,fv,type)

参数:rate为各期利率。nper为总投资(或贷款)期数。pmt为各期所应支付的金额。fv为未来值。type为数字0或1(0为期末,1为期初)。

示例:如果a1=500(每月底一项保险年金的支出),a2=8%(投资收益率),a3=20(付款年限),则公式“=pv(a2/12,12a3,a1,,0)”计算在上述条件下年金的现值。

2本金和利息

(1)pmt:用途:基于固定利率及等额分期付款方式,返回投资或贷款的每期付款额。

语法:pmt(rate,nper,pv,fv,type)

参数:rate贷款利率。nper该项贷款的付款总数。pv为现值(也称本金)。fv为未来值。type为数字0或1(0为期末,1为期初)。

示例:如果a1=8%(年利率),a2=10(支付的月份数),a3=10,000(贷款额),则公式“=pmt(a1/12,a2,a3)”计算在上述条件下贷款的月支付额。

(2)ipmt:用途:基于固定利率及等额分期付款方式,返回投资或贷款在某一给定期限内的利息偿还额。

语法:ipmt(rate,per,nper,pv,fv,type)

参数:rate为各期利率。per用于计算其利息数额的期数。nper为总投资期数。pv为现值(本金)。fv为未来值。type为数字0或1(0为期末,1为期初)。

示例:如果a1=10%(年利率),a2=1(用于计算其利息数额的期数),a3=3(贷款的年限),a4=8000(贷款的现值)则公式“=ipmt(a1/12,a23,a3,a4)”计算在上述条件下贷款第一个月的利息。

只需要把mpu6050模块的sda和scl接到arduino的AD4和AD5脚,另外再接上电源和地就可以了。

至于数据的读取,需要先了解一下mpu6050的基础寄存器等知识,以及arduino的基础知识。

另外还需要arduino的i2c和mpu6050库。

基本原理可以参考这里http://hibaiducom/zhb1190/item/e0d880781d3625205d1789f8

如果想用真正的串口中断,你需要去学习avr芯片相关知识才可以(Arduino使用的就是avr芯片 ATmega系列),因为绝大多数东西被Arduino隐藏了,你看不到也用不了,甚至会坏,比如强行手动使用串口中断会导致所有Serial函数无法使用等等。

mpu6050库导入后可以读出数据,通常需要进行卡曼滤波。如果找到的例程不会用,也可以直接买 串口mpu6050模块, 该模块自带单片机,帮助你把数据读出且滤波处理后串口输出,这样就容易使用了,目前价格30以内。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12183770.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存