2016WER4.2软件巡线模块库说明表“巡线模块库”是专门针对使用地面灰度巡线的小车设计的用于巡线的模块库。使用该模块时要求地面灰度成排安装在小车的前方,灰度数量可以是5个或者7个。对于初学者建议先学习本书“6.4灰度传感器巡线原理”部分。*初始化*初始化模块是巡线机器人的配置模块,它定义了机器人上电机的接口配置和输出功率及转向、灰度传感器的接口配置、机器人巡线环境、灰度传感器阀值的取值系数等。①闭环电机:如果你使用的是速度闭环的电机需要勾选该项;如果是普通电机请勿勾选该项,否则您的电机转动时可能会一直保持最高速度。②(马达)通道:分为2个,对应机器人的左右电机分别接在哪个DC口上。③功率:电机的实际输出速度是程序中的速度值乘以该功率值。如果某一电机正转时机器人是后退的,可以把功率设置为负数,这样以后再设置电机速度时就不用考虑转向问题了。④地面灰度数量:如果您的机器人是使用7个灰度传感器巡线的,请选择“7灰度配置”;如果您的机器人是使用5个灰度传感器巡线的,请选择“5灰度配置”;如果您的机器人既不是使用7个灰度传感器巡线也不是使用5个灰度传感器巡线,那么这个“巡线模块库”不可用,您需要自己编写巡线程序。⑤(灰度)通道:定义机器人的灰度传感器分别是接在哪个I/O口上。⑥场地类型:如果场地上的线条是黑色的(场地白色)请选择“黑线”;如果场地上的线条是白色的(场地黑色)请选择“白线”。这里的黑色和白色是针对灰度传感器说的,比如玻璃是无色的,而灰度传感器会认为它是黑色。⑦是否打开DO:该功能决定是否将所有DO口都打开,如果选择“是”,在程序运行到该模块时,所有灰度传感器都会上电。⑧阀值偏移:我们取阀值(临界值)时一般都是“(小值+大值)*0.5”,在一些特殊情况下您可能需要让这个阀值偏向小值,这时只需要把这个“0.5”改小即可。需要注意的是这个值不能太小,如“(2+8)*0.5”算得阀值为“5”,如果您把“0.5”调整到“0.1”时,他就没有意义了,因为此时的阀值比最小值还要小。注意:初始化模块是机器人的配置文件,无论是巡线程序还是采集传感器阀值,第一步都要有这个初始化模块。初始化模块一般在程序的最开始部分,但是如果机器人运行过程中场地类型发生了变化,如由白底黑线变成了黑底白线,则需要增加一个初始化模块。初始化模块是把必要机器人配置信息保存在了程序的全局变量中。*环境采集*①模块功用于采集地面灰度的阀值,如果机器人只是在某一种类型的场地上运行,只需要选择对应的一个类型即可,如果机器人会在两种场地上运行您需要两个场地都选择。②在程序中,环境采集模块前面必须有一个初始化模块。③程序下载运行后,可根据控制器界面提示操作。以两种类型都选为例,会经历以下几个步骤:A.是否进行环境采集,通过左右键选择“YES”后,按“ENTER”键后进入检测界面。屏幕会提示把灰度传感器放在黑线(BLACKLINE)上。B.把灰度传感器放在黑线上(放在白底黑线的场地上的最白的黑线上)后,按“ENTER”键后等待,直到屏幕会提示把灰度传感器放在白底(WHITEGROUND)上。C.把灰度传感器放在白底上(放在白底黑线的场地上的最黑的白底上)后,按“ENTER”键后等待,直到屏幕会提示把灰度传感器放在白线(WHITELINE)上。D.把灰度传感器放在白线上(放在黑底白线的场地上的最黑的白线上)后,按“ENTER”键后等待,直到屏幕会提示把灰度传感器放在黑底(BLACKGROUND)上。E.把灰度传感器放在黑底上(放在黑底白线的场地上的最白的黑底上)后,按“ENTER”键后等待,直到屏幕会提示检测完成(OK)。F.如果该模块后面还有其他程序模块,在执行完E步操作后,程序会继续向下执行。注意:环境采集模块之前也必须要有初始化模块,否则将不能采集到正确的阀值。采集到的环境值会依次存储在EEPROM10-23中,其中EEPROM10-16中存储的是白底黑线场地上的阀值,EEPROM17-23中存储的是黑底白线场地上的阀值。如果在程序中需要使用EEPROM,请不要使用EEPROM10-23;您也可以通过直接修改到EEPROM10-23来修改阀值,而不用环境采集模块。*路口巡线*路口类型:单个模块中需要经过的路口是在左侧还是在右侧。选择路口类型按优先级参考2个条件①与下一步转弯方向一致,②如果下一步不需要转弯则选择路口少的一侧。巡线速度:当正中间的灰度压线时,两个马达中速度较快的一个速度值。左轮差速:当正中间的灰度压线时,左轮速度低于“巡线速度”的差值,用于走弧线。右轮差速:当正中间的灰度压线时,右轮速度低于“巡线速度”的差值,用于走弧线。循环次数:定义经过几个路口。每次按路口巡线都是以经过一个路口为一次完整的循环,循环次数就是经过多少个路口。冲过路口时间:冲过路口后继续前进的时间。结束后是否停车:执行完该模块后机器人是否停止。*按时巡线*当机器人目标点没有路口或者参考点时,可以使用时间控制前进距离,但需要注意的是前进距离由机器人速度和时间决定,而影响速度的因素包含程序中的参数、电压、地面阻力等,有些是不可控的,所以做不到精确控制。*高级巡线模块*该巡线模块的结束标志是某一传感器的返回值达到设定要求,如在某一I/O口(I/O7)上接1个红外传感器,在没有测到目标物体时返回值是3000,当返回值小于500时则测到了目标物体,那么他的停止条件就是“AI(7)500”。传感器端口号:负责触发结束该模块的传感器对应的I/O口号。比较符:比较运算符,取决于传感器返回值的变化趋势。参考值:触发结束该模块的传感器对应的阀值。*转弯*机器人的运动状态是由两个马达控制的,转弯是通过两个马达的速度差实现的(差动驱动)。如果把速度看做一个纯粹的数值(反向速度视作负数),那么机器人将会向速度值小的一侧转向。该模块完成1次转向的结束标志是部分灰度传感器依次扫过某一线条。过线条数:转弯转过的线条数。如在一个十字路口上实现180度转弯需要转过2条线。结束位置:决定机器人理论上应该停在“中间”、中间“偏左”还是中间“偏右”灰度上。实际上机器人是有惯性的,往往会转过一些,所以当高速左转时这里往往选择“偏左”。最终目的是转弯完成后机器人的姿态最接近理想状态。*启动马达*该模块主要用于电机控制,分为按时间控制和按传感器触发控制。如果是按时间控制,该模块结束时机器人停止动作,如果是按传感器触发控制,则可以选择该模块结束后机器人是否停止动作。传感器触发条件同样是结束该模块传感器返回值需要满足的条件。*按钮*在程序运行时,运行到该模块会暂停,当您按下“ENTER”键后会继续执行后面的程序。