Miuzei Micro Servo 9g (Metallgetriebe)
Kleiner Hobby-Servo, SG90-kompatibel, aber mit Metallzahnraedern (robuster). Stellbereich ca. 0..180 Grad. 3-poliges Kabel:
| Ader | Bedeutung | an den micro:bit |
|---|---|---|
| orange oder gelb | Signal (PWM) | P0 |
| rot | Plus (+) | 3V bzw. externes Batteriefach |
| braun oder schwarz | Minus (-) / GND | GND |
Ansteuerung
Was ein PWM-Signal allgemein ist (einfach erklaert): Theorie: Servo/PWM.
Ein Servo wird ueber ein PWM-Signal gestellt: alle 20 ms ein Impuls, dessen Laenge den Winkel bestimmt.
| Impulslaenge | Winkel |
|---|---|
| ca. 0.5 ms | 0 Grad |
| ca. 1.5 ms | 90 Grad |
| ca. 2.4 ms | 180 Grad |
In MicroPython:
pin0.set_analog_period(20) # 20 ms Periode = 50 Hz
pin0.write_analog(duty) # duty 0..1023 = 0..20 ms
write_analog(26) ergibt ca. 0.5 ms, write_analog(123) ca. 2.4 ms - dazwischen
linear. Zittert der Servo an den Endlagen, den Bereich etwas verkleinern
(z. B. 34..115).
Stromversorgung - wichtig
- Ein einzelner unbelasteter 9g-Servo laeuft meist direkt am
3V-Pin. - Unter Last, bei mehreren Servos oder wenn der micro:bit neu startet / der Servo zittert: externes Batteriefach verwenden (3x 1.5 V = 4.5 V reicht; 4x 1.5 V = 6 V ist das Maximum laut Servo).
Anschluss mit externer Batteriebox (3x 1.5 V = 4.5 V)
Die Batteriebox hat zwei Kabel: rot = Plus (+), schwarz = Minus (-). Der Servo bekommt seinen Strom NUR aus der Box, mit dem micro:bit wird nur das Signal und die gemeinsame Masse geteilt.
Batteriebox 4.5V Servo micro:bit
---------------- ----- ---------
rot (+) --------------> rot (+)
schwarz (-) --+---------> braun (-)
|
+----------------------------> GND (gemeinsame Masse!)
orange -----------> P0 (Signal)
3V am micro:bit bleibt frei.
Schritt fuer Schritt:
- rot der Box -> rot des Servos
- schwarz der Box -> braun/schwarz des Servos
- schwarz der Box (oder braun des Servos) -> GND am micro:bit (diese Masse-Bruecke ist zwingend, sonst “sieht” der Servo das Signal nicht)
- orange/gelb des Servos -> P0 am micro:bit
- Der
3V-Pin des micro:bit bleibt frei - niemals+der Box an3Voder an einen Pin legen.
Auf dem Steckbrett: + der Box auf die rote Schiene, - auf die blaue
Schiene, micro:bit-GND ebenfalls an die blaue Schiene, Servo +/- an die
Schienen, Servo-Signal an P0.
Box erst einschalten, wenn alles gesteckt ist. Zum Programmieren muss der micro:bit weiterhin per USB am Rechner haengen - das ist kein Problem, solange
+der Box nirgends mit dem micro:bit verbunden ist.
Servo an einer Mechanik mit Endanschlag
Treibt der Servo etwas an, das nicht volle 180 Grad Weg hat (Bolzen, Klappe, Schieber), darf er nur in einem begrenzten Fenster fahren. Faehrt er gegen den Anschlag, geht er in den Stall: hohe Stromaufnahme, Brummen, heisse Zahnraeder, Brownout/Reset am micro:bit.
Regeln:
- Zwei kalibrierte Endpunkte (z. B.
PULS_REIN/PULS_RAUSbzw.PULS_AUF/PULS_ZUin Mikrosekunden), der Servo faehrt nur dazwischen.set_puls()klemmt jeden Wert hart auf dieses Fenster. - Jeweils ~30 µs Sicherheitsmarge vom echten Anschlag weg (Servo-Toleranz, Getriebespiel, Temperaturdrift).
- Endpunkte messen, nicht rechnen: mit
endlagen-kalibrieren in feinen Schritten anfahren
und den µs-Wert ablesen. Rechnerisch nur zur Kontrolle: ca. 11 µs pro
Grad Servowinkel, mal Getriebe-Uebersetzung
Z_servo / Z_rad. - Beim Einschalten in die Mitte des Fensters fahren, nicht auf 1500 µs - das koennte schon am Anschlag liegen.
- Sanft fahren: in kleinen µs-Stufen mit kurzer Pause, nicht springen.
- Zustand merken und einen zweiten Aufruf in dieselbe Richtung sperren -
ein
bolzen_rein(), wenn der Bolzen schon drin ist, wuerde sonst gegen den Anschlag druecken. - Haelt die Mechanik die Lage durch Reibung selbst (z. B. ein Bolzen im
Fuehrungsloch), nach dem Fahren
pin0.write_analog(0)-> Servo stromlos, kein Brummen, kein Dauerstrom.
Ablauf: erst endlagen-kalibrieren, dann die zwei Werte
in bolzen-schalten eintragen. bolzen-schalten bringt die
fertigen Funktionen bolzen_rein() / bolzen_raus() mit.
Samples (Lernreihenfolge)
- a-b-drehen/ - Knopf A/B drehen den Servo, A+B zurueck auf 0
- zwei-stellungen/ - Knopf A = 0 Grad, Knopf B = 180 Grad
- sweep/ - faehrt langsam hin und her, Knopf A haelt an
- winkel-mit-encoder/ - Drehknopf (EC11) stellt den Winkel
- endlagen-kalibrieren/ - sichere Endpunkte einer eigenen Mechanik finden
- bolzen-schalten/ - zwischen zwei kalibrierten Endpunkten fahren (Endanschlag)
- box-startprogramm/ - Startprogramm fuer die eigene Mysterybox: A oeffnet, B schliesst, dazu Ideen mit den Sensoren des micro:bit
Masse fuers CAD (spaeter): ../../../hardware/servo/miuzei-9g-servo/