guten morgen,
das müssen nicht die motoren sein, ich kenne das problem auch.
fernsteuerung, esc und servos, da werden die timer etwas überlastet, ich bin dann auch eine größere plattform umgestiegen pic32.
stephan
guten morgen,
das müssen nicht die motoren sein, ich kenne das problem auch.
fernsteuerung, esc und servos, da werden die timer etwas überlastet, ich bin dann auch eine größere plattform umgestiegen pic32.
stephan
das leben ist hart, aber wir müssen da durch.
Hallo Stephan.
Was konkret war in deinem Fall das Problem? Mich interessiert das wirklich! Aber so, wie du es geschrieben hast
sehe ich da eine qualmende oder schweißtriefende Kaskade aus D-Flipflops vor meinem geistigen Auge.
Geht es um zu viele quasi-gleichzeitige Aufgaben für ein einzelnes Timermodul, um deren programmiertechnische Schachtelung, ...?
Bitte nur ganz kurz, damit wir nicht Rabenauge's Thread kapern, ja ?!
Gruß
Christian.
Geändert von RoboHolIC (16.11.2015 um 18:48 Uhr) Grund: keine Thread-Kaperung
Es ist kein Timer-Problem. Der Mega 2560 packt lässig mehr als nen Dutzend Servos. Bis zu 48 Stück, glaube ich.
Nen RC-Empfänger hingegen ist bei mir überhaupt nicht im Spiel-ich brauch ja keinen.
Hab ich aber auch schon gemacht. In meinem Seeteufel bedient ein Mega 2560 5 Servos, Fahrtregler, nen Portexpander für die Beleuchtung, liest 4 RC-Kanäle ein und überwacht nebenbei noch die Akkus usw.
Da gab es anfangs auch etwas Trouble, ist aber ohne Probleme am laufen inzwischen.
Allerdings, die klassische Methode, RC-Signale mittels PulseIn einzulesen, versagt da wirklich kläglich. Das dauert viel zu lange...
Da hatte ich diese Lib. benutzt: http://www.rcarduino.tk/
Grüssle, Sly
..dem Inschenör ist nix zu schwör..
ich hatte ein uno verwendet.
rxtx (pulsein), esc und servo klassische methode
danke für den link
das leben ist hart, aber wir müssen da durch.
Wenn man ungefähr weiss, was kommt (oder nich kommen kann), kann man PulseIn bedeutend beschleunigen, indem man ein knappes Timeout setzt.
Das Problem ist, wenn nix kommt, wartet der Arduino bis zum "eingebauten" Timeout- ich glaub, ne volle Sekunde. In der wartet er wirklich nur, das ist also genauso böse wie delay()...
Da klappt dann halt nix anderes mehr.
Zusätzlich kann man Servos oft entkoppeln (myServo.detach()), grad bei Servos, die nur nen Sensor schwenken oder so geht das ohne weiteres, die bleiben dann einfach in der letzten Stellung stehn. Fahrtregler allerdings könnten dann ins failsave fallen, in der ersten Version des Monsters hatte ich das genutzt, um den Antrieb per Software zu entkoppeln: Lenkung geradeaus stellen, Fahrtregler auf stop, und dann beide abschalten.
Wenn das Monster dann seine aktuelle Aufgabe kannte, wurden beide mittels myServo.attach() wieder zugeschalten, und die Fahrt konnte losgehen. So kann man z.B. in Ruhe erst mal irgendwelche Parameter übergeben, oder die Betriebsart auswählen, ohne um die Finger fürchten zu müssen.
Das baue ich ganz sicher auch wieder ein, wobei es mir noch besser gefiele, wenn ich das BEC (was ja Lenkservo und Regler versorgt) direkt per Programmierung abschalten könnte. Nen Relais in das BEC-Schalterkabel wäre ne Möglichkeit, aber mit nem Transistor müsste das doch eleganter (und vor allem: weniger anfällig) gehn?
Grüssle, Sly
..dem Inschenör ist nix zu schwör..
du hast ein klassische frequenz von 50hz, das heißt man könnte das timeout auf 2 perioden legen. das wären dann maximal 40ms, ich muß mir das noch mal anschaun.
ein servo für Sensoren habe ich nicht, nur lenkung und esc.
das leben ist hart, aber wir müssen da durch.
50 Hz?
Servo-Pwm läuft schon bissel schneller.
Standard ist z.B. myServo.writeMicroseconds(1500).
Das sollte die Neutralstellung sein. Probiers aus, myServo.writeMilliseconds() kennt die IDE gar nicht.
Der übliche Bereich liegt zwischen 1000 und 2000 Mikrosekunden. Je nach konkretem Servo geht auch bissel mehr.
Beim abschalten von Servos muss man übrigens auch aufpassen, dass man dem Servo Zeit lässt, um die Soll-Position überhaupt anzufahren. Die kleinen Rechner sind ja doch nen bissel flinker als die olle Servomechanik.
Grüssle, Sly
..dem Inschenör ist nix zu schwör..
Lesezeichen