Also ich habe eine Servoansteuerung anhand des tutorials von rn-wissen gebaut. Das Programm sieht so aus, wie angehängt. Die Servos am Board drehen sich. Jedoch ist die Mittelstellung ca. 10° neben der eigentlichen Mittelstellung und die Servos drehen sich nicht bis zum Anschlag, obwohl rein rechnerisch genau 1ms-2ms gesendet werden. Darüber hinaus ist die Reaktionszeit sehr uneinheitlich. manchmal reagiert das Ganze innerhalb einer Sekunde, manchmal brauchts aber auch weit mehr.. Ich hab einen Mega8 mit 16MHz-Quarz und daran hängen zwei Robbe FS 100. Was genau läuft da schief?
OCR1A = F_CPU / (100000); // alle 10µs ein IRQ Auf welche Taktfrequenz ist der Originalcode angepasst? Hast du diese Taktfrequenz? Du darfst auch servopos nicht sofort updaten, sondern musst über eine Zwischenvariable gehen. Erst dann, wenn in der IRQ der zyklische Reset nach 20ms gemacht wird, kannst du gefahrlos servopos aus dieser Zwischenvariablen neu besetzen. Aussderdem: kleb nicht daran, dass dein Servo bei 1.5ms den Servohebel auf 90° zum Gehäuse dreht. Wenn du dir dein Servo ansiehst, siehst du in der Mitte des Servohebels eine Schraube. Die kann man aufmachen, den Hebel abziehen und verdreht wieder aufsetzen -> Bei Servomittelstellung steht der Hebel schief. Zudem gibt es auch noch unterschiedliche Timing-konventionen. Konventionelle Fernsteuerungssender erlauben normalerweise die Einstellung um welche Art von Servos es sich handelt: UNI oder Multiplex-Standard. Die haben unterschiedliche Zeiten für unterschiedliche Positionen.
Hallo, ich hab die mechanische mittelposition ermittelt und der servo liegt daneben.. der code ist für was weiß ich entwickelt ;) hab ihn angepasst. da es sich aber bei mir um den 16bit-timer handelt, sollte 16000000 / 100000 = 160 kein Problem sein (eigentlich nicht mal mit dem 8-bit-timer) prescaler ist 1.. das mit dem direkt setzen. Also muss ich warten bis der Servocounter 0 ist?
Moin! Ohne mir den Code angesehen zu haben: Praktisch niemand garantiert dir, dass Servos mit 1ms genau am einen, 2ms am anderen Anschlag und mit 1.5ms genau in der Mitte sitzen. Wenn du sicher bist, dass du wirklich genau 1.5ms lange Pulse sendest, (Oszi?) dann frag Robbe mal - die werden dir genau das erzählen. MfG, Heiko
Der mechanische Mittelpunkt muss nicht der "elektrische" (1,5ms) Mittelpunkt sein. Bei den üblichen Modellen drehen die Servos eh nur maximal +/- 45°. (mit den "Servohacks" auch mehr). Der mechanische Drehweg liegt aber deutlich drüber (meist >270°)...eben weil man damit etwas Spiel hat. Also: Servo einbauen, 1,5ms Impuls...Mittelstellung...Ruderhorn montieren und freuen... ;)
Versuch lieber die Pulsbreite bei Links- und Rechtsanschlag zu finden und dann daraus die Mitte zu interpolieren. Kann mich dunkel erinnern das bei meinen Servos das bei 1.5-2.5ms war. Sollte man für jeden Servo individuell ausloten und mittels Offsetvariable in den Code einbringen. MFG Hellsing
uiii... mein programm wird dann wohl doch größer.. naja, was solls.. ich werd mich also erst mal mit dem zufrieden geben was ich hab und weiter schauen...
Hm, blöde Frage. Aber hast du den Servohebel auch genau mittig aufgesetzt? Wenn Du z.B. einen 4-er Servohebel hast, sind die Positionen immer leicht verschoben, je nach dem welchen Hebel Du zu Deiner Neutralposition drehst. Probier einfach mal einen anderen der 4 Servoarme aus (also jeweils ca. 90 Grad drehen), und Du wirst sehen, dass die Position/Winkel immer leicht anders ist. Gruß Dirk
ist bei servos völlig normal, dass mechanische nicht gleich elektrischer mitte ist. auch halten sich die wenigsten servos an die nominelle minimale und maximale pulsdauer von 1 bzw. 2ms. augen zu und durch...
aaahajaasooo.. ich hoffe, dass das prinzipiell zumindest wenigstens in einer baureihe gleich ist.. servos einstellen ist nicht gerade spaßig..
Es gibt auch unterschiedliche Typen und Systeme von Servos. Jeder Modellbauhersteller kocht da sein eigenes Süppchen. Ich habe hier u.a. Servos, die 1-3ms benötigen. Gruß Jobst
>Ein Hoch auf die Standardisierung.. :(
Der Standard ist, dass Servos alle mit einem PWM-Signal betrieben
werden.
Wobei Robbe ein neues System auf den Markt gebracht hat, bei dem die
Servos alle parallel an einem Bus betrieben werden.
TecDroiD schrieb: > Ein Hoch auf die Standardisierung.. :( Das ist in der Modellbau-Praxis viel weniger ein Problem als es jetzt klingt. Dort bestimmt sowieso der anzusteuernde Aktuator wieviel Weg du benötigst und den stellt man sich zuallererst durch Einhängen des Bowdenzugs in die Hebel ein. Und die Mittelstellung ist mit einem kleinen Schraubenzieher durch umstecken des Hebels schnell geändert.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.