FEETECH Serial Servo – Introduzione al prodotto

Servomotori a bus seriale FEETECH – soluzioni di servomotori ad alte prestazioni per robotica, automazione e progetti fai-da-te
Language

I servomotori a bus seriale FEETECH sono soluzioni di servomotori ad alte prestazioni e convenienti progettate per robotica, automazione e progetti fai-da-te. Utilizzano il protocollo di comunicazione proprietario FT-SCS e supportano sia la comunicazione TTL su bus singolo sia RS485, consentendo di controllare più servomotori tramite un unico bus.

Caratteristiche principali

Protocollo di comunicazione

  • Doppio supporto di comunicazione: Compatibile con TTL (alta velocità) e RS485 (forte immunità alle interferenze)
  • Comunicazione duplex asincrona: Utilizza un modello di interazione domanda-risposta tra controller e servomotore
  • Controllo multi-servo su bus: Fino a 254 servomotori possono essere collegati su un unico bus, ciascuno con un ID univoco (0-253)
  • Configurazione predefinita: Baud rate 1M, 8 bit di dati, 1 bit di stop, nessuna parità
  • Controllo broadcast: L'ID 254 può essere utilizzato per inviare comandi a tutti i servomotori contemporaneamente

Modalità di controllo

  • Modalità servo di posizione: Controllo preciso della posizione con risoluzione di 0,087°
  • Modalità velocità costante: Controllo fluido della velocità per applicazioni a rotazione continua
  • Modalità open-loop PWM: Controllo PWM diretto per la regolazione personalizzata della velocità
  • Modalità step: Controllo di posizione a step per applicazioni di precisione

Protezione & monitoraggio

  • Protezione da sovratemperatura
  • Protezione da sovratensione/sottotensione
  • Protezione da sovracorrente
  • Protezione da sovraccarico
  • Feedback in tempo reale di posizione, velocità, carico, tensione e temperatura

Esempio di controllo di base

Di seguito un semplice esempio in Python che mostra come controllare un servomotore FEETECH tramite porta seriale:

import serial
import time

# Initialize serial port
ser = serial.Serial('COM3', 1000000, timeout=1)  # Adjust COM port as needed

def calculate_checksum(data):
    """Calculate checksum for SCS protocol"""
    checksum = sum(data)
    return (~checksum) & 0xFF

def ping_servo(servo_id):
    """Ping servo to check connection"""
    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):
    """Set servo target position with specified speed"""
    # Position: 0-4095 corresponds to 0-360° (adjust based on your servo model)
    # Speed: steps per second
    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

# Example usage
if __name__ == "__main__":
    servo_id = 1
    
    # Check if servo is connected
    if ping_servo(servo_id):
        print(f"Servo ID {servo_id} connected successfully")
        
        # Move servo to position 2048 (middle position, approximately 180°) at 1000 steps/sec
        set_servo_position(servo_id, 2048, 1000)
        print(f"Servo moving to position 2048")
        
        time.sleep(2)
        
        # Move servo to position 0 (minimum position, approximately 0°) at 500 steps/sec
        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()

Panoramica della tabella di memoria

I servomotori FEETECH dispongono di una struttura completa di tabella di memoria per la configurazione e il monitoraggio dello stato:

Regione Descrizione Persistenza
Informazioni sulla versione Versione firmware, informazioni hardware Sola lettura
Configurazione EPROM ID servomotore, baud rate, limiti angolari, parametri PID, impostazioni di protezione Persiste dopo lo spegnimento
Controllo SRAM Interruttore di coppia, posizione target, velocità di rotazione, limite di coppia Resettato allo spegnimento
Feedback SRAM Posizione corrente, velocità, carico, tensione, temperatura, stato Sola lettura in tempo reale
Parametri di fabbrica Parametri di calibrazione, limiti di prestazione Sola lettura

Comandi comuni

Comando Valore Funzione
PING 0x01 Interrogare lo stato operativo del servomotore
READ DATA 0x02 Leggere i dati dalla tabella di controllo
WRITE DATA 0x03 Scrivere dati nella tabella di controllo
REG_WRITE 0x04 Scrittura asincrona (eseguita sul comando ACTION)
ACTION 0x05 Eseguire tutti i comandi REG_WRITE in coda
SYNC_WRITE 0x83 Scrivere sincronamente su più servomotori contemporaneamente
RESET 0x0A Resettare lo stato e i parametri del servomotore

Altre risorse

Questo articolo è un riassunto. Leggi la documentazione tecnica completa sul Wiki.

Leggi l'articolo completo sul Wiki →

Apri nel Wiki Feishu