黄雪琪
(兰州资源环境职业技术学院,甘肃 兰州 730022)
在当今信息化与自动化相融合的工业背景下,单片机更多地应用于复杂的工程项目中,例如,仿生机械臂,工业机器人等项目,一般需要多个舵机协同工作。通过单片机发送有效的PWM 拓展模块信号,以分时复用的方式输出多个脉冲实现对舵机方向、角度、速度的转换控制,在脉冲的控制下,使舵机转到对应的角度上,这种对舵机的控制方式取代了传统的分立元件,减少了分立元件的数量以及连接电路,并且单片机自身的性能更加稳定,编程也更为灵活;与此同时,多舵机的控制精度更高、可靠性更好,适用范围也更加广泛。
一般来讲,舵机的结构主要由舵盘、减速齿轮组、位置反馈检测器、限位开关、直流伺服电机及控制电路板组成。舵机作为位置(角度)伺服驱动器,单片机输出的脉宽调制I/O 信号可以方便的和数字系统如计算机等电子设备进行对接。输出(最多24 路)信号,对舵机从方向、角度以及速度等方面进行综合控制,适用需要不断变化角度且保持动作位置的运动。
单片机产生的标准控制信号可以满足数字设备对舵机的控制,舵机作为一种伺服马达;内部包括一个小型直流马达,一组变速齿轮组,一个反馈可调电位器,以及一块电子控制板(如图1 所示)。其工作原理是电路板接受来自信号线的正负极性的激励信号来判断转动方向,驱动电机马达转动,电机带动一系列减速齿轮组,齿轮将减速后的转矩传至输出舵盘控制舵机转动方向。舵机的输出轴和位置反馈检测器是相连的,舵盘转动的同时带动位置反馈检测器将舵盘转动输出电压信号重新反馈回控制电路板,然后,电路板根据所在位置限位开关送回的讯号,判断是否到达指定位置,如未到达,则反馈调整电机的转动方向和速度,到达目标位置后停止。
图1 舵机内部的主要元件
舵机由直流电机、减速齿轮组、传感器和控制电路组成一套自动控制系统,通过发送脉冲信号,控制脉冲信号的长短指定输出轴的旋转角度。舵机一般最大旋转角度为180 度。不同舵机旋转角度的范围有所不同,但中间位置的脉冲宽度是固定不变的;舵机通过位置反馈电位计获取实际角度与给定的参考角度进行比较,得出误差信号反馈给舵机,调整PWM 波中高电平所占的比值,使舵机转动的角度更准确。
图2 周期为20ms 的PWM 波,脉冲宽度在1 ~2ms 内
单片机控制舵机转动的原理是利用定时器中断产生一个周期为20ms 的PWM 波,脉冲宽度在1 ~2ms 内的范围变化(如图2 所示)。这种周期持续性脉冲宽度可调整控制信号,实现舵机角度的变化,这种控制方法叫作脉冲调制。脉冲的长短决定舵机转动多大角度。例如,1.0 毫秒脉冲转动到中间位置后舵机静止(比如,对于120°舵机来说,舵机会转动到60°的中间位置)。当控制系统发出指令,让舵机移动到某一位置,并让它保持这个角度,这时外力的影响不会让舵机的角度产生变化,但是,这个控制是有上限和下限的,上限就是它的最大扭力;不同型号的舵机有不同的最大值和最小值脉冲一般而言,最小脉冲1ms 为右转极限位置,最大脉冲2ms 为左转极限位置,脉冲作用下舵机转动的时间间隔越小,舵机的转动角度越精准。舵机的工作角度分两种情况,当舵机接收到的脉冲小于给定参考脉冲,输出轴会以中间位置为标准,逆时针旋转一定角度。当接收到的脉冲大于给定参考脉冲,输出轴会以中间位置为标准,顺时针旋转一定角度。
舵机的工作速度取决于单片机给它的信号脉宽和占空比在周期内使高低电平所占的比例。舵机要达到某一速度通过单片机的脉冲信号做一个循环程序,连续增加脉宽值,占空比使得速度的增加有一个缓冲过程,根据所需要的旋转速度对每个高低电平切换的占空比时间加以控制,并细化这个过程,使得舵机看上去是连续流畅的定速旋转过程。
单片机的PWM 模块拓展信号作用在高低电平的转换过程中,舵机的转速有从零增加到某一定值和减速为零的两个过程,由于单片机的PWM 波脉冲宽度是微秒级的变化,使舵机的速度变化更为平稳连续。
单片机对多舵机方向、角度、速度的拓展控制,通过protues 软件选择ATmega128 型号单片机对多舵机进行了模拟仿真控制(如图3 所示),验证了其可行;基于单片机内部的PWM 模块,拓展多路控制舵机的信号(如图4 所示),利用单片机内部PWM 模块中波形占空比的中断功能,辅以必要的硬件电路,从l 路PWM 模块中以分时复用的方式分离出8 路信号(如图5 所示),单片机内部的PWM 模块越多,可扩展的控制舵机信号就越多;这种利用舵机内部的PWM 模块和硬件、软件相结合的方式,拓展出控制舵机的多路信号,同时,作用于多个舵机,使单片机对舵机的控制更简单、灵活且实用性好,从而实现了舵机控制的多样化。
图3 protues 软件仿真接线图
图4 示波器中多路PWM 波形
图5 8 个PWM 波对应的伺服电机角度
目前,单片机对多舵机的控制应用于复杂操作或工程项目(如控制机械手臂,机器人关节)中,除了要考虑单片机对舵机方向、角度、速度等运动位置的准确控制,还要考虑多个舵机通过单片机编程及其他元件的协同配合,实现复杂动作和协同工作的实际情况;比如,我们在编写单片机程序的时候,不仅要考虑程序语句的正确性,还要考虑单片机的实际处理能力,通过仿真软件的应用模拟,验证单片机对多舵机控制的可行性;只有不断地进行技术革新,才能拓展单片机控制下的多舵机在工业生产过程以及更多领域的应用。