feng741 发表于 2011-1-10 15:42:01

我的两轮自平衡车基本做完,给大伙瞧瞧~

首先特别感谢zlstone和feng_matrix两位!!谢谢你们的指点和资料!

算法:和大家的一样,一个倾角环,一个车速环。取得角度、角速度、车速、车位移四个量后经过运算送给PWM驱动电机。
硬件:
主控:atmega16;
角度传感器:角速度传感器(陀螺仪)ENC-03MB(直接接AD输入,未加硬件滤波)、加速度传感器MMA7260,二者kalman融合取得角度、角速度。PS:抄zlstone的,呵呵。
电机速度传感器:每个电机两个霍尔传感器(AB相)。
电机:型号不清楚,很常见的减速电机。额定电压6V,功率3W。
电机驱动:L298N
电源:变压器整流桥那种普通电源,几块钱一个。两个,电机、MCU分开供电。电机电源电压打到最高不接电机时15V多,接了电机5V多,汗。。
显示器:LCD1602B
遥控:电视红外遥控器

http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_610203DGE5R0.jpg
(原文件名:20110110_0101.jpg)

http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_610204C720AB.jpg
(原文件名:20110110_0102.jpg)

http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_610205GYOF2N.jpg
(原文件名:20110110_0103.jpg)

http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_610206VJSZRA.jpg
(原文件名:20110110_0104.jpg)
源代码 WINAVR20100110+AVRStudio4.18ourdev_610434C8FD1C.rar(文件大小:104K) (原文件名:Balance.rar)

原理图:
atmega16最小系统版ourdev_610214M89OEI.pdf(文件大小:30K) (原文件名:M16迷你板电路图.pdf)
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_610220IA8C4V.jpg
上位机,带波形、数据显示ourdev_610318TY8G24.rar(文件大小:48K) (原文件名:串口调试.rar)

<center>http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_610231U7TB9V.JPG
车速未滤波之前波形 (原文件名:车速未滤波之前波形.JPG)

http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_610234TYPJT8.JPG
车速10Hz低通滤波后波形 (原文件名:车速10Hz低通滤波后波形.JPG)

视频在这里http://v.youku.com/v_show/id_XMjM1OTQ3NzU2.html

feng741 发表于 2011-1-10 15:54:41

现在还不是很稳,我想有两个原因,一个是参数没调到最佳,调了好久,先这样吧。再有就是电源太烂了,电机是额定6V的可实际电压空载的时候才打到5伏多一点,在平衡的时候没测,肯定更低了。

陀螺仪ENC-03是直接接AD输入端的,因为按照datasheet上边的参考电路有过冲问题,这个问题有个帖子已经讨论过,很多人都是围绕怎么补救这个问题,我来算一下为什么这样子,呵呵~如下:
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_610240CS2J87.jpg
高通滤波脉冲响应 (原文件名:QQ截图未命名.jpg)

因为有这个问题,会给倾角数据造成影响,所以我就去掉了滤波,直接接到AD。这样1deg/s有0.67mv,10位AD参考电压是3.36V,最小才能测到3.28mv,小于4.8deg时就测不到了。本来担心这个问题,但试了下KALMAN滤波,真是强啊!角度很精确,就这么用了。

up101 发表于 2011-1-10 15:59:12

嘿嘿,不错。有时间我把我的也传上来看看。比LZ的好看。

elf0228 发表于 2011-1-10 16:08:43

是有刷电机还是无刷电机?有刷的可能难调点吧,呵呵,愚见!见谅

b54wco 发表于 2011-1-10 16:13:43

顶一个。不错!

feng741 发表于 2011-1-10 16:23:37

回复【2楼】up101
-----------------------------------------------------------------------
发上来看下啊,呵呵。我做的不好,不怎么稳,啥时候换个开关电源再试试。我的是纯手工制作呵呵,看那一堆线。。。

回复【3楼】elf0228 毛边纸
-----------------------------------------------------------------------
有刷的,一个23元

henangongda 发表于 2011-1-10 16:26:10

车体跟我以前DIY的一样!嘿嘿~~~

feng741 发表于 2011-1-10 16:34:40

回复【6楼】henangongda 阿勇
-----------------------------------------------------------------------

车体研究了好久,没有用钢化玻璃的设备,就一直没动工。有天去打水突然看到旁边有个大的三合板,呵呵,于是乎。。
感觉车体结构也是个难点啊,要算尺寸,要打孔(先用烙铁头扎,在用螺丝刀来回钻),挺费劲的。还有支架,试用很短的铜柱,一个一个摞起来的,所有能找到的铜柱都用上了,刚好够用。

henangongda 发表于 2011-1-10 16:39:48

回复【7楼】feng741 梦不落
-----------------------------------------------------------------------

用硬质的洞洞板!呵呵

henangongda 发表于 2011-1-10 16:41:52

这种车体的中间不能负重,重了后面俩轮就往外翻,当时是做打水机器人的,后来没有做完就over了~~~

dxf5200 发表于 2011-1-10 16:43:38

我也正在做这个,学习中!

feng741 发表于 2011-1-10 16:57:16

回复【8楼】henangongda 阿勇
-----------------------------------------------------------------------

也想过,但手里没有,要去网上买,还有点不太结实。

117433525 发表于 2011-1-10 18:25:43

http://v.youku.com/v_show/id_XODg3MDIwMzY=.html
这个蛮好的。

rezire199847 发表于 2011-1-10 18:50:22

很牛啊,硬件基本上符合我的期望了,不过我打算用stc的单片机试着做做,顶你了

feng741 发表于 2011-1-10 19:08:06

回复【13楼】rezire199847 無ξ
-----------------------------------------------------------------------

不知道STC那种的,我只用过STC89C51那种的,呵呵。这个车要用很多片内外设的。
AIN0:陀螺仪输入
AIN1:加速度计输入
T0:采样周期定时,算法都在这里完成;
T1:两路PWM;
T2:用作霍尔传感器T法测速(要用码盘M法测速,不需要用)、红外脉冲定时;
INT0、INT1:接霍尔传感器,采集速度
INT2:红外接收头输入信号(遥控要用无线的话,也省了)

up101 发表于 2011-1-10 19:24:55

回复【5楼】feng741梦不落
-----------------------------------------------------------------------

我的也是手工的,板子用锉刀打磨的比较规整,线不多。方案和你的差不多。

fzkqi 发表于 2011-1-10 19:34:26

楼主的串口软件下载打开不了,缺少dll

feng741 发表于 2011-1-10 19:48:20

回复【16楼】fzkqi
-----------------------------------------------------------------------
我发给我同学,能运行啊。我没有用到dll,应该是你那边的问题了,呵呵。

rezire199847 发表于 2011-1-10 19:57:27

回复【16楼】fzkqi
-----------------------------------------------------------------------

少什么dll可以单独下个dll放进去就好了

rezire199847 发表于 2011-1-10 19:59:46

回复【17楼】feng741 梦不落
-----------------------------------------------------------------------

话说你有电机驱动电路图没,让我参考一下,谢谢

zhengrob 发表于 2011-1-10 20:25:22

回复【17楼】feng741 梦不落
-----------------------------------------------------------------------

缺dll不能运行。

feng741 发表于 2011-1-10 20:26:57

驱动我买的模块20块,卖家没提供电路图。应该是和这个一样的http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=1344216&bbs_page_no=1&bbs_id=1024。都是没加光耦直接接过去的。

feng741 发表于 2011-1-10 20:29:24

回复【20楼】zhengrob
-----------------------------------------------------------------------

你也缺dll啊,dll文件名是什么?我系统是XP SP3你们的都是什么系统啊?动态链接库那块我还没学,可能解决不了问题。看大家能帮下不?要不像18楼找个dll。

kkalizee 发表于 2011-1-10 20:41:14

顶楼主,这个作品真的相当不错,我们是同学嘛,基本都是看着他做过来的,全部都是自己手工做的。还有刚才那个串口调试软件我在我电脑上试了下能运行啊~~~~~~~~~

feng741 发表于 2011-1-10 20:47:33

回复【23楼】kkalizee
-----------------------------------------------------------------------

我晕,叫你顶还真来顶了。。。

feng741 发表于 2011-1-10 21:22:00

问题找到了,本来程序是Debug版本的,要改成正式发行版的,VC我只用了不久,是低级错误啦,呵呵。LZ位软件我重新改过了。
VC工程在这里。
上位机VC++工程源码ourdev_610317VUO0LN.rar(文件大小:4.99M) (原文件名:Curve1.rar)
写的有点乱,10.1假期写的,后边就没怎么更新了。两种显示,字符显示和调试助手相同,要用示波器的话,协议为:先发0xFD,再连续发两个字节数据,多个数据依次发下去。单片机中此段程序即为发送波形显示数据的格式:
        if(++ctr_pos==2)
        {
                ctr_pos=0;

                temp1=speed_filter*10+150;
                Putc(0xfd);
                Putc(temp1/256);
                Putc(temp1%256);
        }
数据发的不能太快(差不多要大于10ms),太快右侧字符频繁刷新界面,上位机会卡死,所以在界面上设置了禁止字符输出,用示波器时,最好选上。这个软件可以查看历史波形、数据。

headline 发表于 2011-1-10 21:28:33

好似看到棉被,那个不是楼主的床板吧,太简朴了,还写字

rezire199847 发表于 2011-1-10 22:52:23

回复【25楼】feng741 梦不落
-----------------------------------------------------------------------

不错,感谢你的电路图,这样又让我了解了一种驱动电机的方法

feng741 发表于 2011-1-11 13:51:34

自己顶一个,没人关注啦,大家对这个没什么兴趣?所有资料都有啊!~
我说下成本:
AVR最小系统版 45;
陀螺仪ENC-30MB:35;
加速度传感器MMA7260模块:48(5V/3.3V供电);
电机+轮子+联轴器两套:96;
霍尔传感器模块(两对,每对AB相):34;
电机驱动板:20;
遥控、显示看个人了。
45+35+48+96+34+20=278元。
所有的加一起300元吧。

feng_matrix 发表于 2011-1-12 10:11:01

300块还真够便宜的!再替你顶下!

feng741 发表于 2011-1-16 14:11:01

哈哈,cool了!谢谢armok!
但是这个贴依然很冷清啊。。。大家在做自平衡车的,路过都顶下哈~~

此贴的价值:
1.车的成本相对来说很低;
2.所有代码,电路开源(都是模块插线,没有PCB的。。);
3.这个上位机真的很实用。没有示波器或者不方便用示波器时候,用它显示波形很爽的,并且可以保留历史波形哦!在做此车过程中,我先后用它看了角速度、加速度、陀螺仪积分的角度、KALMAN滤波的角度、车运行过程中的角度、电机空载速度、PI闭环的空载调速曲线(此车没用速度闭环)、车位移等曲线。很直观!发送数据的协议很简单,上面已经讲过。而且代码开源的,自己可以在此基础上增加、改善一些功能。

吹牛完毕,谢谢~

tedden 发表于 2011-1-16 14:18:24

顶一顶,楼主照片里的木板子上刻的是秘笈吗?

wanglequn 发表于 2011-1-16 22:37:49

mark

esdart 发表于 2011-1-16 23:43:45

收藏一下,好东西,。

largolun 发表于 2011-1-17 00:06:42

LZ的电机+轮子+联轴器在哪買呢??
可以給個地址嗎??

KEKEMUYU 发表于 2011-1-17 08:10:42

mark

gpfrank 发表于 2011-1-17 08:50:34

mark

feng741 发表于 2011-1-17 11:02:58

回复【34楼】largolun
-----------------------------------------------------------------------

不知道可不可以贴淘宝地址,有做广告的嫌疑啊。。。
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_611628AADQDJ.JPG
都是一个店的 (原文件名:未命名.JPG)

dkld_720 发表于 2011-1-17 11:56:33

LZ买的太贵了,MMA7260才13,ENC-03为18,我也买了许多元件,但AVR单片机不太懂,一直没敢开工。正在学习,刚设计了个实验板。另外驱动电路是自己做的,分立元件的,体积稍大,但效果很好。向楼主学下中。。。。。

niba 发表于 2011-1-17 12:24:24

哪个组织下器材的套件。。我定一套

kerrwang1982 发表于 2011-1-17 12:39:33

学习中,

feng741 发表于 2011-1-17 13:05:57

回复【39楼】dkld_720
-----------------------------------------------------------------------

是有点贵当初买的时候也看了其他店子,有像你说的很便宜的,但是你也要考虑邮费起码10元吧,那个MMA7260挺好的别看要48元,是已经做好的模块,而且有插针,可以直接插在万用版上的,你要是13块钱买个芯片的话,要是没风枪的话,不好焊吧,我是不会焊,呵呵。其他店类似的模块也要30多吧,再加个邮费也差不多了。但客观的讲,那个店确实有点点贵,但是所有东西一次性都买齐了。

做此车不是非要用AVR的,只要速度、外设够用就可以!需要的外设上边都有说。关键要懂算法!

feng741 发表于 2011-1-17 13:13:10

回复【26楼】headline
-----------------------------------------------------------------------

回复【31楼】tedden
-----------------------------------------------------------------------

“告示:此铁门已坏,请同学们出门时,多多留意!”呵呵呵呵。此木板非本人床板,是用来做车底座的,垫在床上做实验的,床有点不平。。。

lin1936 发表于 2011-1-17 15:15:18

楼主你好,能不能具体说下卡尔曼滤波在算法,先谢过了

zieous 发表于 2011-1-17 15:40:05

mark,天才哦,malar

largolun 发表于 2011-1-18 10:19:52

請問lz車子的偏角是怎么算呢??
是用陀螺仪, 還是用兩個速度传感器算的呢??

真是要向牛師兄請教一下, 感謝感謝!!

dkld_720 发表于 2011-1-18 13:54:10

回复【42楼】feng741 梦不落
-----------------------------------------------------------------------

我1元钱买了PCB空板,不过mma7260确实不好焊,我用热风枪吹了好几次才成功,我都担心把芯片烧坏,后来试一下没坏,其实还是买成品模块放心。刚把AVR实验板焊成,正在编程序学习。慢慢来吧,只有趁工作之余鼓捣一下,不过看你利用mma7260和ENC-03成功做成了小车,我就有信心了做了。

feng741 发表于 2011-1-18 15:44:20

回复【44楼】lin1936 林鸿贵
-----------------------------------------------------------------------

其实我也是一知半解,给你推荐篇文章
卡尔曼滤波介绍中文版ourdev_611837OCLGOY.pdf(文件大小:540K) (原文件名:kalman_intro_chinese.pdf)
卡尔曼滤波介绍英文版ourdev_611838G0F5Z1.pdf(文件大小:173K) (原文件名:kalman_intro.pdf)
文章从头开始看,看完离散卡尔曼滤波那一节,就会理解很多。后面扩展卡尔曼我看不懂,最后面举了个例子,好好看下。

卡尔曼C语言ourdev_611839GC1Z3U.txt(文件大小:7K) (原文件名:kalman.txt) 再看下这个程序。和我用的结构差不多的(我的是抄zlstone的,他貌似也是复制的,呵呵,最难的就是卡尔曼)。 下面是我的:
void Kalman_Filter(float angle_m,float gyro_m)                        //gyro_m:gyro_measure
{
        angle+=(gyro_m-q_bias) * dt;//先验估计
       
        Pdot=Q_angle - P - P;// Pk-' 先验估计误差协方差的微分
        Pdot=- P;
        Pdot=- P;
        Pdot=Q_gyro;
       
        P += Pdot * dt;// Pk- 先验估计误差协方差微分的积分 = 先验估计误差协方差
        P += Pdot * dt;
        P += Pdot * dt;
        P += Pdot * dt;
       
       
        angle_err = angle_m - angle;//zk-先验估计
       
       
        PCt_0 = C_0 * P;
        PCt_1 = C_0 * P;
       
        E = R_angle + C_0 * PCt_0;
       
        K_0 = PCt_0 / E;//Kk
        K_1 = PCt_1 / E;
       
        t_0 = PCt_0;
        t_1 = C_0 * P;

        P -= K_0 * t_0;//后验估计误差协方差
        P -= K_0 * t_1;
        P -= K_1 * t_0;
        P -= K_1 * t_1;
       
       
        angle        += K_0 * angle_err;//后验估计
        q_bias        += K_1 * angle_err;//后验估计
        angle_dot = gyro_m-q_bias;//输出值(后验估计)的微分 = 角速度
}

我只能帮这些了,我的方向是运动控制方面,KALMAN貌似在信号分析相关专业会学的,所以我也没细看了。上述程序我是直接复制过来的,只改了采样周期,剩下一点没动(还加了点注释,呵呵)。有关KALMAN的详细解释一般都是外国网站的,中国的都是扯淡。我做这个车的目的就是想搞下PID,怎么获取角度是次要的东西。

feng741 发表于 2011-1-18 15:51:12

回复【46楼】largolun
-----------------------------------------------------------------------
需要两个传感器,角速度传感器(ENC-03MB)、加速度传感器(MMA7260)。AD测量并转换得两者数据,送KALMAN滤波,输出得到角度(angle)、角速度(angle_dot),就可以用了!

P.S.我不姓牛啊!

bbsview 发表于 2011-1-18 16:18:03

这么好的贴子,帮楼主顶一个,等我技术成熟了,也做一个玩玩

largolun 发表于 2011-1-18 17:27:24

回复【49楼】feng741 梦不落
-----------------------------------------------------------------------

两个传感器得到的数据是什么呢??
是角度還是角速度呢??
我用了角速度传感器和加速度传感器得到傾角是沒問題的, 但對車子計算偏航的角度就出現問題了
因為加速度传感器沒法對角速度传感器進行誤差補償, 這方面lz是怎么解決呢??

牛師兄只是稱讚lz真牛...呵呵!!

feng741 发表于 2011-1-18 17:34:02

回复【51楼】largolun
-----------------------------------------------------------------------

就是角速度和加速度啊!要得到角度需要卡尔曼(KALMAN)融合,可以活得很精确的角度。如果用我那段程序需要根据自己的采样周期修改dt的值,我的是6ms,所以dt=0.006。

largolun 发表于 2011-1-18 17:53:50

回复【52楼】feng741 梦不落
-----------------------------------------------------------------------

用卡尔曼融合角速度传感器和加速度传感器的数据, 這里明白了, 也可以得到傾角, 因為有對地面的加速度是不變的, 也是1g
到了計算偏航的時候, 沒有了地心引力, 就頭痛了

偏航的也是角速度和加速度嗎? 角速度传感器的数据得到gyro_m, 但怎么把加速度得到的数据算成angle_m呢?
我還是不懂呢!!

feng741 发表于 2011-1-18 18:59:07

回复【53楼】largolun
-----------------------------------------------------------------------

不好意思,我搞错了。送给KALMAN的数据应该是角速度、加速度计求得的角度而不是加速度。
        acc=acc-1650;//加速度测量数据-静态值
        acc=acc/800;//这里得到角度的正弦值
        if(acc>1)//算出的值可能大于1或小于-1,是错的,所以限下幅
                acc=1;
        else if(acc<-1)
                acc=-1;
        acc=180/3.1415*asin(acc);//asin求反正弦,得出的单位是弧度,*180/pi得到角度值
        w=(gyro-1178)/0.67;//角速度值
        Kalman_Filter(acc,w);//角度,角速度。函数原型:Kalman_Filter(float angle_m,float gyro_m)

加速度计反正弦求出的角度静止时是很精确的,但是在运动(偏航就是运动吧)时由于有除重力附加的加速度,所以算出的角度将不准。角速度积分求出的角度,因为是积分,所以在累加过程中又慢慢的累计误差,慢慢得出的角度也不准了,角速度传感器本身也有温漂问题,也会造成影响。融合之后很精确。

largolun 发表于 2011-1-18 23:33:04

回复【54楼】feng741 梦不落
-----------------------------------------------------------------------

acc是加速度计是輸出, 這是一軸加速度計嗎? 就是說加速度計的方向軸是與車子的方向承直角, 這理解對嗎?

acc=acc-1650;//加速度测量数据-静态值<---這是減去0g輸出的值
acc=acc/800;//这里得到角度的正弦值    <---800這值...不理解...>,<

之後的都理解了, asin後換成角度, w是處理角速度传感器的輸出

還有的是, lz主控的AD是多少位的? 我的是0-5V換成0-1024的, 所以静态值太約3XX.
其實這也不是問題, 主要的是800是怎么計算的呢??

請教了...

largolun 发表于 2011-1-19 02:47:47

回复【54楼】feng741 梦不落
-----------------------------------------------------------------------

剛想到了一個問題, 車子向前左或前右轉的時間, 加速度計不是應該有兩個輸出嗎? 怎么只取acc一個呢?
想了想, 如果acc是與地平面承水平的話, 在asin的時候, 不會把別一個值成了1g(地心引力)吧? 那不是也在做傾角嗎??

ww29613025 发表于 2011-1-19 08:20:04

看图片,貌似是科大的校友啊,厉害啊。

charlie2008 发表于 2011-1-19 08:31:19

mark!

feng741 发表于 2011-1-19 10:37:40

回复【55楼】largolun
-----------------------------------------------------------------------

800mv见数据手册:点击此处下载 ourdev_612056WR1X9S.pdf(文件大小:197K) (原文件名:MMA7260QT_NoRestriction.pdf)
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_612058IR4YU3.jpg
(原文件名:QQ截图未命名3.jpg)
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_612060T88HEG.jpg
(原文件名:QQ截图未命名2.jpg)

除800mv得到的是多少g,假如0.2g,那么0.2g/g=0.2不就是正弦值么?然后再反正弦并把单位转成角度制。

我的AD用10位,参考电压用MMA7260模块自带的3.3V稳压电源(3.36v),参考电压越小越精确,但也别太小了。看下最大能测的加速度:(3360-1650)/800=2.1375,能测到2g多点,够用了。你用5V参考的话分辨率降低很多,也没有什么好处。MMA7260都是3.3V供电的吧,直接把电源线接到AD参考电压就行了。还有要考虑陀螺仪的量程,静态输出1.35V,由公式:
Output voltage = V0 + Sv x w
V0 :Static output (at angular velocity is 0 )
Sv :Scale factor
w : Angular velocity
最大能测的w为 -90 to +90 极限电压为1350 + 0.67*90=1410.3,1350 - 0.67*90=1289.7,落在参考电压3.36V内,没有问题。
另外AD最小能分辨3360/1024=3.28125mv电压,对于小于此值时的角速度是无法测量的(其实挺小的),用KALMAN滤波之后的角度很精确的。

largolun 发表于 2011-1-19 10:57:48

回复【59楼】feng741 梦不落
---------------------------------------------------------------------

在昨晚想到的, 車子向前左或前右轉的時間, 加速度計不是應該有兩個輸出嗎? 怎么只取acc一個呢?
想了想, 如果acc是與地平面承水平的話, 在正弦的時候, 那不是也在做傾角嗎??

這已猜到了是正弦了, 但是...
除800mv之前, 不是要把AD得到的数据換成電压值嗎? 例如我的主控AD是0-5V對應0-1023的, 先把AD值*5/1024 再除800m才對嗎?

傾角的計算(也就係除800mv後得到的是多少g, 再除1g的正弦)已經完成了
回到一直的問題, 是水平面的偏角, 如果z軸向天, 水平面就是xy面的角度變化, 沒有1g的參與, 這所以才令我頭痛了

feng741 发表于 2011-1-19 11:01:35

回复【57楼】ww29613025
-----------------------------------------------------------------------

是辽宁科大,还是湖南科大啊?我都不是啊,,呵呵,我是工程学院的。

largolun 发表于 2011-1-19 11:35:18

回复【59楼】feng741 梦不落
-----------------------------------------------------------------------

看懂了, 原來已經換成了電压,(3360mv-1650mv)/800mv=2.1375

但是xy面(z軸向天)的偏角還困擾著....

largolun 发表于 2011-1-20 11:10:42

回复【59楼】feng741 梦不落
-----------------------------------------------------------------------

lz, 傾角的計算已經完成了
水平面的偏角有辦法解決嗎?? 感謝...

feng741 发表于 2011-1-21 16:36:35

回复【63楼】largolun
-----------------------------------------------------------------------

不懂你的意思。。。
得到角度就行了呗,还算什么“水平面的偏角”啊?

flyinthesky 发表于 2011-1-21 22:37:48

回复【21楼】feng741梦不落
驱动我买的模块20块,卖家没提供电路图。应该是和这个一样的http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=1344216&amp;bbs_page_no=1&amp;bbs_id=1024。都是没加光耦直接接过去的。
-----------------------------------------------------------------------
没加光耦直接接过去的,能驱动起来吗?我现在苦恼,我没接,但是电机没转,我是用STC12C5A60S2单片机,用PWM调速。请指导一下!

feng741 发表于 2011-1-22 00:32:52

回复【65楼】flyinthesky
-----------------------------------------------------------------------
加光耦是为了隔离,跟“驱动”有什么关系啊?检查接线,测试各点电压、信号是否正常。

fsclub 发表于 2011-1-22 08:48:54

我来帮顶下。

fkepdcjgd 发表于 2011-1-22 10:36:43

你好,我现在也正在学习卡尔曼滤波,EKF,里面还有些细节不太明白,可以指点一下吗?

fkepdcjgd 发表于 2011-1-22 11:43:26

我得细看看,你是用的标准KF的,对吧

flyinthesky 发表于 2011-1-23 15:30:58

回复【66楼】feng741梦不落
回复【65楼】flyinthesky
-----------------------------------------------------------------------
加光耦是为了隔离,跟“驱动”有什么关系啊?检查接线,测试各点电压、信号是否正常。
-----------------------------------------------------------------------
http://cache.amobbs.com/bbs_upload782111/files_36/ourdev_613015UV7OXP.gif
(原文件名:L298_motor.gif)
通常情况,OUT1,OUT2电压时多少啊,我IN1接高电平,IN2接低电平,STC12C5A60S2的p1.3直接接到EN A。

ZRYXY 发表于 2011-1-24 15:55:58

我做了一个月没头绪,感谢你帮理清了,重新做一个,哈哈,请多多指导啊,师傅

ZRYXY 发表于 2011-1-25 16:29:18

看了半天,楼主你用了PID了吗?

ZRYXY 发表于 2011-1-25 17:23:08

请问下楼主,光有7260传感器能使他平衡吗?

feng741 发表于 2011-1-28 16:55:44

回复【70楼】flyinthesky
-----------------------------------------------------------------------

OUT1、OUT2间电压就是电机电源经过PWM斩波后的电压,你把ENA也进程高电平,就是占空比100%,这是OUT1、OUT2电压为电机电源电压回复【74楼】ZRYXY
-----------------------------------------------------------------------

7260是加速度传感器,在静止时测的是重力在相应坐标轴上的加速度分量,但是在频繁变速运动时在对应坐标轴上会有运动中的额外加速度,这就给获得真实角度带来干扰了,可能可以通过补偿获得角度吧,但是应该很困难了,呵呵,但是只用陀螺仪貌似可以的,乐高的就是只用的陀螺仪,也需要补偿了。
我用到了PID,PWM=ut=Kp1*角度+Kd1*角速度+Kp2*车速+Ki2*车位移。但是和传统的PID有点不太一样,一般PID就是单输入单输出,但这里给定为角度0和车位置0,输出为角度和车位置。其实用PID是最简洁、最粗糙的方法,效果好的话都用到了现代控制,我不怎么懂,呵呵。

flyinthesky 发表于 2011-1-28 18:32:45

回复【75楼】feng741梦不落
-----------------------------------------------------------------------
哎!单片机的接地端,没有跟L298n的接地端接在一起!现在电机会转了!

ZRYXY 发表于 2011-1-31 03:57:19

feng741 梦不落
你这个程序有些难啊,能不能简化下,程序主要的只留AD采集、卡尔曼滤波和PID计算PWM输出就能跑的,不要外围的车速检测、红外遥控、液晶显示、和键盘什么的,只留加速度传感器和角速度传感器以及PWM输出还有电机正反转换,底子薄的人看的好辛苦啊,看了五天了,眼花了,呵呵,麻烦你啦,LZ!

ccmj4708 发表于 2011-1-31 08:15:45

mark

jianchangd 发表于 2011-1-31 09:16:09

mark

lxw2087290 发表于 2011-1-31 12:14:22

mark

abner 发表于 2011-1-31 13:12:40

mark

guozs1984 发表于 2011-2-1 00:58:31

NB,支持下。

kai2529 发表于 2011-2-2 22:03:29

记号

bondxie3 发表于 2011-2-6 15:01:42

标记学习

rezire199847 发表于 2011-2-8 18:21:53

人气又旺了

rezire199847 发表于 2011-2-8 18:30:30

回复【77楼】ZRYXY
-----------------------------------------------------------------------

同感~~~~

424x3 发表于 2011-2-11 20:07:50

回复【楼主位】feng741 梦不落
-----------------------------------------------------------------------

我一个硬件倒是早搞定了   控制算法上卡壳了卡尔曼不太懂PID没调好   电机好像和你的一样的陀螺仪加速度传感器也一样只是主控用的飞思卡尔的16位单片机驱动用MOS管搭的等弄好了之后我也传来看看

424x3 发表于 2011-2-11 20:10:01

用labview配合无线串口在调

ZRYXY 发表于 2011-2-12 20:10:09

寻人启示


寻找楼主feng741 梦不落
你这个程序有些难啊,能不能简化下,程序主要的只留AD采集、卡尔曼滤波和PID计算PWM输出就能跑的,不要外围的车速检测、红外遥控、液晶显示、和键盘什么的,只留加速度传感器和角速度传感器以及PWM输出还有电机正反转换,底子薄的人看的好辛苦啊,看了五天了,眼花了,呵呵,麻烦你啦,LZ!

mosidao 发表于 2011-2-13 08:43:19

标记下呵呵

cqsgcqsg 发表于 2011-2-14 13:54:05

学习一下

rezire199847 发表于 2011-2-14 21:46:04

回复【70楼】flyinthesky
-----------------------------------------------------------------------

留个邮箱呗,我用的也是这个芯片,我也学51的,不过不是很懂,以后交流一下,谢谢

zhenhuah 发表于 2011-2-14 22:33:26

mark

qj0226 发表于 2011-2-17 13:10:09

呵呵    真的做的不错哈   学习一个·~    回学校咯    也准备做一个哈   努力!~

ZRYXY 发表于 2011-2-20 02:48:29

回复【1楼】feng741 梦不落
-----------------------------------------------------------------------

东西看起来简单,程序太复杂了

ZRYXY 发表于 2011-2-20 15:46:18

晕死了,楼主给的1602液晶电路怎么调都不出数据

ZRYXY 发表于 2011-2-20 23:19:31

程序整个通不过,10个错误

dkld_720 发表于 2011-2-21 08:53:12

我的也模仿成功了,效果还可以。下一步将小车美化一下,刚购买了十节镍氢电池,回头加在小车上,它就可以自由跑了。我调试时,将加速度获得的角度乘以3.5后才送入卡尔曼滤波的,不过还没理解卡尔曼滤波,在调试时发现小车对MMA7260反应偏小偏慢,所以就将其放大后才送入卡尔曼滤波的。

feng741 发表于 2011-2-21 12:54:59

回复【98楼】dkld_720
-----------------------------------------------------------------------
恭喜恭喜!

回复【97楼】ZRYXY
-----------------------------------------------------------------------
程序没问题的,你可以把错误发上来看看。1602不出数据的话,先单独调下,要特别注意对比度调节信号!!

zpwkxg 发表于 2011-2-21 14:04:03

想学习kalman滤波算法,谢谢楼主分享!

ZRYXY 发表于 2011-2-21 15:54:09

神人终于出现了
页: [1] 2 3 4 5
查看完整版本: 我的两轮自平衡车基本做完,给大伙瞧瞧~