johnsonzzd 发表于 2012-11-5 21:44:10

基于arduino的自平衡车

本帖最后由 johnsonzzd 于 2012-11-6 10:24 编辑

控制器:arduino uno
传感器:角加速度用BMA 180,角速度用ITG 3205,位移用电机12线正交编码器
算法:角度测量用卡尔曼滤波融合,控制用全状态反馈
动力:两个直流减速电机,电压12v 功率17w 速比64 速度120rpm。MC33886驱动。4s锂电池组。
无线通讯:3个XBEE无线模块分别在小车、Wii手柄遥控模块、PC检测模块上。











http://player.youku.com/player.php/sid/XNDcxMzY3MDA4/v.swf

简化的kalman滤波,copy老外的:http://arduino.cc/forum/index.php/topic,8871.0.html
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;
}


主要材料清单,我不是做广告啊。

编号项目型号供应商备注
1CPU
Arduino Atmega328P
http://item.taobao.com/item.htm?id=14753282555
 
2电机
Faulhaber编码器空心杯减速电机带支架
http://tradearchive.taobao.com/trade/detail/tradeSnap.htm?spm=a1z09.2.9.43&tradeID=125981947427046
 
3电机驱动
飞思卡尔 33886大功率电机驱动板
http://item.taobao.com/item.htm?id=6717655675
 
4轮胎联轴器
电机轴6mm轮胎连接器
http://item.taobao.com/item.htm?id=3360963897
 
5轮胎
85mm直径
http://item.taobao.com/item.htm?id=16069180495
 
6姿态传感器
10DOF ITG3205 BMA180传感器
http://item.taobao.com/item.htm?spm=a1z09.5.0.41&id=13463429069
 
7电池
ACE 2200mAh,14.8v锂电池组
http://item.taobao.com/item.htm?id=5708176275 
8稳压模块
LM2596 DC-DC 可调降压 电源模块
http://item.taobao.com/item.htm?id=3398631472给CPU供电
9有机玻璃板
有机玻璃 厚3mm
http://item.taobao.com/item.htm?id=10272074977 
10铜柱各种规格http://item.taobao.com/item.htm?id=4827815807 
11螺柱小车支架 标准件商店
12无线通讯
XBee 100米无线数传模块http://item.taobao.com/item.htm?id=7978601157 

smfox10 发表于 2012-11-5 22:35:42

好强大,我看到都铺尘了!!!

Randy 发表于 2012-11-6 09:17:28

对你的算法和加速度转换感兴趣,你的小车应该吃灰很久了吧!:lol

johnsonzzd 发表于 2012-11-6 09:31:22

本帖最后由 johnsonzzd 于 2012-11-6 09:34 编辑

感兴趣的朋友可以去飞思卡尔智能车官网电磁组看看,有指导资料。


2012年飞思卡尔智能车大赛电磁组第一名中南民族大学队
http://v.youku.com/v_show/id_XNDQzNTQ5NzU2.html

清华卓晴副教授的讲解:电磁组直立车模调试指南
http://player.youku.com/player.php/sid/XMzUzMzE1MDI4/v.swf

宜昌城老张 发表于 2012-11-6 09:45:10

请问编码器与电机是如何配套的?我想成套买两个、

johnsonzzd 发表于 2012-11-6 10:33:15

宜昌城老张 发表于 2012-11-6 09:45 static/image/common/back.gif
请问编码器与电机是如何配套的?我想成套买两个、

我把材料清单以及淘宝地址添上了。编码器是电机自带的,看起来很山寨。12线有点少。小车大部分时间处于原地平衡的低速状态,一个周期才几个脉冲,速度估计误差很大。店里应该能配更高分辨率的。

宜昌城老张 发表于 2012-11-6 11:44:28

真是太好了,谢谢!

小黑 发表于 2012-11-6 16:19:21

看着很不错啊    手工不错

benjaminxuu 发表于 2012-11-6 19:11:55

赞一个,楼主动手能力不错。如果再整个功率大点的电机,可以考虑自己做个segway。

piaozhiling 发表于 2012-12-29 21:31:32

就喜欢你这样的,所以的东西都发上来,对于我这样的小白才好照葫芦画瓢,画完才会自我创新,谢谢了,但,我感觉源码好像不全啊。

zhaoleizhaolei 发表于 2013-1-31 12:08:30

咨询FreeWay两轮平衡车(无刷电机+锂电池)
QQ:695118363

164335413 发表于 2013-10-10 22:47:51

biaoji,我的小车蓝牙没法控制,接收到信号后晃动一下后就停下了

normancm 发表于 2013-11-25 09:32:27

谢谢分享,准备也做一个。{:soso_e100:}

carol 发表于 2015-5-26 17:15:45

gooooood~~~
页: [1]
查看完整版本: 基于arduino的自平衡车