To slags servoer, to slags drivere
Servomotorer findes i to grundtyper, og hver type kræver sin egen driver:
- Almindelige PWM-servoer (hobby/RC-servoer): styres med en PWM-pulse hver 20 ms, hvor pulse-bredden 1-2 ms bestemmer vinklen. Tilkobles direkte til Arduino's GPIO uden separat driver. Til mange servoer er en dedikeret PWM-driver (PCA9685) eller servo-shield praktisk.
- Digitale bus-servoer (Dynamixel, FeeTech ST/SC, Robotis): styres med seriel kommunikation hvor hver servo har et unikt ID. Mange servoer kan kobles til samme bus (daisy-chain) og styres uafhængigt. Giver også feedback om position, hastighed, last og temperatur.
Modeller i udvalget
Bus-servo driver til mange servoer
- Serial Bus Servo Driver Board (DRI0057): kompakt high-performance controller til ST og SC series bus-servoer. Op til 253 servoer på samme bus. USB og UART interfaces, 9-12,6V DC drift. Læser real-time feedback fra hver servo (vinkel, last, spænding). Funktioner inkluderer ID-programmering og skift mellem servo-mode (positions-kontrol) og motor-mode (kontinuerlig rotation). 42×33 mm.
Manuel kontroller med drejeknap
- 2 Channel Knob Servo Control Module (400077): plug-and-play servo-controller der både understøtter manuel justering via drejeknap og UART-kontrol. STM8S103 MCU genererer PWM med 0,09° præcision. To kanaler, 5-9V DC drift. Modes: 0-180°, 0-270°, 0-360° eller kontinuerlig rotation med hastighed. Centreringsfunktion via knap. Til testning, opsætning og uddannelse.
Arduino Shield til Dynamixel
- Smart Arduino Digital Servo Shield (DRI0027): Arduino R3-shield til Dynamixel AX series servoer. Half-duplex circuit lader dig daisy-chain mange AX-12 servoer på en bus. Atmega8 MCU, 6,5-12V drift, 7 servo-stik. Til hobby-robotter, hexapods, robot-arme og animatronics.
PWM vs Bus-servo: hvad er forskellen?
| PWM-servoer (hobby/RC) | Bus-servoer (Dynamixel, ST/SC) |
| Pris | Lav (50-200 kr) | Høj (300-3000 kr) |
| Kommunikation | 1 ledning pr. servo | Daisy-chain alle på 1 bus |
| Kabling | 3 ledninger pr. servo | 3 ledninger total |
| Feedback | Nej (åben loop) | Ja (vinkel, last, temperatur) |
| Maks antal servoer | ~16 pr. PWM-driver | 200+ på samme bus |
| Præcision | 1-2° | 0,29° eller bedre |
| Bedst til | Hobby-robotter, RC-modeller | Avancerede robotter, industri |
Hvilken driver skal jeg vælge?
- Stort robot-projekt med mange digitale servoer (hexapod, robot-arm, humanoid): Serial Bus Servo Driver Board (DRI0057) — én driver kan håndtere alle servoer.
- Eksisterende Dynamixel AX servoer + Arduino: Smart Arduino Digital Servo Shield (DRI0027).
- Test og opsætning af servoer eller manuel kontrol: 2 Channel Knob Servo Control Module (400077).
- Hobby-projekt med få PWM-servoer: Brug Arduino's egne PWM-pins direkte, eller Adafruit PCA9685 16-channel PWM driver hvis du har mange.
Sådan styrer du PWM-servoer fra Arduino
Arduino kan styre op til 12 servoer direkte via Servo-biblioteket (UNO/Nano). Hver servo skal have sin egen GPIO-pin, og koden er meget enkel:
#include <Servo.h>
Servo myServo;
void setup() {
myServo.attach(9); // PWM-pin 9
}
void loop() {
myServo.write(0); // 0 grader
delay(1000);
myServo.write(90); // 90 grader (midten)
delay(1000);
myServo.write(180); // 180 grader
delay(1000);
}
Til mere end 12 servoer eller flere kanaler er en PCA9685 PWM-driver praktisk — den giver dig 16 PWM-kanaler over I²C på kun 2 Arduino-pins.
Sådan styrer du bus-servoer
Bus-servoer styres via seriel kommunikation hvor hver servo har et unikt ID:
- Tilkobl bus-servoerne i daisy-chain — RX/TX deles mellem alle
- Tilkobl driver-boardet (DRI0057) til mikrocontroller via UART eller PC via USB
- Programmér hver servo med et unikt ID (typisk 1, 2, 3, 4...)
- Send seriel-kommandoer der adresserer hver servo individuelt
- Læs feedback fra hver servo (position, last, spænding) når nødvendigt
Servo-typer i markedet
- Standard hobby-servo (SG90, MG996R): 4,8-6V, PWM-styring, 0-180° eller kontinuerlig rotation. Den klassiske hobby-servo.
- Dynamixel AX serien (Robotis): digital bus-servo, 9-12V, half-duplex UART. Meget brugt i akademisk robotik.
- FeeTech ST og SC serien: kompatible med DRI0057 driver. Billigere end Dynamixel, samme bus-protokol.
- FeeTech SCS-serien: low-cost smart-servoer til hobby-robotik.
- Industrial servo: kraftige industri-servoer med encoder og brushless motor. Kræver dedikeret servo-drev (ikke i udvalget).
Strømforsyning til servoer
Servoer trækker meget strøm — især under bevægelse:
- En lille SG90 trækker ~150 mA under bevægelse, max 700 mA stall.
- En MG996R trækker ~500 mA under bevægelse, max 2,5 A stall.
- En Dynamixel AX-12A trækker ~900 mA under bevægelse.
- 10 servoer i bevægelse samtidigt kan trække 5-10A — du KAN IKKE strømforsyne dem fra USB eller Arduino's 5V-pin.
Brug en separat strømforsyning der kan levere mindst 2-3A pr. servo. Forbind GND mellem Arduino og servo-strømforsyningen, men ikke 5V.
Programmering — biblioteker
- Servo (Arduino): standard PWM-servo bibliotek. Op til 12 servoer på UNO/Nano.
- Adafruit_PWMServoDriver: til PCA9685 16-channel PWM driver over I²C.
- Dynamixel SDK: officielt bibliotek til Dynamixel-servoer.
- FeeTech FT-SCSCL: til FeeTech bus-servoer.
- SoftwareServo: til Arduino UNO når du har brug for mere end 12 servoer.
Typiske anvendelser
Robot-arme til pick-and-place og automatisering, hexapod-, quadruped- og humanoid-robotter, animatronics og kunstinstallationer hvor mange figurer skal bevæge sig sammen, pan-tilt systemer til kameraer og overvågning, RC-fly og helikoptere, automatiske gardiner og rullegardiner, motorisering af modeller (modeltog, dukkehus, dioramaer), automatiske foderautomater til kæledyr, samt undervisnings-projekter og workshops.
Relateret
Til DC-motor styring, se DC Motor Driver Moduler. Til stepper-motor styring, se Stepper Motor Driver Moduler. Til selve servomotorerne, se Servomotorer. Til strømforsyninger, se Strømforsyninger. Tilbage til Motor Driver Moduler.