Servo SG90 defekt

Ersatz- und Fremdteile, Modifikationen, etc.
Special Hints - Spare- & foreign parts, Modifications, etc.

Moderator: Jan3D

Forumsregeln
Bitte beachte die Forumsregeln!
Karl
Beiträge: 2212
Registriert: 24 Sep 2016, 17:28

Re: Servo SG90 defekt

Beitrag von Karl » 03 Feb 2023, 21:59

Woher nimmst die 4,8V bis 6 V ?
Dieser Servotester hat doch eine "Mittelstellung" und dazu eine manuelle Einstellmöglichkeit
für den Servoweg aus der Mitte nach links und rechts.

FrankHGW
Beiträge: 200
Registriert: 03 Okt 2019, 20:36
Wohnort: An der Ostsee in Vorpommern

Re: Servo SG90 defekt

Beitrag von FrankHGW » 03 Feb 2023, 22:04

Ich entnehme 5V aus einen Labor Netzteil.

Ich nutze gerne mal die Automatik für Dauertest, um zusehen, ob alles
stabil funktioniert.

Karl
Beiträge: 2212
Registriert: 24 Sep 2016, 17:28

Re: Servo SG90 defekt

Beitrag von Karl » 03 Feb 2023, 22:06

Woher nimmst die 4,8V bis 6 V ?
Dieser Servotester hat doch eine "Mittelstellung" und dazu eine manuelle Einstellmöglichkeit
für den Servoweg aus der Mitte nach links und rechts.
Schau mal auf ein Oszilloskop ob die Impulsdauer ungefähr hinkommt. Mitte 1,5 ms, sonst
ungefähr 0,8 ms und 2,2 ms. Periodendauer allgemein für einfache "Analogservos" ca. 20 ms.

Karl
Beiträge: 2212
Registriert: 24 Sep 2016, 17:28

Re: Servo SG90 defekt

Beitrag von Karl » 03 Feb 2023, 22:12

Ich nutze gerne mal die Automatik für Dauertest, um zusehen, ob alles
stabil funktioniert.
mache ich ja auch. Kontrolliere aber vorher die Servowege manuell.
Denke mal, seitens der "Elektrik" wird es schon von deiner Seite soweit in Ordnung sein.
Bleibt dann die Wunschwahl auf ein höherwertiges Servo auszuweichen. Dazzu würde
ich auf jeden Fall ein Modellbau-Fachgeschäft bemühen oder zumindest einen erfahrenen
Modellbauer.

Nachtrag: Von sog. "Kohlefaser-Getrieben" in Servos würde ich Abstand nehmen. Diese sind
gut belastbar aber auch sehr schlagempfindlich.

Techum
Beiträge: 84
Registriert: 25 Dez 2014, 20:50
Kontaktdaten:

Re: Servo SG90 defekt

Beitrag von Techum » 29 Okt 2023, 16:06

uffi hat geschrieben:
01 Feb 2023, 13:55
Bei mir war der Conrad Servo RS in ein selbst balancierendes Motorrad verbaut, wo er häufig hin- und her-lenken musste. Bestimmt deutlich mehr als 500 mal, bis er ausgefallen ist. Aber eine genaue Angabe dazu kann ich leider nicht machen.
Hallo Uffi,
dein Bike ist legendär...
Bei uns hat es einen der Ft-Servos gekostet, bis das Bike bzw. der PID endlich lief, kann aber nicht mehr sagen, welche Historie der auf dem Getriebe hatte, aber allein für das Bike hat er unzählige Male gespielt.

Jedenfalls balanciert unser Bike mit txt4.0 "im Gepäck" jetzt (gezeigt in Sinsheim letzte Woche) - wenn es nur auf Touren kommt:
https://youtu.be/7clM6SiVQIY
Der Bedarf an Servos wird mit den drei Ausgängen des TXT4.0 jedenfalls steigen...
Fischerfriendsman weist gerade mal einen Bestand von 3 aus.

Macht der "Höcker" der SG90 beim Einbau ins Standardgehäuse keine Probleme?

Viele Grüße
Techum

Benutzeravatar
uffi
Beiträge: 404
Registriert: 24 Jan 2014, 16:21
Wohnort: München

Re: Servo SG90 defekt

Beitrag von uffi » 07 Nov 2023, 17:42

Re: Servo SG90 defekt
von Techum » 29 Okt 2023, 16:06

Hallo Uffi,
dein Bike ist legendär...
Danke für die Blumen. Zu Deiner Frage auf Youtube (falls Du die Antwort nicht gesehen hast):

Zum Ermitteln des Kippwinkels habe ich die C-Code Library von Davide Gironi für die MPU 6050 mit der Option

//enable the getattitude functions
//because we do not have a magnetometer, we have to start the chip always in the same position
//then to obtain your object attitude you have to apply the aerospace sequence
//0 disabled
//1 mahony filter
//2 dmp chip processor
#define MPU6050_GETATTITUDE 2

verwendet, mit der man aus den Quaternionen den Winkel und die Drehrate wie folgt erhält:

if(mpu6050_getQuaternionWait(q, &rate))
{
rate *= 57.29577951f;
angle = asin(2*((q[0]*q[2]) - (q[3]*q[1])));
angle *= 57.29577951f;
}
angle -= angle_offset;

Ausgelesen habe ich die Daten 50 mal pro Sekunde. Dazu habe ich folgende DMP config verwendet:

const uint8_t mpu6050_dmpConfig[MPU6050_DMP_CONFIG_SIZE] PROGMEM = {
// BANK OFFSET LENGTH [DATA]
0x03, 0x7B, 0x03, 0x4C, 0xCD, 0x6C, // FCFG_1 inv_set_gyro_calibration
0x03, 0xAB, 0x03, 0x36, 0x56, 0x76, // FCFG_3 inv_set_gyro_calibration
0x00, 0x68, 0x04, 0x02, 0xCB, 0x47, 0xA2, // D_0_104 inv_set_gyro_calibration
0x02, 0x18, 0x04, 0x00, 0x05, 0x8B, 0xC1, // D_0_24 inv_set_gyro_calibration
0x01, 0x0C, 0x04, 0x00, 0x00, 0x00, 0x00, // D_1_152 inv_set_accel_calibration
0x03, 0x7F, 0x06, 0x0C, 0xC9, 0x2C, 0x97, 0x97, 0x97, // FCFG_2 inv_set_accel_calibration
0x03, 0x89, 0x03, 0x26, 0x46, 0x66, // FCFG_7 inv_set_accel_calibration
0x00, 0x6C, 0x02, 0x20, 0x00, // D_0_108 inv_set_accel_calibration
0x02, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, // CPASS_MTX_00 inv_set_compass_calibration
0x02, 0x44, 0x04, 0x00, 0x00, 0x00, 0x00, // CPASS_MTX_01
0x02, 0x48, 0x04, 0x00, 0x00, 0x00, 0x00, // CPASS_MTX_02
0x02, 0x4C, 0x04, 0x00, 0x00, 0x00, 0x00, // CPASS_MTX_10
0x02, 0x50, 0x04, 0x00, 0x00, 0x00, 0x00, // CPASS_MTX_11
0x02, 0x54, 0x04, 0x00, 0x00, 0x00, 0x00, // CPASS_MTX_12
0x02, 0x58, 0x04, 0x00, 0x00, 0x00, 0x00, // CPASS_MTX_20
0x02, 0x5C, 0x04, 0x00, 0x00, 0x00, 0x00, // CPASS_MTX_21
0x02, 0xBC, 0x04, 0x00, 0x00, 0x00, 0x00, // CPASS_MTX_22
0x01, 0xEC, 0x04, 0x00, 0x00, 0x40, 0x00, // D_1_236 inv_apply_endian_accel
0x03, 0x7F, 0x06, 0x0C, 0xC9, 0x2C, 0x97, 0x97, 0x97, // FCFG_2 inv_set_mpu_sensors
0x04, 0x02, 0x03, 0x0D, 0x35, 0x5D, // CFG_MOTION_BIAS inv_turn_on_bias_from_no_motion
0x04, 0x09, 0x04, 0x87, 0x2D, 0x35, 0x3D, // FCFG_5 inv_set_bias_update
0x00, 0xA3, 0x01, 0x00, // D_0_163 inv_set_dead_zone
// SPECIAL 0x01 = enable interrupts
0x00, 0x00, 0x00, 0x01, // SET INT_ENABLE at i=22, SPECIAL INSTRUCTION
0x07, 0x86, 0x01, 0xFE, // CFG_6 inv_set_fifo_interupt
0x07, 0x41, 0x05, 0xF1, 0x20, 0x28, 0x30, 0x38, // CFG_8 inv_send_quaternion
0x07, 0x7E, 0x01, 0x30, // CFG_16 inv_set_footer
0x07, 0x46, 0x01, 0x9A, // CFG_GYRO_SOURCE inv_send_gyro
0x07, 0x47, 0x04, 0xF1, 0x28, 0x30, 0x38, // CFG_9 inv_send_gyro -> inv_construct3_fifo
0x07, 0x6C, 0x04, 0xF1, 0x28, 0x30, 0x38, // CFG_12 inv_send_accel -> inv_construct3_fifo
0x02, 0x16, 0x02, 0x00, 0x03 // D_0_22 inv_set_fifo_rate to 50 Hz

Dein Bike ist sehr schön gemacht. Das war sicher nicht so einfach mit dem klobigen TXT Controller huckepack. Super Idee mit den Reifen, da einfach Fahrradschlauch-Stücke drüber zu ziehen!

Mittlerweile haben sich bei mir zwei weitere China Servos mit Metallgetriebe verabschiedet, allerdings mit den Motortreiber-ICs (eine Richtung des Servos ging nicht mehr).

Gruß, Dirk

Techum
Beiträge: 84
Registriert: 25 Dez 2014, 20:50
Kontaktdaten:

Re: Servo SG90 defekt

Beitrag von Techum » 07 Nov 2023, 23:38

Hallo Dirk,

vielen herzlichen Dank!
Dachte ich es mir doch. Saubere Wissenschaft!

Wegen des Rauschens des BMX055 um die Waagerechte habe ich zunächst keinen großen Sinn im genauen Rechnen gesehen. Stattdessen habe ich mit P und D des PID controllers experimentiert.
Bei Testläufen am Faden habe ich dann festgestellt, dass die Lenkbewegungen bei höheren Geschwindigkeiten wiederum selbst recht starke Beschleunigungen hervorrufen.
Auf der anderen Seite wird der Gyroskopfeffekt stärker, vermutlich reicht es, die Lenkbewegungen abhängig von der Geschwindigkeit zu dämpfen, diese sollte man aber kennen.

Das ganze dürfte mit etwas mehr Power und gelenkten Kurven richtig klasse werden. Es muss also ein ordentlicher 9V Block oder größere Räder für ein größeres Modell her, dann kann man das Vorhaben mit Kurvenfahrt angehen. Im Innenraum geht vermutlich nur der Ansatz mit Einlenken nach rechts, kippen, Kurvenfahrt links herum bzw. umgekehrt.

Wir haben jedenfalls erst einmal happy das Zwischenziel "stabilisierte Geradeausfahrt" erreicht und spielen jetzt an etwas anderem rum. Da steckt auf jeden Fall noch eine Menge Potential drin. Ist eher ein Anfang...

Nächstes Modell dann mit korrekter Kippwinkel Berechnung. Ein größeres Modell wäre auch etwas träger. Das würde auch helfen. Ggf. den großen Traktorreifen ein Stück Ballongummi aufziehen oder so... :D

An alternativen Servos werde ich mich sicher auch versuchen und berichte dann. Ich will auf jeden Fall im Fischertechnik Maß bleiben, damit man auch mit dem Originalservo nachbauen kann.

Viele liebe Grüße
Frank

Antworten