一种驱动舵机的方法及装置与流程

文档序号:17816732发布日期:2019-06-05 21:48阅读:415来源:国知局
一种驱动舵机的方法及装置与流程

本发明属于舵机控制技术领域,尤其涉及一种驱动舵机的方法及装置。



背景技术:

随着人工成本地增加,越来越多地制造业逐渐利用机器人作业来替代人工作业。现有的机器人在进行流水线作业时,需要控制机械臂进行物体抓取、装配、运送等动作,这些动作的控制和执行均离不开舵机。

舵机需要依赖电机对其进行驱动,然而,由于现有的电机的供电电源大多采用移动式电源,例如,锂电池等,使得电机在运转过程中,容易因为供电电源的输出电压变化,导致其转速不稳地,进而造成舵机的出现姿态抖动或者运动位置存在较大误差等运行不稳地的现象。



技术实现要素:

有鉴于此,本发明实施例提供了一种驱动舵机的方法及装置,以解决现有技术中,因为供电电源的输出电压变化,导致舵机运行不稳地的问题。

本发明实施例的第一方面提供了一种驱动舵机的方法,所述舵机由电机驱动,所述方法包括:

若检测到用于驱动所述舵机的控制指令,则获取所述电机的供电电源的当前电压值;

若所述当前电压值不等于预设电压值,则获取根据所述控制指令与所述当前电压值生成的脉冲宽度调制pwm信号的占空比值;

基于所述预设电压值与所述当前电压值之间的比值,以及所述占空比值,计算得到目标占空比值;

根据所述目标占空比值输出目标pwm信号,所述目标pwm信号用于控制所述电机驱动所述舵机。

本发明实施例的第二方面提供了一种驱动舵机的装置,所述舵机由电机驱动,所述装置包括:

第一获取单元,用于若检测到用于驱动所述舵机的控制指令,则获取所述电机的供电电源的当前电压值;

第二获取单元,用于若所述当前电压值不等于预设电压值,则获取根据所述控制指令与所述当前电压值生成的脉冲宽度调制pwm信号的占空比值;

计算单元,用于基于所述预设电压值与所述当前电压值之间的比值,以及所述占空比值,计算得到目标占空比值;

信号生成单元,用于根据所述目标占空比值输出目标pwm信号,所述目标pwm信号用于控制所述电机驱动所述舵机。

本发明实施例的第三方面提供了一种终端,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述方法的步骤。

本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机程序被处理器执行时实现上述第一方案所述方法的步骤。

本发明实施例通过在检测到用于驱动舵机的控制指令时,获取电机的供电电源的当前电压值,如果当前电压值不等于预设电压值,则获取根据控制指令与当前电压值生成的脉冲宽度调制pwm信号的占空比值,基于预设电压值与当前电压值之间的比值,以及占空比值,计算得到目标占空比值,最后根据目标占空比值输出目标pwm信号,以得到的目标pwm信号控制电机驱动舵机,可以使电机在运转过程中,不会因为供电电源的输出电压变化,而导致转速不稳定,避免了舵机出现运行不稳地的现象。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种驱动舵机的方法的实现流程示意图;

图2是本发明另一实施例提供的一种驱动舵机的方法的实现流程示意图;

图3是本发明实施例提供的一种驱动舵机的装置的结构示意图;

图4是本发明另一实施例提供的一种驱动舵机的装置的结构示意图;

图5是本发明实施例提供的终端的示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。

为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。

需要说明的是,在本发明的所有实施例中,舵机由电机驱动,电机由供电电源提供工作用电。

参见图1,是本发明实施例提供一种驱动舵机的方法的实现流程图,如图1所示驱动舵机的方法可包括:

s110:若检测到用于驱动所述舵机的控制指令,则获取所述电机的供电电源的当前电压值。

在步骤s110中,当前电压值用于反映供电电源当前为电机供电工作用电时,输出的电压大小。

在本实施例中,供电电源可以包括市电、存储电池或者发电机等。

需要说明的是,由于电机的转速会因为供电电源的前电压变化而变化,因此,获取电机的供电电源的当前电压值,能够根据该当前电压值的具体大小,判断电机的转速是否与控制指令相匹配。

在本实施例中,控制指令用于驱动舵机,由于舵机由电机驱动,因此,为一种可能实现的方式,由电机的控制电路接收到该控制指令,并在接收到该控制指令时,获取电机的供电电源的当前电压值。

获取所述电机的供电电源的当前电压值,具体可以包括:根据所述控制指令向供电电源发送用电请求信息;接收所述供电电源根据所述用电请求信息返回的响应信息,所述响应信息反映了所述供电电源的当前电压值。

例如,根据所述控制指令向蓄电池的控制单元发送用电请求信息;接收所述蓄电池的控制单元根据所述用电请求信息返回的响应信息,所述响应信息反映了所述供电电源的当前电压值。

可以理解的是,电机的供电电源的当前电压还可以通过采样电路对电机的供电电源进行电压采样,通过对采样的结果进行分析和计算,进而可以得到所述电机的供电电源的当前电压值。

s120:若所述当前电压值不等于预设电压值,则获取根据所述控制指令与所述当前电压值生成的脉冲宽度调制pwm信号的占空比值。

在步骤s120中,预设电压值为电机的正常工作电压值。pwm信号用于控制电机转动。占空比值用于描述单个周期的pwm信号中,高电平的时长占周期时长的多少。

在本实施例中,如果当前电压值不等于预设电压值,则表明在该供电电压下,电机容易出现转速误差,进而对舵机的驱动造成一定的位置偏差或者抖动,因此需要对控制电机运行的pwm信号进行调整。

需要说明的是,如果前后两次分别接受到控制指令相同,而当前电压值不同,则根据控制指令相与当前电压值所生成的pwm信号的占空比值也不相同,也即电机转动的状态也不同。在当前电压值为非预设电压值的情况下,获取根据控制指令与当前电压值生成的pwm信号的占空比值,该占空比值能够反应电机运行的误差大小。

s130:基于所述预设电压值与所述当前电压值之间的比值,以及所述占空比值,计算得到目标占空比值。

在步骤s130中,预设电压值与所述当前电压值之间的比值大于1,或者小于1。

在本实施例中,供电电源的当前电压值存在大于预设电压值,或小于预设电压值的情况,当供电电源的当前电压值存在大于预设电压值时,预设电压值与当前电压值之间的比值小于1,当供电电源的当前电压值存在小于预设电压值时,预设电压值与当前电压值之间的比值大于1。

以供电电源为蓄电池为例,当蓄电池过充或者出现放电故障时,蓄电池的当前电压值大于预设电压值,则预设电压值与蓄电池的当前电压值之间的比值小于1;当蓄电池使用一段时间后,且蓄电池的当前电压值小于预设电压值时,则预设电压值与蓄电池的当前电压值之间的比值小于1。

结合步骤s120对步骤s130进行说明,如果当前电压值不等于预设电压值,则表明在该供电电压下,电机容易出现转速误差,进而对舵机的驱动造成一定的位置偏差或者抖动,因此需要对控制电机运行的pwm信号进行调整。

由于在对pwm信号进行调整时,预设电压值与当前电压值之间的比值大小不同,调整时引入的补偿值也不同,通过确定预设电压值与当前电压值之间的比值大小,能够区分不同的当前电压值对电机造成的影响程度,以及准确的确定进行调整的幅度大小,从而能够更加准确地确定目标占空比值。

可以理解的是,若当前电压值等于预设电压值,则预设电压值与当前电压值之间的比值等于1。

s140:根据所述目标占空比值输出目标pwm信号。

在步骤s140中,目标pwm信号用于控制所述电机驱动所述舵机,目标占空比用于描述目标pwm信号中,高电平时长占周期时长的多少。

需要说明的是,当根据目标占空比输出目标pwm信号后,如果舵机姿态或者运行状态保持不变,则持续输出该目标pwm信号。

在本实施例中,在供电电源的当前电压值不等于预设电压值时,则表明电机会在因为该电压值而出现转速偏差,进而导致舵机出现运行不稳地现象,通过对控制电机运行的pwm信号进行调整,能够使电机在供电电源的当前电压值过大或过小时,都能运行在一个相对稳定的状态下,进而保证了舵机的运行不会出现抖动或者运行位置出现较大误差的现象。

以上可以看出,本实施例提供的一种驱动舵机的方法,通过在检测到用于驱动舵机的控制指令时,获取电机的供电电源的当前电压值,如果当前电压值不等于预设电压值,则获取根据控制指令与当前电压值生成的脉冲宽度调制pwm信号的占空比值,基于预设电压值与当前电压值之间的比值,以及占空比值,计算得到目标占空比值,最后根据目标占空比值输出目标pwm信号,以得到的目标pwm信号控制电机驱动舵机,可以使电机在运转过程中,不会因为供电电源的输出电压变化,而导致转速不稳定,避免了舵机出现运行不稳地的现象。

参见图2,图2是本发明第二实施例提供一种驱动舵机的方法的示意流程图。如图2所示,本发明第二实施例提供的驱动舵机的方法可包括:

s210:若检测到用于驱动所述舵机的控制指令,则获取所述电机的供电电源的当前电压值。

在步骤s210中,当前电压值用于反映供电电源当前为电机供电工作用电时,输出的电压大小。

在本实施例中,供电电源可以包括市电、存储电池或者发电机等。

需要说明的是,由于电机的转速会因为供电电源的前电压变化而变化,因此,获取电机的供电电源的当前电压值,能够根据该当前电压值的具体大小,判断电机的转速是否与控制指令相匹配。

在本实施例中,控制指令用于驱动舵机,由于舵机由电机驱动,因此,为一种可能实现的方式,由电机的控制电路接收到该控制指令,并在接收到该控制指令时,获取电机的供电电源的当前电压值。

获取所述电机的供电电源的当前电压值,具体可以包括:根据所述控制指令向供电电源发送用电请求信息;接收所述供电电源根据所述用电请求信息返回的响应信息,所述响应信息反映了所述供电电源的当前电压值。

例如,根据所述控制指令向蓄电池的控制单元发送用电请求信息;接收所述蓄电池的控制单元根据所述用电请求信息返回的响应信息,所述响应信息反映了所述供电电源的当前电压值。

可以理解的是,电机的供电电源的当前电压还可以通过采样电路对电机的供电电源进行电压采样,通过对采样的结果进行分析和计算,进而可以得到所述电机的供电电源的当前电压值。

s220:若所述当前电压值不等于预设电压值,则获取根据所述控制指令与所述当前电压值生成的脉冲宽度调制pwm信号的占空比值。

在步骤s220中,预设电压值为电机的正常工作电压值。pwm信号用于控制电机转动。占空比值用于描述单个周期的pwm信号中,高电平的时长占周期时长的多少。

在本实施例中,如果当前电压值不等于预设电压值,则表明在该供电电压下,电机容易出现转速误差,进而对舵机的驱动造成一定的位置偏差或者抖动,因此需要对控制电机运行的pwm信号进行调整。

作为本实施例一种实现的可能,控制指令用于描述所述舵机的目标位置信息,步骤s220具体包括:测算所述舵机根据所述控制指令,在所述pwm信号的驱动下达到的实际位置信息;将所述目标位置信息与所述实际位置信息,导入预设的比例调节pid控制算法进行循环运算,得到所述占空比值。

需要说明的是,在接收到用于驱动舵机的控制指令时,根据控制指令与当前电压值生成pwm信号,如果当前电压值不等于预设电压值,则表明在该供电电压下,电机容易出现转速误差,进而对舵机的驱动造成一定的位置偏差或者抖动,因此需要对该pwm信号进行调整。

在本实施例中,比例调节pid控制算法是根据舵机的实际功能或者控制指令的内容进行预先设定的,控制指令用于描述所述舵机的目标位置信息,通过测算舵机根据控制指令,在pwm信号的驱动下达到的实际位置信息,通过将目标位置信息与实际位置信息导入预设的比例调节pid控制算法进行循环运算,能够根据目标位置信息与实际位置信息之间的误差,通过比例调节pid控制算法进行比例项、积分项以及微分项的运算,进而得到所述占空比值。

进一步地,作为本实施例一种实现的可能,将所述目标位置信息与所述实际位置信息,导入预设的比例调节pid控制算法进行循环运算,得到所述占空比值,具体包括:

通过以下公式计算得到所述占空比值;

pv=up+ui+ud;

其中,up为比例项,up=kp×ek;ui为积分项,ui=ki×ek;ud为微分项,ud=kd×(ek-ek1)。

pv为所述占空比值,kp为预设比例系数,ki为预设积分系数,kd为预设微分系数,ek为循环运算过程中的当前目标位置与实际位置之差,ek1为循环运算过程中的前一次目标位置与实际位置之差。

需要说明的是,比例项up是根据预设比例系数与测量得到的误差值得到,积分项ui是误差值基于时间进行积分得到,微分项ud是误差值基于时间进行微分得到,其中,上述误差值均为当前目标位置与实际位置之间的误差值。

在实际应用中,用户可以根据舵机控制精度的实际需求设置相应的预设比例系数kp、预设积分系数ki以及预设微分系数kd。

可以理解的是,在本申请的所有实施例中,预设的比例调节pid控制算法为位置式pid控制算法,在根据上述公式计算得到占空比值的过程中,对每一次的误差值进行累加。

作为本实施例一种实现的可能,驱动舵机的方法还包括与步骤s220并列的步骤s221:若所述当前电压值等于预设电压值,则不做任何操作。

在步骤s221中,若所述当前电压值等于预设电压值,则预设电压值与当前电压值之比为1,即不需要通过比例调节pid控制算法计算pwm信号的占空比。

可以理解的是,步骤s221与步骤s220为并列步骤,不分先后顺序,当执行了步骤s220,便不再执行步骤s221,当执行了步骤s221,便不再执行步骤s220,直到重新判断当前电压值与预设电压值之间的大小关系。

s230:基于所述预设电压值与所述当前电压值之间的比值,以及所述占空比值,计算得到目标占空比值。

在步骤s230中,预设电压值与所述当前电压值之间的比值大于1,或者小于1。

作为本实施例一种可能实现的方式,步骤s230具体包括:计算所述预设电压值与所述当前电压值之间的比值;计算所述比值与所述pwm信号的占空比值之积,得到所述目标占空比值。

进一步地,通过以下公式得到目标占空比信息;

其中,pn为所述目标占空比,vn为所述预设电压值,vm为所述当前电压值,pv为所述占空比值。

在本实施例中,供电电源的当前电压值存在大于预设电压值,或小于预设电压值的情况,当供电电源的当前电压值存在大于预设电压值时,预设电压值与当前电压值之间的比值小于1,当供电电源的当前电压值存在小于预设电压值时,预设电压值与当前电压值之间的比值大于1。

以供电电源为蓄电池为例,当蓄电池过充或者出现放电故障时,蓄电池的当前电压值大于预设电压值,则预设电压值与蓄电池的当前电压值之间的比值小于1;当蓄电池使用一段时间后,且蓄电池的当前电压值小于预设电压值时,则预设电压值与蓄电池的当前电压值之间的比值小于1。

结合步骤s220对步骤s230进行说明,如果当前电压值不等于预设电压值,则表明在该供电电压下,电机容易出现转速误差,进而对舵机的驱动造成一定的位置偏差或者抖动,因此需要对控制电机运行的pwm信号进行调整。

由于在对pwm信号进行调整时,预设电压值与当前电压值之间的比值大小不同,调整时引入的补偿值也不同,通过确定预设电压值与当前电压值之间的比值大小,能够区分不同的当前电压值对电机造成的影响程度,以及准确的确定进行调整的幅度大小,从而能够更加准确地确定目标占空比值。

可以理解的是,若当前电压值等于预设电压值,则预设电压值与当前电压值之间的比值等于1。

s240:根据所述目标占空比值输出目标pwm信号。

在步骤s240中,目标pwm信号用于控制所述电机驱动所述舵机,目标占空比用于描述目标pwm信号中,高电平时长占周期时长的多少。

需要说明的是,当根据目标占空比输出目标pwm信号后,如果舵机姿态或者运行状态保持不变,则持续输出该目标pwm信号。

在本实施例中,在供电电源的当前电压值不等于预设电压值时,则表明电机会在因为该电压值而出现转速偏差,进而导致舵机出现运行不稳地现象,通过对控制电机运行的pwm信号进行调整,能够使电机在供电电源的当前电压值过大或过小时,都能运行在一个相对稳定的状态下,进而保证了舵机的运行不会出现抖动或者运行位置出现较大误差的现象。

以上可以看出,本发明实施例提供的一种驱动舵机的方法,通过在检测到用于驱动舵机的控制指令时,获取电机的供电电源的当前电压值,如果当前电压值不等于预设电压值,则获取根据控制指令与当前电压值生成的脉冲宽度调制pwm信号的占空比值,基于预设电压值与当前电压值之间的比值,以及占空比值,计算得到目标占空比值,最后根据目标占空比值输出目标pwm信号,以得到的目标pwm信号控制电机驱动舵机,可以使电机在运转过程中,不会因为供电电源的输出电压变化,而导致转速不稳定,避免了舵机出现运行不稳地的现象。

如果当前电压值等于预设电压值,则不做任何操作,可以在当前电压值正常时,无需对pwm信号进行调节,避免在舵机驱动过程中作无用功。

参见图3,图3是本发明实施例提供的一种驱动舵机的装置的示意性框图。本实施例的驱动舵机的装置300包括的各单元用于执行图1对应的实施例中的各步骤,具体请参阅图1以及图1对应的实施例中的相关描述,此处不赘述。本实施例的一种驱动舵机的装置300包括:第一获取单元310、第二获取单元320、第一计算单元330以及信号生成单元340。具体地:

第一获取单元310,用于若检测到用于驱动所述舵机的控制指令,则获取所述电机的供电电源的当前电压值。

例如,第一获取单元310若检测到用于驱动所述舵机的控制指令,则获取所述电机的供电电源的当前电压值。

第二获取单元320,用于若所述当前电压值不等于预设电压值,则获取根据所述控制指令与所述当前电压值生成的脉冲宽度调制pwm信号的占空比值。

例如,第二获取单元320若所述当前电压值不等于预设电压值,则获取根据所述控制指令与所述当前电压值生成的脉冲宽度调制pwm信号的占空比值。

第一计算单元330,用于基于所述预设电压值与所述当前电压值之间的比值,以及所述占空比值,计算得到目标占空比值。

例如,第一计算单元330基于所述预设电压值与所述当前电压值之间的比值,以及所述占空比值,计算得到目标占空比值。

信号生成单元340,用于根据所述目标占空比值输出目标pwm信号,所述目标pwm信号用于控制所述电机驱动所述舵机。

例如,信号生成单元340根据所述目标占空比值输出目标pwm信号,所述目标pwm信号用于控制所述电机驱动所述舵机。

以上可以看出,本发明实施例提供的一种驱动舵机的装置,通过在检测到用于驱动舵机的控制指令时,获取电机的供电电源的当前电压值,如果当前电压值不等于预设电压值,则获取根据控制指令与当前电压值生成的脉冲宽度调制pwm信号的占空比值,基于预设电压值与当前电压值之间的比值,以及占空比值,计算得到目标占空比值,最后根据目标占空比值输出目标pwm信号,以得到的目标pwm信号控制电机驱动舵机,可以使电机在运转过程中,不会因为供电电源的输出电压变化,而导致转速不稳定,避免了舵机出现运行不稳地的现象。

参见图4,图4是本发明实施例提供的一种驱动舵机的装置的示意性框图。本实施例的驱动舵机的装置400包括的各单元用于执行图2对应的实施例中的各步骤,具体请参阅图2以及图2对应的实施例中的相关描述,此处不赘述。本实施例的驱动舵机的装置400包括:第一获取单元410、第二获取单元420、执行单元425、第一计算单元430以及信号生成单元440。具体地:

第一获取单元410,用于若检测到用于驱动所述舵机的控制指令,则获取所述电机的供电电源的当前电压值。

例如,第一获取单元410若检测到用于驱动所述舵机的控制指令,则获取所述电机的供电电源的当前电压值。

第二获取单元420,用于若所述当前电压值不等于预设电压值,则获取根据所述控制指令与所述当前电压值生成的脉冲宽度调制pwm信号的占空比值。

例如,第二获取单元420若所述当前电压值不等于预设电压值,则获取根据所述控制指令与所述当前电压值生成的脉冲宽度调制pwm信号的占空比值。

进一步地,作为本实施例一种可能实现的方式,控制指令用于描述所述舵机的目标位置信息,第二获取单元420包括:测算单元421和第二计算单元422。

测算单元421,用于测算所述舵机根据所述控制指令,在所述pwm信号的驱动下达到的实际位置信息。

例如,测算单元421测算所述舵机根据所述控制指令,在所述pwm信号的驱动下达到的实际位置信息。

第二计算单元422,用于将所述目标位置信息与所述实际位置信息,导入预设的比例调节pid控制算法进行循环运算,得到所述占空比值。

例如,第二计算单元422将所述目标位置信息与所述实际位置信息,导入预设的比例调节pid控制算法进行循环运算,得到所述占空比值。

进一步地,第二计算单元422具体用于,通过以下公式计算得到所述占空比值;

pv=up+ui+ud;

其中,up为比例项,up=kp×ek;ui为积分项,ui=ki×ek;ud为微分项,ud=kd×(ek-ek1);

pv为所述占空比值,kp为预设比例系数,ki为预设积分系数,kd为预设微分系数,ek为循环运算过程中的当前目标位置与实际位置之差,ek1为循环运算过程中的前一次目标位置与实际位置之差。

执行单元425,用于若所述当前电压值等于预设电压值,则不做任何操作。

例如,执行单元425若所述当前电压值等于预设电压值,则不做任何操作。

第一计算单元430,用于基于所述预设电压值与所述当前电压值之间的比值,以及所述占空比值,计算得到目标占空比值。

例如,第一计算单元430基于所述预设电压值与所述当前电压值之间的比值,以及所述占空比值,计算得到目标占空比值。

进一步地,第一计算单元430,具体用于计算所述预设电压值与所述当前电压值之间的比值;计算所述比值与所述pwm信号的占空比值之积,得到所述目标占空比值。

例如,第一计算单元430计算所述预设电压值与所述当前电压值之间的比值;计算所述比值与所述pwm信号的占空比值之积,得到所述目标占空比值。

具体地,第一计算单元430通过以下公式得到目标占空比信息;

其中,pn为所述目标占空比,vn为所述预设电压值,vm为所述当前电压值,pv为所述占空比值。

例如,第一计算单元430通过以下公式得到目标占空比信息;

其中,pn为所述目标占空比,vn为所述预设电压值,vm为所述当前电压值,pv为所述占空比值。

信号生成单元440,用于根据所述目标占空比值输出目标pwm信号,所述目标pwm信号用于控制所述电机驱动所述舵机。

例如,信号生成单元440根据所述目标占空比值输出目标pwm信号,所述目标pwm信号用于控制所述电机驱动所述舵机。

以上可以看出,本发明实施例提供的一种驱动舵机的装置,通过在检测到用于驱动舵机的控制指令时,获取电机的供电电源的当前电压值,如果当前电压值不等于预设电压值,则获取根据控制指令与当前电压值生成的脉冲宽度调制pwm信号的占空比值,基于预设电压值与当前电压值之间的比值,以及占空比值,计算得到目标占空比值,最后根据目标占空比值输出目标pwm信号,以得到的目标pwm信号控制电机驱动舵机,可以使电机在运转过程中,不会因为供电电源的输出电压变化,而导致转速不稳定,避免了舵机出现运行不稳地的现象。

如果当前电压值等于预设电压值,则不做任何操作,可以在当前电压值正常时,无需对pwm信号进行调节,避免在舵机驱动过程中作无用功。

参见图5,是本发明另一实施例提供的一种终端示意框图。如图所示的本实施例中的终端可以包括:一个或多个处理器501;一个或多个输入设备502,一个或多个输出设备503和存储器504。上述处理器501、输入设备502、输出设备503和存储器504通过总线505连接。存储器502用于存储,计算机程序包括指令,处理器501通过调用存储器502存储的计算机程序执行如下操作:

处理器501用于:若检测到用于驱动所述舵机的控制指令,则获取所述电机的供电电源的当前电压值。

处理器501用于:若所述当前电压值不等于预设电压值,则获取根据所述控制指令与所述当前电压值生成的脉冲宽度调制pwm信号的占空比值。

处理器501用于:基于所述预设电压值与所述当前电压值之间的比值,与以及占空比值,计算得到目标占空比值。

处理器501用于:根据所述目标占空比值输出目标pwm信号,所述目标pwm信号用于控制所述电机驱动所述舵机。

处理器501还用于:若所述当前电压值等于预设电压值,则不做任何操作。

处理器501具体用于:测算所述舵机根据所述控制指令,在所述pwm信号的驱动下达到的实际位置信息;将所述目标位置信息与所述实际位置信息,导入预设的比例调节pid控制算法进行循环运算,得到所述占空比值。

处理器501具体用于:通过以下公式计算得到所述占空比值;

pv=up+ui+ud;

其中,up为比例项,up=kp×ek;ui为积分项,ui=ki×ek;ud为微分项,ud=kd×(ek-ek1);

pv为所述占空比值,kp为预设比例系数,ki为预设积分系数,kd为预设微分系数,ek为循环运算过程中的当前目标位置与实际位置之差,ek1为循环运算过程中的前一次目标位置与实际位置之差。

处理器501具体用于:计算所述预设电压值与所述当前电压值之间的比值;计算所述比值与所述pwm信号的占空比值之积,得到所述目标占空比值。

处理器501具体用于:所述预设电压值与所述当前电压值之间的比值不等于1。

应当理解,在本发明实施例中,所称处理器501可以是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

输入设备502可以包括触控板、指纹采传感器(用于采集用户的指纹信息和指纹的方向信息)、麦克风等,输出设备503可以包括显示器(lcd等)、扬声器等。

该存储器504可以包括只读存储器和随机存取存储器,并向处理器501提供指令和数据。存储器504的一部分还可以包括非易失性随机存取存储器。例如,存储器504还可以存储设备类型的信息。

具体实现中,本发明实施例中所描述的处理器501、输入设备502、输出设备503可执行本发明实施例提供的一种驱动舵机的方法的第一实施例和第二实施例中所描述的实现方式,也可执行本发明实施例所描述的设备的实现方式,在此不再赘述。

在本发明的另一实施例中提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现:

若检测到用于驱动所述舵机的控制指令,则获取所述电机的供电电源的当前电压值;

若所述当前电压值不等于预设电压值,则获取根据所述控制指令与所述当前电压值生成的脉冲宽度调制pwm信号的占空比值;

基于所述预设电压值与所述当前电压值之间的比值,以及所述占空比值,计算得到目标占空比值;

根据所述目标占空比值输出目标pwm信号,所述目标pwm信号用于控制所述电机驱动所述舵机。

控制指令用于描述所述舵机的目标位置信息,所述计算机程序被处理器执行时还实现:

测算所述舵机根据所述控制指令,在所述pwm信号的驱动下达到的实际位置信息;

将所述目标位置信息与所述实际位置信息,导入预设的比例调节pid控制算法进行循环运算,得到所述占空比值。

所述计算机程序被处理器执行时还实现:

通过以下公式计算得到所述占空比值;

pv=up+ui+ud;

其中,up为比例项,up=kp×ek;ui为积分项,ui=ki×ek;ud为微分项,ud=kd×(ek-ek1);

pv为所述占空比值,kp为预设比例系数,ki为预设积分系数,kd为预设微分系数,ek为循环运算过程中的当前目标位置与实际位置之差,ek1为循环运算过程中的前一次目标位置与实际位置之差。

所述计算机程序被处理器执行时还实现:

计算所述预设电压值与所述当前电压值之间的比值;

计算所述比值与所述pwm信号的占空比值之积,得到所述目标占空比值。

所述计算机程序被处理器执行时还实现:

若所述当前电压值等于预设电压值,则不做任何操作。

所述计算机程序被处理器执行时还实现:

所述预设电压值与所述当前电压值之间的比值不等于1。

以上可以看出,本发明实施例通过在检测到用于驱动舵机的控制指令时,获取电机的供电电源的当前电压值,如果当前电压值不等于预设电压值,则获取根据控制指令与当前电压值生成的脉冲宽度调制pwm信号的占空比值,基于预设电压值与当前电压值之间的比值,以及占空比值,计算得到目标占空比值,最后根据目标占空比值输出目标pwm信号,以得到的目标pwm信号控制电机驱动舵机,可以使电机在运转过程中,不会因为供电电源的输出电压变化,而导致转速不稳定,避免了舵机出现运行不稳地的现象。

所述计算机可读存储介质可以是前述任一实施例所述的设备的内部存储单元,例如计算机的硬盘或内存。所述计算机可读存储介质也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述计算机可读存储介质还可以既包括所述设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述设备所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1