MPU6050措施的3轴陀螺仪角速度(转速)沿三个轴的。我们的自平衡机器人,独自沿着X轴的角速度是足够的测量机器人的下降率。
在下面的代码中,我们读到的关于X轴陀螺的价值,将其转换为度每秒然后乘以它的循环时间获得角的变化。我们把这一角获得当前角。
#包括“丝。” #包括“i2cdev。H” #包括“MPU6050。”
MPU6050微处理器;
int16_t捷瑞士,gyrorate; 浮gyroangle = 0; unsigned long currtime,prevtime = 0;
无效setup() { 微处理器。initialize(); 系列。开始(9600);
无效loop() { currtime = millis(); looptime = currtime - prevtime; prevtime = currtime; 捷瑞士=微处理器。getrotationx(); gyrorate =地图(捷瑞士,32768,32767,250,250); gyroangle = gyroangle +(浮动)gyrorate * looptime/1000;
位置的MPU6050程序开始运行时是零倾斜点。倾斜角度将尊重这一点测量。
让机器人稳定在一个固定的角度,你会观察到的角度将逐渐增加或减少。它不会保持稳定。这是由于漂移是陀螺固有。
在上述代码中,循环时间使用millis()功能是内置的Arduino IDE计算。在后面的步骤中,我们将使用定时器中断来创建精确的采样间隔。本采样周期也将使用一个PID控制器产生的输出。