智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 19568|回复: 36
打印 上一主题 下一主题

[单片机] 51单片机小车,不走直线!

  [复制链接]

1

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
322
威望
136
贡献
92
兑换币
79
注册时间
2014-8-1
在线时间
47 小时
毕业学校
大连理工大学
跳转到指定楼层
1#
发表于 2014-8-1 09:12:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1贡献
本帖最后由 五加六等于一 于 2014-8-1 09:15 编辑

新手没是那么经验,只是靠兴趣自学了单片机,又自学了C语言,现在做了一个基于51单片机的小车,处于程序调试阶段。大概说说我的小车吧,三个轮子,前面一个万向轮后面两个直流马达驱动另外两个轮子。直流马达采用ULN2803驱动,可以实现PWM调速。小车上一共备有四组红外传感器,Sensor01 和 Sensor02 分别测速 Motor01 和 Motor2,Sensor03 实现避障功能,Sensor04 备用以防不时之需。先上个图,Show 一下我的处女座小车,哈哈......
一开始楼主单纯的认为只要两边的Motor 给相同的电压就可以走直线了,所以随便调来了一个PWM就OK了。结果小车走的那叫一个歪,然后我在网上发帖求助,网友说开环控制不能实现小车直线,最好要闭环控制。然后我就构思了小车的闭环控制,闭环控制的程序流程图请参看下面的截图。

不幸的是小车还是不走直线,然后我就发现测速的两个Sensor有点问题,就是这个读出的数值有偏差,然后我就在同一个马达上调试了这个两个Sensor。如何调试?在红外发光端加大了限流电阻从220欧加到2K,调节红外接收极的分压电阻(滑动变阻器),然后用单片机的定时器定时30s 每个Sensor 收集21个数据,最终调试的结构如下面的截图。

最后我按照之前的思路编写了程序,可是小车还是不能走直线,所以在这里请各位大牛给点建议,只能谢谢了。







补充内容 (2014-8-14 11:05):
小车已经搞好了,视频链接: http://v.youku.com/v_show/id_XNzU1NTIxMzcy.html

附件: 您需要 登录 才可以下载或查看,没有帐号?注册
回复

使用道具 举报

56

主题

4914

帖子

3

精华

顶级版主

北京科技大学智能汽车队公共主页管理员

Rank: 11Rank: 11Rank: 11Rank: 11

积分
56131

特殊贡献奖章资源大师奖章论坛骨干奖章推广达人奖章优秀版主奖章热心会员奖章论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章

威望
19568
贡献
13933
兑换币
3365
注册时间
2010-7-22
在线时间
11315 小时
2#
发表于 2014-8-1 09:27:53 | 只看该作者
上陀螺吧。一个差不多的陀螺就能让你的小车走直了。
回复

使用道具 举报

10

主题

111

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1934
威望
940
贡献
560
兑换币
615
注册时间
2013-9-13
在线时间
217 小时
3#
发表于 2014-8-1 09:33:27 | 只看该作者
有编码器也可以吧   底盘下面应该有那种光栅编码器的接口
回复

使用道具 举报

3

主题

505

帖子

0

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
16509

在线王奖章活跃会员奖章优秀会员奖章论坛元老奖章

威望
12263
贡献
3306
兑换币
947
注册时间
2014-5-27
在线时间
470 小时
4#
发表于 2014-8-1 10:02:34 | 只看该作者
调占空比,直到走直线
回复

使用道具 举报

1

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
322
威望
136
贡献
92
兑换币
79
注册时间
2014-8-1
在线时间
47 小时
毕业学校
大连理工大学
5#
 楼主| 发表于 2014-8-1 10:04:48 | 只看该作者
aytc100 发表于 2014-8-1 09:27
上陀螺吧。一个差不多的陀螺就能让你的小车走直了。

可否详细说说你的方案,另外在不改造小车主题结构的前提下,是否有使小车走直线的方案?
回复

使用道具 举报

1

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
322
威望
136
贡献
92
兑换币
79
注册时间
2014-8-1
在线时间
47 小时
毕业学校
大连理工大学
6#
 楼主| 发表于 2014-8-1 10:07:16 | 只看该作者
hymwgk 发表于 2014-8-1 09:33
有编码器也可以吧   底盘下面应该有那种光栅编码器的接口

编码器?没有编码器! 小车是自己做的,主板自己画的,底盘在网上淘的。你说编码器就是测速的那个吧,我的小车也有测速模块,就是通过槽型红外传感器实现的。可是还是不能走直线。
回复

使用道具 举报

1

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
322
威望
136
贡献
92
兑换币
79
注册时间
2014-8-1
在线时间
47 小时
毕业学校
大连理工大学
7#
 楼主| 发表于 2014-8-1 10:08:00 | 只看该作者
whisker 发表于 2014-8-1 10:02
调占空比,直到走直线

你确定能够调到一个固定的占空比?
回复

使用道具 举报

3

主题

505

帖子

0

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
16509

在线王奖章活跃会员奖章优秀会员奖章论坛元老奖章

威望
12263
贡献
3306
兑换币
947
注册时间
2014-5-27
在线时间
470 小时
8#
发表于 2014-8-1 10:10:06 | 只看该作者
试试吧,我觉得应该是可以的
回复

使用道具 举报

1

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
322
威望
136
贡献
92
兑换币
79
注册时间
2014-8-1
在线时间
47 小时
毕业学校
大连理工大学
9#
 楼主| 发表于 2014-8-1 10:18:03 | 只看该作者
whisker 发表于 2014-8-1 10:10
试试吧,我觉得应该是可以的

我调试过了,找到了一个数,比这个数大1就左偏,使用这个数就右偏,如何解释?而且小车相同的参数设置,有时候左偏有时候右偏,这个又怎么控制?纠结。。。
回复

使用道具 举报

10

主题

111

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1934
威望
940
贡献
560
兑换币
615
注册时间
2013-9-13
在线时间
217 小时
10#
发表于 2014-8-1 10:32:11 | 只看该作者
五加六等于一 发表于 2014-8-1 10:07
编码器?没有编码器! 小车是自己做的,主板自己画的,底盘在网上淘的。你说编码器就是测速的那个吧,我的 ...

这种车底盘靠近轮子处有一个长槽口   电机上与轮子同轴应该可以接一个光电码盘   就是你说的那个红外传感器   两个是配套的   那个把速度传回来处理一下    设置让两个轮子速度一样应该可以了
回复

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-26 16:50 , Processed in 0.059431 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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