xymeng 发表于 2011-5-28 22:44:22

用乐高NXT做的自平衡车,Hack它的I2C然后装上ENC-03和MMA7260,暂时只能站稳,希望成功的

先把陀螺仪和加速度计的信息采集好然后通过I2C发送给NXT。
NXT的I2C很慢,传输六个字节需要近10ms的时间(每个数据包为六个字节),因此可以大致推断延迟在十几个毫秒左右。
NXT的马达可以通过软件调节输出功率和方向。

我没有用卡尔曼滤波,而是用的互补滤波器(Complementary filter,是这个意思吧?)也就是Angle = A * (Angle + gyro * dt) + (1 - A) * acc_angle。首先想请教一下这是否有可行性?
另外我的控制采用的是PD控制, 输出功率 = P * 角度 + D * 角速度

开机前会有一段时间找出平衡点的传感器值(暂时防止漂移)。

参数调节还是挺麻烦的,暂时它可以站住了(但是也要看运气……)。

我的方案好像比较特别,方法不一定是标准方法,而且也不知道是否真的可行。请问成功的前辈们能提一些建议,或者指出不可行的地方吗?

http://cache.amobbs.com/bbs_upload782111/files_40/ourdev_643881KYG895.jpg
(原文件名:DSCN2677.jpg)

http://cache.amobbs.com/bbs_upload782111/files_40/ourdev_643882BLG4AN.jpg
(原文件名:DSCN2679.jpg)

zyqcome 发表于 2011-5-28 23:25:05

酷特羡慕动手做,观望有段时间了

zouyf12 发表于 2011-5-29 00:07:50

额。问一下, IIC是怎么引出来的?飞线??

xymeng 发表于 2011-5-29 00:52:09

把乐高自带的线剪了,网上有线的说明。

又调了一下参数,站稳是没什么问题的,可行性还比较高,下面就看动态的稳定性了。

wcm_e 发表于 2011-5-29 02:26:10

只用过陀螺仪传感器, 没自己HACK过, 学习

gongnn 发表于 2011-5-29 10:44:36

以楼主的能力,干嘛在NXT平台上做啊,可以自己用单片机来做的吧。或者ARM

zouyf12 发表于 2011-5-29 15:30:06

剪短很心疼啊~

对已这种小车我一直有一个疑问就是,要让车站稳,必须确定各个传感器的零点数值,也就是垂直时候的数值,但是怎么确定小车的垂直位置?用直角尺子?

xymeng 发表于 2011-5-29 16:04:44

To 5L
NXT主要用来测试原型,因为它可以很容易的拆装而且包含灵活的马达控制。如果没有问题就纯手工制作了。

To 6L
其实这个问题很容易解决。首先你不能假设它在平衡时一定是垂直的(我的就不是)。你先用手扶住让它大致在平衡点上,给处理器几秒钟去采集平衡点的传感器读数,然后作差就可以了。

zouyf12 发表于 2011-5-29 19:43:24

回复【7楼】xymeng
-----------------------------------------------------------------------

恩,我的意思就是平衡点。 按LZ的意思就是这个平衡点只要大概就行了是吧不需要太精确的定位?

xymeng 发表于 2011-5-30 16:14:29

我感觉不需要太精确,如果偏差大肯定是没法平衡的,偏差小的话问题不大。

cxcxxxtegong 发表于 2011-7-12 14:19:40

最近在参加电子竞赛这里资源丰富 谢谢

oner 发表于 2011-11-19 00:47:28

看看。

蜕变了 发表于 2012-10-16 21:43:22

纠结好久了   OUT= P * 角度 + D * 角速度,到底那个角度和角速度怎么算出来求高手指导指导啊........{:smile:}

lemonplus1999 发表于 2012-11-12 12:49:47

真酷,又学习了
页: [1]
查看完整版本: 用乐高NXT做的自平衡车,Hack它的I2C然后装上ENC-03和MMA7260,暂时只能站稳,希望成功的