基于STM32的全向移动机器人设计解析

2020-02-23 09:12
中国新技术新产品 2020年24期
关键词:微控制器驱动器伺服电机

(北京理工大学珠海学院,广东 珠海 519088)

0 引言

因为双轮机器人的目标点定位有误差,且调整效率较低,需要到达目的地后再次调整方向,影响搬运效率的提升。所以,该文在嵌入式单片机(STM32)的基础上设计出的全向移动机器人可以有效克服位置与角度的误差,促进搬运效率的提升,充分满足当前工业发展的新需求。

1 全向移动机器人的硬件设计

1.1 USB转串口模块

在微控制器的内部设置TTL电平,将输入门2.0 V~5.0 V设置为逻辑“1”,0.0 V~0.8 V设置为逻辑“0”;输出门2.4 V~5.0 V和0.0 V~0.4 V分别设置为逻辑“1”和“0”。USB总线经过D+与D-2个信号线实施通信,当D+为高电平、D-为低电平时,就意味着总线为逻辑“1”,反之则为逻辑“0”。因此,当微控器与计算机总线相连时,如果要开展串口通信、ISP固件下载等工序,则应该利用串口模块将计算机中SUB口信号转变为微控制器支持的TTL串口电平,并将微控制器中的TTL电平转变为可识别的USB总线电平。利用USB总线中的转接芯片CH340完成USB口向TTL串口的转变。对于前者来说,它的作用主要体现在2个方面:1)将CH340芯片中RXD引脚微控制器的异步串口连起来,并与调试软件相结合实现串口调试。2)将芯片中的RTS#、DTR引脚以及ISP电路连在一起,这样就可以利用USB对微控制器固件程序进行下载[1]。

1.2 超声波测距模块

超声波频率超出人耳的感知范围,一般为2 000 Hz以上,且波长较短,带有狭小的发射线束,并通过波束的形式广泛传播,方向性较为明确。压电式发生器的应用较为普遍,当发射超声波时,发生器应该将电能转变为超声震动;当接收反射回波时,在传感器的作用下可以将回波转变为电信号,这就是压电效应[2]。在该文的研究中,机器人采用HC-SR04模块进行距离测量与障碍规避,其额定电压值为DC5 V,频率为40 kHz。可以测量4.0 m内的障碍物,精准度可以达到0.3 cm。

除电源之外,该模块的接口还可以是TTL输入引脚与回波输出引脚。该模块的应用原理如图1所示,主要包括触发信号、发射信号与回波。具体传输原理:首先,在微控制器中发出信号,经过该模块的输入引脚进入发射电路;其次,利用超声波对回波信号进行输出;最后,传微控制器的额外定时器中。该控制器可以定时器中的输出模式与传输引脚结合在一起,对电平信号进行转换,为该模块提供一个超过10 μs的高电平信号,并发送8个频率为40 kHz的脉冲信号。如果该信号遇到反射物体后进入超声波模块,则接收器将接收到固定时段内的信号。回波的持续时间与超声波的往返时间相同,接收器将高电平信号输入引脚,利用定时器对信号进行采集,得出信号升降的时间,进而计算出回波脉冲的宽度。

1.3 Wi-Fi通信模块

该模块属于上位机中的智能终端,与下位机的主控器进行通信传输。在实际应用中,智能终端可以借助内部Wi-Fi模块将软件指令传递给主控器中的通信模块。待主控器接收到传递信息后,USB摄像头中采集的视频信号也可以通过Wi-Fi模块传递到智能终端。该模块在Linux内核的基础上构建操作系统,并支持路由器开发。在OpenWrt系统中创建媒体服务器,就可以发挥实时视频传输的作用。该系统可在多样化嵌入式芯片中运行,除支持MIPS体系之外,还支持PowerPC与ARM等结构。全向机器人中的Wi-Fi模块内置MT7620芯片,具有580 MHz主频的特点。在通信模块中配置32 MB内存,当通信接口与串口相连时,其额定电压为DC5 V。

图1 超声波测距原理图

1.4 电机驱动模块

在机器人运行的过程中,动力电机会为伺服电机提供相应的控制信号,并结合控制指令执行运动动作。动力电机与驱动器共同组成伺服系统,也就是随动系统,该系统控制肌肉系统的作用[3]。该文采用型号为RMDS-106+的驱动器,其接口如图2所示。将其作为主控芯片,为RS485通信模式提供支持,还可以与PC连接进行驱动调试,为每个电机配置1个驱动器。在调试过程中,将232T、GND以及232R接口与PC相连,将额定电压设置为24 V,采用串行方式与PC通信,为驱动器标记唯一的号码,以免出现混淆。主控设备可通过CANL信号线与驱动器连接,再通过总线通信将运动指令传递到总线。驱动器中的接口也可以通过并联模式挂载到主控总线上,与驱动器监听的编号信息相结合,依靠定时器形成特定比例的PWM波形。在该波形中还需要增加功率放大电路,从MT1与MT2引脚输出后,可对动力电机进行驱动,使其满足转速运动的需求。

图2 驱动器接口示意图

控制电机转速和方向的方法较多,当前,应用较为频繁的1种是调节励磁与电枢电压的方法。励磁线圈电感较大,动态响应相对较弱,在低速状态下很容易受到磁极饱和的影响,导致效果不够理想。为了达到精准可靠的目标,同时获得较大的转矩,与大多数机器人控制场景相同,该机器人也采用电枢控制模式进行伺服电机操控,并在电枢上加入特定的直流电压,电机就可以根据电压值进行相应的旋转,当电压方向改变后,电机旋向也随之改变。

2 全向移动机器人的软件设计

2.1 开发环境

在安卓系统中运行时,该机器人将智能终端作为上位机,在Linux基础上构建移动操作系统;底层程序库利用C++语言编写相关程序,其中,应用程序均由Java语言编写。Google企业为开发者专门打造了集成工具安卓Studio,并营造与之相对的开发环境。下位机是以STM32F103作为主控系统,它的软件是在MCU中运行的控制固件代码,其集成嵌入式开发环境、构建程序编译工具链并将下机位作为ARM的开发平台。在下机位内部有指令模拟器,同时具备单机脱离硬件调试的能力。在不嵌入单片机硬件的条件下,就可以在模拟代码中运行。该企业为微控制器开发了很多库函数,并对库函数进行合理地应用,极大地缩短了软件开发周期,主要流程如下:首先,创建相应的工程项目,针对内部参数进行设置,例如晶振频率、目标芯片等;其次,在项目中编写代码,使软件功能更加丰富完善,可以完成工程编译、测试等操作;再次,当发现错误后及时纠正代码,对其进行重新编译直至准确无误;最后,再将其与硬件相结合进行调试。

2.2 上位机设计

安卓端程序设计主要包括流媒体数据、App参数与控制指令等内容。在启动App后,先进入参数设置界面,在该界面明确控制信号IP地质以及流媒体服务器IP地址等。在控制指令中,可以利用图片按钮组件实现在App应用中,对按下按钮时的事件进行监测,如果监测到按键被按下,就会将键值传送到控制信号的IP地址中,由Wi-Fi模块对控制信号进行接收,再经过串口传递给主控制器。对实时流媒体服务器中的IP地址进行访问,利用解析器对服务器中的视频信息进行播放,就可以达到远程监控的效果[4]。

2.3 下位机设计

该软件的主要作用是对上位机控制指令做出响应,并控制机器人运动,将采集的数据传递到App。串口通信程序设计包括数据发送和数据接收等程序。主控器接口可经过RX数据、TX数据与Wi-Fi模块相互连接。在两者之间利用相同的通信协议进行串口通信,每个数据包中带有5 Byte,以Ofxx作为包头与包尾,可用的数据位还剩下3 Byte。当通信程序检验到头尾为Ofxx时,就意味数据是有价值的,可存入缓冲区域;反之,则说明数据无效,应将其剔除。CAN总线可完成数据收发工作,在串口接收下重新编码,将CAN指令传递到电机驱动器总线中,对驱动设备传递的信息进行接收。在开启通信端口前,应该对串口能否成功开启进行检验,如果成功开启,就可以对端口进行初始化;反之则在出现错误信息后停止运行。在初始化启动后,根据串口信号做出相应决策,生成与之相对的数据帧。在电机驱动下根据信号对底盘电机进行控制,也可以通过驱动器中的收发器传递给机器人。如果发现机器人的运动状态达到预期目标,就停止操作;否则要重新读取串口数据,并重复上述流程。

2.4 电机驱动程序设计

电机利用较为典型的PID闭环控制算法,以STM32F103微控制器为主芯片,以伺服电机为执行器,在反馈值与理想值的基础上构建PID控制系统。PID控制是积分、微分和比例的统称,在伺服电机驱动器为动力电机传输信号后,其控制信号从零跳转到给定值,使机器人运行更加稳定,实现平滑控制的目标。比例控制以反馈与理想值的误差作为控制值。当比例控制趋于稳定时,就处于稳定状态。在取值范围内,虽然控制增益与稳态值成反比,后者随着前者的增加而减少;但是也可能出现振荡情况。为了减少该情况的出现,可以利用积分控制实现比例控制。积分控制主要是控制信号与误差信号的和,它可以把比例控制形成的稳态误差剔除,一般与微分控制联合应用[5]。PID原理,如图3所示,与期望控制量进行对比,如果超过该值就将比例、积分与微分控制结合起来,共同作用于伺服电机,并且输出实际控制量;如果没有超过该值则在进行反馈后,输出实际控制量。

在运动控制方面,可以以运动控制中是否采用PID参数为根据,将其分为开环与闭环2种控制模式。对于前者来说,可以直接设定伺服电机数值,不需要对反馈量进行分析。在对动力电机进行检测时,可以优先采用开环控制。通过伺服电机的电流控制,在状态趋于稳定后,使电机内的电流达到恒定状态,并且让力矩随着时间的变化而不断改变。电流值与电机加速度成正比,当对电流值进行控制时,电机速度也会随之而变。在该模式下,可以确保电机长期运转时电流值稳定在科学可控的范围,避免因为电机长期堵转导致内部电流激增,最终而造成电机过热被毁。伺服电机长期保持特定的速度运转,被称为速度环控制。当速度环控制居于稳定时,伺服电机速度与负载均受到直接影响。可以应用于多种需要电机保持恒定的场所。当开环运行时,伺服电机转速较快,受惯性作用影响,难以使其在短时间内暂停运行。因此,速度环模式也可以用于控制运动体刹车,其反馈速度可以从光电编码器中体现出来;在速度控制时,积分控制与比例参数基本相同。电流速度控制包括速度和电流2个方面,不但可以促进直流伺服电机的稳定运行,而且还可以输出恒定力矩,在长期拥堵的状态下避免因电流过热而损坏设备。在控制参数中包括速度比例、电流积分参数和比例参数等。通常情况下,机器人采用电流速度控制,要求伺服电机按照特定速度转动,电流值小于给定值。

图3 PID控制原理图

3 系统测试

为了检测控制系统是否稳定可行,在STM32的基础上构建的全向机器人,可以利用无线通信为上位机传送指令,借助串口将数据打包传递给开发板,并将融合数据反馈给上位机;同时,对长短里程的精度指标进行分别测试。在里程精度测试中,以短距离为主,直线速度为0.5 m/s,角速度为0.5 rad/s,多次测试后汇总得出底层误差,见表1。根据表中数据可知,横轴与纵轴的距离均为998 m,自转角度为360°;在误差方面,纵轴误差超过横轴;那么,就可以接受自转角度存在误差。

表 1 里程误差

对长距离的里程精度进行测试,当距离在220.000 m时,总转角为1 980.0°;当横轴偏差为-2.680 m、纵轴偏差为-2.983 m时,角度偏差为13.7 °。因为考虑到机器人在运行中底部容易打滑,所以在进行零半径转弯测试时,只要转角值为7 200.0 °、差值为48.5 °、横轴误差在80 mm以内,纵轴误差在100 mm以内,都符合相关规定的要求。

4 结论

总的来说,首先,该文对移动机器人系统的软件、硬件设计进行分析,在STM32的基础上使控制系统更加精准灵活,通过人机交互系统实现无线视频监控,使PID控制算法得到优化;其次,将其应用到嵌入式软件设计中,通过应用安卓系统的上位机App进行设计;最后,对机器人样机进行试验测试,并将检测结果进行分析,从而有限验证了机器人的可控性、稳定性与可行性,实现理想的人机交互效果。在未来的研究中,还可以将多传感器技术引入其中,为机器人路径规划与导航设计提供强有力的支持,使其拥有更高的自主移动能力,在各种复杂的环境中得到广泛应用。

猜你喜欢
微控制器驱动器伺服电机
专利名称:一种适应压铸环境的伺服电机
藏起驱动器号确保数据安全
生产线中的伺服电机定位控制
伺服电机控制技术的应用及发展趋向分析
物联网技术在微控制器实验教学中的应用
压电陶瓷驱动器的迟滞特性
SiC基和Si基永磁同步电动机驱动器的比较
Atmel针对新一代物联网应用发布全新32位微控制器
新型低电压大变形微驱动器数值求解及仿真
最新STM32设计工具增加对混合信号微控制器的支持