复杂巡线设计
小车可以通过黑白循迹传感器进行循迹。
原理:循迹传感器会将当前地面的反光度转化为数值,黑线与白线反光度不同,转出的数值也不同。
循迹传感器自身存在监测上下限,我们假设循迹监测范围为0-65555。黑线反光为50%,白线反光为100%。
在光小于65555时较为准确,当光大于13万(65555*2)时,循迹传感器失灵。
原理
速度对循迹的影响
传感器每隔一段时间读取一次数值,通过设置阈值来判断当前地面为黑线还是白线。
假设我编写了一段程序:循迹到前面第二个路口停止,原理是:
路口 = 0
小车前进
如果 左循迹+右循迹同时为黑:则路口计数+1
如果路口计数为2,小车停止
如果速度过快,则容易冲出路口,这很好理解。但如果速度过慢,容易重复判定路口(因为速度太慢,车认为自己已经走了多个路口)。
结论:可以通过观察小车的表现来查看当前速度过快还是过慢。
光与颜色对循迹的影响
我们假设地面有:白 、红、黄、绿、蓝、紫、黑。这样的色彩带。
越靠近白色的(浅色),数值越接近白色 。 越靠近黑色的(深色),数值越接近黑色。
假设我们纯白色的读数是100,纯黑色读数是0。我们编写的判断阈值是50:大于50的判断为白色,小于50的判断为黑色,
如果我们的地图贴了反光的膜,那么不论地图是什么颜色,读取的数值都一样。小车会无法分辨地面的颜色,无法循迹。对应的情况就是:小车乱跑。
如果地图上存在一种不深不浅的颜色:譬如蓝色。
它的读数刚好是40-60,你的循迹程序就会出现不稳定的情况,因为这个蓝色有时被读成黑,有时被读成白。
想要程序稳定,可以把阈值写为39,这样蓝色稳定被判断为白色,也可以设为61,这样蓝色稳定被判断为黑色。
但是还没有结束,以上仅仅是白天的情况。
在晚上照明不足的情况下,你会发现这个蓝色又被读取为30-50,如果你之前设置的阈值是39(介于不稳定中间),你会发现程序又失效了。
结论:循迹程序稳定的前提,是循迹传感器的判断稳定。充分考虑光照、地图背景色、地图膜对循迹传感器的影响。