六足机器人硬件配置问题

我的六足机器人有18舵机, 每足3舵机。控制板为HT32F52352,这不重要。舵机为A0090,为9g小舵机,额定电压为6v,额定电流不确定。现在我的硬件架构为:主控板两个iic口连接两个pca9685(舵机模块),每个舵机模块连接9个舵机,电池为航模电池,配有一个分电板(电源模块),电源模块听商家讲是限流的,电流多大出来还是1a。也拥有一个bec模块可以输出20a电流,但是不敢用。整体重量大概在1kg左右

目前的问题是:
1.舵机的扭矩不够,不知道是因为舵机的电流没给够还是已经是极限扭矩。完全做不到像大舵机mg90s那样丝滑的移动。参考b站的其他六足。由于扭矩不够,堵转的概率很大。然后舵机商家说舵机至少要1a的电流才能正常驱动,但是我不知道该怎么用pca供这么多电流给一个舵机。
2.舵机很容易坏,不知道是不是因为堵转的关系,电流不够的关系。舵机商家说是因为拖电短路,舵机电流不足所以拖多了板子上的电流,不知道是不是这样。

要达到的目标是:
1.舵机扭矩足够让舵机自主从瘫软状态直接直立。(现在如果瘫软状态上电完全立不起来,堵转,要人手辅助才能立起来)
2.舵机不要坏的这么频繁,能够正常工作很长时间。
接下来附图(图上没有供电):

img

img

黑白线是电源模块供给两个pca的供电口1和板子,pca的供电口2还没有插线供电。我现在不清楚pca的原理,不知道它的两个供电口分别是给什么供电,也不知道应该怎么供电才能使每个舵机分到1a的电流。

问题分析:
1. 舵机扭矩不够,堵转的概率很大,可能是因为舵机的电流不够。
2. 舵机容易坏,可能是因为电流不够或者拖电短路。
3. 不知道如何给每个舵机供1A的电流。
解决方案:
1. 确认舵机的额定电流,如果确实需要1A的电流才能正常工作,那么需要提供足够的电流给每个舵机。可以考虑使用更大电流的电源或者使用多个电源并联。
2. 确认舵机坏掉的原因,如果是因为电流不够,那么需要提供足够的电流给每个舵机。如果是因为拖电短路,那么需要检查电路是否有短路现象,尤其是舵机模块和舵机之间的连接是否正确。
3. PCA9685是一个16通道PWM控制器,每个通道可以输出12位分辨率的PWM信号。它有两个供电口,VCC和V+。VCC是控制器的逻辑电源,V+是输出PWM信号的电源。为了给每个舵机供1A的电流,可以考虑使用多个PCA9685并联,每个PCA9685控制9个舵机,每个PCA9685的V+口接上高电流的电源,如BEC模块。这样每个舵机就可以得到足够的电流。
4. 另外,为了减少舵机堵转的概率,可以考虑增加舵机的电压,如使用7.4V的电池。同时,可以调整舵机的PID参数,使其更加稳定。

基于最新版ChatGPT4的回答,望采纳!!!有其他问题也可以询问我哦、”(最新版更智能,功能更加强大)

根据你的描述,我了解到你的六足机器人使用了18个A0090舵机,每个舵机额定电压为6V,但额定电流不确定。你的硬件架构包括HT32F52352主控板,两个PCA9685舵机模块,航模电池,分电板(电源模块),和一个BEC模块。

关于你的问题:

  1. 舵机扭矩不够。这个问题可能是由于电流不足导致的。商家建议至少需要1A电流来正常驱动舵机。PCA9685舵机模块本身无法提供足够的电流,但是你可以考虑在PCA9685舵机模块的电源输入端使用一个外部电源,这样你可以为舵机提供足够的电流。如果你的电源模块可以提供1A的电流,可以考虑将其连接到PCA9685的电源输入端。在这种情况下,PCA9685的两个供电口中的一个用于接收主控板的信号,另一个用于接收外部电源。请务必确保外部电源的电压与舵机的额定电压相符,即6V。
  2. 舵机容易损坏。这个问题可能与扭矩不足和堵转有关。如果舵机长时间处于堵转状态,可能会导致电流过大,从而损坏舵机。通过提高电流来增加扭矩可能有助于解决这个问题。

为了实现你的目标:

  1. 你可以尝试通过提高舵机的电流来增加扭矩。使用一个能提供至少1A电流的电源模块为PCA9685舵机模块供电。在这种情况下,PCA9685的两个供电口中的一个用于接收主控板的信号,另一个用于接收外部电源。
  2. 要延长舵机的使用寿命,首先确保舵机的电流足够,以避免长时间堵转。其次,确保舵机在正常工作范围内运行,避免超负荷。如果可能,可以考虑升级到具有更高扭矩的舵机。

总之,解决你的问题可能需要为PCA9685舵机模块提供足够的电流。你可以尝试将分电板(电源模块)或BEC模块连接到PCA9685的电源输入端,以增加舵机的扭矩和减少损坏的可能性。请确保在进行任何更改之前仔细阅读和遵循设备的使用说明和安全

接下来我们来详细讨论如何为PCA9685舵机模块提供足够的电流。

  1. 首先,确保分电板(电源模块)或BEC模块可以为每个舵机提供至少1A的电流。考虑到你有18个舵机,你需要一个能够提供至少18A电流的电源。如果你的分电板(电源模块)可以提供足够的电流,则可以使用它。如果不行,你可以考虑使用BEC模块,但请务必确保其输出电压为6V,以匹配舵机的额定电压。
  2. 一旦你确定了合适的电源,你需要为PCA9685舵机模块提供电源。PCA9685有两个供电口,一个用于接收主控板的信号,另一个用于接收外部电源。将电源模块或BEC模块连接到PCA9685的电源输入端,确保连接正确且牢固。
  3. 为了保护舵机和其他组件,建议在电源和PCA9685之间添加保险丝或电流保护器。这样,如果电流过大,保险丝或保护器会断开,保护舵机和其他组件免受损坏。
  4. 舵机的布线也很重要。请确保使用合适的线径,以便在保持线损降低的同时传输足够的电流。此外,确保线路连接正确且牢固,以防止意外短路。
  5. 在调试和测试过程中,注意观察舵机的运行情况。如果舵机的扭矩仍然不足,可能需要考虑升级到具有更高扭矩的舵机。同时,确保你的六足机器人的设计和负载分布合理,以减轻舵机的负担。
  6. 另一个优化方法是在软件层面进行调整。优化你的六足机器人的运动控制算法,使其更平稳、更高效,从而降低舵机的负荷。

基于Huouayi库和GPTᴼᴾᴱᴺᴬᴵ的调写:

  1. 舵机扭矩问题:
    确保舵机供电电压稳定,不低于舵机额定电压6V;
    确认舵机的机械结构和轴承运转是否正常,若有卡滞或磨损等情况,会降低扭矩表现;
    调整控制程序,优化舵机控制算法,确保舵机运动平稳,不出现异常震动。

  2. 舵机易损问题:
    确认舵机供电电压是否稳定,不要让电压过高或过低,以免损坏舵机内部电路;
    确认舵机机械结构是否正常,特别是舵机输出轴的结构,是否能承受外部力矩;
    确认控制程序的算法是否合理,是否过于频繁地发送控制信号,导致舵机频繁转动,加速舵机磨损。

  3. 关于PCA9685的供电问题:
    需要给PCA9685提供稳定的电源,并保证供电电流足够。PCA9685的工作电流很小,不需要特别高的电流供应。
    在你的电路中,如果每个PCA9685连接9个舵机,那么每个PCA9685的舵机供电电流就会在1A左右。
    如果你的电源模块是限流模块,那么需要确认电源模块的输出电流是否足够,可以尝试使用电流表来检测每个PCA9685的舵机供电电流。
    如果发现不足1A,可以考虑更换电源模块或者增加供电电源。

基于最新版ChatGPT4的回答,望采纳!!!有其他问题也可以询问我哦💕(最新版更智能,功能更加强大):
针对您的问题,我们可以从以下几个方面进行分析和改进:

首先,舵机的扭矩问题可能是因为电流不足导致的。您提到的A0090舵机需要至少1A的电流才能正常驱动。由于PCA9685模块的电流限制,您可能需要调整供电方式,以确保每个舵机都能获得足够的电流。您可以尝试使用分电板将电源分配给每个舵机,这样每个舵机都能获得足够的电流来驱动。

关于舵机容易损坏的问题,堵转和电流不足可能是原因之一。为了保护舵机,您可以在舵机的电源线中增加保险丝,以防止过大的电流损坏舵机。同时,确保电路板和舵机之间的接线正确,以防止短路。

对于PCA9685的两个供电口,通常一个供电口用于驱动逻辑电路(例如I2C通信),另一个供电口用于驱动舵机。您需要确保逻辑电路和舵机的供电分开,以避免干扰。您可以尝试为PCA9685的舵机供电口接入更高电流的电源,以确保每个舵机能够获得足够的电流。

对于您的目标,为了确保舵机具有足够的扭矩并减少损坏,建议您尝试以下方法:

a. 使用分电板或更强大的电源模块来为每个舵机提供足够的电流。

b. 在舵机的电源线中加入保险丝,以防止过大电流损坏舵机。

c. 考虑使用更高扭矩的舵机,例如MG90S,以提高机器人的性能。

通过上述方法,您应该能够提高六足机器人的性能并减少舵机损坏的频率。希望这些建议对您有所帮助!

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
首先,关于舵机的扭矩不够的问题,可能是因为以下原因:

  1. 舵机电流不够,需要给舵机供给足够的电流。您可以通过调整电源的输出电流来解决这个问题。

  2. 舵机电压不够,A0090舵机的额定工作电压为6V,如果供电电压不足6V,会导致输出扭矩不足。

  3. 舵机控制信号不稳定,需要优化舵机控制算法。

关于怎么给每个舵机分到1A的电流,PCA9685舵机控制器的供电口1和口2分别用于舵机控制电路的电源和器件电源。如果您想要给每个舵机分到1A的电流,建议使用20A的BEC模块来提供电源,而且PCA9685控制器的供电口1和供电口2都应该连接到电源的正极,以确保每个舵机都能获得足够的电流。如果还不行,您可以增加电源模块的输出电流或添加分配器板来提供更稳定的电源。

关于舵机坏的频繁问题,可能是因为以下原因:

  1. 舵机经常被拖到超负荷状态,导致损坏。建议控制舵机的运动范围,以避免不必要的堵转。

  2. 舵机电流不够,如果舵机运行时需要的电流大于PCA9685控制器的输出电流,则可能会损坏舵机。

  3. PCA9685控制器控制信号不稳定,可能导致舵机在工作时不稳定,并引起损坏。

注:以下代码可供参考

import smbus
import time

bus = smbus.SMBus(1)

PCA9685_ADDRESS = 0x40
MODE1 = 0x00
MODE2 = 0x01
SUBADR1 = 0x02
SUBADR2 = 0x03
SUBADR3 = 0x04
ALLCALLADR = 0x05
PRESCALE = 0xFE
LED0_ON_L = 0x06
LED0_ON_H = 0x07
LED0_OFF_L = 0x08
LED0_OFF_H = 0x09
ALL_LED_ON_L = 0xFA
ALL_LED_ON_H = 0xFB
ALL_LED_OFF_L = 0xFC
ALL_LED_OFF_H = 0xFD

class PCA9685():
    def __init__(self, address=PCA9685_ADDRESS):
        self.address = address
        self.write_byte(MODE1, 0x00)

    def write_byte(self, reg, value):
        bus.write_byte_data(self.address, reg, value)

    def read_byte(self, reg):
        return bus.read_byte_data(self.address, reg)

    def set_pwm_freq(self, freq):
        prescaleval = 25000000.0
        prescaleval /= 4096.0
        prescaleval /= float(freq)
        prescaleval -= 1.0
        prescale = int(prescaleval + 0.5)

        oldmode = self.read_byte(MODE1)
        newmode = (oldmode & 0x7F) | 0x10  
        self.write_byte(MODE1, newmode)        
        self.write_byte(PRESCALE, prescale)
        self.write_byte(MODE1, oldmode)
        time.sleep(0.005)
        self.write_byte(MODE1, oldmode | 0x80)

    def set_pwm(self, channel, on, off):
        self.write_byte(LED0_ON_L + 4 * channel, on & 0xFF)
        self.write_byte(LED0_ON_H + 4 * channel, on >> 8)
        self.write_byte(LED0_OFF_L + 4 * channel, off & 0xFF)
        self.write_byte(LED0_OFF_H + 4 * channel, off >> 8)


def set_servo_angle(channel, angle):
    angle = max(angle, 0)
    angle = min(angle, 180)

    PWM_FREQ = 50.0
    PWM_SCALE = (1.0 / PWM_FREQ) * 4096.0
    duty_cycle = (angle / 180.0) * PWM_SCALE + PWM_SCALE / 20.0

    pwm.set_pwm(channel, 0, int(duty_cycle))

if __name__ == "__main__":
    pwm = PCA9685()
    pwm.set_pwm_freq(50)
    set_servo_angle(0, 90)  # 设置0号舵机角度为90

如果我的回答解决了您的问题,请采纳!

该回答引用于gpt与OKX安生共同编写:
  • 该回答引用于gpt与OKX安生共同编写:

根据您提供的信息,我可以看出您的舵机不够强,而且容易受损。

以下是一些建议以帮助您解决这些问题:

    1. 确保为舵机供电恰当。 A0090 舵机的额定电压为6V,因此您需要确保每个舵机都能得到稳定的6V电压供应。如果电池电压不够,您可能需要添加更多的电池或使用DC-DC升压模块以提高电压。
    1. 了解 PCA9685 舵机驱动器的极限电流。根据PCA9685数据手册,它的每个输出通道可以支持最大25mA的负载电流。您可以使用多个输出通道连接单个舵机以获得所需的电流,但是请注意总电流不能超过PCA9685的最大电流(约400mA)。您可以考虑使用外部 MOSFET 放大器等增强器来增加输出电流。
    1. 考虑舵机的额定电流和功率。您已经知道 A0090 舵机的额定电压为6V,但是您需要知道其额定电流和功率才能确定是否符合要求。您可以在舵机型号说明书或技术规格表中找到这些信息。如果舵机电流不足,您可以尝试使用更大的电池或增加电源模块的供电能力以提高电流输出。
    1. 避免舵机过载或堵转。如果舵机负载过重或遭受阻力,可能会导致电流超过额定值并损坏舵机。您可以尝试减轻舵机负载或添加传感器来检测舵机当前状态并根据需要自动调整控制信号。
    1. 优化机械结构以增强执行效果。如果六足机器人不能从瘫软状态直接直立并且舵机受到极限压力,那么您需要重新设计机械结构来减少负载、增强稳定性和提高执行效果。您可以考虑使用轻型材料、优化关节角度、使用曲柄机构等方法来实现这一目标。
  • 如有用的话,还请采纳哦~