第27章 收集龙珠第一颗
陈星擦干脸回到教室,不再胡思乱想。
他从纸盒中拿出那本《ST lib开发指南(Beta 1.0)》,唤出AR界面去扫描上头的内容。
AR很快给出了提示:界面中除了少数几个黄色标签以外,大量的都是白色标签。
此前陈星只接触过:红色、黄色、绿色的标签,对于学习完成充分领悟的知识则是没有标签。而眼下却出现了新的标签--白色。
好在AR很快就给出了解释:【白色:工具手册类内容,用到时查阅即可。】
陈星翻到了某一页讲ST的timer(定时器)配置的章节。
timer是单片机上的常用外设,常用于各类要求精确计时的场合。比如小车上的红外测距功能,就需要timer来精确计算红外线从发射到接收的这段时间。
因为红外线本身就是光波,其传输速度就是光速--30万千米每秒。
这么快的传输速度下,利用红外线的反射来测距,就必须精确计时。一个微秒的误差就是300米,考虑到来回折返,除以2就是150米的误差。
这种级别的计时靠一些时钟芯片是根本不可能实现的,只有靠高精度timer,在RTOS的高实时辅助下才能实现。
陈星看着眼前的内容。只有关于timer的阐释部分标注有黄色标签,其余大篇幅的内容都是白色。
他已然明白。在明白原理的情况下,如何配置芯片使用timer,不过就是顺手查资料的事情。那自然也就谈不上理解和死记硬背。
半节自习课下来。timer部分的内容就已经变成了绿色标签,显示着陈星对其有了不俗的理解。
陈星查阅了下资料,张浩东寄过来的这块开发板,其CPU是stm32f103。这款芯片的最高主频达到了72MHz,这和Intel那些动不动上GHz的芯片自然不能比,但在眼下的单片机领域已经很厉害了。
stm32f103的定时器最高主频也是72MHz,那在此基础上的红外测距理论最小误差为:光速除以主频,再除以2。由于红外测距时红外线打到物体表面反弹回来,实际上是跑了个来回,所以需要除以2。
3X10的8次方米/秒除以 72X10的6次方振动/秒,那一次主频振动能测得的距离是。。。
陈星还是打算用计算器算,他可不想找虐。虽然高考不允许用计算器,但是在陈星看来,计算加减乘除除了考验耐心以外,简直是一无是处。有计算器不用,简直傻帽。
可也因为高考不允许使用计算器,因而老师平时也不让大家使用。陈星只好跑去问林悦借文曲星。他记得林悦的那个文曲星功能很强大,甚至还自带科学计算功能。
陈星不是惧怕眼下的这个计算,毕竟这个计算其实就是300除以72。他是因为接下来还有其它运算,他不想每次运算都要手工解决。
林悦自然是乐意借给他的,可不巧,那文曲星坏了,眼下开不了机。
这下陈星无奈,只好拿出纸笔手工运算。
300除以72,约等于4.167米。再考虑到折返除以2,那就是2.083米。
那也就是说,基于stm32f103的红外测距,理论上的最小误差是2米左右。
而这仅仅还是最佳情况下的理论计算。还需要考虑到各种实际情况,比如:红外线的反馈触发要靠中断,中断抢占耗费的时钟周期。还有读取定时器计数的时钟周期。红外反馈中断触发本身需要耗费的时间。
总之,即便在不存在的最理想情况下,这个最小误差都达到了2米,那实际应用中的误差很可能会超过10米。
那这个测距还测什么,10米以内就测不准了,根本就是个摆设。
陈星想起竞赛官方的开发套件,S3C2440的主频最低都有200MHz,官方套件里很可能用的还是高版本的芯片,那主频弄不好还会更高。
假如主频能达到400多MHz,那也就是比眼前这块stm32f103快了6倍左右,那这个误差就能极大缩小。再优化红外反馈的触发速率,多重优化之下,很可能会把实际误差控制在一米以内。那这个在竞赛场上也能展示一把了。
可是自己眼下没有高频S3C2440,且陈星相信AR给的建议。那么就只有一种可能--竞赛官方的整体方案本就存在不合理。在使用了超出实际性能要求的CPU的情况下,就可以仗着主频高性能强,从而实现力大飞砖的效果。
简答来说,陈星此刻感受到了一波“算力压制”。
纵然方案不合理,奈何人家算力足够强。
陈星立马冷静分析。
AR推荐用单片机绝对不会错,且AR推荐的单片机主频只需36MHz,眼下自己收到的还是72MHz的,已经是超额了。
那也就是说,测距这功能的实现,或许可以不依靠单片机自身。
陈星想到此处,AR又适时跳了出来。
【恭喜你,意识到模块化和集成化的概念。】
陈星冷眼看着AR界面。他已经渐渐习惯了自己探索,然后AR适时出来当马后炮。
模块化?集成化?陈星思索着,用人话说,岂不是就是去找个能单独实现测距的模块,然后和单片机来个通信就好了。
顿时,AR关于此次竞赛项目的知识点列表中,todo tips的第六项,更新了。
【6,简易红外测距】变成了【6,用测距模块实现测距(已完成)。】
陈星的其中一个待学习知识点变成了“已完成”。
这是他第一个完成的知识点,同类的待完成知识点还有7个。陈星此刻感觉自己就像在收集龙珠,只不过他要收集的龙珠是8颗。而他现在终于拿到了第一颗龙珠。
随后他意识到一个问题。尼玛,AR还没告诉他到底用什么测距模块。连模块型号都不知道,就算已完成了?
思忖了片刻,陈星猜想,会不会是因为AR将理解和实操做了区分。毕竟在理解掌握的情况下,实操不过就是花费时间而已。
而陈星瞬时想到的实操第一步,就是上网去搜索“用什么测距模块物美价廉,还能和单片机对接”,就是这么简单直白而又粗暴。
解决问题最重要的永远是找到方向,找到正确方向之后具体解决办法往往就是简单而又粗暴。就如林悦看数学题一般,每次陈星讲解后她几乎都能听懂,可她就是不明白为什么陈星会想到对应的解题思路。
就在陈星低头忙碌之际,王哲有意无意一直往他这里看。王哲隐约看到了资料上密密麻麻的代码,他此刻对陈星手里的资料充满了好奇。他想知道这和他花高价读的辅导班的资料有什么不同。
陈星则全然不在意。直到下课时间,李进特地告诉了他一件事。
原来李进刚刚跑到办公室外头时,还偶遇了王哲。不过两人一照面,王哲就溜走了。
陈星这才往王哲那里看了眼。被陈星一眼望过来,王哲犹如做贼心虚一般转头四顾。
“他可能是去找老师答疑的吧。”陈星对李进道。
“他那会儿手里没拿任何东西,答什么疑。”
“总不可能像你一样八卦跟踪我,他应该没那么无聊。”
李进冷笑了一声,“他确实不爱八卦,但他肯定爱嫉妒。你没看他刚刚盯着你手里的资料。”
“有吗?”陈星倒是挺无所谓的,这资料上头也没写什么保密等级,“他要看的话,我直接给他看好了。”
“你傻呀。”
“我第一次去辅导班上课时,他也给过我资料看的嘛。”
“我跟你说,他就是表面装清高。这会儿说不定骨子里正煎熬呢。”
陈星没有继续这个话题,他没兴趣也没那个功夫去理会。