基于arduino的自平衡车
控制器:arduino uno
传感器:角加速度用BMA 180,角速度用ITG 3205,位移用电机12线正交编码器
算法:角度测量用卡尔曼滤波融合,控制用全状态反馈
动力:两个直流减速电机,电压12v 功率17w 速比64 速度120rpm。MC33886驱动。4s锂电池组。
无线通讯:3个XBEE无线模块分别在小车、Wii手柄遥控模块、PC检测模块上。
简化的kalman滤波,copy老外的:/forum/,
ARDUINO 代码复制打印
float kalmanCalculate(float newAngle, float newRate,int looptime)
{
newAngle=newAngle/10;
newRate=newRate/10;
float dt = float(looptime)/1000;
x_angle += dt * (newRate - x_bias);
P_00+=(- dt * (P_10 + P_01) + Q_angle * dt);
P_01+=( - dt * P_11);
P_10+=(- dt * P_11);
P_11+=(+ Q_gyro * dt);
y1 = newAngle - x_angle; //测量值与预测值之差
S = P_00 + R_angle; //预测误差与测量误差之和
K_0 = P_00 / S; //角度测量的卡尔曼增益
K_1 = P_10 / S; //
x_angle+=K_0 * y1;
x_bias +=K_1 * y1;
P_00-=K_0 * P_00; //角度的预测误差更新
P_01-=K_0 * P_01;
P_10-=K_1 * P_00;
P_11-=K_1 * P_01;
return x_angle*10;
}
主要材料清单,我不是做广告啊。
编号
项目
型号
供应商
备注
1
CPU
Arduino Atmega328P
http://item./?id=**********
2
电机
Faulhaber编码器空心杯减速电机带支架
http://tradearchive./trade/detail/?spm=&tradeID=125981947427046
3
电机驱动
飞思卡尔 33886大功率电机驱动板
http://item./?id=6717655
基于arduino的自平衡车 来自淘豆网m.daumloan.com转载请标明出处.