【大陆ARS408毫米波雷达】一种利用串口解析雷达数据的方法
硬件平台:ARS408毫米波雷达、can转485转换器、485转串口转换器
软件平台:Windows10、python3
本篇博客实现的功能:
一、通过两个转换器将毫米波雷达的原始数据传入电脑端的串口中
二、再将此数据经过python文件处理得出有效目标探测信息
一、硬件连接
本文中的雷达是利用can协议进行数据通讯,初次接触毫米波雷达,并不清楚如何进行can协议解析,故用曲线救国的方法,将can口转为串口进行数据接受和解析。
首先,毫米波雷达本身can口连接一个can转485转换器
其次,再用485转串口转换器连接到PC端
注:上述设备均可在淘宝购得。
二、软件编写
软件采用python语言。
首先解决打开串口、接收数据:
运用serial模块
转换为hex显示
import serial
import binasciidef byte_to_hexStr(byte):return binascii.hexlify(byte).decode('utf-8')def get_serial(): # 串口数据处理+接收return byte_to_hexStr(ser.read())ser = serial.Serial("COM3", 115200) # Open port with baud rate
print("running")
while True:data = get_serial() # ser源读取数据print(data)
解决数据解析:
依照此款毫米波提供的技术文档进行数据解析
文档中的内容如下:
代码如下:
def circular_shift_left(int_value, k, bit=8):bit_string = '{:0%db}' % bitbin_value = bit_string.format(int_value) # 8 bit binarybin_value = bin_value[k:]int_value = int(bin_value, 2)#print("取低位:", bin_value)return int_valuewhile True:#雷达object报头“06 0b”,共9位if get_serial() == "06":for i in range(9):list.insert(i, get_serial())if list[0] == "0b":print("有效数据", list[0:9])#处理有效数据,转为目标信息id = int(list[1], 16) # ID_wei = list[1]x1 = int(list[2], 16) # X_Dist_1_wei = list[2]x2 = int(list[3], 16) # X_Dist_2_wei = list[3]y1 = int(list[3], 16) # Y_Dist_1_wei = list[3]y2 = int(list[4], 16) # Y_Dist_2_wei = list[4]xs1 = int(list[5], 16) # X_Speed_1_wei = list[5]xs2 = int(list[6], 16) # X_Speed_2_wei = list[6]ys1 = int(list[6], 16) # Y_Speed_1_wei = list[6]ys2 = int(list[7], 16) # Y_Speed_2_wei = list[7]dyndrop = int(list[7], 16) # DynDrop_wei = list[7]rcs = int(list[8], 16) # RCS_wei = list[8]X_Dist = (x1 << 5 | x2 >> 3) * 0.2 - 500Y_Dist = (circular_shift_left(y1, 5, 8) << 8 | y2) * 0.2 - 204.6X_Speed = (xs1 << 2 | xs2 >> 6) * 0.25 - 128.0Y_Speed = (circular_shift_left(ys1, 2, 8) << 3 | ys2 >> 5) * 0.25 - 64.0DynDrop = circular_shift_left(dyndrop, 5, 8)RCS = rcs * 0.5 - 64.0print('id:', id, 'X位移:', X_Dist, 'Y位移', Y_Dist, 'X速度:', X_Speed, 'Y速度:', Y_Speed, 'DD:', DynDrop, 'RCS:', RCS)else:pass
完整工程,点击此处下载
【大陆ARS408毫米波雷达】一种利用串口解析雷达数据的方法相关推荐
- java 序列化 文件_一种恢复Java序列化文件数据的方法与流程
本发明涉及信息安全技术领域,特别涉及一种恢复Java序列化文件数据的方法. 背景技术: 在数据解析恢复领域经常会遇到序列化文件的解析.Java序列化是Java 自身提供的一种数据序列化方式,它允许开发 ...
- matlab signaltap,一种matlab调用signaltap采集数据的方法
[导读] 一种matlab调用signaltap采集数据的方法关键词: AD采集MatlabFPGA 最近,在利用FPGA采集数据,前端是通过AD采集,然后直接输出给FPGA,需要分析采集到的数据,通 ...
- 一种光谱无损的遥感数据融合方法——LiIFT插值融合(一)
高空间分辨率一直是遥感领域追求的重要目标.在遥感平台和传感器硬件条件一定的情况下,人们经常通过一定的算法使遥感数据的空间分辨率尽可能大.比方将多光谱数据与全色数据融合,或者将低空间分辨率数据与高空间分 ...
- 利用串口解析AIS接收机数据
串口: 串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口.串行接口 (Serial Interface) 是指数据一位一位地顺序传送,其特点是通信线路 ...
- 区别于传统低效标注,两种基于自然语言解释的数据增强方法
本文内容整理自 PaperWeekly 和 biendata 在 B 站组织的直播回顾,点击文末阅读原文即可跳转至 B 站收看本次分享完整视频录像,如需嘉宾课件,请在 PaperWeekly 公众号回 ...
- signaltap采集数据到matlab,一种matlab调用signaltap采集数据的方法
最近,在利用FPGA采集数据,前端是通过AD采集,然后直接输出给FPGA,需要分析采集到的数据,通常的办法只能在signaltap中,右击信号列表然后点击"Create SignalTap ...
- 一种处理亿级聚合数据的方法
本文出自"淘系技术公众号",为本人发表的文章 背景 在电商平台的架构体系中,商品数据是系统正常运转的基石,随着平台的发展,商品数据很容易突破亿级.在电商运营方面,平台通常需要举行各 ...
- Android利用Gson解析Json数据
其实,要创建和解析JSON数据,也可以使用GSON来完成.GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库.使用GSON,可以很容易的将一串JSON数据转换为一个 ...
- 在ASP.Net中两种利用CSS实现多界面的方法(转)
通过使页面动态加载不同CSS实现多界面 方法一: <%@page language="C#"%> <%@import namespace="System ...
最新文章
- python桌面图标被删了_Python实现图标锁定到Windows任务栏或删除图标
- 解决layui前端动态设置radio、checkbox默认选项的解决方案
- spring学习(6)
- 一款WP小游戏代码分享
- 如何在手游中运用高逼格光影效果?
- 【ArcGIS微课1000例】0001:添加XY数据(Add XY data)生成shp
- RuntimeException 和 Exception 区别、异常的子父级关系
- TikZ绘图示例——尺规作图: 圆内接正五边形的近似画法
- 用JS实现版面拖拽效果
- 方舟生存进化服务器Linux,方舟生存进化官方服务器与私人服务器有什么区别
- Atitit uke人才分类 杰出人才 高级人才、专业技术人才、技能人才 杰出人才移民共包含科技丶艺术丶工商丶运动及教育五大领域 杰出人才定义 编辑 联邦移民法规定「杰出能力」是指在科学丶艺
- 【图像去噪】基于matlab GUI小波+中值+维纳及频域滤波【含Matlab源码 506期】
- 酒店旅业治安管理系统接口开发
- 云台山风景区,感受人生最美的风景
- 印度程序员和中国程序员的区别
- 二保焊接中有送丝问题,怎么解决?
- S7-1200PLC通过增量式编码器实现速度采集和模拟量采集
- 301转向应该怎么做,冬镜说Apache应该谨记这几点
- Matlab 指定分辨率保存图片
- 【牛客网OJ题】计算糖果