找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 13763|回复: 22
收起左侧

自己用单片机做的双轮自平衡小车

  [复制链接]
ID:65690 发表于 2014-9-2 23:17 | 显示全部楼层 |阅读模式



ourdev_562071.jpg


ourdev_562072.jpg

ourdev_562073.jpg



控制器:ATmega16;8MHz;
加速度传感器:MMA2260;陀螺仪:EWTS82;
传感器的融合:卡尔曼滤波;
马达:EN_2342CR(速比64)+双路12脉冲编码器+CD40106对信号整形;
驱动板芯片:CD4001+IR2111+IRF1404(驱动电流可以很大);
注意事项:
1:IR2111的PWM不能到100%,否则不能充电;
2:由于轮速编码器精度不是很高,取得的信号要滤波,不然增强速度控制会发抖,不易控制;
建模、控制算法及PD调节的取值参考:

视频 :
http://v.youku.com/v_show/id_XMTgxNTAxOTA4.html
http://v.youku.com/v_show/id_XMTgxNTAzMTI4.html




其实控制很简单,利用定时器产生10ms中断,每次中断进行如下工作:
1:AD采样加速度传感器和陀螺仪,然后卡尔曼滤波得出角度与角速度;(滤波模块借鉴老外的)(互补滤波效果感觉不是很好);
2:计算车轮的速度,积分得出位置;
3:利用PD算法得出PWM值=K1*angle + K2*angle_dot + K3*speed + K4 * position;
4:前进后退给定参考速度计算即可;
注:
1:增量式轮速传感器A相中断,读取B相电位判断前进还是后退,在10ms的时间内累加,计算车轮的速度;
2:由于10ms累加的轮速信号不多,直接计算车体会发抖,所以增加了低通滤波,解决问题;
3:我在外面增加4个电位器可以手动调节4个K值,方便调试;
以上;

程序: 平衡小车.rar (1.44 MB, 下载次数: 460)

评分

参与人数 1威望 +5 黑币 +5 收起 理由
瑞雪 + 5 + 5

查看全部评分

回复

使用道具 举报

ID:65771 发表于 2014-9-3 22:38 | 显示全部楼层
没想到这么复杂。。。。
回复

使用道具 举报

ID:65937 发表于 2014-9-11 18:52 | 显示全部楼层
给力,学习学习
回复

使用道具 举报

ID:63427 发表于 2014-9-14 22:46 | 显示全部楼层
学习学习
回复

使用道具 举报

ID:65585 发表于 2014-9-29 09:21 | 显示全部楼层
牛人啊,学习了!
回复

使用道具 举报

ID:67152 发表于 2014-10-9 21:04 | 显示全部楼层
参考参考
回复

使用道具 举报

ID:67214 发表于 2014-10-11 12:48 | 显示全部楼层
略显高大上。。!
回复

使用道具 举报

ID:71012 发表于 2014-12-24 11:52 来自手机 | 显示全部楼层
也想做一个,不过得学习arm才行……
回复

使用道具 举报

ID:72053 发表于 2015-1-12 13:11 | 显示全部楼层
研究研究
回复

使用道具 举报

ID:76789 发表于 2015-4-13 00:10 | 显示全部楼层
高手在民间
回复

使用道具 举报

ID:78077 发表于 2015-4-28 23:16 | 显示全部楼层
我像下载,没有币哦,怎么弄到币呢?
回复

使用道具 举报

ID:78178 发表于 2015-4-29 06:30 | 显示全部楼层
技术范
回复

使用道具 举报

ID:95068 发表于 2015-11-21 18:34 | 显示全部楼层
好贴,加精。我最近也打算做一个,希望能交流下,QQ478377690
回复

使用道具 举报

ID:96613 发表于 2016-2-16 18:24 | 显示全部楼层
厉害。太厉害啦
回复

使用道具 举报

ID:115056 发表于 2016-4-18 21:05 | 显示全部楼层
太棒了
回复

使用道具 举报

ID:115056 发表于 2016-4-18 21:05 | 显示全部楼层
没有黑币怎么拿资料
回复

使用道具 举报

ID:25103 发表于 2016-4-30 18:15 | 显示全部楼层

 给力,学习学习
回复

使用道具 举报

ID:127462 发表于 2016-6-22 09:04 | 显示全部楼层
学习,学习一下,谢谢啦
回复

使用道具 举报

ID:225422 发表于 2017-8-14 09:04 | 显示全部楼层
你好,你的那句“3:利用PD算法得出PWM值=K1*angle + K2*angle_dot + K3*speed + K4 * position;”,这句话中的这个PID公式是直接针对两个电机的,还是只针对一个电机,然后两个电机分别有这个公式,并且每个电机的PID三个参数是不一样的?
回复

使用道具 举报

ID:232588 发表于 2017-9-12 22:13 | 显示全部楼层
头文件找不到啊
回复

使用道具 举报

ID:232588 发表于 2017-9-12 22:16 | 显示全部楼层
这个里面程序的头文件,显示无法找不到呢
回复

使用道具 举报

ID:237210 发表于 2017-10-4 11:29 | 显示全部楼层
好东东
回复

使用道具 举报

ID:1092949 发表于 2023-9-8 09:38 | 显示全部楼层
以前只是看了一下架构,现在有详细的资料,学习一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表