科联智能小车竞赛经验分享。
novakon2014/04/22电子技术 IP:广东
本帖最后由 novakon 于 2014-4-24 18:40 编辑

我相信有很多在校的工科学生会参加这样的比赛,而参加的时候又手忙脚乱的。

我参加的是华南农业大学工程学院科技联合会的智能小车比赛,并在比赛中获得了第一名。

参赛经验如果不分享出来,烂在我肚子里面,就太浪费了。希望下面这篇文章,可以帮助刚接触这类比赛的同学,节省一部分时间,同时多学一点东西。
如果正在看这篇文章的你是一个高手,或者自认为是高手,那么欢迎提意见,但不要搞人身攻击;我写这篇文章本就不是给各位高手看的,只为给参加这种入门比赛的新生介绍经验,自然不会写的很高深;而这也并不代表我的水平很低。

智能车比赛,其核心在于智能车的设计与制作;而小车的设计与制作都必须以迎合比赛规则为准则。所以,首先我们来看看比赛规则:

QQ截图20140422100859.jpg

下面我根据实际参赛情况,解释一下这几段话。

参赛车准备完毕后位于候车区,待官方车开动行驶,方可出发跟随官方车循迹行驶。

简单的说,你的车前方有一辆官方车,你的车在前进的时候,不仅要保持和官方车之间的距离(“跟随”),同时还要靠地上的黑线来维持方向(“循迹”)。
首先讲一下循迹。这类比赛中,“循迹”一般是指地板上有一条黑胶带粘出来的黑线,小车通过一定的方法,来跟随这条黑线行走。
这有点像汽车的自动驾驶,根据路的走向调整方向,使车保持在路中间。基本的思路:先检测黑线所在的位置(偏左、居中、偏右),然后决定小车向哪边转向。比如,当地板上的黑线处于小车中线偏左的时候,说明小车不是在黑线的正上方而是偏右。此时控制小车向左转,直到黑线回到小车正下方。如果地板上的黑线偏右,则控制小车向右转……如此一来,小车会不断地试图通过转向保持自己在黑线的正上方,于是就实现了跟随黑线行走的功能,也就是所谓的循迹。

黑胶布和白塑板都是很容易买到的(测试的时候需要用),不赘述。淘宝有很多店铺直接卖整一套循迹小车方案的,这一类小车基本上是用红外对管来实现黑线检测的。红外对管,就是一个红外二极管和一个光敏三极管,我们给二极管通电令其发出红外光,红外光射到物体上反射回来,被光敏三极管收到,使得光敏三极管导通。三极管的导通电流与收到的光线强度有关,光线越强电流越大。只需要串一个电阻,就可以将这个电流转换为电压。如果对管的下方是白色地板,则反射强烈,电压高;如果下方是黑色胶布,则反射弱,电压低。把这个电压和某个固定电压值进行比较,即可决定某对管下方是否有黑线。淘宝上买到的商品循迹模块,使用运放或者电压比较器作电压比较(比较结果以高低电平的形式输出给单片机),固定电压值通过一个电位器(可变电阻器)来调节,可以通过用螺丝刀拧的方法调节灵敏度。很多新手不明白这类循迹模块的原理,不懂怎么调,最终导致循线失败。

我直接使用了红外对管(相对于商品模块更便宜),配合几个电阻焊在洞洞板上。电压的采集和比较是用单片机完成的;我的程序比较三对对管返回的电压值,哪边电压低(亮度低),就往哪边转向,低速下效果很好。且不需要调节电位器之类,因为是红外对管之间的电压值(也就是亮度值)互相比较,而不是与某个设定值比较。

阳光中有很多红外成分,会导致红外对管输出值偏高,在强光下应采取一定的遮光措施。有的同学在宿舍试着可以,去到现场就翘辫子,可能是因为这个原因。

那么再讲一讲“跟随”。所谓跟随,就是在行进过程中要保持和前车距离不能太近,但又不能太远。这就需要检测距离,常用的方法是超声波模块测距(也就是我以及所有参赛者用的方法)。这个模块在淘宝可以买到,很便宜,使用就不讲了,大家自己上网找。

一段时间后,官方车停止行驶(约在总赛道1/3路段),参赛车也须停在其后,
待官方车再次行驶,即可加速利用超车道超越官方车,并回到主车道继续循迹至终点。


参赛车停在官方车后、等待官方车驶离,这都是靠超声波测距实现的,不赘述。如果非要讲,就是不断地检测与前车的距离,当距离太近的时候停车,距离太远的时候跟上。当距离足够近并保持一段时间,说明官方车已经停车;当距离再次增加,表示官方车重新启动,此时可以超车了。

后面讲到超车,这里所谓的超车,路线我已经在图中用红线给出了。这一段我把它叫做“盲跑”,因为地板上没有什么东西能够辅助你找到方向;那个虚线第一是无法用来循迹,二是离官方车太近,只是作为装饰用途,而且从那里走会蹭到官方车,输掉比赛。
参赛者们为此想了很多办法。一个最简单且被广泛使用的方法:让马达以一个固定的速率转一段的时间,再以另一个速率转另一段时间……由于时间和马达的功率都是固定的,所以走出的折线轨迹基本上也是固定的。通过不断的尝试和调整,最终你的小车将会刚好走出一条从官方车旁边超车的轨迹。师兄们把这种方法称为定时跑。超车完成之后,就恢复红外循迹功能,跟着黑线走到终点,比赛就完成了。

--未完待续
+50  科创币    yanli12321    2014/04/22 赞一个
+500  科创币    虎哥    2014/04/23 感谢分享
来自:电子信息 / 电子技术
7
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
novakon 作者
10年8个月前 IP:未同步
683851
本帖最后由 novakon 于 2014-4-22 12:10 编辑

下面来谈谈用什么马达,怎么驱动,以及单片机供电。

最常见的当然也是淘宝销售的这种带减速箱的马达了:

QQ截图20140422110618.jpg

我用的就是这种(但不是在这家店买的,不要说我打广告)。
这种马达要达到比较像样的输出,需要两节18650锂电(8V)供电。如果参赛的小车比较重,可能需要12V供电。我的小车比较轻,所以两节就够了。

大功率大扭矩的马达是给擂台赛用的,做循线车不需要买。

马达驱动:马达是大电流器件,需要用一定的电路来驱动(而不能通过单片机的逻辑电平输出驱动),这个电路接受来自单片机的控制信号,决定是否在马达两端施加某个电压。
这次比赛里面除了我之外,其他人都用了L298。 它的优点很明显:因为是一款老芯片,所以非常便宜,拆机的298价格不堪入目;而且淘宝也能直接买到很多298的成品驱动板,同样也非常便宜。最重要的是,它通过1片IC,就实现了两个H桥,可以控制左右两边的电机,非常省事。

QQ截图20140422111943.jpg

可见其泛滥程度。
当然,L298的缺点也是明显的。由于使用三极管开关,L298的H桥导通时会产生很大的压降,我们看看它的datasheet就知道了:

QQ截图20140422112030.jpg

对于800mA电流,高端和低端驱动会产生1.2V左右压降,加起来就是2.4V。如果你的电池是8V的,经过L298之后,加在电机两端的电压就只有5.6V了。这也就是为什么当天参赛的车基本上用的电池都比我用的要多,且跑得也不快。所以如果想要实现高效率的驱动,应该购买采用场效应管开关的电机驱动芯片或者模块。

值得一提的是,有一部分不明真相的擂台赛选手用这个做驱动。2A电流时,H桥压降居然有4V之多。L298是为30V左右的驱动电压设计的,用低压的话,效率太低了。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
novakon作者
10年8个月前 IP:未同步
683962
未完待续,占楼
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
novakon作者
10年8个月前 IP:未同步
684154
美图欣赏

DSC_0268s.jpg
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
上级专业
同级专业
novakon
学者 机友 笔友
文章
1256
回复
8386
学术分
16
2008/03/29注册,2年10个月前活动

已走,勿送

主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}