zoukankan      html  css  js  c++  java
  • V1机器人循迹板说明

    V1寻迹板使用说明

    本寻迹板说明分寻迹板模块本身与上位机两部分

    寻迹模块

    尺寸

    寻迹板用法

    寻迹板拥有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 00980000 76540000 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编写,软件界面设计,以及按钮意义都已在图中标明。

    使用姿势

    1. 使用usb转串口模块,按照正确的接线顺序连接到寻迹板上,寻迹板放到带有黑白线的试验场地上,寻迹板需要与地面保持一定的高度,注意:本寻迹板不支持自适应高度。 调试时候的高度最好与实际安装时的高度一样。

    1. 在上位机上选择对应的串口并打开,打不开的话,请检查串口问题。

    1. 开启调试模式,点击按钮”DBUG_ONOFF“,下方会提示DEBUG状态,当显示DEBUG mode open时表示调试模式已开启,灰度值显示区域内显示每个通道的灰度值。

    2. 使寻迹板保持高度不变,在场地上蹭来蹭去,保证每个通道都采集过黑线与白线的灰度值。

    3. 点击上位机上SET_ALLCHANNEL按钮,自动设定所有通道的阈值。如果有需要手动调整的话,可以拖动阈值设定区的拖动条。鼠标松开自动发送。 如果刚才的采样不准确,希望重新采样,点击CLEAR_MAX按钮。然后重新进行步骤4。

    4. 保存阈值,点击上位机左侧的SAVE_ALL_VALUE按钮,即断电保存数据设定完成。 就可以用了。

  • 相关阅读:
    让程序的性能提升10倍
    以正确的姿势实现一棵JavaScript菜单树
    利用php数组函数进行函数式编程
    yum安装下的nginx,如何添加模块,和添加第三方模块
    前端面试题 vue
    前端常用面试题目及答案-HTML&CSS篇
    使用after伪类,配合IE的zoom或者overflow清除浮动
    函数式编程
    在CentOS 7上安装Node.js
    node中__dirname、__filename、process.cwd()、process.chdir()表示的路径
  • 原文地址:https://www.cnblogs.com/Gentleaves/p/11009102.html
Copyright © 2011-2022 走看看