— 咨询热线 —400-311-5179
网站首页 pc蛋蛋幸运28 新闻资讯 产品中心 三极管的作用 厂区环境 三极管常识 在线留言 联系我们
咨询热线
400-311-5179
地址:广东省中山市国平村79号工
传真:020-58997130

光敏三极管

当前位置:主页 > 产品中心 > 光敏三极管 >

2、没有进行滤波处理

发布时间:2019-05-22

  1、红外发射管,将红外线信号发射出去,当遇到遮挡物是,会反射回来。如果当部分为黑色时,则不会发射回来(黑色能吸收光线,红外线在遇到黑色遮挡物时,被吸收)。接收管在接收到反射的红外线时,其两端的电阻发生变化,从而可以输出不同的电压值,最后根据这些电压值来识别路径。

  2、电压比较器能将连续量转变成开关量,在大于设定的阈值时,输出高电平,小于设定的阈值时,则输出低电平。

  3、ADC能将模拟量转换成计算机可以识别的数字量,可是自己对这些数字信号进行处理,对路径信息进行识别。

  将红外接收管输出的电压信号通过电压比较器进行电压比较,输出一个开关量,HCS12的IO读取电压比较器输出的开关量。安装若干个光电管排成一排,并且同时读取信息,当与发射管连接的IO口输入一个0值时,则判断黑色轨道在该光电接收管下,通过一定的算法即可求出黑色轨道和小车的偏移角度。

  b.道路信息为离散值,通过道路信息经过控制算法得到的控制信息为阶跃的而非连续的控制量,这对小车的稳定影响。

  将红外接收管输出的电压信号经过AD转换,等到数字量的的电压信号。通过对这些数字亮的处理可以得到近似于连续的道路信息。

  b.因为光电接收管本身参数的不同,在同样条件下,输出的电压可能有所不同,这对数字信号的处理带来难度。

  方案选择:因为是初次接触路径识别算法,为了小车能稳定的行驶,于是选择了较为容易实现的离散路径识别算法。

  1、光电接收管为16个,在离前轮Hmm的距离排成一排,同时检测道路信息,每个光电管之间的距离为15mm。

  当某位红外接收管检测到黑线时,则通过比较器,该位输出为0,未检测到的则为1。

  该程序仅仅为黑色轨道的路径识别程序,通过红外接收管检测黑色路径,然后,输出位置偏移的角度,并没有控制程序。不过如果得到了偏移角度,控制程序就很好处理了。直接将角度和相应的PWM占空比进行比较,输出对应角度的占空比,以控制舵机。

  如果加上舵机控制程序,就能形成了以个开环的自控控制系统,控制算法为模糊控制算法。很多人都说模糊控制算法很难理解,很不好用,可是从这个程序上看来,模糊控制算法还是挺简单的.只要根据自己的经验来设计一些控制量的表格,通过检测到路径信息然后和控制量的表格进行对比,输出对应的控制量。这就是模糊控制算法的思路。当然这也仅仅只是模糊控制算法的一点思路,有很多不足。

  1、没有发射管的驱动程序,默认为发射管一直在发射。这样的结果红外接收管在检测信息的时候,会受到很大的干扰,而且功耗很大,对整个系统的电流供应和功率输出有很大影响。

  改进方法:在用从一定方向逐个启动的方式进行检测。假如有4对红外发射接收管ABCD。先将D管的发射管开启,ABC发射管均关闭,读取D接收管的信息。然后在开去C发射管,关闭ABD发射管,读取C接收管的信息。依次读取每一个接收管的信息。以ns级的速度读取,可以近似的认为接收管是同时读取信息的。

  2、没有进行滤波处理。在读取道路信息的时候,可能会受到多方面的干扰,为了取得更加接近真实值的信息,有必要进行滤波处理,将干扰噪声剔除。

  3、位置处理和角度输出的时候没有按照经验进行适当的处理,比如说,在偏移角度很小的时候,可以近似的认为是在直线角,让小车能快速的行驶。

  4、上述程序中的采样周期是随意设定的,没有科学依据,在设定采样周期的时候,一定要通过计算出最优的周期,这样才能保证小车行驶的稳定性和前瞻性。

  暂时找到这么多缺陷,更多的缺陷以及改进还得在实际运用中去发现,去寻求解决的方法。

  1、重视源代码的保存。C语言具有很强的移植性,在不同的平台上尚且能进行移植,在同一个平台上就更容易移植了。我上边写的这写程序,其实很大部分都是之前ECT_SPEED程序里边写过,而我这次在编写程序的时候,根本不用重新编写,直接调用ECT_SPEED里边的程序就可以完成任务。

  我这个程序调用ECT_SPEED文件里的函数有:Init_MDC(), pllclk(),如果在大型的软件开发项目中,这样将会大大缩短程序的开发周期,降低程序的开发成本。

  2、重视程序说明文档的编写。这几天的编程练习中,在编程之前,认真思考,将整个程序的算法,流程都考虑清楚之后,然后将其通过说明文档的形式写出来。这样的好处是,使我在程序的编写的过程中,能一气呵成,不再像以前那样,一个稍微大一点的程序编写下来,还没编写完毕,就已经原来的思路忘记了。他的另一个好处就是方便以后阅读程序。

  3、编写程序的时候,一定要多想,而且从不同的角度去寻找解决问题的方法。在编写这个程序之前,在我的意识当中,是知道用一排红外检测管是可以检测出黑色轨道的,可是在处理轨道位置的时候,一直都不知道怎么处理,怎么才能让单片机知道黑线在那个地方。想了好久,才从角度的这个方向去理解,最终找到了位置处理的方法。

  4、一定要重视循环,尽可能多的使用循环。在上述程序的对比中,我第一感觉是用switch语句进行比较,当输入和whitch中的某一个case吻合时,执行相应的语句。可是在这样的情况下,得写28个case语句,并写与之对应输出语句。这样会大大增加程序的体积,这在单片机内存空间很少的情况下,造成的错误是致命的。

  为了节省存储空间,就开始寻求其他方法来解决这个问题。这样我想到了冒泡程序中逐次对比的方法。我这个程序的问题也可以用多次个循环来实现次比较啊,如果比较结果为真,则执行相应的语句。

Copyright © 2011-2018 pc蛋蛋幸运28 版权所有  技术支持: 伍七网络  ICP备案编号:粤ICP备57896651号网站地图