此程序为16通道伺服舵机控制程序

合集下载

16路舵机控制器说明书2010.7.5

16路舵机控制器说明书2010.7.5


10
0755-27368280
深圳市杰越科技有限公司
三 指令集
3.1 命令格式
命令格式: D<time> #<ch>A<degree>…#<ch>A<degree>T<step>!
1)、<time>表示运行此指令的等待时间,单位 ms。
2)、<ch> 表示所控制的第几路舵机,共 16 路 (00--15)非 1-16 路,以指令格式为准,电路板上所 标有误。
该舵机控制器可以接收串口命令,适合任何含标 准串口(RS232 电平)的系统,如个人电脑、工控机、 PLC、 51 系列单片机、DSP、 FPGA、 ARM 等等。
1.1 特点
由串口命令控制,操作简单,迅速响应命令,输 出 16 路准确的舵机角度和动作时间的控制信号,多路 同时控制,各自独立运行。
1.2 工作模式


0755-27368280
深圳市杰越科技有限公司
一 功能介绍
杰越科技有限公司的最新产品,拥有 16 路舵机 PWM 脉冲信号输出,可以同时对 16 个舵机进行任意角 度和精确时间的控制。使用灵活、高效!使你彻底摆 脱繁琐的舵机控制算法,从严格的舵机 PWM 时序中解 放出来,有更多的定时器资源和软件资源用在您更需 要的地方。


0755-27368280
深圳市杰越科技有限公司
二 装配指导
2.1 舵机控制器接口图
2.2 舵机控制器各接口介绍
1、串口数据指示灯:指示串口工作状态,闪动为
串口正在接收或发送数据,R 代表接收,T 代表发送。
2、第 1—4 路舵机按口: 共有 3 组线,其中外侧

双足机器人使用说明

双足机器人使用说明

以上资料如有疑问,请拨打公司客服电话:021-64850709-22
11
(一)舵机控制卡工作方式: 当做为舵机控制卡使用时, AT89C2051 中的程序为 《舵机控制 (中断) 》 里面的 51arm20080623.c
当作为舵机控制卡使用的时候,控制卡最多可以同时控制八个舵机的运动,在 上电状态下(舵机控制器不和其他的控制部件进行通讯) ,8 个舵机控制端口分别输 出周期为 20ms,宽度为 1.5ms 的脉宽调制波。因此,按照舵机的控制原理,如果各 个控制端口上接有舵机, 则各个舵机输出角为 90 度。 如果控制卡此时没有外接控制 器,则舵机一直保持再 90 度状态。此时,控制卡需要接收从串口发来的控制信息, 控制信息中包括舵机要转动的角度以及其他的通讯协议。此时舵机控制卡就是一个 外接控制器控制信号与舵机动作之间的转换板。 (1) 端口定义 舵机控制卡上有八个舵机接口,分别定义为(Servo1~Servo8) ; 每个舵机输出口可以控制舵机转动(-90°~ +90°) ; 外接控制器上的串口(UART)直接和 AT89C2051 的串口相连,采用 9600 的波特率, 此接口可以和其他采用 TTL 电平的设备进行通讯。 (2) 通讯协议 a 接收数据: 每一帧控制指令:4 个字节 第一个字节:0xAF---- 数据帧起始字节; 第二个字节:0x00~0x08---- 舵机序号(Servo1~Servo8) ; 第三个字节:0x00~0xB4---- 旋转角度设定(-90°~ +90°) ; 第四个字节:0xFA----数据帧结束字节。 b 返回数据: 当正确接收一帧数据之后,伺服舵机控制器会返回一个字节数据做为接收确认信 息。 返回数据为:大写字母‘R’的 ASCII 码。 说明: 舵机控制板通过串口和外部控制器进行通讯, 外部控制器要让某个舵机转动

pwm控制舵机程序

pwm控制舵机程序

pwm控制舵机程序章节一:引言在机器人工程和自动化领域中,舵机是常用的控制组件之一。

它具有小型化、高功率密度、高稳定性和高精度控制等优点,被广泛应用于机械手臂、无人机、汽车模型等领域。

PWM(脉宽调制)技术是一种常用的舵机控制方法,通过调整PWM信号的占空比来控制舵机的位置和角度。

本论文将介绍PWM控制舵机的原理和实现方法,以及相关的电路设计和程序编写。

本文的目的是帮助读者理解PWM控制舵机的基本原理和实现过程,并为舵机控制系统的设计和开发提供参考。

章节二:PWM控制舵机原理2.1 脉宽调制技术脉宽调制技术是一种将模拟信号转换为数字信号的方法。

它通过改变数字信号中的脉冲宽度来模拟模拟信号的幅度变化。

在PWM控制舵机中,通常使用的是固定频率的PWM信号。

通常,脉宽调制技术通过改变脉冲的占空比(High电平的时间与周期的比值)来实现不同的输出。

2.2 舵机工作原理舵机是一种基于PWM信号控制的电机。

它通过接收PWM信号来控制转轴的角度。

舵机通常由电机、伺服控制电路和位置反馈元件组成。

伺服控制电路将接收到的PWM信号与位置反馈进行比较,并控制电机的转动来实现所需的舵机位置和角度。

章节三:PWM控制舵机的电路设计3.1 舵机电路原理图本文设计的舵机电路采用基于微控制器的PWM信号发生器和舵机驱动器。

PWM信号发生器负责产生固定频率的PWM信号,而舵机驱动器负责将PWM信号转换为电机驱动信号以控制舵机的转动。

电路的主要部分是使用可编程微控制器作为信号发生器和驱动器的核心组件。

3.2 电路参数设计本文设计的电路需要满足舵机的工作电压、驱动电流和PWM信号的频率要求。

根据所选用的舵机型号和规格,确定电路中的关键参数,包括驱动电压、最大输出电流、PWM信号频率等。

章节四:PWM控制舵机程序编写4.1 硬件初始化在编写PWM控制舵机程序之前,首先需要进行硬件初始化,包括设置PWM信号发生器和驱动器的引脚和参数,以及舵机电路的供电。

控制舵机方法

控制舵机方法

控制舵机方法
舵机的控制方法详解如下:
舵机,是一种常用于模型制作和机器人控制的电机,可以精确地控制输出角度和速度。

在许多实际应用中,控制舵机是至关重要的一步。

那么,舵机的控制方式是什么呢?
1.PWM控制方式
PWM控制方式是最常见的一种控制舵机的方法。

PWM是指脉冲宽度调制,即在一定时间内,通过改变脉冲的宽度来控制舵机的角度。

信号源是通过微控制器,单片机或其他控制芯片来生成的。

通过这种方式,可以控制舵机的位置、速度和方向。

2.RC信号控制方式
RC信号控制方式也被广泛应用于舵机控制中。

这种方式通过接收来自遥控器等RC信号源的信号来控制舵机的运行。

通常,RC信号的频率为20ms,脉宽在1-2ms范围内,其中1.5ms表示舵机的中心位置。

通过改变脉宽,可以控制舵机的运行。

3.数字信号控制方式
数字信号控制方式是一种先进的控制方式,可以实现更高级别的控制。

这种方式使用电子设备(如Arduino或RaspberryPi)来生成数字信号,用于控制舵机的转向、角度和速度。

数字信号控制方式通常使用标准的PWM信号进行控制,但与传统的PWM控制方式相比,数字信号控制方式可以更精确地控制微小的脉宽变化。

综上所述,控制舵机的方法有很多种,包括PWM控制方式、RC信号控制方式和数字信号控制方式。

选择适当的控制方式可以使舵机的运行更加稳定和精确,提高机器人和模型的整体性能。

艾尔赛舵机控制器(LCSC)

艾尔赛舵机控制器(LCSC)

艾尔赛舵机控制器LCSC-16型深圳市艾尔赛科技有限公司2018-12前言非常感谢购买深圳市艾尔赛科技有限公司舵机控制器,使用前请充分阅读本说明书。

常规安全概要请查看下列安全防范措施以避免受伤害并防止对本其相连接的产品造成伤害。

为了避免潜在的危险,请按详细说明来使用本产品。

》使用正确的电源线。

请使用满足国家标准的电源线。

》正确的连接和断开。

请按说明书上所说的方式连接和断开相关部件。

》不要在湿的或者潮湿的环境中操作。

》不要在爆炸性的空气中操作。

》保持产品洁净和干燥。

》防止静电损伤:静电释放<ESD )可能会对产品的电子部件造成损伤。

为了防止ESD,请小心处理产品电子部件部分,不要随意触摸电子部件上面的元器件。

不要将产品的电子部件放置在容易产生静电放电的表面。

目录一、概述5二、功能特点5三、硬件介绍和说明6四、软件操作81.指令命令格式82.使用串口调试助手83.使用LCSC上位机软件91>软件和驱动的安装92>软件使用说明10五、注意事项15六、联系我们16一、概述艾尔赛舵机控制器<LCSC)是艾尔赛科技有限公司的最新产品,拥有16路舵机PWM脉冲信号输出,可以同时对16个舵机进行任意角度和精确时间的控制。

使用灵活、高效!使你彻底摆脱繁琐的舵机控制算法,从严格的舵机PWM时序中解放出来,有更多的定时器资源和软件资源用在您更需要的地方。

该舵机控制器可以接收串口命令,适合任何含标准串口<RS232 电平)的系统,如个人电脑、工控机、PLC、51系列单片机、DSP、FPGA,ARM等等。

规格参数工作温度:0-85度工作湿度:5%-90%RH不凝结额定电源:DC4.0V-6.0V定时精度:0.5us控制精度:0.05度指定精度:0.01度二、功能特点由串口命令控制,操作简单,迅速响应命令,输出16路准确的舵机角度和动作时间的控制信号,多路同时控制,各自独立运行。

可无线控制,脱机运行。

舵机控制流程图演示教学

舵机控制流程图演示教学

舵机控制流程图常规舵机控制流程图1.5ms脉宽)带动电位器柄旋舵机电路方框图0.5—2.5msDC马达舵机说明1,电机经过变速(减速)后连接到电位器柄旋转2,输入脉冲宽度为0.5—2.5ms,周期为3ms—20ms(数字舵机的脉冲周期因不同的客户使用的周期不同,常用为10ms;模拟舵机周期为20ms.)3,脉冲宽度,表示电位器转动的角度不同(即舵臂角度不同) 4,电机转速为14000/分钟,减速比为250:1,要求舵角转速为0.10-0.2S/60度(此部份与电机转速有关,程序方面需注意及时扫描电位器角度而给电机改变不同供电方式),扫描不及时易出现舵臂回抖现象.5,脉冲宽度不变的情况下,能锁住电机.6,堵转4秒钟后,电机进入低压供电(或PWM少占空比)工作模式,堵转一旦去除,电机供电进入正常模式.程序其它要求(因客户要求不同,需做不同类型的舵机)1,马达供电PWM(周期或占空比可调)2,电位器角度识别精度可调(1023分,255分,511分..)3,舵转动角度可调(-90 +90度)参考电路图:VR15KR1220C4104123J1CON3VDDS11G12S23G24D25D26D17D18U1UD4606GS11G12S23G24D25D26D17D18U2UD4606GVDDVDDVSS1P3.0/SCL2SDA/P3.13VPP/P3.24ADC8/P005ADC9/P016ADC10/P027ADC11/P038ADC12/P049ADC13/P0510ADC14/P0611ADC0/P1012ADC1/P1113ADC2/P1214ADC3/P1315ADC4/P1416ADC5/P1517ADC6/P1618ADC7/P1719VDD20U3SC51P5708SN+C210uin3G1o u t2U4XC6206-33+C310USinSin3.3V3.3VR3220KR4220K A-+MG1MOTOR SERVO R21KC1104o u t1o u t2o u t3o u t4o u t1o u t2o u t3o u t4mo ter正转1111反转111111STOP STOPSTOP 电机正转电机反转不良舵机现象:1,堵转保护人为堵转电机时,约3秒后电机进入低电流(即低压,占空比少)供电方式,用以降低电机损耗而保护舵机.堵转一旦去除,电机需立即进入正常供电方式.不良现象:A,无保护功能B,堵转去除后电机不能马上进入正常状态2,马达抖动轻微外力作用舵臂时,因电位器角度有此而有细微变化(如:0.02度)下,马达转动以校正角度差.不良现象:A,马达校正时力度过大在,是出现抖动现象.(如角度差与电机供电时间或PWM没有建立关系;全压供电方式)堵转保护流程图无刷舵机控制流程图。

stm32控制舵机的程序

stm32控制舵机的程序第一章:引言在现代机械系统领域,舵机是一种常见的旋转执行器,经常用于控制机械装置的运动。

舵机通过接收控制信号来控制旋转角度,具有精准定位、快速响应和稳定性好的特点,因此在无人机、机器人、摄像头稳定器等领域广泛应用。

然而,要实现舵机的精确控制,需要使用专门的硬件电路和相应的控制算法。

本论文将介绍一种基于STM32单片机控制舵机的方法。

第二章:STM32舵机控制原理2.1 舵机的工作原理舵机是一种综合了伺服电机和反馈控制系统的特殊电机。

它由电机、位置反馈装置和控制电路组成。

当控制信号输入到控制电路中时,电机根据信号的宽度来确定要旋转的角度,位置反馈装置则用于检测电机的实际位置。

2.2 STM32控制舵机的原理STM32单片机是一类功能强大且易于使用的微控制器,具有高性能、低功耗和丰富的外设资源。

为了控制舵机,我们需要将STM32的IO口与舵机的控制信号线相连接,并在程序中通过设置IO口的高低电平来生成PWM(脉宽调制)信号,从而控制舵机的角度。

第三章:STM32舵机控制程序设计在本章中,我们将介绍具体的STM32舵机控制程序设计步骤。

3.1 硬件连接首先,需要将舵机的控制信号线连接至STM32单片机的某个IO口。

具体连接方式可以参考相关的舵机控制电路图。

3.2 建立工程使用Keil等开发工具,根据STM32型号建立一个新工程,并配置好相应的时钟和引脚设置。

3.3 编写程序在主函数中,需要先初始化IO口,并配置为输出模式。

然后编写一个循环,不断改变IO口的电平状态,以产生PWM信号。

根据舵机的角度范围(一般为0到180度),通过改变IO口电平的时间间隔和占空比,可以控制舵机旋转到相应的角度。

3.4 烧录程序最后,将生成的可执行程序烧录到STM32单片机中,然后连接电源即可运行舵机控制程序。

第四章:实验结果与分析为了验证上述STM32舵机控制程序的有效性,我们进行了一系列实验。

实验结果表明,通过控制不同的PWM信号,可以实现对舵机的精确控制,使其旋转到相应的角度。

16路PWM舵机驱动板的使用说明

16路PWM舵机驱动板的使用说明概述用Arduino类库驱动舵机并不是一件难事,如果需要驱动很多电机,就需要要占用更多的引脚,也会影响到Arduino的处理能力。

专门的舵机驱动板很好的解决了这个问题。

此舵机驱动板使用PCA9685芯片,是16通道12bitPWM舵机驱动,用2个引脚通过I2C就可以驱动16个舵机。

不仅如此,你还可以通过级联的方式最多级联62个驱动板,总共可以驱动992个舵机!驱动板与Arduino连接此PWM驱动板采用I2C方式,所以只需要4根线就可以连接到Arduino设备:“Classic” Arduino 引脚方式:•+5v -> VCC•GND -> GND•Analog 4 -> SDA•Analog 5 -> SCL老版Mega 引脚方式:•+5v -> VCC•GND -> GND•Digital 20 -> SDA•Digital 21 -> SCLR3 and later Arduino 引脚方式(Uno, Mega &Leonardo):(这些板子都有专用的SDA 和 SCL 引脚)•+5v -> VCC•GND -> GND•SDA -> SDA•SCL -> SCLVCC引脚只是为芯片供电,如果要连接舵机或者LED灯,就使用V+引脚供电,V+引脚支持3.3~6V的电源(芯片的安全电压时5V)。

我们建议通过电源接线柱外接电源供电。

供电部分大多数的舵机设计电压都是在5~6V,尤其在多个舵机同时运行时,跟需要有大功率的电源供电。

如果直接使用Arduino 5V引脚直接为舵机供电,会出现一些难以预测的问题,所以我们建议你能有个合适的外部电源为驱动板供电。

连接舵机大多数舵机都是使用标准3线母插头连接,只要按照对应的引脚插入驱动板就可以了。

(地线一般为黑色或棕色、信号线一般为黄色或白色)一个驱动板上最多可以添加16个舵机。

舵机控制程序

在机器人机电控制系统中,舵机控制效果是性能的重要影响因素。

舵机可以在微机电系统和航模中作为基本的输出执行机构,其简单的控制和输出使得单片机系统非常容易与之接口。

舵机是一种位置伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。

其工作原理是:控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。

它内部有一个基准电路,产生周期为20ms,宽度为1.5ms 的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。

最后,电压差的正负输出到电机驱动芯片决定电机的正反转.当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动.舵机的控制信号是PWM信号,利用占空比的变化改变舵机的位置。

一般舵机的控制要求如图1所示。

图1 舵机的控制要求单片机实现舵机转角控制可以使用FPGA、模拟电路、单片机来产生舵机的控制信号,但FPGA成本高且电路复杂。

对于脉宽调制信号的脉宽变换,常用的一种方法是采用调制信号获取有源滤波后的直流电压,但是需要50Hz(周期是20ms)的信号,这对运放器件的选择有较高要求,从电路体积和功耗考以上的控制电压的变化虑也不易采用.5mV就会引起舵机的抖动,对于机载的测控系统而言,电源和其他器件的信号噪声都远大于5mV,所以滤波电路的精度难以达到舵机的控制精度要求。

也可以用单片机作为舵机的控制单元,使PWM信号的脉冲宽度实现微秒级的变化,从而提高舵机的转角精度。

单片机完成控制算法,再将计算结果转化为 PWM信号输出到舵机,由于单片机系统是一个数字系统,其控制信号的变化完全依靠硬件计数,所以受外界干扰较小,整个系统工作可靠。

单片机系统实现对舵机输出转角的控制,必须首先完成两个任务:首先是产生基本的PWM 周期信号,本设计是产生20ms的周期信号;其次是脉宽的调整,即单片机模拟PWM信号的输出,并且调整占空比。

当系统中只需要实现一个舵机的控制,采用的控制方式是改变单片机的一个定时器中断的初值,将20ms分为两次中断执行,一次短定时中断和一次长定时中断.这样既节省了硬件电路,也减少了软件开销,控制系统工作效率和控制精度都很高。

舵机角度控制程序

舵机角度控制程序摘要:舵机是一种能够控制角度的装置,在机器人、无人机等领域具有广泛应用。

舵机角度控制程序是实现舵机精确控制的关键。

本文设计了一种舵机角度控制程序,通过四个章节的介绍,详细阐述了程序的原理和实现方法。

实验结果表明,该角度控制程序能够实现精确的舵机角度控制。

第一章引言介绍舵机在机器人领域的应用情况,并提出舵机角度控制程序的研究意义和目的。

概述舵机角度控制程序的四个设计步骤。

第二章舵机角度控制原理介绍舵机的基本结构和工作原理。

阐述如何通过改变控制信号的占空比来控制舵机的角度。

具体讲解舵机角度与控制信号占空比之间的关系,并通过数学模型加以说明。

第三章舵机角度控制程序设计详细介绍舵机角度控制程序的设计方法。

首先介绍舵机角度测量的原理和方法,包括传感器的选择和数据采集。

然后介绍如何根据测量得到的角度信息计算控制信号的占空比。

最后描述舵机角度控制的算法,包括舵机角度调整和舵机保持稳定的方法。

第四章实验结果与分析介绍使用舵机角度控制程序进行的实验,包括实验设置和实验结果。

通过实验数据分析,验证舵机角度控制程序的有效性和精确性。

对实验中的不足进行总结,并提出改进措施。

结论本文设计了一种舵机角度控制程序,通过对舵机的角度进行测量和控制信号的调整,实现了舵机的精确控制。

实验结果表明,该程序具有较高的精确性和稳定性。

在实际应用中,该程序可以广泛用于机器人、无人机等领域。

未来的研究可进一步完善该程序,提高控制精度和响应速度。

第一章引言舵机是一种能够精确控制角度的装置,广泛应用于机器人、无人机、航空航天等领域。

舵机角度控制程序的研究对于实现精确的运动控制具有重要意义。

本章节将介绍舵机角度控制程序的研究背景和意义,并概述了论文的研究内容和结构。

机器人和无人机等自动化设备在实际应用中,需要完成各种复杂的任务和动作。

而舵机作为实现机器人关键部件之一,负责控制机器人的各种运动。

舵机角度控制程序是指导舵机实现精确控制的关键程序。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

此程序为16通道伺服舵机控制程序,使用CodeWizardA VR V1.24.1d编译生成,采用A VR单片机ATmage8515L,晶振频率8MHZ,另有如下几点说明:1.主体电路应该有A VRmega8515L单片机, RS232通讯部件、I2C总线插座、16路伺服舵机控制接口、8MHZ 晶体、A VR-ISP编程下载接口。

2.PB0口的跳线接至高电平时为伺服舵机的实时调试模式,此时应该打开“16通道舵机控制器”软件,并将单片机的串口和电脑的COM1口相连,然后打开单片机通电运行,拖动滑竿,如果舵机能实时跟踪滑块的动作,说明通讯正常。

拖动其他通道的舵机,取好合适的动作值(指令范围0~250)和动作时间(大于120ms 小于5s)后点“添加”即加入了第一条指令,依次可以加入更多的指令;如果哪一条指令有错误,选中它后重新拖动滑竿后点“修改”即可纠正,点“删除”即可删掉这一条指令;也可以打开OFFOCE组件ACCESS2000进行修改。

添加完毕便可运行按“自动播放”进行演示,演示成功可按生成HEX文件,此HEX文件用作24Cxx 的烧入文件。

3.PB0口的跳线接至低电平时伺服舵机的脱机运行模式:前提是在“16通道舵机控制器”软件将各条指令编好后,点“生成文件”(如图3)便可生成压缩数据,然后通过TOP2003编程器把它烧入24CXX系列(这里用的是24C64,8KB的容量) 的E2PROM,将它插入I2C插槽,并将PB0口的跳线接至低电平,接通单片机电源,舵机便可逐条执行刚才做好的指令,指令条数可达2000条。

4.单片机内的程序已经达到控制精度的要求:控制路数-16路,分辨率-0.72°/分度,指令范围0~250,单条指令执行时间-大于120ms小于5s,调速模式-13种,数据压缩率-小于10%注意:由于舵机工作电流较大,使用时应将舵机和单片机分开供电,否则程序容易跑飞。

附:程序主体部分参考于逻辑电子网站公布的3通道舵机控制程序(详细说明可参见),我这里所作的改进只是扩展了通道,以及加入了速度模式控制(由于速度缺乏准确性,这里通过将动作值和动作时间相除去获得运行速度的,后台程序有13种速度模式),它可以控制16路伺服舵机、解决了DIY机器人制作领域(尤其是多关节仿生机器人和带有表演性质的机器人)的基本动作控制要求。

主要创新点:1.可以同时控制多达16路伺服舵机,同时还可以扩展通道或其他电机。

2.利用A VR单片机MEGA系列的嵌入式高速性能可以使伺服舵机的控制路数达到至少16路(最多可扩至24路),控制精度可以达到250的分辨率,如果可能的话甚至可以飞航模飞机;3.每一路伺服舵机均具有自调速功能,即先给定舵机的动作数值和动作时间,系统内会自动按照规定的动作数值和时间算出到达规定位置的速度,这样可以避免直接给舵机定义速度的缺乏直观性;4. PC终端软件采用VC编写,界面直观友好,操作使用简便,可以明显提高智能机器人动作指令的开发效率,同时指令经过数据压缩处理存放在外置E2PROM中,将程序和指令数据完全分离。

欢迎大家多多交流指正!部分资料来源于一些论坛,如有侵权,请告知!利用单片机PWM信号进行舵机控制[日期:2005-10-15] 来源:今日电子作者:北京交通大学时玮[字体:大中小]基于单片机的舵机控制方法具有简单、精度高、成本低、体积小的特点,并可根据不同的舵机数量加以灵活应用。

在机器人机电控制系统中,舵机控制效果是性能的重要影响因素。

舵机可以在微机电系统和航模中作为基本的输出执行机构,其简单的控制和输出使得单片机系统非常容易与之接口。

舵机是一种位置伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。

其工作原理是:控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。

它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。

最后,电压差的正负输出到电机驱动芯片决定电机的正反转。

当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。

图1 舵机的控制要求舵机的控制信号是PWM信号,利用占空比的变化改变舵机的位置。

一般舵机的控制要求如图1所示。

单片机实现舵机转角控制可以使用FPGA、模拟电路、单片机来产生舵机的控制信号,但FPGA成本高且电路复杂。

对于脉宽调制信号的脉宽变换,常用的一种方法是采用调制信号获取有源滤波后的直流电压,但是需要50Hz(周期是20ms)的信号,这对运放器件的选择有较高要求,从电路体积和功耗考虑也不易采用。

5mV以上的控制电压的变化就会引起舵机的抖动,对于机载的测控系统而言,电源和其他器件的信号噪声都远大于5mV,所以滤波电路的精度难以达到舵机的控制精度要求。

也可以用单片机作为舵机的控制单元,使PWM信号的脉冲宽度实现微秒级的变化,从而提高舵机的转角精度。

单片机完成控制算法,再将计算结果转化为PWM信号输出到舵机,由于单片机系统是一个数字系统,其控制信号的变化完全依靠硬件计数,所以受外界干扰较小,整个系统工作可靠。

单片机系统实现对舵机输出转角的控制,必须首先完成两个任务:首先是产生基本的PWM周期信号,本设计是产生20ms的周期信号;其次是脉宽的调整,即单片机模拟PWM信号的输出,并且调整占空比。

当系统中只需要实现一个舵机的控制,采用的控制方式是改变单片机的一个定时器中断的初值,将20ms 分为两次中断执行,一次短定时中断和一次长定时中断。

这样既节省了硬件电路,也减少了软件开销,控制系统工作效率和控制精度都很高。

具体的设计过程:例如想让舵机转向左极限的角度,它的正脉冲为2ms,则负脉冲为20ms-2ms=18ms,所以开始时在控制口发送高电平,然后设置定时器在2ms后发生中断,中断发生后,在中断程序里将控制口改为低电平,并将中断时间改为18ms,再过18ms进入下一次定时中断,再将控制口改为高电平,并将定时器初值改为2ms,等待下次中断到来,如此往复实现PWM信号输出到舵机。

用修改定时器中断初值的方法巧妙形成了脉冲信号,调整时间段的宽度便可使伺服机灵活运动。

为保证软件在定时中断里采集其他信号,并且使发生PWM信号的程序不影响中断程序的运行(如果这些程序所占用时间过长,有可能会发生中断程序还未结束,下次中断又到来的后果),所以需要将采集信号的函数放在长定时中断过程中执行,也就是说每经过两次中断执行一次这些程序,执行的周期还是20ms。

软件流程如图2所示。

如图2 产生PWM信号的软件流程如果系统中需要控制几个舵机的准确转动,可以用单片机和计数器进行脉冲计数产生PWM信号。

脉冲计数可以利用51单片机的内部计数器来实现,但是从软件系统的稳定性和程序结构的合理性看,宜使用外部的计数器,还可以提高CPU的工作效率。

实验后从精度上考虑,对于FUTABA系列的接收机,当采用1MHz的外部晶振时,其控制电压幅值的变化为0.6mV,而且不会出现误差积累,可以满足控制舵机的要求。

最后考虑数字系统的离散误差,经估算误差的范围在±0.3%内,所以采用单片机和8253、8254这样的计数器芯片的PWM信号产生电路是可靠的。

图3是硬件连接图。

图3 PWA信号的计数和输出电路基于8253产生PWM信号的程序主要包括三方面内容:一是定义8253寄存器的地址,二是控制字的写入,三是数据的写入。

软件流程如图4所示,具体代码如下。

//关键程序及注释://定时器T0中断,向8253发送控制字和数据void T0Int() interrupt 1{TH0 = 0xB1;TL0 = 0xE0; //20ms的时钟基准//先写入控制字,再写入计数值SERVO0 = 0x30; //选择计数器0,写入控制字PWM0 = BUF0L; //先写低,后写高PWM0 = BUF0H;SERVO1 = 0x70; //选择计数器1,写入控制字PWM1 = BUF1L;PWM1 = BUF1H;SERVO2 = 0xB0; //选择计数器2,写入控制字PWM2 = BUF2L;PWM2 = BUF2H;}图4 基于8253产生PWA信号的软件流程当系统的主要工作任务就是控制多舵机的工作,并且使用的舵机工作周期均为20ms时,要求硬件产生的多路PWM波的周期也相同。

使用51单片机的内部定时器产生脉冲计数,一般工作正脉冲宽度小于周期的1/8,这样可以在1个周期内分时启动各路PWM波的上升沿,再利用定时器中断T0确定各路PWM波的输出宽度,定时器中断T1控制20ms的基准时间。

第1次定时器中断T0按20ms的1/8设置初值,并设置输出I/O口,第1次T0定时中断响应后,将当前输出I/O口对应的引脚输出置高电平,设置该路输出正脉冲宽度,并启动第2次定时器中断,输出I/O口指向下一个输出口。

第2次定时器定时时间结束后,将当前输出引脚置低电平,设置此中断周期为20ms 的1/8减去正脉冲的时间,此路PWM信号在该周期中输出完毕,往复输出。

在每次循环的第16次(2×8=16)中断实行关定时中断T0的操作,最后就可以实现8路舵机控制信号的输出。

也可以采用外部计数器进行多路舵机的控制,但是因为常见的8253、8254芯片都只有3个计数器,所以当系统需要产生多路PWM信号时,使用上述方法可以减少电路,降低成本,也可以达到较高的精度。

调试时注意到由于程序中脉冲宽度的调整是靠调整定时器的初值,中断程序也被分成了8个状态周期,并且需要严格的周期循环,而且运行其他中断程序代码的时间需要严格把握。

在实际应用中,采用51单片机简单方便地实现了舵机控制需要的PWM信号。

对机器人舵机控制的测试表明,舵机控制系统工作稳定,PWM占空比(0.5~2.5ms 的正脉冲宽度)和舵机的转角(-90°~90°)线性度较好。

参考文献1 胡汉才.单片机原理及接口技术.清华大学出版社.19962 王时胜,姜建平.采用单片机实现PWM式D/A转换技术.电子质量.20043 刘歌群.卢京潮.闫建国.薛尧舜.用单片机产生7路舵机控制PWM波的方法.机械与电子.2004舵机是一种位置伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。

其工作原理是:控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。

它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。

最后,电压差的正负输出到电机驱动芯片决定电机的正反转。

当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。

参考资料:/news/n9766c64.aspx利用单片机PWM 信号进行舵机控制(图)基于单片机的舵机控制方法用。

相关文档
最新文档