杨 帆,李富善
1.武汉工程大学电气信息学院,湖北 武汉 430205;
2.湖北省视频图像与高清投影工程技术研究中心,湖北 武汉 430205
步进电机因其组成的开环系统简单、廉价及可控性强等特点,广泛应用于各种控制装置[1-3]。不论是农业领域的机械化耕种,还是工业领域的各类产品的生产,绝大部分设备都或多或少的运用了步进电机[4-7]。但目前大多数的控制装置中对步进电机的控制,仍然是以有线、手动的方式为主,系统繁杂操作不够简便,因而广泛普及对步进电机的无线控制就显得越来越重要[8-11]。随着单片机技术和无线通信技术的发展,用单片机结合无线收发器来控制步进电机的探索为这种需求提供了一种可行的思路[12-13]。魏印龙等[14]设计了一套基于AT89C51单片机的步进电机控制系统,通过51单片机对步进电机进行控制,采用ULN2003A步进电机控制芯片对不同精度的步进电机驱动,实现了步进电机的起停控制、正反转控制和调速控制;王晨光等[15]等分析了单片机的硬件接口电路并设计了对步进电机的软件控制的方式,提出对于不同步进电机,可以通过修改相应的电路及相关程序实现,该设计提高了系统控制的灵活性;丁伟雄、杨定安等[16-17]首先介绍了步进电机工作过程,然后探索了步进电机的控制原理包括对电机采取的控制方式和驱动方式做了进一步的说明,最后采用51单片机来控制电机,并给出了两种不同控制方式的具体实现方法。以上研究虽然对步进电机的控制有了改进,也使用了单片机作为控制核心,但是都采用有线控制的方式,对电机的控制仍然存在不足。
本文设计了一种通过上位机无线控制步进电机的控制系统,改进了以往的手动有线的控制方式,增强了步进电机对无线信号的响应。
系统主要包括上位机模块和下位机模块如图1所示,上位机模块中操作员在控制界面上按下控制指令,指令便转化成相应数据通过串口线传输到单片机数据缓存区,nRF无线发射器获取储存在单片机缓存区中的数据,并通过无线方式发送给下位机。下位机模块中nRF无线接收器接收来自上位机的数据并将其存储于缓存区,单片机从nRF缓存区获取该数据信号,获取数据后将该信号转化成对步进电机的相应控制信号,传输给步进电机驱动器驱动电机运转。
图1 系统结构:(a)上位机,(b)下位机Fig.1 System structure:(a)upper computer,(b)lower computer
本设计采用一块51单片机与上位机用串口线相连,选用一块配置成发射模式的nRF24L01芯片作为无线信号发射器(以下简称nRF)。上位机的控制信号经串口线发送给单片机,并由nRF芯片发射给下位机模块。图2为上位机模块中单片机的电路原理图。
本设计采用另一块51单片机作为系统下位机模块的控制中枢,选用另一块配置为接收模式的nRF芯片作为无线信号接收器。单片机通过nRF芯片接收来自上位机的控制信号,将信号转化成对步进电机的驱动指令发送给电机模块驱动电机工作。下位机模块中单片机的电路原理图如图3所示。
图2 上位机模块电路原理图Fig.2 Circuit diagram of upper computer module
图3 下位机模块电路原理图Fig.3 Circuit diagram of lower computer module
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件,本设计选择28BYJ48步进电机作为被控对象,使用ULN2003驱动器驱动步进电机工作。28BYJ48步进电机共有4组线圈,共5根引出线。步进电机与51单片机的接线图如图3所示,图中CON5为步进电机的引线端。轮流给步进电机各引出端通电即可使步进电机转动。步进电机各线圈的接通与切断由下位机模块中单片机的P1.0和P1.3端控制。通电后,P1.0和P1.3端的电平均置为高电平,接着依次将P1.0和P1.2端的电平切换为低电平即可驱动电机运行。电机转速的快慢取决于两次接通电源之间的时间间隔,改变P1.0和P1.2轮流变低电平的时间即可达到调节速度的目的。在本设计中设定步进电机最低转速为 20 r/min,脉冲间隔为62.5 ms。最高转速设定为100 r/min,脉冲间隔为12.5 ms。
PC机作为上位机,通过串口数据线向单片机发送步进电机的控制信号,上位机控制界面设计了六个控制按钮和两个下拉选择框,点击控制界面上不同按键时PC机向单片机发送对应的控制信号。上位机控制界面如图4所示。
图4 上位机控制界面Fig.4 Control interface of upper computer
步进电机的转速设定为5个档,每按一次加速按钮,电机转速增加一档,增加到五档后转速不再加快,维持在第五档;每按一次减速按钮,电机转速降低一档,降低到第一档后转速不再减慢,维持在第一档。表1为电机档位设定。上位机控制程序流程图如图5所示。
上位机模块中的单片机接收到来自上位机的串行信号后,整理信号并通过无线收发器实时发送给下位机模块。上位机模块中上位机与单片机之间通信方式为异步通信,nRF自动重发次数限制为10次。本设计采用nRF芯片作为无线传输的主要媒介,nRF收发器有两种工作模式,发射模式和接受模式。本设计将上位机模块中的nRF配置为发射模式。nRF工作在发射模式下的工作过程如下:
表1 电机档位设定Tab.1 Motor gear position settings
图5 上位机控制程序流程Fig.5 Flowchart of upper computer control program
首先将nRF24l01无线收发芯片配置为发射模式,开启自动重发和自动应答。按照时序在nRF芯片缓存区保存接受节点地址和数据,芯片CE端置高并将高电平保持10 μs准备发射数据,130 μs后将数据发出。数据发射成功后nRF将工作模式自动配置接收模式,等待应答信号。若成功接收到应答信号,表明通信成功,将缓存区中的内容清除。若接收应答信号失败,则立即自动重发数据。当重新发射达到10次,将MAX_RT端配置为高电平,保留缓存区中的数据以便再次重发。MAX_RT端为高电平时,将IRQ端置为低电平,产生中断通知单片机。发射成功后,检查CE端状态,当CE端为低电平时nRF芯片进入第一类空闲模式;若发送缓存区中有数据、CE端为高电平,则进入下一次发射;当发送缓冲区中无数据、CE端为高电平时,则进入第二类空闲模式。上位机模块的单片机工作流程如图6所示。
下位机模块中的单片机通过无线收发器接收到来自上位机的控制信号后,通过驱动器驱动电机工作。本设计将下位机模块中的nRF芯片配置为接受模式,nRF工作在接受模式下的工作过程如下:
图6 上位机模块的单片机工作流程Fig.6 MCU workflow of upper computer module
首先将nRF24l01配置为接收模式,设定自动应答为开启状态,进入接收状态,检测空中信号。检测到空中信号后,将数据包存储在缓存区中,同时产生中断,通知单片机取数据。接收方进入发射状态回传应答信号。接收成功时,CE变低,则nRF24l01进入空闲模式。下位机模块的工作流程如图7所示。
图7 下位机模块工作流程Fig.7 Workflow of lower computer module
步进电机的启动与停止由启停定时器控制,下位机模块中的单片机根据接收到的速度控制信号改变速度参数值以达到控制电机转速的目的;同时根据接收到的方向控制信号,修改当前方向控制位的电平状态,以控制电机转向。
为控制电机按预定目的运转,使用C#语言在Visual Studio 2010编译器上设计的上位控制界面如图4所示,点击控制界面上的控制按钮,电机便做出相应信号的响应。图8为系统上下位机模块的元器件接线图。
图8 元器件接线图Fig.8 Diagram of component connection
分别对控制系统做了上位机模块与下位机模块距离不同时的5组测试,测试条件及结果如表2所示。
表2 系统调试结果Tab.2 Test results of system
在20 m以内时,下位机模块对上位机模块的实时响应情况优异,电机启停、正反转以及加、减速控制良好;上、下位机模块距离在20~25 m之间时,逐渐出现下位机无法接收信号的状况,电机控制效果不佳;当上、下位机模块的距离超过25 m后,下位机模块对上位机模块发来的信号接收不稳定,出现基本无法接收到上位机信号的状况,同时对步进电机的控制效果也变得极差。造成这种现象的原因是nRF模块使用了板载天线,未使用PA+外接天线,再加上环境因素的干扰所致。调试结果说明在一定范围内该控制系统能够完美达到预期控制目标。
本文设计了一种使用上位机远程无线控制步进电机的系统,该系统验证了上位机对步进电机一对一的控制方式,取得了良好的控制效果。但是存在的不足是没有深入验证上位机和多个步进电机之间一对多的控制方式,可在此基础上进一步研究上位机对步进电机的一对多的控制方案。