用了一个mpu6050程序,能够分别输出x、y、z的角速度和加速度。但是我需要让它输出角度。有查过说是要对时间进行积分,但不知如何编写程序。求高手指点。单片机用的是STC12C5A60S2~~
我刚好弄过这个,所以解答,因为我当时做时啥都没有,只能各个论坛到处搜相关的,然后自己改,而且点方向都没有,我知道那种痛苦
ACCE_X=(GetData(ACCEL_XOUT_H));
ACCE_Y=(GetData(ACCEL_YOUT_H));
x=(float)ACCE_X/4096.0;//4096是根据你的设置来选择的,具体在datasheet里有,就是陀螺仪的测量范围。
y=(float)ACCE_Y/4096.0;
angleAx=atan2(x,y)*180/3.14;这是根据两个加速度来求解角度的。
你可以百度,百度用公式,或者等我下火车回家之后给你回帖。我用过不过主控不一样
想问一下,从MPU6050那儿获得的加速度和角速度数据具体是什么数据?还望赐教
看图,这是datasheet的一部分,里面根据AFS_sel设置的不同,转换单位需要除以相应的系数
这一步除以4096后 到下一步取反正切 两数相除 4096不就约掉了么~所以除不除应该没关系吧~~对了 你有调过PID么??
通过采集角度信息,通过PID计算来控制电机,使角度稳定
对 我也是要调这个 电机是通过PWM 波来调的吧 那角度如何跟PWM波对应上呢???
好的 多谢 我先调一下 那个PID的P和I的值一般都取多少??
不同系统的初始值不一样,你只能慢慢试,或者找网上他们做的参数参考
那如果是 求速度 和位移呢,比如 说我现在做的一个加速度传感器控制得无线鼠标设计,需要位移数据,然而程序后续程序怎么写,由于鼠标是人为控制,所以对精度要求不是很大,能按照你需要的方向有一段位移就行,详情
https://bbs.eeworld.com.cn/thread-462208-1-1.html