FEETECH Serial Servo – Produktvorstellung

FEETECH-Serienbus-Servos – Hochleistungs-Servolösungen für Robotik, Automatisierung und DIY-Projekte
Language

FEETECH-Serienbus-Servos sind leistungsstarke, kostengünstige Servolösungen für Robotik, Automatisierung und DIY-Projekte. Sie nutzen das proprietäre FT-SCS-Kommunikationsprotokoll und unterstützen sowohl TTL-Einzelbus- als auch RS485-Kommunikationsmethoden, sodass mehrere Servos über einen einzigen Bus gesteuert werden können.

Wichtige Funktionen

Kommunikationsprotokoll

  • Duale Kommunikationsunterstützung: Kompatibel mit TTL-Pegel (hohe Geschwindigkeit) und RS485 (starke Störfestigkeit)
  • Asynchrone Duplex-Kommunikation: Verwendet ein Frage-und-Antwort-Interaktionsmodell zwischen Controller und Servo
  • Multi-Servo-Bussteuerung: Bis zu 254 Servos können an einem einzigen Bus angeschlossen werden, jeweils mit einer eindeutigen ID (0-253)
  • Standardkonfiguration: 1M Baudrate, 8 Datenbits, 1 Stoppbit, keine Parität
  • Broadcast-Steuerung: Mit ID 254 können Befehle gleichzeitig an alle Servos gesendet werden

Steuerungsmodi

  • Positionsservo-Modus: Präzise Positionssteuerung mit 0,087° Auflösung
  • Modus mit konstanter Geschwindigkeit: Sanfte Geschwindigkeitsregelung für kontinuierliche Rotationsanwendungen
  • PWM-Open-Loop-Modus: Direkte PWM-Steuerung für individuelle Geschwindigkeitsregelung
  • Schrittmodus: Schrittbasierte Positionssteuerung für Präzisionsanwendungen

Schutz & Überwachung

  • Übertemperaturschutz
  • Überspannungs-/Unterspannungsschutz
  • Überstromschutz
  • Überlastschutz
  • Echtzeit-Rückmeldung von Position, Geschwindigkeit, Last, Spannung und Temperatur

Einfaches Steuerungsbeispiel

Nachfolgend ein einfaches Python-Beispiel, das zeigt, wie ein FEETECH-Servo über die serielle Schnittstelle gesteuert wird:

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()

Übersicht der Speichertabelle

FEETECH-Servos verfügen über eine umfassende Speichertabellenstruktur für Konfiguration und Statusüberwachung:

Bereich Beschreibung Persistenz
Versionsinformationen Firmware-Version, Hardware-Informationen Schreibgeschützt
EPROM-Konfiguration Servo-ID, Baudrate, Winkelbegrenzungen, PID-Parameter, Schutz-Einstellungen Bleibt nach dem Ausschalten erhalten
SRAM-Steuerung Drehmomentschalter, Zielposition, Laufgeschwindigkeit, Drehmomentgrenze Wird beim Ausschalten zurückgesetzt
SRAM-Rückmeldung Aktuelle Position, Geschwindigkeit, Last, Spannung, Temperatur, Status Echtzeit-schreibgeschützt
Werksparameter Kalibrierparameter, Leistungsgrenzen Schreibgeschützt

Häufige Befehle

Befehl Wert Funktion
PING 0x01 Servo-Arbeitsstatus abfragen
READ DATA 0x02 Daten aus der Steuertabelle lesen
WRITE DATA 0x03 Daten in die Steuertabelle schreiben
REG_WRITE 0x04 Asynchrones Schreiben (wird beim ACTION-Befehl ausgeführt)
ACTION 0x05 Alle in der Warteschlange befindlichen REG_WRITE-Befehle auslösen
SYNC_WRITE 0x83 Gleichzeitig synchron an mehrere Servos schreiben
RESET 0x0A Servozustand und Parameter zurücksetzen

Weitere Ressourcen

Dieser Artikel ist eine Zusammenfassung. Lesen Sie die vollständige technische Dokumentation im Wiki.

Vollständigen Artikel im Wiki lesen →

Im Feishu-Wiki öffnen