annysky2012 发表于 2022-1-8 22:06

【二哈识图人工智能视觉传感器】5.二哈传感器串口通信测试

<p><span style="font-size: 12pt;">【二哈识图人工智能视觉传感器】</span><span style="font-size: 12pt;">5.串口通讯</span></p>

<p><span style="font-size: 12pt;">二哈默认的通讯的波特率为9600,8位数据。</span></p>

<p>&nbsp;</p>

<p><span style="font-size: 12pt;">依据</span><span style="font-size: 12pt;">DFRobot 串口通信协议</span><span style="font-size: 12pt;">使用主机与二哈传感器进行通讯。</span></p>

<p><span style="font-size: 12pt;">二哈的</span><span style="font-size: 12pt;">通信命令帧格式</span><span style="font-size: 12pt;">如下:</span></p>

<table class="3">
        <tbody>
                <tr>
                        <th colspan="2">
                        <p><span style="font-size: 10.5pt;">帧头</span></p>
                        </th>
                        <th>
                        <p><span style="font-size: 10.5pt;">目的地址</span></p>
                        </th>
                        <th>
                        <p><span style="font-size: 10.5pt;">数据长度</span></p>
                        </th>
                        <th>
                        <p><span style="font-size: 10.5pt;">命令字</span></p>
                        </th>
                        <th>
                        <p><span style="font-size: 10.5pt;">数据</span></p>
                        </th>
                        <th>
                        <p><span style="font-size: 10.5pt;">校验和</span></p>
                        </th>
                </tr>
                <tr>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x55</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">0xAA</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">1字节</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">1字节</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">1字节</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">数据1~数据n</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">1字节</span></p>
                        </td>
                </tr>
        </tbody>
</table>

<p><span style="font-size: 12pt;">通讯格式的帧头是固定的,为0x</span><span style="font-size: 12pt;">55</span><span style="font-size: 12pt;">和0x</span><span style="font-size: 12pt;">AA</span><span style="font-size: 12pt;">,目标地址是二哈的地址,默认为0x</span><span style="font-size: 12pt;">11</span><span style="font-size: 12pt;">,命令字,</span><span style="font-size: 12pt;">命令字为返填主机发来的命令字</span><span style="font-size: 12pt;">。</span></p>

<p>&nbsp;</p>

<p><span style="font-size: 12pt;">命令字发送0x</span><span style="font-size: 12pt;">23</span><span style="font-size: 12pt;">,查看二哈学习到内容:</span></p>

<p><span style="font-size: 12pt;">命令如下:</span></p>

<table class="3">
        <tbody>
                <tr>
                        <th colspan="2">
                        <p><span style="font-size: 10.5pt;">帧头</span></p>
                        </th>
                        <th>
                        <p><span style="font-size: 10.5pt;">目的地址</span></p>
                        </th>
                        <th>
                        <p><span style="font-size: 10.5pt;">数据长度</span></p>
                        </th>
                        <th>
                        <p><span style="font-size: 10.5pt;">命令字</span></p>
                        </th>
                        <th>
                        <p><span style="font-size: 10.5pt;">校验和</span></p>
                        </th>
                </tr>
                <tr>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x55</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">0xAA</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x</span><span style="font-size: 10.5pt;">11</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x</span><span style="font-size: 10.5pt;">00</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x23</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x</span><span style="font-size: 10.5pt;">33</span></p>
                        </td>
                </tr>
        </tbody>
</table>

<p>&nbsp;</p>

<p><span style="font-size: 12pt;">也可以发送0x</span><span style="font-size: 12pt;">24</span><span style="font-size: 12pt;">,查看二哈学习块的内容:</span></p>

<table class="3">
        <tbody>
                <tr>
                        <th colspan="2">
                        <p><span style="font-size: 10.5pt;">帧头</span></p>
                        </th>
                        <th>
                        <p><span style="font-size: 10.5pt;">目的地址</span></p>
                        </th>
                        <th>
                        <p><span style="font-size: 10.5pt;">数据长度</span></p>
                        </th>
                        <th>
                        <p><span style="font-size: 10.5pt;">命令字</span></p>
                        </th>
                        <th>
                        <p><span style="font-size: 10.5pt;">校验和</span></p>
                        </th>
                </tr>
                <tr>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x55</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">0xAA</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x</span><span style="font-size: 10.5pt;">11</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x</span><span style="font-size: 10.5pt;">00</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x2</span><span style="font-size: 10.5pt;">4</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x</span><span style="font-size: 10.5pt;">3</span><span style="font-size: 10.5pt;">4</span></p>
                        </td>
                </tr>
        </tbody>
</table>

<p>&nbsp;</p>

<p><span style="font-size: 12pt;">当二哈接收到数据后,按照同样的协议内容返回两条数据内容:分别是命令字为0x</span><span style="font-size: 12pt;">29</span><span style="font-size: 12pt;">和0x</span><span style="font-size: 12pt;">2A</span><span style="font-size: 12pt;">。</span></p>

<p><span style="font-size: 12pt;">0x</span><span style="font-size: 12pt;">29</span><span style="font-size: 12pt;">的数据内容如下:</span></p>

<table class="3">
        <tbody>
                <tr>
                        <th colspan="2">
                        <p><span style="font-size: 10.5pt;">帧头</span></p>
                        </th>
                        <th>
                        <p><span style="font-size: 10.5pt;">目的地址</span></p>
                        </th>
                        <th>
                        <p><span style="font-size: 10.5pt;">数据长度</span></p>
                        </th>
                        <th>
                        <p><span style="font-size: 10.5pt;">命令字</span></p>
                        </th>
                        <th>
                        <p><span style="font-size: 10.5pt;">数据</span></p>
                        </th>
                        <th>
                        <p><span style="font-size: 10.5pt;">校验和</span></p>
                        </th>
                </tr>
                <tr>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x55</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">0xAA</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x</span><span style="font-size: 10.5pt;">11</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x</span><span style="font-size: 10.5pt;">0A</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x2</span><span style="font-size: 10.5pt;">9</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x01 0x00 0x01 0x00 0x05 0x00 0x00 0x00 0x00 0x00</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x</span><span style="font-size: 10.5pt;">3</span><span style="font-size: 10.5pt;">4</span></p>
                        </td>
                </tr>
        </tbody>
</table>

<p><span style="font-size: 12pt;">数据内容解析如下:</span></p>

<table class="4">
        <tbody>
                <tr>
                        <td>
                        <p><span style="font-size: 10.5pt;">十六进制</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">说明</span></p>
                        </td>
                </tr>
                <tr>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x</span><span style="font-size: 10.5pt;">01</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">来自 HUSKYLENS 的块和箭头数(低字节 = 0x0001) </span></p>
                        </td>
                </tr>
                <tr>
                        <td>
                        <p><span style="font-size: 10.5pt;">0</span><span style="font-size: 10.5pt;">x00</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">来自 HUSKYLENS 的块和箭头数(高字节 = 0x0001) </span></p>
                        </td>
                </tr>
                <tr>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x</span><span style="font-size: 10.5pt;">01</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">HUSKYLENS 学习到的 ID 数量(低字节 = 0x0001 </span></p>
                        </td>
                </tr>
                <tr>
                        <td>
                        <p><span style="font-size: 10.5pt;">0</span><span style="font-size: 10.5pt;">x00</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">HUSKYLENS 学习到的 ID 数量(高字节 = 0x0001) </span></p>
                        </td>
                </tr>
                <tr>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x</span><span style="font-size: 10.5pt;">05</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">当前帧号(低字节= 0x0005) </span></p>
                        </td>
                </tr>
                <tr>
                        <td>
                        <p><span style="font-size: 10.5pt;">0</span><span style="font-size: 10.5pt;">x00</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">当前帧号(高字节= 0x0000) </span></p>
                        </td>
                </tr>
                <tr>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x</span><span style="font-size: 10.5pt;">00</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">保留 </span></p>
                        </td>
                </tr>
                <tr>
                        <td>
                        <p><span style="font-size: 10.5pt;">0</span><span style="font-size: 10.5pt;">x00</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">保留 </span></p>
                        </td>
                </tr>
                <tr>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x</span><span style="font-size: 10.5pt;">00</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">保留 </span></p>
                        </td>
                </tr>
                <tr>
                        <td>
                        <p><span style="font-size: 10.5pt;">0</span><span style="font-size: 10.5pt;">x00</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">保留 </span></p>
                        </td>
                </tr>
        </tbody>
</table>

<p>&nbsp;</p>

<p><span style="font-size: 12pt;">0x</span><span style="font-size: 12pt;">2A</span><span style="font-size: 12pt;">的数据内容如下:</span></p>

<table class="3">
        <tbody>
                <tr>
                        <th colspan="2">
                        <p><span style="font-size: 10.5pt;">帧头</span></p>
                        </th>
                        <th>
                        <p><span style="font-size: 10.5pt;">目的地址</span></p>
                        </th>
                        <th>
                        <p><span style="font-size: 10.5pt;">数据长度</span></p>
                        </th>
                        <th>
                        <p><span style="font-size: 10.5pt;">命令字</span></p>
                        </th>
                        <th>
                        <p><span style="font-size: 10.5pt;">数据</span></p>
                        </th>
                        <th>
                        <p><span style="font-size: 10.5pt;">校验和</span></p>
                        </th>
                </tr>
                <tr>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x55</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">0xAA</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x</span><span style="font-size: 10.5pt;">11</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x</span><span style="font-size: 10.5pt;">0A</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x2A</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x2C 0x01</span></p>

                        <p><span style="font-size: 10.5pt;">0xC8 0x00</span></p>

                        <p><span style="font-size: 10.5pt;">0x0A 0x00</span></p>

                        <p><span style="font-size: 10.5pt;">0x14 0x00</span></p>

                        <p><span style="font-size: 10.5pt;">0x01 0x00</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x</span><span style="font-size: 10.5pt;">58</span></p>
                        </td>
                </tr>
        </tbody>
</table>

<p><span style="font-size: 12pt;">数据内容解析如下:</span></p>

<table class="4">
        <tbody>
                <tr>
                        <td>
                        <p><span style="font-size: 10.5pt;">十六进制</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">说明</span></p>
                        </td>
                </tr>
                <tr>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x</span><span style="font-size: 10.5pt;">2C</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">X 块中心(300 的低字节 = 0x012C,范围:0-319)</span></p>
                        </td>
                </tr>
                <tr>
                        <td>
                        <p><span style="font-size: 10.5pt;">0</span><span style="font-size: 10.5pt;">x01</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">X 块中心(300 的高字节 = 0x012C,范围:0-319)</span></p>
                        </td>
                </tr>
                <tr>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x</span><span style="font-size: 10.5pt;"> C8</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">Y 块中心(200 的低字节 = 0x00C8,范围:0-239)</span></p>
                        </td>
                </tr>
                <tr>
                        <td>
                        <p><span style="font-size: 10.5pt;">0</span><span style="font-size: 10.5pt;">x00</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">Y 块中心(200 的高字节 = 0x0000,范围:0-239)</span></p>
                        </td>
                </tr>
                <tr>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x</span><span style="font-size: 10.5pt;">0A</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">块宽度(低字节 = 0x000A,范围:0-319)</span></p>
                        </td>
                </tr>
                <tr>
                        <td>
                        <p><span style="font-size: 10.5pt;">0</span><span style="font-size: 10.5pt;">x00</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">块宽度(高字节 = 0x0000,范围:0-319)</span></p>
                        </td>
                </tr>
                <tr>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x</span><span style="font-size: 10.5pt;">14</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">块高度(低字节 = 0x0014,范围:0-239)</span></p>
                        </td>
                </tr>
                <tr>
                        <td>
                        <p><span style="font-size: 10.5pt;">0</span><span style="font-size: 10.5pt;">x00</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">块高度(高字节 = 0x0000,范围:0-239)</span></p>
                        </td>
                </tr>
                <tr>
                        <td>
                        <p><span style="font-size: 10.5pt;">0x</span><span style="font-size: 10.5pt;">00</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">ID,见上面的ID含义(低字节=0x0001)</span></p>
                        </td>
                </tr>
                <tr>
                        <td>
                        <p><span style="font-size: 10.5pt;">0</span><span style="font-size: 10.5pt;">x00</span></p>
                        </td>
                        <td>
                        <p><span style="font-size: 10.5pt;">ID,见上面的ID含义(高字节=0x0001)</span></p>
                        </td>
                </tr>
        </tbody>
</table>

<p>&nbsp;</p>

<p><span style="font-size: 12pt;">实际测试如下:</span></p>

<p><span style="font-size: 12pt;">二哈没有识别物体时,发送指令,只回复0x29的指令:</span></p>

<p></p>

<p></p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p><span style="font-size: 12pt;">二哈识别到物体时,发送指令,回复0x29和0x2A指令:</span></p>

<p></p>

<p><span style="font-size: 12pt;">可以通过</span><span style="font-size: 12pt;">0x2A的指令看到,当前识别的物体ID为1。</span></p>

<p>&nbsp;</p>

<p><span style="font-size: 12pt;">通过以上数据信息可以知道二哈采集到和学习过的图形,采集的内容包括在屏幕中的坐标位置、图形的方框尺寸、图形ID。使用串口助手接收查看返回来的数据,可以知道二哈识别到的具体工作数据。</span></p>

wangerxian 发表于 2022-1-10 13:17

<p>有物体在屏幕位置的信息吗?</p>

annysky2012 发表于 2022-1-10 13:30

有物体在屏幕位置的信息吗?


<p>有呀,有位置信息</p>

wangerxian 发表于 2022-1-10 15:56

annysky2012 发表于 2022-1-10 13:30
有呀,有位置信息

<p>通过串口可以获取位置信息哦?</p>

wangerxian 发表于 2022-1-10 15:56

annysky2012 发表于 2022-1-10 13:30
有呀,有位置信息

<p>通过串口可以获取物体的位置信息哦?</p>

annysky2012 发表于 2022-1-13 12:06

wangerxian 发表于 2022-1-10 15:56
通过串口可以获取物体的位置信息哦?

<p>在屏幕中的位置信息</p>

wangerxian 发表于 2022-1-13 15:20

annysky2012 发表于 2022-1-13 12:06
在屏幕中的位置信息

<p>了解了!</p>
页: [1]
查看完整版本: 【二哈识图人工智能视觉传感器】5.二哈传感器串口通信测试