ROS里程计之STM32底层编码器(一)

  • Post author:
  • Post category:其他


什么是编码器?



一、编码器

编码器是一种广泛使用的位置式传感器,它能够检测细微的运动,其输出为数字信号。编码器中应用最为广泛的就是光电编码器,可以用来进行角度的测量。

可以用来测量位置,测量速度。

盗一下某位博主的图:



二、编码器工作原理


编码器是用光电方法把被测角位移转换成数字代码形式的电信号的转换部件。

这里写图片描述

这里写图片描述

四倍频的方法是测量A相和B相的上升沿和下降沿



三、编码器分类



编码器可以分为增量式编码器和绝对式编码器




(1)增量式编码器






①增量式编码器轴旋转时,有相应的脉冲输出,其旋转的方向判别和脉冲数量的增减可以借助外部的判断电路或者计数器实现。



②计数器起点可任意设定,并可实现多圈的无线累加和测量,还可以把每转发出的一个脉冲Z信号作为机械参考零位。



③编码器的轴转一周会输出固定的脉冲数,对于光学旋转编码器,输出脉冲数与编码器光栅的刻线数相同。需要提高分辨率时,可利用90°相位差的A、B两相信号对原信号进行倍频,或者更换更高分辨率的编码器。










(2)绝对式编码器



①绝对式编码器是利用自然二进制或者循环二进制方式进行光电转换的,有若干编码,根据码盘上的编码数读数,检测绝对位置。从编码大小的变更即可判断旋转方向和转轴所处的位置,因而无需判向电路。



②它有一个绝对零位代码,当停电或者关机以后,再开机重新测量时,仍可准确地读出停电或者关机时位置的代码,并准确找到零位代码。



③一般情况下,绝对式编码器的测量范围为0°~360°,特殊型号也可以实现多圈测量。



四、编码器测量方案





编码器的测量我们可以从原理上得出有3种方式可以获得:

一、采用STM32的外部中断计数来实现计算

缺点:不够精确,电机在运动过程中,稍微接线有些抖动就会产生误差。

二、采用STM32的输入捕获,跟第一种方法类似


缺点:不够精确,电机在运动过程中,稍微接线有些抖动就会产生误差。

三、采用STM32的编码器接口


缺点:存在零点问题,可以软件处理



版权声明:本文为zhu751191958原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。