Servo Serial FEETECH — Introdução ao Produto

Servos de Barramento Serial FEETECH - Soluções de servo de alto desempenho para robótica, automação e projetos DIY
Idioma

Os servos de barramento serial FEETECH são soluções de servo de alto desempenho e com ótimo custo-benefício, projetadas para robótica, automação e projetos DIY. Eles utilizam o protocolo de comunicação personalizado FT-SCS, com suporte a métodos de comunicação TTL de barramento único e RS485, permitindo que múltiplos servos sejam controlados através de um único barramento.

Principais Características

Protocolo de Comunicação

  • Suporte a Comunicação Dupla: Compatível com métodos de comunicação em nível TTL (alta velocidade) e RS485 (forte imunidade a interferências)
  • Comunicação Duplex Assíncrona: Utiliza um modelo de interação de pergunta e resposta entre o controlador e o servo
  • Controle de Múltiplos Servos no Barramento: Até 254 servos podem ser conectados em um único barramento, cada um com um ID único (0-253)
  • Configuração Padrão: taxa de baud 1M, 8 bits de dados, 1 bit de parada, sem paridade
  • Controle de Broadcast: O ID 254 pode ser usado para enviar comandos a todos os servos simultaneamente

Modos de Controle

  • Modo Servo de Posição: Controle preciso de posição com resolução de 0.087°
  • Modo de Velocidade Constante: Controle suave de velocidade para aplicações de rotação contínua
  • Modo PWM em Malha Aberta: Controle PWM direto para regulação de velocidade personalizada
  • Modo de Passo: Controle de posição baseado em passos para aplicações de precisão

Proteção & Monitoramento

  • Proteção contra sobretemperatura
  • Proteção contra sobretensão/subtensão
  • Proteção contra sobrecorrente
  • Proteção contra sobrecarga de carga
  • Feedback em tempo real de posição, velocidade, carga, tensão e temperatura

Exemplo Básico de Controle

Abaixo está um exemplo simples em Python demonstrando como controlar um servo FEETECH via porta serial:

import serial
import time

# Inicializa a porta serial
ser = serial.Serial('COM3', 1000000, timeout=1)  # Ajuste a porta COM conforme necessário

def calculate_checksum(data):
    """Calcula o checksum para o protocolo SCS"""
    checksum = sum(data)
    return (~checksum) & 0xFF

def ping_servo(servo_id):
    """Faz ping ao servo para verificar a conexão"""
    command = [0xFF, 0xFF, servo_id, 0x02, 0x01]
    checksum = calculate_checksum(command[2:])
    command.append(checksum)
    ser.write(bytearray(command))
    response = ser.read(6)
    return len(response) > 0

def set_servo_position(servo_id, position, speed=1000):
    """Define a posição alvo do servo com a velocidade especificada"""
    # Posição: 0-4095 corresponde a 0-360° (ajuste conforme o modelo do seu servo)
    # Velocidade: passos por segundo
    pos_low = position & 0xFF
    pos_high = (position >> 8) & 0xFF
    speed_low = speed & 0xFF
    speed_high = (speed >> 8) & 0xFF
    
    command = [0xFF, 0xFF, servo_id, 0x09, 0x03, 0x2A, 
               pos_low, pos_high, 0x00, 0x00, speed_low, speed_high]
    checksum = calculate_checksum(command[2:])
    command.append(checksum)
    ser.write(bytearray(command))
    response = ser.read(6)
    return response

# Exemplo de uso
if __name__ == "__main__":
    servo_id = 1
    
    # Verifica se o servo está conectado
    if ping_servo(servo_id):
        print(f"Servo ID {servo_id} connected successfully")
        
        # Move o servo para a posição 2048 (posição central, aproximadamente 180°) a 1000 passos/seg
        set_servo_position(servo_id, 2048, 1000)
        print(f"Servo moving to position 2048")
        
        time.sleep(2)
        
        # Move o servo para a posição 0 (posição mínima, aproximadamente 0°) a 500 passos/seg
        set_servo_position(servo_id, 0, 500)
        print(f"Servo moving to position 0")
    else:
        print(f"Failed to connect to servo ID {servo_id}")
    
    ser.close()

Visão Geral da Tabela de Memória

Os servos FEETECH possuem uma estrutura abrangente de tabela de memória para configuração e monitoramento de status:

Região Descrição Persistência
Informações de Versão Versão de firmware, informações de hardware Somente leitura
Configuração EPROM ID do servo, taxa de baud, limites de ângulo, parâmetros PID, configurações de proteção Persiste após o desligamento
Controle SRAM Interruptor de torque, posição alvo, velocidade de operação, limite de torque Redefinido após o desligamento
Feedback SRAM Posição atual, velocidade, carga, tensão, temperatura, status Somente leitura em tempo real
Parâmetros de Fábrica Parâmetros de calibração, limites de desempenho Somente leitura

Comandos Comuns

Comando Valor Função
PING 0x01 Consulta o status de funcionamento do servo
READ DATA 0x02 Lê dados da tabela de controle
WRITE DATA 0x03 Escreve dados na tabela de controle
REG_WRITE 0x04 Escrita assíncrona (executa com o comando ACTION)
ACTION 0x05 Dispara todos os comandos REG_WRITE enfileirados
SYNC_WRITE 0x83 Escreve sincronizadamente em múltiplos servos simultaneamente
RESET 0x0A Redefine o estado e os parâmetros do servo

Mais Recursos

Este artigo é um resumo. Leia a documentação técnica completa no Wiki.

Ler Artigo Completo no Wiki →

Abrir no JuxiTech Wiki