PWM-Websteuerung
Diese Seite ist die PWM (ESP32-S3)-spezifische Beschreibung der Websteuerung. Allgemeine Oberfläche, Start, Preset-Posen und Kamera-Teleop findest du in der Websteuerungsübersicht.
Hardware und Flashen
- Verkabelung, GPIO, Stromversorgung und Servomodell: PWM-Verkabelung, GPIO und Stromversorgung.
- Firmware flashen (ESP-IDF oder vorkompilierte bin): PWM-Schnellstart.
- PC ↔ ESP32 fest 115200 8N1; der Servo selbst hat keine Baudrate.
Webverbindung
- Oben im Dropdown „Treiber" PWM (ESP32-S3) wählen
- Auf Add port… klicken und den USB-Port des ESP32-S3 auswählen
- Auf Connect klicken: Die Seite führt automatisch den Handshake (NOP) aus, sendet die Auswahl der linken/rechten Hand und kehrt in die Mittelstellung zurück
- Danach mit Schiebereglern, Preset-Posen und Kamera-Teleop steuern; die Fingerüberschriften zeigen CH 1/2 … (PWM-Kanalnummern)


Unterschiede zur SCS0009-Version
| Punkt | SCS0009-Bus-Version | PWM-Version |
|---|---|---|
| Serielle Baudrate | 1.000.000 | 115.200 |
| Treiberplatine | USB-Bus-Treiberplatine | ESP32-S3 + PWM-Adapterplatine |
| Drehmoment | ein-/ausschaltbar | keins (die Firmware hat keinen Drehmomentbefehl, der Button wird ausgeblendet) |
| Not-Aus | gesamtes Drehmoment freigeben | 0xFF senden, um die Geste abzubrechen; Servos bleiben bestromt und halten die Position |
| Geschwindigkeit | Geschwindigkeitsparameter unterstützt | Direktantriebs-Frames ohne Geschwindigkeitsparameter |
| Rückmeldung | Positions-/Temperatur-/Spannungs-/Geschwindigkeitsrückmeldung | keine Rückmeldung, Blockieren oder Schrittverlust nicht erkennbar |
| Linke/rechte Hand | unterschiedliche Servo-IDs | dieselbe Kanalgruppe, 0xF1 senden zum Umschalten (beeinflusst hauptsächlich Firmware-Gesten; Web-Posen nutzen die Zuordnung der jeweiligen Hand) |
Winkelkalibrierung
Die Seite rechnet Posenwerte in 8 Winkel im Bereich 0–180° um, Standardformel:
angle = 90 + dir × scale × Posenwert + offset- Der erste Kanal jedes Fingers hat
dir = -1, der zweite Kanaldir = +1 - Standard
scale = 1,offset = 0, d. h. der Servoachswinkel wird direkt gespiegelt - Wenn
mirror_posewahr ist, zuerst die beiden Posenwerte jedes Fingers tauschen (in diesem Repository bei beiden Händen aktiv)
Wenn die Richtung am echten Gerät umgekehrt oder die Mittelstellung verschoben ist, bearbeite pwm.calibration in config.json:
jsonc
"pwm": {
"calibration": {
"right": {
"pointer": { "scale": 1.0, "offset_deg": [0, 0] }
}
}
}- Richtung umgekehrt:
scaledes entsprechenden Fingers auf-1setzen - Mittelstellungsversatz:
offset_deganpassen (beide Kanäle getrennt) - Vorgehen pro Finger: in Mittelstellung → einen Finger einzeln ziehen → Richtung/Mittelstellung beobachten →
scale/offset_degändern → Seite neu laden und erneut testen
Häufige Probleme
- Verbindung fehlgeschlagen / ESP32 antwortet nicht: prüfen, dass die Baudrate 115200 beträgt, der COM-Port des ESP32 gewählt ist und 5 V/3 A sowie gemeinsame Masse stimmen; nach dem Öffnen der seriellen Schnittstelle kann der ESP32 zurücksetzen, die Seite wiederholt den NOP automatisch
- Servos bewegen sich nicht oder zittern: zuerst bestätigen, dass es sich um 333-Hz-Digitalservos (PTK 7452 MG-D oder gleichwertig) handelt und die Stromversorgung ausreicht; beim SG90 muss die Firmware geändert werden
- Richtung umgekehrt:
scaledes entsprechenden Fingers auf-1setzen - Mittelstellung falsch:
offset_degdes entsprechenden Kanals anpassen - Meldung „Beschäftigt (Geste läuft)": Die Firmware führt gerade eine integrierte Geste aus; warte, bis sie beendet ist, oder drücke den Not-Aus (
0xFF) - Servos scannen:
tools/scan_servos.pygilt nur für SCS0009; für PWMAmazingHand-PWM/tools/serial_test.pyoder die Webseite verwenden

