• Hallo Zusammen, Aufgrund der aktuellen Situation setzten wir die Möglichkeit aus, sich mit Gmail zu registrieren. Wir bitten um Verständnis Das RCMP Team

ESC per Arduino ansteuern

s7101

Mitglied
Hat schon mal jemand einen ESC per eigener Hardware (Arduino, Pi, …) angesteuert um Servos & BL Motor zu steuern?

Also quasi nen Receiver selbst gebaut?

Hätte dazu ein paar Verständnisfragen.
 

s7101

Mitglied
Für PWM gibt es ja diverse Libs, das ist ja kein Problem. Hier gibt’s auch ein gutes Beispiel: https://howtomechatronics.com/tutorials/arduino/arduino-brushless-motor-control-tutorial-esc-bldc/
Wobei ich es am in Go auf nem Raspi machen werde, aber das spielt ja keine Rolle.

Ich würde dann am selbstgebauten Receiver den ESC anstecken, und entsprechend ein 50Hz PWM Signal zwischen 1 und 2ms Pulslänge anlegen. Einen Servo würde ich genau identisch ansteuern, korrekt? (Schlussendlich wird ja deshalb die Servo-Lib im Beispiel verwendet).

Funktioniert das für den ESC so, dass so lange das Signal anliegt, der Motor läuft? Oder läuft der so lange, bis ein anderes Signal angelegt wird?
Und wie ist das beim Servo? Der dreht sich ja nicht kontinuierlich, sondern auf eine Position. D.h. da müsste ein einmaliges Signal ja reichen, oder muss das so lange anliegen, bis die Position erreicht ist? Falls ja, wie finde ich das raus? Selbst Zeit messen und pi*Daumen?

Und das Kapitel der ESC Kalibrierung aus dem Link oben sagt, jeder ESC hat andere minima/Maxima. Damit ist die letzte Kalibrierung gemeint, die mit einer neuen Kalibrierung überschrieben wird? Oder gibt es hier tatsächlich noch etwas Gerätespezifisches, was beachtet werden muss?
Ich versteh das so, dass jeder Receiver bei Vollgas/Rückwärts leicht unterschiedliche Pulslängen schickt. Mit der Kalibrierung sage ich dem ESC, welche Pulslänge Vollgas und welche maximal rückwärts ist.
Sprich: im Beispiel vom Link muss der ESC Initial in den Kalibrierungsmode gebracht werden, dann am Poti voll aufdrehen, ESC Knopf drücken, Poti zudrehen, ESC drücken (oder wie auch immer das Prozedere des ESC ist). Passt so weit, oder?

Und weshalb muss man einen Servo nicht Kalibrieren? Ist das hier entsprechend über die Endpunktabstimmung der Fernbedienung gelöst, so dass ein Servo quasi jederzeit on-the-fly kalibriert werden kann?
 

doys_

Mitglied
Funktioniert das für den ESC so, dass so lange das Signal anliegt, der Motor läuft? Oder läuft der so lange, bis ein anderes Signal angelegt wird?
Der läuft dann solange wie das Signal anliegt, ist das Signal weg steht er still.

Und wie ist das beim Servo? Der dreht sich ja nicht kontinuierlich, sondern auf eine Position. D.h. da müsste ein einmaliges Signal ja reichen, oder muss das so lange anliegen, bis die Position erreicht ist? Falls ja, wie finde ich das raus? Selbst Zeit messen und pi*Daumen?
Dort wird das Signal kontinuierlich angelegt, auch wenn der Servo scvhon seine Position hat. Hört das Signal auf bleibt der Servo zwar in seiner Stellung ist aber "kraftlos"

Und das Kapitel der ESC Kalibrierung aus dem Link oben sagt, jeder ESC hat andere minima/Maxima. Damit ist die letzte Kalibrierung gemeint, die mit einer neuen Kalibrierung überschrieben wird? Oder gibt es hier tatsächlich noch etwas Gerätespezifisches, was beachtet werden muss?
Ich versteh das so, dass jeder Receiver bei Vollgas/Rückwärts leicht unterschiedliche Pulslängen schickt. Mit der Kalibrierung sage ich dem ESC, welche Pulslänge Vollgas und welche maximal rückwärts ist.
Sprich: im Beispiel vom Link muss der ESC Initial in den Kalibrierungsmode gebracht werden, dann am Poti voll aufdrehen, ESC Knopf drücken, Poti zudrehen, ESC drücken (oder wie auch immer das Prozedere des ESC ist). Passt so weit, oder?
Genau, da gibt es nichts gerätespezifisches außer wie man den ESC anlernt.

Und weshalb muss man einen Servo nicht Kalibrieren? Ist das hier entsprechend über die Endpunktabstimmung der Fernbedienung gelöst, so dass ein Servo quasi jederzeit on-the-fly kalibriert werden kann?
Gute Frage, ich schätze man will die Servo's einfach günstig halten, per Endpunkteinstellung an der Funke bzw. Begrenzung des Pulses irgendwo zwischen 1-2ms kann man über Gehör den Servo easy einstellen. Drehste zu weit brummt das Ding und ist nicht gesund, zu den MIN/MAX Positionen einfach nen kleinen Abstand einhalten.
Normalerweise sind RC Modelle so gebaut dass man den maximal Ausschlag des Servos nicht braucht.
 
Zuletzt bearbeitet:

Silberkorn

Mitglied
Ja und ohne Signal? Ohne Puls? Da steht nen ESC da es kein valides Signal ist. Nen Servo bleibt einfach in seiner letzten Position.
Laut Specs sollte das so sein. Gibt aber leider genug ESC die nicht spezifikationsgemäß ein anhaltendes High als gültiges PWM Signal mit 100% Duty erkennen.

 

doys_

Mitglied
Laut Specs sollte das so sein. Gibt aber leider genug ESC die nicht spezifikationsgemäß ein anhaltendes High als gültiges PWM Signal mit 100% Duty erkennen.

Sollte so halt nicht sein... Gibt schon nen Grund für den 20ms Frame bzw. auch heute bei verkürzte Frames bei höherer Wiederholrate ne Low Phase.

Das im github ticket hört sich für mich noch recht konfus an... Ich bezweifel dass das ein ESC Problem ist. Eher ein Verkabelungsproblem bzw. RX Problem.
 
Zuletzt bearbeitet:

s7101

Mitglied
Achso, vielleicht noch eine Frage. Dass man immer zuerst die Funke anschalten muss, dann den Receiver, ist ne Sache zwischen Receiver und Funke, und hat nix mit dem ESC zu tun?
Sprich: für meinen Fall (gibt ja keine Funke) ist es irrelevant, und ich muss beim Start nur sichergehen, dass das PWM Signal auf 1ms steht, damit der ESC scharf geschaltet wird?
 

doys_

Mitglied
Sprich: für meinen Fall (gibt ja keine Funke) ist es irrelevant, und ich muss beim Start nur sichergehen, dass das PWM Signal auf 1ms steht, damit der ESC scharf geschaltet wird?
Je nachdem wie Du deinen ESC eingestellt (nur vorwärts ; vorwärts/rückwärts) bzw. eingelernt hast. Gestartet wird in Neutral. Das kann 1ms (nur vorwärts) oder 1.5ms (vorwärts/rückwärts) sein.

Welchen ESC benutzt Du?
 
Top Bottom