入门电机系列之5编码器

2023-10-27

入门电机系列,基于STM32硬件

本文章学习借鉴于野火团队资料,以表感谢。官网http://products.embedfire.com/
编码器的原理与应用。


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

编码器,是一种用来测量机械旋转或位移的传感器。这种传感器能够测量机械部件在旋转或直线
运动时的位移位置或速度等信息,并将其转换成一系列电信号。编码器是工业中常用的传感器之
一,广泛应用于工业生产当中需要对机械系统进行监视或控制的场景,包括工业控制、机器人、
照相机镜头、雷达平台以及部分计算机输入设备例如轨迹球和鼠标滚轮等等。
编码器可以根据不同的方式分出很多种类型。例如根据检测原理,可分为光学式、磁式、感应式
和电容式。根据内部机械结构的运动方式,可分为线性编码器和旋转编码器。根据其刻度实现方
法及信号输出形式,又可分为增量式、绝对式以及混合式三种。编码器种类繁多,本章主要讲解
旋转编码器,如下图所示,外形很像一个电机。

在这里插入图片描述
旋转编码器如上如所示
在这里插入图片描述


提示:以下是本篇文章正文内容,下面案例可供参考

一、编码器分类?

增量式编码器

增量式旋转编码器是将设备运动时的位移信息变成连续的脉冲信号,脉冲个数表示位移量的大
小。只有当设备运动的时候增量式编码器才会输出信号。编码器一般会把这些信号分为通道 A
和通道 B 两组输出,并且这两组信号间有 90° 的相位差。同时采集这两组信号就可以知道设备的
运动和方向。除了通道 A、通道 B 以外,很多增量式编码器还会设置一个额外的通道 Z 输出信
号,用来表示编码器特定的参考位置,传感器转一圈 Z 轴信号才会输出一个脉冲。增量式编码器
只输出设备的位置变化和运动方向,不会输出设备的绝对位置

绝对式编码器

绝对式旋转编码器是将设备运动时的位移信息通过二进制编码的方式变成数字量直接输出。这
种编码器与增量式编码器的区别主要在内部的码盘。绝对式编码器的码盘利用若干透光和不透
光的线槽组成一套二进制编码,这些二进制码与编码器转轴的每一个不同角度是唯一对应的,读
取这些二进制码就能知道设备的绝对位置,所以叫它绝对式编码器。绝对式编码器一般常用自然
二进制、格雷码或者 BCD 码等编码方式。

混合式绝对式编码器

混合式绝对式编码器,它输出两组信息:一组信息用于检测磁极位置,带有绝对信息功能;另一
组则和增量式编码器的输出信息完全相同。

旋转编码器原理

旋转编码器的原理示意图如下图所示。旋转编码器内部大都由码盘、光电检测装置和信号处理电
路等部分构成。码盘上刻了若干圈线槽,线槽等距并且可透光,当码盘旋转时就会周期性的透过
和遮挡来自光电检测装置的光线,这样检测装置就会周期性的生成若干电信号。但是这些电信号
通常比较微弱,需要加入一套处理电路对信号进行放大和整形,最后把信号整形为脉冲信号并向
外输出。

在这里插入图片描述

增量式编码器原理

首先来看增量式编码器。上节提到过,增量式编码器都有 A、B 两通道信号输出,这是因为增量
式编码器的码盘上有两圈线槽,两圈线槽的之间会错开一定的角度,这个角度会使得光电检测装
置输出的两相信号相差 1/4 周期 (90°)。码盘的具体工作方式如下图所示。图中黑色代表透光,白
色代表遮光。当码盘转动时,内圈和外圈的线槽会依次透过光线,光电检测装置检测到光线通断
的变化,就会相应的输出脉冲信号,因为内外圈遮光和透光时候存在时间差,所以也就有了 A、
B 两通道信号的相位差。

在这里插入图片描述
在这里插入图片描述
根据两相信号变化的先后顺序就可以判断运动方向,记录输出的脉冲个数可以知道位移量的大
小,同时通过输出信号的频率就能得到速度。
一些增量式编码器上会有 4 圈线槽,分别对应 A、B、-A、-B 四相信号,相邻两相信号间也是差
1/4 周期,只不过这种编码器会把-A 和-B 两相信号反相,然后叠加到 A、通道 B,用来增强信号。
除了通道 A、通道 B 以外,很多增量式编码器还会设置一个额外的通道 Z 输出信号。通道 Z 信
号也在码盘上有对应的线槽,不过只有一条,码盘转一圈才会经过一次。通道 Z 信号一般用做参
考零位,指示设备位置或者清除积累量。
另一种较为常用的增量式编码器是霍尔编码器。霍尔增量式编码器在结构上和光电式几乎相同,
只不过检测原理变成了霍尔效应。内部元件也稍有不同,霍尔编码器的码盘上不是线槽,而是不
同的磁极,或者有些直接把电机的旋转磁场当作码盘,然后检测装置换成了霍尔传感器。输出和
光电式相同,仍然是相位差 1/4 周期的 A、B 两通道信号。
增量式编码器计数起点任意设定,可实现多圈无限累加和测量。需要提高分辨率时,可触发 A、
B 两通道信号的上升沿和下降沿对原脉冲数进行倍频。但是当接收设备停机重启后,增量式编码
器需要重新寻找参考零点。

绝对式编码器原理

接着是绝对式编码器。绝对式编码器在总体结构上与增量式比较类似,都是由码盘、检测装置和
放大整形电路构成,但是具体的码盘结构和输出信号含义不同。绝对式编码器的码盘上有很多圈
线槽,被称为码道,每一条码道内部线槽数量和长度都不同。它们共同组成一套二进制编码,一
条码道对应二进制数的其中一个位,通常是码盘最外侧的码道表示最低位,最内侧的码道表示最
高位。码道的数量决定了二进制编码的位数,一个绝对式编码器有 N 条码道,它就能输出 N 位
二进制数,且输出二进制数的总个数是 2
N 个。这些二进制数与转轴的机械位置是固定的,和编
码器外部因素无关,所以叫做绝对式编码器。在接收设备断电重启后绝对式编码器无需寻找参考
零点。
下图是一个简化版的绝对式编码器码盘,其中白色块透光表示 0,黑色块不透光表示 1。码盘上
的二进制数逆时针依次增大

在这里插入图片描述

图中码盘有 3 条码道,一共可表示 2
3=8 个二进制数,所以整个码盘被分成了 8 个扇区,每个扇区
表示一个 3 位二进制数,每个二进制数对应一个转轴的位置信息。码盘采用自然二进制编码,自
然二进制编码的优点是很方便直观,但是受编码器制造和安装精度的影响,实际应用中二进制数
的每一位不可能同时改变,或者出现码盘停在两个扇区中间,这些情况都很容易造成读数错误。
为了避免出现读数错误,可以使用格雷码来解决。下图是一个使用格雷码的码盘,同样的,白色
块透光表示 0,黑色块不透光表示 1。码盘上的二进制数逆时针依次增大。
在这里插入图片描述
图中码盘的码道数与上面的自然二进制码盘完全一致,也能表示 8 个 3 位二进制数,只不过将编
码方式换成了格雷码。利用任意相邻的二进制格雷码数都只有一位不同的特性,采用这种编码的
码盘在一定程度上克服了自然二进制码盘容易产生读数错误的问题。
绝对式编码器还分为单圈绝对式编码器和多圈绝对式编码器,上面举的两个例子都是针对单圈
也就是 360° 以内的情况,当码盘转动超过 360°,输出的编码会重复,这样不符合绝对式编码器
数据唯一的要求,所以就出现了多圈绝对式编码器。多圈绝对式编码器的量程可以超过 360°,并
且通常超出很多,其内部结构也比单圈的复杂,但是基本原理都是一样的。

编码器基本参数

• 分辨率:指编码器能够分辨的最小单位。对于增量式编码器,其分辨率表示为编码器转轴
旋转一圈所产生的脉冲数,即脉冲数/转 (Pulse Per Revolution 或 PPR)。码盘上透光线槽的数
目其实就等于分辨率,也叫多少线,较为常见的有 5-6000 线。对于绝对式编码器,内部码
盘所用的位数就是它的分辨率,单位是位 (bit),具体还分单圈分辨率和多圈分辨率。
• 精度:首先明确一点,精度与分辨率是两个不同的概念。精度是指编码器每个读数与转轴
实际位置间的最大误差,通常用角度、角分或角秒来表示。例如有些绝对式编码器参数表
里会写 ±20′′,这个就表示编码器输出的读数与转轴实际位置之间存在正负 20 角秒的误差,
精度由码盘刻线加工精度、转轴同心度、材料的温度特性、电路的响应时间等各方面因素
共同决定。
• 最大响应频率:指编码器每秒输出的脉冲数,单位是 Hz。计算公式:最大响应频率 = 分辨
率 * 轴转速/60。
• 信号输出形式:对于增量式编码器,每个通道的信号独立输出,输出电路形式通常有集电
极开路输出、推挽输出、差分输出等。对于绝对式编码器,由于是直接输出几十位的二进
制数,为了确保传输速率和信号质量,一般采用串行输出或总线型输出,例如同步串行接
口 (SSI)、RS485、CANopen 或 EtherCAT 等,也有一部分是并行输出,输出电路形式与增量
式编码器相同

编码器的使用

增量式编码器倍频技术

首先来看一下增量式编码器的输出信号和它的信号倍频技术。增量式编码器输出的脉冲波形信
号形式常见的有两种:

  1. 一种是占空比 50% 的方波,通道 A 和 B 相位差为 90°;
  2. 另一种则是正弦波这类模拟信号,通道 A 和 B 相位差同样为 90°。
    对于第 1 种形式的方波信号,如果把两个通道组合起来看的话,可以发现 A 和 B 各自的上升沿
    和下降沿都能计数,至少在 1/2 个原始方波周期内就可以计数一次,最多 1/4 个原始方波周期。
    这样计数频率就是原始方波信号的 2 倍或 4 倍,换句话说就是,将编码器的分辨率提高了 2 到 4
    倍,具体如下图所示。

在这里插入图片描述
图中的方波信号如果只看其中一个通道的上升沿,那计数频率就等于这个通道信号的频率。如果
在通道 A 的上升沿和下降沿都进行计数,计数频率就是通道 A 的两倍,即 2 倍频。如果同时对
两个通道的上升沿和下降沿都计数,那计数频率就变成了原始信号的 4 倍,即 4 倍频。

假设有个增量式编码器它的分辨率是 600PPR,能分辨的最小角度是 0.6°,对它进行 4 倍频之后
就相当于把分辨率提高到了 600*4=2400PPR,此时编码器能够分辨的最小角度为 0.15°。编码器
倍频技术还可用来扩展一些测速方法的速度适用范围。例如电机测速通常使用 M 法进行测量(M
法在下节介绍),编码器 4 倍频后可以扩展 M 法的速度下限。
以上就是方波信号的编码器倍频技术,其实输出模拟信号的增量式编码器同样也可以倍频,不过
这种倍频原理与方波完全不同,教程当中就不讲解了。

常用测速方法简介

上一节提到了增量式编码器倍频技术可以扩展 M 法的测量范围,那么现在我们就来讲解下这个
M 法究竟是怎样测速的,以及简单介绍一些常用的编码器测速方法。对于电机转速的测量,可以
把增量式编码器安装到电机上,用控制器对编码器脉冲进行计数,然后通过特定的方法求出电机
转速,常用的编码器测速方法一般有三种:M 法、T 法和 M/T 法。
• M 法:又叫做频率测量法。这种方法是在一个固定的定时时间内(以秒为单位),统计这段
时间的编码器脉冲数,计算速度值。设编码器单圈总脉冲数为 C,在时间 T0 内,统计到的
编码器脉冲数为 M0,则转速 n 的计算公式为:
在这里插入图片描述
公式中的编码器单圈总脉冲数 C 是常数,所以转速 n 跟 M0 成正比。这就使得在高速测量时 M0
变大,可以获得较好的测量精度和平稳性,但是如果速度很低,低到每个 T0 内只有少数几个脉
冲,此时算出的速度误差就会比较大,并且很不稳定。也有一些方法可以改善 M 法在低速测量
的准确性,上一节提到的增量式编码器倍频技术就是其中一种,比如原本捕获到的脉冲 M0 只有
4 个,经过 4 倍频后,相同电机状态 M0 变成了 16 个,也就提升了低速下的测量精度。
• T 法:又叫做周期测量法。这种方法是建立一个已知频率的高频脉冲并对其计数,计数时
间由捕获到的编码器相邻两个脉冲的间隔时间 TE 决定,计数值为 M1。设编码器单圈总脉冲数为 C,高频脉冲的频率为 F0,则转速 n 的计算公式为:
在这里插入图片描述
公式中的编码器单圈总脉冲数 C 和高频脉冲频率 F0 是常数,所以转速 n 跟 M1 成反比。从公式
可以看出,在电机高转速的时候,编码器脉冲间隔时间 TE 很小,使得测量周期内的高频脉冲计
数值 M1 也变得很少,导致测量误差变大,而在低转速时,TE 足够大,测量周期内的 M1 也足够
多,所以 T 法和 M 法刚好相反,更适合测量低速。
• M/T 法:这种方法综合了 M 法和 T 法各自的优势,既测量编码器脉冲数又测量一定时间内
的高频脉冲数。在一个相对固定的时间内,计数编码器脉冲数 M0,并计数一个已知频率为
F0 的高频脉冲,计数值为 M1,计算速度值。设编码器单圈总脉冲数为 C,则转速 n 的计算
公式为:
在这里插入图片描述
由于 M/T 法公式中的 F0 和 C 是常数,所以转速 n 就只受 M0 和 M1 的影响。电机高速时,M0 增
大,M1 减小,相当于 M 法,低速时,M1 增大,M0 减小,相当于 T 法。

STM32 的编码器接口简介

STM32 芯片内部有专门用来采集增量式编码器方波信号的接口,这些接口实际上是 STM32 定时
器的其中一种功能。不过编码器接口功能只有高级定时器 TIM1、TIM8 和通用定时器 TIM2 到
TIM5 才有。编码器接口用到了定时器的输入捕获部分,功能框图如下图所示。输入捕获功能在
《STM32 HAL 库开发指南》中已有详细讲解,所以这部分内容在此就不再赘述了。
我们重点关注编码器接口是如何实现信号采集和倍频的。《STM32F4xx 参考手册》给出了的编码
器信号与计数器方向和计数位置之间的关系,如下表所示。

在这里插入图片描述
这个表格将编码器接口所有可能出现的工作情况全都列了出来,包括它是如何实现方向检测和
倍频的。虽然信息很全面但是乍看上去却不容易看懂。首先需要解释一下,表中的 TI1 和 TI2 对
应编码器的通道 A 和通道 B,而 TI1FP1 和 TI2FP2 则对应反相以后的 TI1、TI2。STM32 的编码器
接口在计数的时候,并不是单纯采集某一通道信号的上升沿或下降沿,而是需要综合另一个通道
信号的电平。表中“相反信号的电平”指的就是在计数的时候所参考的另一个通道信号的电平,
这些电平决定了计数器的计数方向。
为了便于大家理解 STM32 编码器接口的计数原理,我们将表中的信息提出转换成一系列图像。
首先看下图,下图所展示的信息对应表格中“仅在 TI1 处计数”。图中包含 TI1、TI2 两通道的信
号,以及计数器的计数方向,其中 TI1 比 TI2 提前 1/4 个周期,以 TI1 的信号边沿作为有效边沿。
当检测到 TI1 的上升沿时,TI2 为低电平,此时计数器向上计数 1 次,下一时刻检测到 TI1 的下
降沿时,TI2 为高电平,此时计数器仍然向上计数一次,以此类推。这样就能把 TI1 的上升沿和
下降沿都用来计数,即实现了对原始信号的 2 倍频。

在这里插入图片描述
接下来看如下图像,图中同样包含 TI1、TI2 两通道的信号,以及计数器的计数方向,其中 TI1 比
TI2 滞后 1/4 个周期,以 TI1 的信号边沿作为有效边沿。当检测到 TI1 的上升沿时,TI2 为高电平,
此时计数器向下计数 1 次,下一时刻检测到 TI1 的下降沿时,TI2 为低电平,此时计数器仍然向
下计数一次,以此类推。这样同样是把 TI1 的上升沿和下降沿都用来计数,同样实现了对原始信
号的 2 倍频,只不过变成向下计数了

在这里插入图片描述
以上两幅图像都是只以 TI1 的信号边沿作为有效边沿,并且根据 TI2 的电平决定各自的计数方
向,然后判断计数方向就能得到编码器的旋转方向,向上计数正向,向下计数反向。“仅在 TI2
处计数”也是同样的原理,在这里就不重复讲了。
最后如下图所示,下图所展示的信息对应表格中“在 TI1 和 TI2 处均计数”。这种采样方式可以
把两个通道的上升沿和下降沿都用来计数,计数方向也是两个通道同时参考,相当于原来仅在一
个通道处计数的 2 倍,所以这种就能实现对原始信号的 4 倍频。

在这里插入图片描述

编码器接口初始化结构体详解

HAL 库函数对定时器外设建立了多个初始化结构体,其中编码器接口用到的有时基初始化结构
体 TIM_Base_InitTypeDef ,和编码器初始化配置结构体 TIM_Encoder_InitTypeDef 。初始化结构
体成员用于设置定时器工作环境参数,并由定时器相应初始化配置函数调用,最终这些参数将会
写入到定时器相应的寄存器中。

TIM_Base_InitTypeDef

时基结构体 TIM_Base_InitTypeDef 用于定时器基础参数设置,与 HAL_TIM_Base_Init 函数配合
使用完成配置。这个结构体在《STM32 HAL 库开发指南》的定时器章节有详细的讲解,这里我
们只简单的提一下。

2 {
3 uint32_t Prescaler; //预分频器
4 uint32_t CounterMode; //计数模式
5 uint32_t Period; //定时器周期
6 uint32_t ClockDivision; //时钟分频
7 uint32_t RepetitionCounter; //重复计算器
8 uint32_t AutoReloadPreload; //自动重载值
9 }TIM_Base_InitTypeDef;

typedef struct
2 {
3 uint32_t EncoderMode; //编码器模式
4 uint32_t IC1Polarity; //输入信号极性
5 uint32_t IC1Selection; //输入通道
6 uint32_t IC1Prescaler; //输入捕获预分频器
7 uint32_t IC1Filter; //输入捕获滤波器
8 uint32_t IC2Polarity; //输入信号极性
9 uint32_t IC2Selection; //输入通道
10 uint32_t IC2Prescaler; //输入捕获预分频器
11 uint32_t IC2Filter; //输入捕获滤波器
12 }TIM_Encoder_InitTypeDef;

`1. EncoderMode:编码器模式选择,用来设置计数器采集编码器信号的方式,可选通道 A 计
数、通道 B 计数和双通道计数。它设定 TIMx_SMCR 寄存器的 SMS[2:0] 位。这个成员实际
是用来设置编码器接口的倍频数的,当选择通道 A 或 B 计数时为 2 倍频,双通道计数时为
4 倍频。
2. ICxPolarity:输入捕获信号极性选择,用于设置定时器通道在编码器模式下的输入信号是否
反相。它设定 TIMx_CCER 寄存器的 CCxNP 位和 CCxP 位。
3. ICxSelection: 输 入 通 道 选 择,ICx 的 信 号 可 来 自 三 个 输 入 通 道, 分 别
为 TIM_ICSELECTION_DIRECTTI、TIM_ICSELECTION_INDIRECTTI 或
IM_ICSELECTION_TRC。它设定 TIMx_CCMRx 寄存器的 CCxS[1:0] 位的值。定时器
在编码器接口模式下,此成员只能设置为 TIM_ICSELECTION_DIRECTTI。
4. ICxPrescaler:输入捕获通道预分频器,可设置 1、2、4、8 分频。它设定 TIMx_CCMRx 寄
存器的 ICxPSC[1:0] 位的值。
5. ICxFilter:输入捕获滤波器设置,可选设置 0x0 至 0x0F。它设定 TIMx_CCMRx 寄存器
ICxF[3:0] 位的值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

入门电机系列之5编码器 的相关文章

  • 在JSP编译的时候,服务器内部做了什么?

    在JSP第一次获得请求时 不管请求来自于客户端浏览器还是服务器上的servlet JSP文件将被JSP引擎 JSP engine 转换成为一个servlet 而这个引擎本身也是一个servlet 在JSWDK 它就是 JspServlet
  • OpenCV - Mat、滤波、卷积的实现

    1 Mat数据类型 创建图像 Mat M 2 2 CV 8UC3 Scalar 0 0 255 改变图像尺寸 M create 4 4 CV 8UC2 快速创建图像的集中方法 Mat E Mat eye 4 4 CV 64F Mat F M
  • 子网掩码详解

    IP地址 IP地址被用来给Internet上的电脑一个编号 大家日常见到的情况是每台联网的PC上都需要有IP地址 才能正常通信 我们可以把 个人电脑 比作 一台电话 那么 IP地址 就相当于 电话号码 而Internet中的路由器 就相当于
  • C++设计模式

    设计模式有 6 大设计原则 单 职责原则 就 个类 应该仅有 个引起它变化的原因 开放封闭原则 软件实体可以扩展 但是不可修改 即 对需求 对程序的改动可以通过增加代码来完成 但是不能改动现有的代码 代换原则 个软件实体如果使 的是 个基类
  • HTML和CSS实现京东登录页面(html,css代码详解)

    HTML代码 基本布局 QQ 2248557717 下载链接地址 https download csdn net download dwjdj 15807158
  • STM32 C语言使用 memset清空结构体 导致改变其他结构体数据的问题

    首先 在C语言中 清空结构体的方法 我们一般会采用 memset函数 其原型是 void memset void ptr int value size t num 函数功能 填充内存块 将ptr指向的内存块的前num个字节设置为指定值 va

随机推荐

  • 2021年华中杯A题(马赛克瓷砖选色问题)详细分析

    目录 一 基本介绍 1 1 题目描述 1 2 待解决问题 二 问题分析与求解 2 1 问题一分析与求解 2 2 问题二分析与求解 2 3 问题三分析与求解 三 完整代码 四 总结 一 基本介绍 1 1 题目描述 马赛克瓷砖是一种尺寸较小 常
  • 七、JDK1.7中HashMap扩容机制

    导读 前面文章一 深入理解 Java集合初篇 中我们对Java的集合体系进行一个简单的分析介绍 上两篇文章二 Jdk1 7和1 8中HashMap数据结构及源码分析 三 JDK1 7和1 8HashMap数据结构及源码分析 续 中我们分别对
  • 基于货运APP的全栈开发实践:后端用PHP,前端用Uni-app实现兼容性

    在上一篇文章中 我们介绍了货运APP如何助您提高运输效率 本文将重点介绍该货运APP的技术实现 并探讨后端和前端所使用的技术以及如何实现兼容性 后端技术实现 PHP 货运APP的后端采用PHP作为开发语言 下面是一些关键点的介绍 服务器环境
  • [MySQL]存储过程与函数

    文章目录 1 存储过程概述 1 1 含义 1 2 执行过程 1 3 好处 1 4 与视图 函数的对比 1 5 存储过程的分类 2 创建存储过程 2 1 语法 2 2 设置结束标志 2 3 创建存储过程示例 2 3 1 准备工作 2 3 2
  • 闲扯测试工程师之发展(觉得不错,拿来与大家分享)

    一 测试工程师的历史 我算是接触互联网测试工作比较早的一批人了 在2010年研二实习的时候就开始在一家加拿大的企业做测试开发工程师了 2012年毕业的时候 貌似互联网行业开始有专职的测试人员 而且不少中小型公司还没有专职的测试人员 程序的质
  • Java输入char类型的方法

    C 中可以用输入流cin轻松的完成对int char String double等等基本数据类型的输入 而JAVA中则必须使用Scanner类 头文件java util Scanner 对于其他的数据类型Scanner类提供了直接的函数使用
  • 充电器 蓝桥杯十四届模拟 python

    问题描述 小蓝有一个充电器 可以使用不同的电压和电流充电 给定充电器工作的记录 请计算在这个记录期间总共通过充电传输了多少电能 输入格式 输入第一行包含一个整数 n 表示记录的条数 接下来 n 行 每行包含一个时刻 T 和两个非负整数 U
  • 方格运动问题

    常见的一个经典问题 给定一个方格子 另左上角坐标为 0 0 右下角坐标为 M N 从左上角开始每次只能向右走或者向下走 最后达到右下角的位置 求一共有多少种不同的路径 数学的想法 对于计算这个问题的时候 可以去思考 不管怎样 从上往下从左往
  • openwrt学习指南

    路由器的硬件构成 路由器的软件构成 路由器固件开发的一般流程 Openwrt常用命令 1 文件 目录类命令 cd cat rm touch mkdir Is mv grep 2 文本编辑器命令 3 权限类命令 chmod 4 模块命令 rm
  • 项目的目的,目标和范围的区别

    目的 goal 目标 objectives 范围 scope http www projectmanagementquestions com 3979 what is the difference between objective goa
  • Python编程进阶,常用8大技巧

    介绍 Python 炫酷功能 例如 变量解包 偏函数 枚举可迭代对象等 的文章层出不穷 但是还有很多 Python 的编程小技巧鲜被提及 因此 本文会试着介绍一些其它文章没有提到的小技巧 这些小技巧也是我平时会用到的的 让我们一探究竟吧 整
  • Matlab常见错误及解决办法归纳

    Matlab常见错误及解决办法归纳 1 Subscript indices must either be real positive integers or logicals 中文解释 下标索引必须是正整数类型或者逻辑类型 出错原因 在访问
  • TypeError: Converting circular structure to JSON

    TypeError Converting circular structure to JSON 报错原因 一般报错TypeError Converting circular structure to JSON是因为存在循环引用 并且使用JS
  • Postgre 12 备份数据库

    打开pgAdmin 4 在Schemas的pulice库新建address person表 选中数据库右键 点击Backup https www pgadmin org docs pgadmin4 development backup di
  • 2019最新某响应式开发一招致胜

    资深全栈工程师 姜维 姜老师是一位真正的全栈工程师 有10余年互联网行业从业经验 有丰富的前后端开发 敏捷过程 项目管理经验 负责过多个产品和技术团队 在慕课网先后出品了 基于bootstrap的网页开发 Ajax全接触 等十余门课程 帮助
  • 泛读论文:Person-reID 行人重识别合集

    基于融合特征的行人再识别方法 模式识别与人工智能 2017 3 问题 目前常用的行人再识别方法主要集中在行人外形特征的描述和同一行人对应的 2 幅图像之间距离的学习度量 由于行人图像的亮度和相机角度的变化等 提取行人的外形特征的不变性较难
  • Python彩色图像卷积特征提取——边缘提取

    一 边缘提取 图像提取边缘是基于像素梯度方法实现的 原理是把图像的灰度看成二维曲面 边缘是曲面的突出部分 利用梯度找到变化最的突变点 要想得到一幅图像的梯度 则要在图像的每个像素点位置进行计算偏导数 公式如下 对应的差分公式 当已知离散数据
  • 基于RS的沈阳土地利用情况

    基于RS的沈阳土地利用情况 摘要 众所周知 土地对于社会经济稳定和可持续发展以及全球环境的变化都有着一定的影响 有关土地利用演变的相关研究已受到全世界的关注 本文对沈阳市土地利用的时空演变进行研究和规划 从遥感的原理出发 介绍了土地利用分析
  • android实现下拉框搜索功能,如何在Android中的搜索输入字段旁边添加下拉列表?...

    Enabling suggestions on a device When your application is configured to provide suggestions in Quick Search Box it is no
  • 入门电机系列之5编码器

    入门电机系列 基于STM32硬件 本文章学习借鉴于野火团队资料 以表感谢 官网http products embedfire com 编码器的原理与应用 提示 写完文章后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 入门电机系