本帖最后由 21ic小喇叭 于 2016-5-30 08:48 编辑
这还是我两年前的作品,一直没有在论坛里发帖,最近我准备把这几年做的一些小作品陆续的分享给大家。 | 先上视频:
因为最初买底盘的时候,卖家螺丝缺了一颗,只好自己用铜柱去搭,所以就导致两个轮子承重不同,所以在视频中会出现“漂”的感觉,其次就是寻迹的时候小车摆幅较大,主要是因为两个传感器的间距大于黑线很多导致,调一调间距就ok了。
1.寻迹原理:
我们知道,黑色相对于其他颜色来说(尤其是白色),它的反光率很低,而小车正是根据这一特点进行路线状态的判断,红外对管他也是一种组合式的半导体元器件,它包含两部分,第一部分就是发射红外光部分的LED,另一部分则是感光的三极管,感光的三极管在光线强度不同是他的导通状态也不同(体现在集电极电流的大小),但是此时依然是模拟信号,我们希望得到单片机可识别的数字信号,那就要通过电压比较器来进行简单的模数转换了。
当光线增强时,感光三极管Ic增加,则对管输出的电压为VCC-Ic*R2,输出电压减小,当电压低于比较器参考电压则DATA端输出低,否则输出高,此时不就实现了对不同路线的探测了吗,只要找对电压比较器的参考点电压一切就OK。
此时就只需要通过单片机判断状态了即可了,下图是路线的判断(假设黑色线输出高,非黑色输出低):
2.避障原理
避障则是通过超声波传感器采集小车到障碍物之间的距离,然后将采集到的距离和设定的阈值进行判断即可,如果小于阈值,则停下,转向,反之正常行驶。
超声波传感器的采集过程大家可以百度,我主要说一下,传感器采集到的数据时声音传输的时间t,那么距障碍物的长度L=340*t/2,除2的原因是声波传输时间是发送和反弹后接收的两端时间和,因此要这样做。
3.速度控制
在最初上电之后小车虽然使用的减速电机,但是速度依然很快,到时小车跑的时候回废除跑道(不是因为单片机反应慢,而是因为马达动作是需要时间的)。
因此要通过PWM进行减速,51单片机生成PWM最简单的就是使用定时器了,这里大家可以看程序,但是要注意对于控制马达来说PWM的频率不能太低,否则小车在跑的时候就会“震颤”,整体精度就会降低,因此尽量是KHz以上的频率比较好。
4.舵机控制
只要给舵机一个20ms周期的方波他就可以按照占空比的大小转动对应的角度,当然还是通过定时器来实现,这里避障我是通过舵机转动三个角度来采集小车前面的广角区域那个方向的地方大,就往哪个方向跑。
|