全国免费热线:0731-89758608
鸿运
关于鸿运
产品展示
新闻动态
成功案例
联系我们

新闻动态

当前位置:主页 > 新闻动态 >

鸿运电子游戏闭于众道步进电机限度体例的策画计划

来源:鸿运,鸿运游戏,鸿运电子游戏发布时间:2019/09/18点击数:

  。软件中运用操作系统自带的finsh机制,实现对指令的初步解析,控制系统可以通过读取G指令,控制多路电机按照一定轨迹运动,同时可以调节电机运动的加减速参数。实际项目验证证明该系统具有很好的稳定性。

  随着计算机技术和微电子技术的发展,步进电机作为自动化控制的执行单元,越来越多地运用在各种领域中,许多控制领域需要对多台步进电机进行同步协调控制,如军事、航空、机器人控制。特别是近年来,随着嵌入式技术和集成化的发展,其应用范围逐步扩大,逐渐扩展到普通民用行业,如小型雕刻机、3D打印等。步进电机作为一种将电脉冲信号转换成相应的角位移或线位移的机电元件,其最大的优点是易于开环控制、无积累误差。在应用中,对速度、位置的精度控制尤为重要,所以对于电机的控制要具有实时性[1]。

  传统上,单片机控制适合比较简单的电机控制系统,对于复杂的系统,若电机控制只为其中的一个模块,既要求电机控制模块内部协调运动,又要求与其他模块保持同步,结构复杂,鸿运电子游戏实现难度大。

  随着单片机本身性能的增强,在嵌入式系统的基础上,完成对多电机的实时协调控制具有很多优点。嵌入式系统的实时性特点可以使其胜任对多电机的协调控制;可裁减性特点可以使得系统容易扩展其他模块;能够支持多任务,使得程序开发更加容易,便于维护,同时能够提高系统的稳定性和可靠性[2]。

  本研究基于嵌入式实时系统设计出一套多步进电机控制系统,此系统基于嵌入式技术协同控制三路步进电机,以对多轴系统的速度、位置达到精确控制,并且可以实时调节电机的运动速度。本设计的重点为软件方面对电机的协同控制,使得系统对电机的定位精度达到预期的目的。系统本身很容易地根据不同功能需求扩展出各种功能,具有一定实用价值。

  主控芯片采用内置的UART串口与上位机通信,接收上位机发送的控制指令,并向上位机发送系统当前状态。通过S读取SD卡中的Gcode文件,主控芯片逐行解析文件中的G指令,根据G指令中位置偏移和速度,最终得到驱动电机的脉冲,从而控制3路步进电机按照推荐速度精确达到目的位置。3路限位开关可以反馈电机的位置信息,主要用于初始化步进电机系统,从而规定电机系统内部坐标系。

  本设计电路中主控制器采用ST公司的STM32F4系列微控制器,电机驱动芯片采用A4988,作为执行机构的步进电机使用两相四线主控芯片

  RAM,完全可以运行小型的嵌入式系统。该微控制器还包括了大量的片上外设资源,非常适合控制类应用。1.3驱动模块

  公司的A4988电机驱动器,该驱动器是一个完整的带有内置转换器的微电机驱动器,它可在全、半、1/4、1/8 及 1/16 步进模式时操作双极步进电动机,具有高达35 V和±2 A的输出驱动能力,且控制简单,只需在驱动器相应引脚输入一个脉冲即可驱动步进电动机产生一个微步,程序不必再考虑相序表等电机底层的控制,驱动模块电路如图2所示。

  本设备采用1/16细分模式,MS1、MS2、MS3引脚需置高电平,主控制器只需控制电机驱动芯片上的ENABLE、DIR、STEP三个引脚即可完全控制此步进电机。ENABLE为步进电机控制器的使能端;DIR为电机的方向控制端,用于控制电机的转动方向;STEP为电机的步数控制端,输入脉冲来控制电机的步数以及转速。

  根据设计需要实现的目标,本文把系统分为不同的子功能,充分利用嵌入式系统多任务的优势,把各个子功能作为系统中不同的任务进程实现,包括:上位机指令解析任务、用户界面显示、记录监视进程、运动规划管理进程、电机驱动任务,各个任务通过嵌入式系统的信号量进行同步。为了保证步进电机系统的实时性,其中电机驱动进程为核心进程,设定其任务优先级最高,除中断外,没有任何进程可以抢占它的

  系统设计有用户互交界面,终端选用串口工控彩屏,控制简单,作为系统脱离上位机时的控制方式。

  ① 使用finsh shell机制从串口或直接从SD卡读取指令,识别指令,随后存放入指令缓冲区;

  ② 运动规划进程取得指令,把它们转化为Block块对象,其中包含了速度、方向、加速度等信息,并加入Planner中的环形缓冲队列中;

  ③ 无论什么时候Planner中存在Block块对象,电机驱动进程都将会启动,读取块对象,并启动

  在实时嵌入式系统的选择上,本设计选用了RTThread嵌入式操作系统,它是一款类

  ROM和1 KB RAM占用。其内核包提供了大部分的同步和通信机制,并且任务调度算法基于优先级的全抢占式线个线程优先级。此嵌入式系统支持从ARM7到CortexM3等多种类型内核的处理器。除了内核之外,此嵌入式系统还用于文件系统、TCP/IP协议栈、图形

  上位机指令解析任务依靠嵌入式系统中的finsh shell机制,finsh shell是RTThread内置的用户命令行组件,用户能够通过串口设备使用finsh shell,它在系统中被设计为一个独立的进程,其进程默认优先级为8,进程试图从外部设备中获得用户的输入,然后对用户命令进行解析执行。依靠嵌入式系统提供的shell机制,可以轻易地自定义用户指令,通过如下宏定义实现:FINSH_FUNCTION_EXPORT_ALIAS()。

  本文中实现一个Gcode_recev(char *movecmd)函数,参数movecmd为一行或多行G指令,函数的结构流程图如图3所示,其中指令缓冲区为全局的自定义的结构体。结构体包含一个环形缓冲区和一个信号量,通过这个全局变量实现进程间的数据共享,并且用信号量避免缓冲区数据的竞争。

  通过宏定义“FINSH_FUNCTION_EXPORT_ALIAS(Gcode_recev,G,Gcode_recev(“”))”,我们可以通过串口终端以G(“cmd”)的形式执行运动指令,达到调试的目的。除此之外,系统还实现了关启电机、清除运动缓冲、查看参数等函数功能。

  在程序中,设计了Planner_t结构体。stage1部分为一个环形缓冲。