第3章
CHAPTER 3


平台硬件电路介绍










本章的主要内容包括智能平衡移动机器人平台统一硬件接口电路的设计,关键的主控板、电源板、驱动板及其他传感器及拓展模块电路的设计。


视频讲解



3.1硬件电路接口设计 
为了使智能平衡移动机器人达到更好的平衡控制效果,机器人的本体设计更为轻便、集中。机器人的硬件电路也进行集中化设计,整个机器人本体使用一块控制底板Forest S1,使其功能外设都能通过这块控制底板引出,这样大大提升了整车的集成度和控制的灵活性。移动机器人控制底板Forest S1的原理图与安装示意图分别如图3.1和图3.2所示。



图3.1Forest S1原理图




图3.2Forest S1安装示意图



硬件电路主要模块包括: 主控制器电路(包含了仿真电路)负责运行控制程序以及实现控制信号的输出与外部电平信号的采集,电源管理电路将锂电池的电压转换到主芯片、驱动芯片及其他传感器合适的工作电压,电动机驱动电路驱动电动机运行,传感器电路用于自身姿态和周围环境信息的采集以及其他拓展接口电路。
3.2主控制板电路
主控制器主要包括仿真电路与主控芯片电路,使得主控制板在脱离其他模块的时候也能够独立进行仿真与程序的运行,所有需要的功能引脚通过Forest S1主控板的引脚引出,主控制板的独立设计使得移动机器人的元器件集成度更高,便于机器人移动时的平衡控制,其主控制板电路结构如图3.3所示。


图3.3主控制板电路结构



通常在实时数字信号处理中,高层处理算法的特点是所处理的数据量与低层算法相比数据量少,但算法结构复杂,可以使用运算速度快、寻址方式灵活、通信机制强大的DSP芯片来实现。由于智能平衡式机器人本身结构上具有的不稳定性,要求姿态检测与相关控制量的计算能够达到一定的频率来实现更稳定的控制,为了实现更好的控制效率,控制器采用TI C2000系列DSP控制芯片TMS320F28069数字信号处理器,作为一种高效率的32位浮点CPU,其特有的eQEP功能即正交解码单元使得读取编码器信号变得简单,使得电动机的速度与位置信号能够被准确采集,其余外设功能丰富,具体特性如下所示。
(1)  内核。
 高效率32位浮点CPU(TMS320C28x)。
 主频90MHz(11.11ns 周期时间)。
 哈佛(Harvard) 总线架构。
 快速中断响应及处理。
 高编码效率(采用C/ C++语言和汇编语言)。
(2) 运算。
 浮点单元,具有本地单精度浮点运行功能。
 可编程控制律加速器(CLA)。
 32位浮点数学加速器。
 对C28x指令集进行了扩展以支持复数乘法及循环冗余校验(CRC)。
(3) 存储。
 嵌入式内存。
 高达256KB内存。
 容量高达100KB的RAM。
(4) 低功耗。
 仅需单电源3.3V供电,无电源上电顺序要求。
 低功耗操作模式。
(5) 时钟。
 无须外部晶振,内部集成了两个独立的振荡器,每个振荡器频率为10MHz。
 单片晶体振荡器/外部时钟输入。
 支持动态PLL比率改变。
 看门狗定时器模块。
(6) 增强的控制外设。
 可支持所有外设中断的外设中断扩展(PIE)模块。
 3个32位CPU定时器。
 多达8个增强型脉宽调制器(ePWM)模块。
 总共16个PWM通道[其中有8路能够支持高分辨率PWM(HRPWM)通道]。
 每个模块中独立的16位定时器。
 3个输入捕获(eCAP)模块。
 2个正交编码器(eQEP)模块。
 16通道12位ADC,双通道采样以及保持采样率高达3MSPS。
 如果选择内部3.3V参考源,输入电压为0~3.3V。
(7) 串行接口外设。
 多达2个串行通信接口(SCI)模块。
 两个串行外设接口(SPI) 模块。
 一根内置集成电路(IIC)总线。
主控制电路首先将USB口的5V电压通过TLV1117LV33芯片转换到3.3V为主控TMS320F28069芯片以及USB转串口芯片FT2232H供电,仿真电路与主控电路通过多通道的数字隔离芯片ISO7240、ISO7231与主控电路进行电磁隔离,保证主控电路的稳定运行; 其中93LC56BTIOT为2KB的Microwire兼容串行的EEPROM,用于存储烧写的仿真器固件。仿真电路如图3.4所示。
仿真电路采用的是XDS100V2 仿真器,从名称中可以反映出版本,对TI全系列芯片兼容。通过14引脚的接口进行仿真调试,支持TI公司的官方编译器CCS系列V6及以上版本,兼容多种PC操作系统以及MAC系统。其特性有: 支持USB 2.0高速接口,支持多种






图3.4仿真电路原理图



处理器如TMS320F28x、TMS320C28x、TMS320C54x、ARM9、ARM CortexA8、ARM CortexA9和CortexM3等,支持断电检测,自适应时钟支持Code Composer Studio V6和更高版本,主控电路引出引脚如图3.5所示。


图3.5主控芯片功能引脚原理图



JTAG相关引脚与FT2232相连,除了LED灯与KEY用到的I/O口以及CAN connector接口,其余功能引脚引到主控板的P2和P3处,具体引脚功能如图3.6所示,再通过与其他接口相同模块的连接来实现外部信号与主控芯片的相互传递。


图3.6主控板原理图


其中,3.3V用于主控板供电,使用开关S5来实现主控板USB电源未连接时通过外部电源管理电路来为主控板供电。
3.3电源管理电路
由于系统较为复杂,各模块的供电电压也有区别,需要利用电源模块来实现各部分硬件电路的不同电压供给,因此电源模块中包含多个电压转化电路。供电电池采用移动电源(充电宝)的原理简单,在外部电源供应的场合预先为内置的电池充电,即输入电能,并以化学能形式预先存储起来,当需要时即由电池提供能量及产生电能,通过电压转换器(直流直流转换器,


图3.7电压转换器

如图3.7所示)提供所需电压,电量约为10000mAh,满电压约为5.0V(输出升压至12.0V),使用XL2596S将12V转化为5V(如图3.8所示),使用TLV1117LV33将5V转化为3.3V,用于主控板供电及其他电路的外接设备供电(如图3.9所示)。


图3.812V转5V原理图





图3.95V转3.3V原理图



通过以上3部分电路,得到的5V与3.3V通过Forest S1引脚对外输出,如图3.10(a)所示,而12V则单独通过tb1向电动机驱动板输出,如图3.10(b)所示。


图3.10电源板接口原理图




选用锂电池作为外部电源,是因为锂电池没有记忆效应,充放电的次数较多,能量密度大,安全性较高,充放电性能也更好。锂电池或锂离子聚合物电池不管以重量计算或以体积计算,能量密度都是最高的。此外,锂电池或锂离子聚合物电池在充电及放电过程中的效率也较高。但是锂电池过充或过放很容易使电池永久损坏,所以需要有较精密的电子线路控制其充放电; 而且锂电池在高温下会自燃,因此安全性及稳定性极为重要,需要提供可靠的安全保护电路防止任何导致超温的情况出现。
锂电池有硬的外壳,锂离子聚合物电池则没有,所以锂电池理论上会轻微略重,而锂离子聚合物电池由于没有硬壳,便于制成特定尺寸以配合外观,但锂离子聚合物电池在充满电后体积会略为膨胀变大,需要在设计时预留空间,免得电池内压力过大而造成危险。
如图3.11所示,电池电压由电阻分压,在AD0处采集到的电压为实际电池电压的1/11,将采样值代入式(3.1)进行计算(这里ADC采样精度为12位)。


Battery_Voltage=Get_Battery×3.3×11/4096(3.1)



再根据判断标准对测得的电量变量 Battery_Voltage 进行判断,当电量低于阈值时,设置拉低GPIO56来使得蜂鸣器工作,从而实现电量不足的报警。



图3.11电压采集及报警电路




视频讲解



3.4电动机驱动电路
直流电动机驱动的理想简化模型如图3.12所示。


图3.12直流电动机驱动简化模型


图3.12中U为输入到电动机的电压源,电线与绕组中的电阻与电感分别用R与L表示,电动机转子旋转时产生的反电动势用E表示,电流i方向如图3.12所示,T为带动负载旋转所需的扭矩。为了达到轮式机器人的平衡,最重要的是根据当时车身的姿态及车轮的速度来实时地对输出扭矩做调整,而电动机的负载扭矩由电流决定,可概括为如式(3.2)的线性关系式。


T=ki×i(3.2)


因此通过控制电流i就可以控制电动机的转矩,从图3.12中可以得到电压守恒方程式,如式(3.3)所示。


U=R×i+Ldidt+E(3.3)

转速越快,切割磁感线速度越快,反电动势E越大,也可以用线性关系式(3.4)表示。


E=ke×w(3.4)


对公式(3.3)做拉普拉斯变换可以得到式(3.5)。


I(s)=U(s)-kew(s)Ls+R(3.5)


由式(3.5)可以得到,排除固定的系数,电动机电流的大小与给定电压、实际转速、线圈电感与线圈电阻由以上关系共同决定,线圈的电感与电阻为系统常量,所以想要调节电动机转矩T,可以通过调节给定电压从而改变电流来间接实现转矩的调整,至于转速ω也会随其他变量的变化而变化,所以不能作为调整的主体。
综上所述,电压控制是直流电动机驱动的主要任务。直流电动机的转速较高,需要通过一级或者多级的减速器来增加扭矩以及控制性能,这里使用的永磁有刷直流电动机额定功率为4.3W,额定电压为12V,额定电流为360mA,堵转电流为2.8A,额定转矩为1kg·cm,原始最大转速为10000rpm,实际空载转速为330±10rpm,减速器减速比为1比30。


由图3.13 可以看出,在加速阶段,转速提升时的加速度基本与电枢电压呈线性关系,加速时间由电动机转动惯量、减速器传动比等因素决定,一般不超过一秒,当加速至恒速时,最大速度与电压之间同样显示出了正相关关系。


图3.13直流电动机转速特性图


结合有刷直流电动机的原理,平衡移动机器人采用的是TI公司的TB6612系列的有刷直流电动机驱动芯片。TB6612电动机驱动芯片有两个全桥电路可以同时驱动两个直流无刷电动机,其中一个简单的PWM 接口便可以方便地对控制器电路进行接入,峰值输出电流为2A,宽电源电压范围为2.7~10.8V。其控制框图如图3.14所示。


图3.14电动机控制原理框图



AIN1和AIN2引脚控制着AOUT1和AOUT2的输出,同样,BIN1和BIN2 控制着BOUT1和BOUT2的输出,其作为I/O口进行控制电动机时,控制逻辑如表3.1所示。


表3.1I/O口模式电动机控制逻辑表






xIN1xIN2xOUT1xOUT2功能
00ZZ平稳滑行/快速停止
01LH反转
10HL向前
11LL制动/减速

当利用PWM作为输入控制电动机时,其控制逻辑如表3.2所示。


表3.2PWM模式电动机控制逻辑表



xIN1xIN2功能
PWM0向前PWM,快速停止
1PWM向前PWM,缓慢减速
0PWM反转PWM,快速停止
PWM1反转PWM,缓慢减速

这里设置TB6612FNG工作在PWM输入模式,通过两路PWM信号的输入来实现电动机正反转及调速控制,其原理图如图3.15所示。


图3.15电动机驱动电路图



图3.16是电动机驱动板接口原理图。通过AB输入端口GPIO输出的高低组合切换不同的驱动电压,用于在后期实验时观察驱动电压对驱动效果的影响。
电动机驱动还包含电动机编码盘的测速信号读取,编码器是一种将角位移或者角速度转换成一连串电数字脉冲的旋转式传感器。应用较多的编码器主要是增量式编码器和绝对式编码器,二者的区别在于数据的信号处理有所不同,其次根据其检测原理有更加细致的划分,比如利用光电效应的编码器以及利用磁场原理的霍尔编码器,如图3.17所示。



图3.16驱动板接口原理图




图3.17霍尔编码器示意图



本方案采用的是增量式霍尔编码器,通过AB两相正交的方波脉冲来传递直流电动机的方向以及位置信号,AB两路信号的相位差经逻辑电路处理后可以判断转动方向,而通过对方波个数的计数可以得到电动机位置,电动机速度的判断借助定时器的中断功能配合编码器的输出脉冲信号来完成,具体方法是使用定时器规定检测周期,将周期内的脉冲个数作为速度的代替值。
将电动机编码器AB相信号引入eQEP模块,其接口电路如图3.18所示。其中AO1、AO2为TB6612FNG的输出信号,5V用于给霍尔编码器供电,AB两路的编码器信号线接入QEPA和QEPB接口。



图3.18eQEP功能接口原理图

3.5直流电动机驱动H桥电路
如图3.19所示为一个典型的直流电动机控制电路。以“H桥式驱动电路”为名是因为它的形状酷似字母H。4个三极管组成H的4条垂直腿,而电动机就是H中的横杠。如图3.20所示,H桥式电动机驱动电路包括4个三极管和一个电动机。要使电动机运转,必须导通对角线上的一对三极管。根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电动机,从而控制电动机的转向。



图3.19直流电动机控制电路




图3.20H桥电路驱动电动机顺时针转动



要使电动机运转,必须使对角线上的一对三极管导通。例如,如图3.20所示,当Q1管和Q4管导通时,电流就从电源正极经Q1从左至右穿过电动机,然后再经Q4回到电源负极。如图3.20中电流箭头所示,该流向的电流将驱动电动机顺时针转动。当三极管Q1和Q4导通时,电流将从左至右流过电动机,从而驱动电动机按特定方向转动(电动机周围的箭头指示为顺时针方向)。图3.21所示为另一对三极管Q2和Q3导通的情况,电流将从右至左流过电动机。当三极管Q2和Q3导通时,电流将从右至左流过电动机,从而驱动电动机沿另一方向转动(电动机周围的箭头表示为逆时针方向)。
使能控制和方向逻辑驱动电动机时,保证H桥上两个同侧的三极管不会同时导通非常重要。如果三极管Q1和Q2同时导通,那么电流就会从正极穿过两个三极管直接回到负极。此时,电路中除了三极管外没有其他任何负载,因此电路上的电流就可能达到最大值(该电流仅受电源性能限制),甚至烧坏三极管。基于上述原因,在实际驱动电路中通常要用硬件电路方便地控制三极管的开关。如图3.22所示就是基于这种考虑的改进电路,它在基本H桥电路的基础上增加了4个与门和2个非门。4个与门同一个“使能”导通信号相接,这样,用这一个信号就能控制整个电路的开关。而2个非门通过提供一种方向输入,可以保证任何时候在H桥的同侧腿上都只有一个三极管能导通。与本节前面的示意图一样,如图3.22所示不是一个完整的电路图,特别是图中与门和三极管直接连接是不能正常工作的。



图3.21H桥电路驱动电动机逆时针转动




图3.22具有使能控制和方向逻辑的H桥电路



采用以上方法,电动机的运转就只需要用3个信号控制: 2个方向信号和1个使能信号。如果DIRL信号为0,DIRR信号为1,并且使能信号是1,那么三极管Q1和Q4导通,电流从左至右流经电动机(如图3.23所示); 如果DIRL信号变为1,而DIRR信号变为0,那么Q2和Q3将导通,电流则反向流过电动机。


图3.23使能信号与方向信号的使用



实际使用的时候,用分立元件制作H桥电路是很麻烦的,好在现在市面上有很多封装好的H桥集成电路,接上电源、电动机和控制信号就可以使用了,在额定的电压和电流内使用非常方便可靠。常用的有L293D、L298N、TA7257P、SN754410等。

3.6传感器与外设模块
主要用到的传感器包括陀螺仪加速度计传感器、超声波传感器、蓝牙通信模块及线性摄像头传感器。
3.6.1基于陀螺仪与加速度计的姿态测量
智能平衡式移动机器人的一大特性便是在自不稳定的条件下保持平衡,而维持平衡是通过检测车身倾角而调整电动机转速与转矩来实现的,在这一过程中姿态检测尤为重要,本方案使用的是Invensense公司的MPU6050系列芯片(如图3.24所示),集成了三轴加速度计和陀螺仪,可实现对各个方向角度和速度的解算。通过IIC接口可以进行3个方向的加速度信号和角速度信号的读取。


图3.24陀螺仪方向示意图



要计算出车体的倾角,可以通过重力加速度在其他轴上产生的分量来计算出角度,即测量X轴或Y轴某一轴向的加速度就可以计算出倾角,因为在传感器静止水平的时候,X轴与Y轴不会有输出,而在其产生一定的倾角时才会使重力加速度g在X轴或Y轴上产生分量,而且该轴倾斜的角度和重力分量的大小相关。所以只要利用C语言中的atan2(x,y)函数,计算X轴与Z轴平面或者Y轴与Z轴平面的当前方位角,同时将其值转化为角度值,计算方法如式(3.6)和式(3.7)所示。


Angle_X=atan2(Accel_Y,Accel_Z)×180/PI(3.6)

Angle_Y=atan2(Accel_X,Accel_Z)×180/PI(3.7)


但是这个角度会受到车体运动加速度值所带来的误差影响,从而导致角度计算的精度不够; 具体分析如下: 假设轮式机器人的倾角为β,传感器Z轴朝上水平安装在轮式机器人上,运动方向为水平时候的Y方向,如果不考虑运动时产生的加速度值,加速度计测量到的Y轴的值即为式(3.8)。


ay=sinβ×g(3.8)


而实际运动情况下Y轴的加速度还应考虑平衡移动机器人的运动加速度a′,因此得到式(3.9)。


ay=sinβ×g+cosβ×a′(3.9)


a′代表了线加速度与角加速度的和,这样无法准确地计算出倾角。所以仅仅是加速度计不足以得到准确的结果,这里选用的传感器MPU6050还包含了陀螺仪的检测单元,能够输出三轴角速度信息,通过角速度值,可以进行积分得到角度值,因而也就避免了加速度计算角度产生的误差。假设在一个5ms的定时中断服务函数中执行式(3.10)。


Angel_X=Angel_X-Gyro_X×0.005(3.10)


式中,Gyro_X为陀螺仪输出的X轴方向的角速度。MPU6050输出的陀螺仪的原始数据是-32768~32768,可以根据式(3.11)转换成以(°)/s为单位。


Gyro_X=Gyro_X/k(3.11)


其中,k和初始化时的量程有关,可以在MPU6050的手册中查到,当初始化为±2000°/s时,k=16.4,如图3.25所示。


图3.25MPU6050量程设置(数据手册截图)



但积分运算在不断累加的过程中很容易积累误差,而角速度信号会在干扰等情况下产生一些微小的偏差,如果经过积分运算,就会使得偏差增大,从而使得信号失真,就算传感器静止放置,通过积分运算得出的角度值,经观察也很可能呈现随时间增加的情况,所以仅使用陀螺仪数据,无法得到准确的角度。另一种方法是将两种测量数据通过数学方法相融合得到最终的值,常用的方法有以加权平均为原理的一阶互补滤波,高级的方法有卡尔曼滤波。互补滤波具体实现见式(3.12)。


Angle=k1×Angle_m+(1-k1)×(Angle+Gyro_m×dt)(3.12)



Angle是融合后的角度值,Angle_m是加速度测量得到的角度,Angle+Gyro_m×dt是陀螺仪积分得到的角度,dt为采样周期,单位是s。k1是滤波器系数,这里选取0.02。
下面通过一个实验来对比3种测量方法的实际效果,将安装了MPU6050的机器人在桌面上直立,然后轻轻拍打桌面。将计算值通过串口输出到上位机,通过上位机可以观察到3条曲线,如图3.26所示。其中顶部是通过陀螺仪积分获得的角度,折线是加速度计测量的角度,折线所包含的是两者通过算法融合得到的角度。


图3.26数据采集效果对比



可以看到,陀螺仪积分得到的角度因为自身的零点漂移,误差随着时间变化在每一个时间周期中逐步增加,误差越来越大,最终偏离真实值。加速度计测量的角度信号在受到外界干扰的情况下,会有很大的毛刺。而通过算法融合得到的角度值则非常稳定,变化范围也很小。数据融合的要点在于,将加速度计及陀螺仪两种传感器的固有弱点相互抵消,加速度计容易采集到的某一时刻加速度的瞬时值,而陀螺仪的积分会放大温度漂移静态误差,瞬时值需要通过滤波器过滤掉,而陀螺仪的误差不能够被长时间的积分反复累计,所以需要互补滤波器来实现加速度计对陀螺仪计算角度的纠正,将陀螺仪测得的数据作为主要的计算依据,由于加速度计会将运动速度计入因而不够精确,但是在每个循环周期反复积分时给其一定的比重,就能够矫正偏差的累计,最终得到相对精确的测量值。硬件上,MPU6050模块通过IIC接口与主控芯片进行通信,该模块采用市面通用的8引脚直插模块,方便维修更换,传感器电路以及接口电路如图3.27所示,由于其电路中设计了稳压模块,输入电压可以为3.3~5V,这里接入5V,AD0是当总线连接了多个IIC从设备时,通过该位来为从机选择一个地址。当MPU6050设置为从机模式的时候,通过AD0位来选择8位地址中的最低位,其余7位是固定的0x68,由WHO AM I寄存器决定,XCL引脚与XDA引脚为MPU6040作为主机时候的时钟线与数据线,本书的方案中IIC设备仅有MPU6050,并且工作在从机模式,因而接口电路只需要连接电源和地,另外连接IIC接口的SCL与SDA引脚即可,INT为中断引脚,这里没有用到,保持悬空。


图3.27陀螺仪模块原理图及接口电路



3.6.2蓝牙通信模块
通过蓝牙串口可以观测车轮的速度等信息,蓝牙串口采用的是德州仪器的CC2541系列芯片,支持AT指令,功耗低,收发灵敏度高,具有宽泛的电源电压范围,不使用外部前段而支持长距离应用,可以通过蓝牙4.0协议快速地与手机、计算机等设备建立连接,从而接收串行数据,实现远程遥控。使用成熟模块时,仅需要将串口SCIA的两个引脚与模块相连,如图3.28所示。


图3.28蓝牙串口接口与实物图



3.6.3OLED显示模块
OLED即有机发光二极管(Organic LightEmitting Diode),又称为有机电激光显示(Organic Electroluminesence Display,OELD)。OLED由于同时具备自发光、不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优点,被认为是下一代的平面显示器新兴应用技术。OLED显示技术具有自发光的特性,采用非常薄的有机材料涂层和玻璃基板,当有电流通过时,这些有机材料就会发光,而且OLED显示屏幕可视角度大,并且能够节省电能。OLED模块接口实物图和显示屏如图3.29所示。


图3.29OLED模块接口实物图


OLED模块的8080接口方式需要如下一些信号线。
 CS: OLED片选信号。
 WR: 向OLED写入数据。
 RD: 从OLED读取数据。
 D[7: 0]: 8位双向数据线。
 RST(RES): 硬复位OLED。
 DC: 命令/数据标志(0,读写命令; 1,读写数据)。
3.7本章小结
本章根据智能平衡式机器人平台的特性与应用要求,提出统一硬件接口标准、模块化搭接实现平台的硬件系统设计。主要完成的任务包括以下方面。
 集成仿真器的主控制板电路与硬件设计。
 用于多个设备独立供电的电源管理板电路与硬件设计。
 可调节驱动电压的电动机驱动板电路与硬件设计。
 陀螺仪加速度计、蓝牙、OLED显示在内的传感器与外设模块电路与硬件设计。