一种支持多信号输入的数字舵机控制方法技术

技术编号:18971769 阅读:85 留言:0更新日期:2018-09-19 03:22
本发明专利技术涉及一种多信号输入的数字舵机控制方法,包括bootloader启动;APP启动,主控初始化;判断是否输入串口总线信号,若是进行串口数据接收并解码;判断是否输入PWM信号,若是则进行PWM信号接收并解码;判断是否输入PPM信号,若是则进行PPM信号接收并解码;将解码数据加载到RAM区或EEPROM区;执行PID算法,执行动作指令。本发明专利技术支持舵机的多种信号输入,通用性好,适配性好;将配置参数和运行参数分离,通过操作参数表对舵机各状态进行写入与读取,解码算法与运动算法相互独立不冲突;使用环形指针解析数据,通过中断取数据,定时周期处理数据,能够保证数据处理的实时性和准确性;采用双闭环PID算法,能够满足舵机的速度和位置控制,定位准确。

A digital rudder control method supporting multi signal input

The invention relates to a digital steering gear control method with multi-signal input, including bootloader start-up, APP start-up and main control initialization, judging whether to input serial bus signal, receiving and decoding serial data, judging whether to input PWM signal, receiving and decoding PWM signal, judging whether to input PPM signal, and judging whether to input PPM signal. If so, the PPM signal is received and decoded; the decoded data is loaded into the RAM area or EEPROM area; the PID algorithm is executed and the action instructions are executed. The invention supports a variety of signal inputs of the steering gear, has good versatility and adaptability, separates configuration parameters from operation parameters, writes and reads the states of the steering gear through operation parameter table, decodes the data independently and does not conflict with the motion algorithm, parses the data with a ring pointer, and interrupts the data to obtain the data, thus timing the period is fixed. The real-time and accuracy of data processing can be guaranteed by processing data, and the double closed-loop PID algorithm can meet the speed and position control of the steering gear, and the positioning is accurate.

【技术实现步骤摘要】
一种支持多信号输入的数字舵机控制方法
本专利技术涉及数字舵机控制领域,具体的说是一种支持多信号输入的数字舵机控制方法。
技术介绍
舵机是一种位置伺服驱动器,广泛应用于机器人关节、模型等领域,传统的模拟舵机或数字舵机采用PWM信号作为激励信号,其中模拟舵机一般接收50hz,脉宽为500us-2500us的信号,数字舵机一般接收300hz,脉宽为500us-2500us的信号,随着微电子技术的发展,出现了总线电机,能够使用串口总线、CAN总线、IIC总线等总线协议控制舵机运动,具有布线方便,可编程等优点,但价格较高,一般应用于高端机器人领域。无论是模拟舵机、数字舵机还是总线舵机,所采用的信号传输方式是单一化的,而随着近年来模型发展,穿越无人机的流行,一体化程度更高,更小型的PPM接收机被广泛应用,但由PPM信号控制的舵机尚未面向市场,需要一种能够支持多种信号输入,满足多种条件工作的舵机,这将大大减少更换舵机的成本和增加舵机产品的扩展性能。深圳市优必选科技有限公司申请的专利技术专利《一种机器人单总线模块化数字舵机控制装置及控制方法》,公开号为CN103750505A,公开日为20140430,公开了一种单总线舵机控制方法,包括从总线接收来自控制板的控制信息,并通过温度和电流检测限制舵机电机的输出以保护电机,属于总线舵机的常用控制方法,但未提及如何处理其他通用信号输入,产品只能在自家控制器系统下使用,局限性较大。
技术实现思路
本专利技术所要解决的技术问题在于提出了一种支持多信号输入的数字舵机控制方法,能够使用多种信号对舵机进行控制。一种支持多信号输入的数字舵机控制方法,包括数据解码与指令执行,包括步骤:S1)bootloader启动;S2)APP启动,主控初始化;S3)判断是否输入串口总线信号,若是进行串口数据接收并解码;S4)判断是否输入PWM信号,若是进行PWM信号接收并解码;S5)判断是否输入PPM信号,若是进行PPM信号接收并解码;S6)将解码数据加载到RAM区或EEPROM区;S7)执行PID算法,执行动作指令。所述步骤S2)包括:S21)系统时钟初始化;S22)看门狗初始化;S23)串口初始化;S24)定时器初始化;S25)ADC初始化;S26)运行参数初始化。所述步骤S3)通过串口接收中断接收并处理总线数据,包括:S31)串口中断接收总线数据并存入待处理数据数组,数组尾指针tail表示已接收的数据长度;S32)判断是否到达数据处理周期,若是,则进入步骤S33),若否,返回步骤S31);S33)判断数组尾指针tail是否大于等于数组头指针head,若是,则进入步骤S34),若否,返回步骤S32);S34)判断是否包含帧头,请求是否为本机ID或广播ID,若是,则进入步骤S35),若否,则进入步骤S311);S35)接收数据并校验;S36)提取有效载荷;S37)判断是否为写命令,若是,则进入步骤S38),若否,则进入步骤S39);S38)根据命令要求将指令写入EEPROM区或RAM区;S39)指令为读命令,读取指定RAM区或EEPROM区数据;S310)发送应答数据;S311)处理数组头指针head,返回步骤S32)。所述步骤S4)通过16位定时器的两个通道检测PWM信号的上升沿与下降沿并计算频率和脉宽,包括:S41)记录第一个上升沿计数值C1N1;S42)记录第一个下降沿计数值C2N1,计算脉宽duty=C2N1-C1N1;S43)记录第二个上升沿计数值C1N2,计算频率freq=1000000/(C1N2-C1N1);S44)记录第二个下降沿计数值C2N2,计算脉宽duty=C2N2-C1N2;S45)判断信号频率freq在45HZ-320HZ之间,判断脉宽duty在400us-2600us之间;S46)将有效脉宽数值转换成目标角度值输入PID运算。所述步骤S5)通过16位定时器的两个通道检测PPM信号的上升沿与下降沿并提取信号的各通道脉宽,包括:S51)判断信号引脚低电平持续时间是否超过2ms,若是,则进入步骤S52),若否,进行其他运算;S52)PPM信号帧开始,依次记录各上升沿中断触发时的定时器计数值;S53)计算相邻上升沿计数值之差,求得各通道数值;S54)匹配舵机ID和对应通道数值,将通道数值转换成目标角度值。所述步骤S7)包括:S71)解析总线信号、PWM信号、PPM信号的其中一种,提取有效目标位置与运动时间;S72)进行位置环PID算法;S73)进行速度环PID算法;S74)进行电压检测、温度检测并判断是否过温、过压或欠压,若是,则进入步骤S76),若否,则进入步骤S75);S75)PID输出值用于驱动电机并减速输出;S76)进行位置检测并将数值传递至步骤S72);S77)进行速度检测并将数值传递至步骤S73)。输入信号的类型是串口信号、PWM信号和PPM信号的其中一种,对主控的配置使用串口传输信息,配置完毕后将配置信息写入EEPROM区以掉电保存,系统上电后,由存储于EEPROM区的寄存器值决定采用哪种信号解析方式,并加载相关运行参数进入RAM区参与运算,在使用串口信号时关闭定时器中断,在使用PWM或PPM信号时关闭串口中断。所述步骤S3)、S4)、S5)为指令处理,采用周期性运算方式,所述步骤S7)为指令执行,采用周期性运算方式,指令处理的周期小于指令执行的周期。本专利技术的有益效果是:支持多种信号输入,通用性好,适配性好;支持掉电保存配置数据,配置参数和运行参数分离,通过操作参数表对舵机各状态进行写入与读取,算法清晰不相互重叠冲突;使用环形指针解析数据,通过中断取数据,定时周期处理数据,能够保证数据处理的实时性和准确性;双闭环PID算法,能够满足舵机的速度和位置控制,定位准确。附图说明下面结合附图和实施例对本专利技术进一步说明。图1为本专利技术的程序总流程图;图2为本专利技术的串口接收与解码程序流程图;图3为本专利技术的PWM信号解码示意图;图4为本专利技术的PPM信号解码示意图;图5为本专利技术的舵机PID算法流程图;图6为本专利技术的舵机主控电路图。具体实施方式为了使本专利技术实现的技术手段、创作特征、达成目的与功效易于明白了解,下面对本专利技术进一步阐述。如图1所示的程序总流程图。一种支持多信号输入的数字舵机控制方法,包括数据解码与指令执行,包括步骤:S1)bootloader启动:bootloader是单片机实现IAP下载的程序段,一般位于单片机程序存储FLASH的最前端区域,在总线舵机应用中,一般通过串口,特别是单线串口传递数据,bootloader的设计在于在芯片刚上电复位时,通过串口接收数据循环判断boot启动标志,一旦检测到boot更新固件标志位,立马进行固件更新,固件更新的步骤包括与上位机确定数据帧起始位、地址位、数据位、校验位以及反馈给上位机状态,将上位机发送的HEX固件准确无误地写入到单片机的FLASH程序区,当写入完毕后,boot程序将程序指针跳转到APP起始地址开始执行舵机程序代码;若在一定时间内,一般是一秒内,未检测到boot启动标志,则直接跳转到APP起始地址。S2)APP启动,主控初始化:单片机一般自带时钟管理、看门狗、串口等资源,需要对它们一一配置参数初始化,才能使用,包括:S21)本文档来自技高网...

【技术保护点】
1.一种支持多信号输入的数字舵机控制方法,包括数据解码与指令执行,其特征在于,包括步骤:S1)bootloader启动;S2)APP启动,主控初始化;S3)判断是否输入串口总线信号,若是进行串口数据接收并解码;S4)判断是否输入PWM信号,若是进行PWM信号接收并解码;S5)判断是否输入PPM信号,若是进行PPM信号接收并解码;S6)将解码数据加载到RAM区或EEPROM区;S7)执行PID算法,执行动作指令。

【技术特征摘要】
1.一种支持多信号输入的数字舵机控制方法,包括数据解码与指令执行,其特征在于,包括步骤:S1)bootloader启动;S2)APP启动,主控初始化;S3)判断是否输入串口总线信号,若是进行串口数据接收并解码;S4)判断是否输入PWM信号,若是进行PWM信号接收并解码;S5)判断是否输入PPM信号,若是进行PPM信号接收并解码;S6)将解码数据加载到RAM区或EEPROM区;S7)执行PID算法,执行动作指令。2.根据权利要求1所述的一种支持多信号输入的数字舵机控制方法,其特征在于,所述步骤S2)包括:S21)系统时钟初始化;S22)看门狗初始化;S23)串口初始化;S24)定时器初始化;S25)ADC初始化;S26)运行参数初始化。3.根据权利要求1所述的一种支持多信号输入的数字舵机控制方法,其特征在于,所述步骤S3)通过串口接收中断接收并处理总线数据,包括:S31)串口中断接收总线数据并存入待处理数据数组,数组尾指针tail表示已接收的数据长度;S32)判断是否到达数据处理周期,若是,则进入步骤S33),若否,返回步骤S31);S33)判断数组尾指针tail是否大于等于数组头指针head,若是,则进入步骤S34),若否,返回步骤S32);S34)判断是否包含帧头,请求是否为本机ID或广播ID,若是,则进入步骤S35),若否,则进入步骤S311);S35)接收数据并校验;S36)提取有效载荷;S37)判断是否为写命令,若是,则进入步骤S38),若否,则进入步骤S39);S38)根据命令要求将指令写入EEPROM区或RAM区;S39)指令为读命令,读取指定RAM区或EEPROM区数据;S310)发送应答数据;S311)处理数组头指针head,返回步骤S32)。4.根据权利要求1所述的一种支持多信号输入的数字舵机控制方法,其特征在于,所述步骤S4)通过16位定时器的两个通道检测PWM信号的上升沿与下降沿并计算频率和脉宽,包括:S41)记录第一个上升沿计数值C1N1;S42)记录第一个下降沿计数值C2N1,计算脉宽duty=C2N1-C1N1;S43)记录第二个上升沿计数值C1N2,计算频率freq=...

【专利技术属性】
技术研发人员:汪建文
申请(专利权)人:芜湖懒人智能科技有限公司
类型:发明
国别省市:安徽,34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1