8.3.1 硬件_电机与电机驱动板
如果要通过Arduino实现电机相关操作(比如:转向控制、转速控制、测速等),那么必须先要具备两点前提知识:
- 需要简单了解电机类型、机械结构以及各项参数,这些是和机器人的负载、极限速度、测速结果等休戚相关的;
- 还需要选配合适的电机驱动板,因为Arduino的输出电流不足以直接驱动电机,需要通过电机驱动板放大电机控制信号。
当前我们的机器人平台使用的电机为直流减速电机,电机驱动板为基于L298P实现的电路板。接下来就分别介绍这两个模块:
1.直流减速电机
如图所示,相当一部分ROS智能车中使用的直流减速电机与之类似,主要由三部分构成:
- 减速箱
- 电机主体
- 编码器
电机主体通过输入轴与减速箱相连接,通过减速箱的减速效果,最终外端的输出轴会按照比例(取决于减速箱减速比)降低电机输入轴的转速,当然速度降低之后,将提升电机的力矩。
尾部是AB相霍尔编码器,通过AB编码器输出的波形图,可以判断电机的转向以及计算电机转速
另外,即便电机外观相同,具体参数也可能存在差异,参数需要商家提供,需要了解的参数如下:
- 额定电压
- 额定电流
- 额定功率
- 额定扭矩
- 减速比
- 减速前转速
- 减速后转速
- 编码器精度
主要参数:
额定扭矩:额定扭矩和机器人质量以及有效负荷相关,二者正比例相关,额定扭矩越大,可支持的机器人质量以及有效负荷越高;
减速比:电机输入轴与输出轴的减速比例,比如: 减速比为90,意味着电机主体旋转90圈,输出轴旋转1圈。
减速后转速:与减速比相关,是电机减速箱输出轴的转速,单位是 rpm(转/分),减速后转速与减速前转速存在转换关系: 减速后转速 = 减速前转速 / 减速比。另外,可以根据官方给定的额定功率下的减速后转速结合车轮参数来确定小车最大速度。
编码器精度:是指编码器旋转一圈单相(当前编码器有AB两相)输出的脉冲数;
注意:电机输入轴旋转一圈的同时,编码器旋转一圈,如果输出轴旋转一圈,那么编码器的旋转圈数和减速比一致(比如减速比是90,那么输出轴旋转一圈,编码器旋转90圈)。
编码器输出的脉冲数计算公式则是: 输出轴旋转一圈产生的脉冲数 = 减速比 * 编码器旋转一圈发送的脉冲数(比如:减速比为90,编码器旋转一圈输出11个脉冲,那么输出轴旋转一圈总共产生 11 * 90 也即990个脉冲)。
电机编码器
M1: 电机电源+(和M2对调可以正反转 )
GND: 编码器电源-
C2: 信号线
C1: 信号线
VCC:编码器电源+
M2: 电机电源-(和M1对调可以正反转)
2.电机驱动板
电机驱动板可选型号较多,比如:TB6612、L298N、L298P....但是这些电机驱动板与电机相连时,需要使用杜邦线,接线会显得凌乱,本节会采用一款基于L298P优化的电机驱动板,该驱动板可以使用端子线直接连接电机,接线更规整、美观。
端子线母头对应的引脚(自上而下)
母头1: 4、地线、21、20、5V输入、 5
母头2: 7、地线、18、19、5V输入、 6
PS:电机驱动板使用时,需要打开USB接口处的电源开关。
3.准备工作
组装底盘:集成电池、Arduino、电机驱动板与电机
先安装Arduino、安装电机(接端子线)与万向轮,将电机驱动板与Arduino集成;
然后将电池的正负极分别接入电机驱动模块的12V与GND(注意:正负极不可接反,12V接红线,GND接黑线);
最后将电机通过端子线与驱动板相连。