【二哈识图人工智能视觉传感器】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> </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> </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> </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> </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> </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> </p>
<p><span style="font-size: 12pt;">实际测试如下:</span></p>
<p><span style="font-size: 12pt;">二哈没有识别物体时,发送指令,只回复0x29的指令:</span></p>
<p></p>
<p></p>
<p> </p>
<p> </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> </p>
<p><span style="font-size: 12pt;">通过以上数据信息可以知道二哈采集到和学习过的图形,采集的内容包括在屏幕中的坐标位置、图形的方框尺寸、图形ID。使用串口助手接收查看返回来的数据,可以知道二哈识别到的具体工作数据。</span></p>
<p>有物体在屏幕位置的信息吗?</p>
有物体在屏幕位置的信息吗?
<p>有呀,有位置信息</p> annysky2012 发表于 2022-1-10 13:30
有呀,有位置信息
<p>通过串口可以获取位置信息哦?</p>
annysky2012 发表于 2022-1-10 13:30
有呀,有位置信息
<p>通过串口可以获取物体的位置信息哦?</p>
wangerxian 发表于 2022-1-10 15:56
通过串口可以获取物体的位置信息哦?
<p>在屏幕中的位置信息</p>
annysky2012 发表于 2022-1-13 12:06
在屏幕中的位置信息
<p>了解了!</p>
页:
[1]