激光测距传感器FT55-RLAM-800

注:这里针对我们所使用的激光测距传感器FT 55-RLAM-800,不同测距传感器处理方式不完全相同。
: 怎么从激光测距传感器得到数据并对其测量数据进行处理,进而得到它的测量真实数据呢?(单位mm)

: 步骤如下。

激光测距传感器的数据处理步骤为:

java 传感器 数据采集仪 ascii 传感器采集数据处理_字符串


1.得到传感器的测量数据

  打开友善串口调试助手,设置选项为上图所示。选择好端口号波特率数据位设置正确后,自行设置合适的采样频率,点击播放按钮,然后在下面的白框中输入神秘指令 81 04 41 44,准备好后,点击发送,在上面的白框中即可出现十六进制的数据。

2.处理测量数据中没有换行的问题
  测完数据后,复制所有的数据到word中,ctrl + F 查找数据,将错误的没有换行的空格81替换为 ^p81 ,确保替换一次后没有问题,全部替换,再将替换后的数据粘贴回txt文本中。

3.将正确换行的数据导入到excel中
  打开Excel,点击数据 – 自文本导入 – 分隔符号选择为空格 – 下一步 – 完成。如果出现导入数据只有一列,则点击数据 – 分列 – 分隔符号为空格 – 完成。

4.将十六进制数据转换为8位二进制
  在第一行的数据后边输入 =HEX2BIN(D2,8)=HEX2BIN(E2,8),即可出现D2列与E2列对应的8位二进制位,再将这两列数据粘贴回.txt文本中。

5.处理二进制位的txt数据
  在matlab中处理数据,matlab导入上一步的txt文本,导入数据格式为文本字符串形式,再根据以下程序来对数据进行处理。

%以下程序为激光测距传感器的数据处理
%导入二进制数据时,导入形式为文本字符串形式,而非数值形式
left = char(VarName1);
right = char(VarName2);

%前八位数据的截取--舍弃高两位
for i=1:length(left)
    temp = left(i,:);
    interupt_left(i,:) = temp(3:8);
end

%后八位数据的截取--舍弃高两位
for i=1:length(right)
    temp = right(i,:);
    interupt_right(i,:) = temp(3:8);
end

%前后二进制数据的拼接
for i=1:length(right)
    Splice(i,:) = [interupt_left(i,:),interupt_right(i,:)] ;
    %将拼接好的数据转化为十进制
    temp_distance(i,:) = bin2dec(Splice(i,:));
end

%数据转换
distance = temp_distance/4096 * 800 + 200;

%数据的预处理
for i=1:length(distance)-1
   if(abs(distance(i+1) - distance(i)) > 2 )
       distance(i+1) = distance(i);
   end
end

%画出曲线图
figure
plot(distance)

即可得出数据曲线图。