标签:uart off 指示 设计 方便 灰度 需要 一个 意义
本寻迹板说明分寻迹板模块本身与上位机两部分
寻迹板拥有10个灰度传感器通道,其通道顺序定义如下图,从左往右依次为1-10通道。每个红外对管正上方有一个指示灯,用于指示其传感器的黑白线状态。板上丝印为UART的接口为寻迹板的串行接口,寻迹板的上位机调试以及单片机连接寻迹板都使用此串口。另外两边的IIC接口等待后续开发,暂时不用。寻迹板正常运行时,板上按键侧边的state指示灯会闪动。
寻迹板的阈值和参数调节主要依靠电脑端上位机来完成,上位机用法点这里。以下说明只针对已经通过上位机调节好参数的寻迹板连接单片机时的状态。
寻迹板使用的波特率为57600
,且不可更改,当单片机连接寻迹板的时候,可以设置的东西如下(所有收发的包均以7个字节为单位):
指示灯设定 : 7B | 0e | 0关1开 | 00 | 00 | 校验和 | 7D
巡线值是否发送: 7B | 0d | 0关1开 | 00 | 00 | 校验和 | 7D
指示灯设定 : 7B | 0e | 0关1开 | ‘O‘ | ‘K‘ | 校验和 | 7D
巡线值是否发送: 7B | 0d | 0关1开 | ‘O‘ | ‘K‘ | 校验和 | 7D
指令中的指示灯设定指令用于开关寻迹板上的10个指示灯,如果你不希望它在运行的时候闪来闪去的话可以关掉它,也可以使用上位机完成此项功能,不过为了防止寻迹板卡死的情况,此项功能是不可以断电保存的。也就是说如果你不喜欢它开指示灯的话,每次上电都要设置一下。
指令中的巡线值是否发送指令用于开关寻迹板自动发送巡线值的功能,为了保证寻迹板返回巡线值的实时性,在此设计成寻迹板自动向主机发送巡线值。关闭此功能的话,寻迹板就不会发了。同上,此项功能设置后断电不会保存。
寻迹板上电一开始会进行指示灯自检,10个指示灯轮流点亮,以方便人眼观察寻迹板是否有问题,然后就是正常运行了。
寻迹板正常运行时会以一定频率(大约100hz)发送当前寻迹板传感器下面的巡线值(0或者1) 其格式如下:
7B | 04 | 三个字节 | 校验和 | 7D
其中的(三个字节) 包含了巡线值,其规则如下:
每一路通道的巡线值均用0 1 表示,寻迹板通道数量为10,寻迹板内巡线值用一个uint16_t 变量表示,寻迹板有10个通道,在此使用了变量中的低10位,第n位的bit值就是第n通道的巡线值。例如,0000 0011 1111 1111
表示寻迹板下面全是黑线, 0000 0011 1110 0000
表示6-10通道为黑线。
假设以 0000 0098 7654 3210 为巡线值,则三个字节的内容依次为 0000 0098、0000 7654、0000 3210 即三个字节的高四位都是0,不是巡线值,只是占位用的,字节的低四位为有效的巡线值。
还不懂的话可以看下寻迹板上单片机的发送程序:
CommandStart();
CommandSend(0x04);
dat = (uint8_t)(line_state >> 8) & 0x0f; //发送高四位
CommandSend(dat);
con += dat;
dat = (uint8_t)(line_state >> 4) & 0x0f; //发送中四位
CommandSend(dat);
con += dat;
dat = (uint8_t)(line_state) & 0x0f; //发送低四位
CommandSend(dat);
con += dat;
CommandSend(con % 2); //发送校验位
CommandEnd();
校验位为和奇偶校验,除去包头包尾7B和7D
和校验位这三个字节,剩下四个字节转成10进制数加起来是奇数则校验位为0x01,偶数则为0x00。
示例程序:
/*为了防止和超限,最好转成整型再加*/
unsigned char command[5];
int sum = (int)command[0] +
(int)command[1] +
(int)command[2] +
(int)command[3];
command[4] = (char)(sum % 2);
上位机使用Java编写,软件界面设计,以及按钮意义都已在图中标明。
开启调试模式,点击按钮”DBUG_ONOFF“,下方会提示DEBUG状态,当显示DEBUG mode open
时表示调试模式已开启,灰度值显示区域内显示每个通道的灰度值。
使寻迹板保持高度不变,在场地上蹭来蹭去,保证每个通道都采集过黑线与白线的灰度值。
点击上位机上SET_ALLCHANNEL
按钮,自动设定所有通道的阈值。如果有需要手动调整的话,可以拖动阈值设定区的拖动条。鼠标松开自动发送。 如果刚才的采样不准确,希望重新采样,点击CLEAR_MAX
按钮。然后重新进行步骤4。
保存阈值,点击上位机左侧的SAVE_ALL_VALUE
按钮,即断电保存数据设定完成。 就可以用了。
标签:uart off 指示 设计 方便 灰度 需要 一个 意义
原文地址:https://www.cnblogs.com/Gentleaves/p/11009102.html