Aufbau Antriebskomponenten und Motoransteuerung-Test
Hallo Ihr Flieger!
Ich habe heute einen sehr interessanten Beitrag, in dem ich den Aufbau der Antreibskomponenten beschreibe (OK, das ist wohl eher langweiliger Standard hier) und die Motoren testhalber in Betrieb nehme. Das dazu benötigte Steuersignal für die Motorregler (ESC) werde ich dabei allerdings genauer beschreiben und darauf hinweisen, worauf es ankommt (Das ist der interessante Teil ).
Zuerst der "langweilige" Teil:
1. Bild 1 zeigt die montierten Motoren (mit 12" Props). Dazu habe ich mal meinen kleinen Hubsan X4 gestellt für den Größenvergleich (Der Hubsan hat 6cm von Rotornarbe zu Rotornarbe).
2. Auf Bild 2 wurden die Motorregler (ESC) angeflanscht und die Anschlusskabel zu den Motoren udn zur Stromversorgung konfektioniert. Dabei habe ich vor und nach dem ESC jeweils 3,5mm Steckverbindungen (max. 50A) verbaut, da ich während der späteren Tests einzelne Motoren / ESC abklemmen können möchte. Natürlich ist alles ordentlich und übersichtlich verkabelt und an geeigneten Stellen mit Kabelbindern verzurrt.
3. Bild 3 zeigt nochmal einen ESC und einen Motor.
4. Bild 4 ist eine Detailaufnahme der Steckverbindung zwischen Stromverbindung und ESC. Man sieht, dass der Zugang zum Stecker sehr gut erreichbar ist
5. Auf Bild 5 wirds schon etwas kniffeliger. Der erfahrene Elektroniker / Elektrotechniker erkennt sicher sofort den Transistor hinter dem ESC Stecker. Wofür der gebraucht wird, erkläre ich weiter unten. Jedenfalls habe ich die ESC Signalleitungen so konfektioniert, dass kein Kabelgewirr entsteht udn alles übersichtlich bleibt.
6. Auf Bild 6 sieht man, dass die Anschlüsse für die ESC´s an den Ecken der FlightControl angebracht sind. Jaja, ich mags wenns ordentlich ist ;-P.
Und jetzt der interessante Teil:
Ich habe die Copter-HW und SW erweitert, so dass nun die Motorregler mit Steuerdaten versorgt werden können. Daher ist das der richtige Zeitpunkt dieses Steuersignal näher zu beleuchten.
ESC´s (Ob für Gleichstrommotoren oder Brushlessmotoren) werden mit sogenannten PCM Signalen angesteuert. Das steht für Pulse Code Modulation und ist einer Unterart von PWM Signalen (Pulse Width Modulation / Puls Weiten Modulation). Da der allgemeinere Begriff PWM gebräuchlicher ist, werde ich diesen folgend verwenden.
Ein PWM Signal ist ein digitales Signal und beschreibt ein sich wiederholenden periodischen Signalverlauf. Die Periodendauer ist dabei der Zeitraum, in dem die Information kenntlich gemacht wird. Die Pulsbreite ist die eigentliche Information. Es ist die Zeitspanne währen einer Periode, in welcher das Signal den Zustand "Logisch 1" annimmt. Bild 7 zeigt dies anhand einer Theoretischen Betrachtung.
Überträgt man dies nun in die reale Welt, dann ersetzt die Spannung (U) die Y Skarlierung. Die meisten ESC´s arbeiten mit 5V. Daher ist der Zustand logisch 0 = 0V und logisch 1 = 5V. Bild 8 zeigt das Ansteuerungssignal von standard ESC´s, wie sie beispielsweise bei RC Cars verwendet werden. Die Periodendauer ist 20ms, was einer Aktualisierungsrate von 50Hz (50 neue Steuerwerte pro Sekunde) enspricht. Mit dieser Frequenz geben auch alle Standardfersteuerungsempfänger ihe Sollweite weiter. Der gelbe Bereich beschreibt die erlaubte Pulsbreitenänderung. Sie beträgt zwischen 1ms udn 2ms (Dürfe bekannt sein). Alle Werte dazwischen werden analog interpretiert und lassen den Motor schneller oder langsamer laufen.
Flug ESC´s sind nun aber etwas spezieller. Sicher haben viele schon sowas gelesen wie "ESC 400Hz kompatibel". Diese Angabe beziegt sich auf die Periodendauer, welche bei Flug ESC deutlich kürzer ist als bei Standard ESC´s. Bild 9 veranschaulicht das Ansteuersignal eines Flug ESC´s. Die Periodendauer beträgt nur 2,5ms, was 400Hz entspricht. Diese hohe Aktualisierungsrate wird benötigt, um beispielsweite Multikopter auszuregeln. Vom Fernsteuerungsempfänger kommen zwar nur Sollwerte mit 50Hz aber die interne Lageregelung kann mir 400Hz arbeiten und sogt damit für ein wesentlich ruhigeres Schweben.
Soweit zur Theorie. Nun wollte ich diese PWM Signale mit meinem ATXMega128 erzeugen. Problem nummero 1: Mein Controller arbeitet mit 3,3V, das PWM Signal muss 5V betragen (Würde wahrscheinlich auch mit 3,3V arbeiten aber schön ist das ja nicht...). Für dieses Problem kann man z.B. einen Pegelwandler verwenden, da ich aber grad keinen passenden da hab, habe ich mich für NPN Transitoren entschieden, welche ich als Schalter benutze, um das Signal auf 5V zu erhöhren. Ich möchte an dieser Stelle nicht in die Tiefen der Transistortheorie eintauchen. Es sei nur soviel gesagt, dass man mit einem Transistor einen beliebigen Spannungspegel durch einen kleinen Strom an und aus schalten kann.
Bil 10 zeigt die dazugehörige Schaltung. Man muss sich den Transitor (Hier BD135) so vorstellen, dass er wie ein Schalter wirkt. Wenn die Bais (Base) logisch 1 ist (3,3V), dann wird der Collector mit dem Emitter verbunden. Ist die Basis logisch 0 (0V), dann ist der Collector phisikalisch vom Emitter getrennt. Im ersten Fall wird Ground direkt zum ESC Signal durschgeschaltet, im zweiten Fall werden über den PullUp Wiederstand R0 5V am ESC Signalausgang angelegt. Zu beachten ist hier, dass das Signal, welches vom ATXMega kommt, invertiert sein muss, da der Transistor das Signal ebenfalls invertiert. Sprich: Aus sicht des ATXMega ist eine logische 0 eine logische 1 und umgekehrt.
Wie das PWM Signal durch Software im ATXMega erzeugt wird, beschreibe ich in einem späteren Beitrag.
Abschließend gibt es nur noch zu beweisen, dass der ganze Bullshit, den ich gerade beschrieben habe auch funktioniert. Folgende zwei Videos zeigen die Motoransteuerung. Dabei werden die Motoren schrittweise von 0 auf ca. 80% iherer maximalen Drehzahl gebracht, Anschließend geht das Spielchen von Vorne los.
[video=youtube;P_D26iCHAaQ]http://www.youtube.com/watch?v=P_D26iCHAaQ&feature=youtu.be[/video]
[video=youtube;mvu7VpB2R2A]http://www.youtube.com/watch?v=mvu7VpB2R2A&feature=youtu.be[/video]
Viele Grüße,
Markus
Hallo Ihr Flieger!
Ich habe heute einen sehr interessanten Beitrag, in dem ich den Aufbau der Antreibskomponenten beschreibe (OK, das ist wohl eher langweiliger Standard hier) und die Motoren testhalber in Betrieb nehme. Das dazu benötigte Steuersignal für die Motorregler (ESC) werde ich dabei allerdings genauer beschreiben und darauf hinweisen, worauf es ankommt (Das ist der interessante Teil ).
Zuerst der "langweilige" Teil:
1. Bild 1 zeigt die montierten Motoren (mit 12" Props). Dazu habe ich mal meinen kleinen Hubsan X4 gestellt für den Größenvergleich (Der Hubsan hat 6cm von Rotornarbe zu Rotornarbe).
2. Auf Bild 2 wurden die Motorregler (ESC) angeflanscht und die Anschlusskabel zu den Motoren udn zur Stromversorgung konfektioniert. Dabei habe ich vor und nach dem ESC jeweils 3,5mm Steckverbindungen (max. 50A) verbaut, da ich während der späteren Tests einzelne Motoren / ESC abklemmen können möchte. Natürlich ist alles ordentlich und übersichtlich verkabelt und an geeigneten Stellen mit Kabelbindern verzurrt.
3. Bild 3 zeigt nochmal einen ESC und einen Motor.
4. Bild 4 ist eine Detailaufnahme der Steckverbindung zwischen Stromverbindung und ESC. Man sieht, dass der Zugang zum Stecker sehr gut erreichbar ist
5. Auf Bild 5 wirds schon etwas kniffeliger. Der erfahrene Elektroniker / Elektrotechniker erkennt sicher sofort den Transistor hinter dem ESC Stecker. Wofür der gebraucht wird, erkläre ich weiter unten. Jedenfalls habe ich die ESC Signalleitungen so konfektioniert, dass kein Kabelgewirr entsteht udn alles übersichtlich bleibt.
6. Auf Bild 6 sieht man, dass die Anschlüsse für die ESC´s an den Ecken der FlightControl angebracht sind. Jaja, ich mags wenns ordentlich ist ;-P.
Und jetzt der interessante Teil:
Ich habe die Copter-HW und SW erweitert, so dass nun die Motorregler mit Steuerdaten versorgt werden können. Daher ist das der richtige Zeitpunkt dieses Steuersignal näher zu beleuchten.
ESC´s (Ob für Gleichstrommotoren oder Brushlessmotoren) werden mit sogenannten PCM Signalen angesteuert. Das steht für Pulse Code Modulation und ist einer Unterart von PWM Signalen (Pulse Width Modulation / Puls Weiten Modulation). Da der allgemeinere Begriff PWM gebräuchlicher ist, werde ich diesen folgend verwenden.
Ein PWM Signal ist ein digitales Signal und beschreibt ein sich wiederholenden periodischen Signalverlauf. Die Periodendauer ist dabei der Zeitraum, in dem die Information kenntlich gemacht wird. Die Pulsbreite ist die eigentliche Information. Es ist die Zeitspanne währen einer Periode, in welcher das Signal den Zustand "Logisch 1" annimmt. Bild 7 zeigt dies anhand einer Theoretischen Betrachtung.
Überträgt man dies nun in die reale Welt, dann ersetzt die Spannung (U) die Y Skarlierung. Die meisten ESC´s arbeiten mit 5V. Daher ist der Zustand logisch 0 = 0V und logisch 1 = 5V. Bild 8 zeigt das Ansteuerungssignal von standard ESC´s, wie sie beispielsweise bei RC Cars verwendet werden. Die Periodendauer ist 20ms, was einer Aktualisierungsrate von 50Hz (50 neue Steuerwerte pro Sekunde) enspricht. Mit dieser Frequenz geben auch alle Standardfersteuerungsempfänger ihe Sollweite weiter. Der gelbe Bereich beschreibt die erlaubte Pulsbreitenänderung. Sie beträgt zwischen 1ms udn 2ms (Dürfe bekannt sein). Alle Werte dazwischen werden analog interpretiert und lassen den Motor schneller oder langsamer laufen.
Flug ESC´s sind nun aber etwas spezieller. Sicher haben viele schon sowas gelesen wie "ESC 400Hz kompatibel". Diese Angabe beziegt sich auf die Periodendauer, welche bei Flug ESC deutlich kürzer ist als bei Standard ESC´s. Bild 9 veranschaulicht das Ansteuersignal eines Flug ESC´s. Die Periodendauer beträgt nur 2,5ms, was 400Hz entspricht. Diese hohe Aktualisierungsrate wird benötigt, um beispielsweite Multikopter auszuregeln. Vom Fernsteuerungsempfänger kommen zwar nur Sollwerte mit 50Hz aber die interne Lageregelung kann mir 400Hz arbeiten und sogt damit für ein wesentlich ruhigeres Schweben.
Soweit zur Theorie. Nun wollte ich diese PWM Signale mit meinem ATXMega128 erzeugen. Problem nummero 1: Mein Controller arbeitet mit 3,3V, das PWM Signal muss 5V betragen (Würde wahrscheinlich auch mit 3,3V arbeiten aber schön ist das ja nicht...). Für dieses Problem kann man z.B. einen Pegelwandler verwenden, da ich aber grad keinen passenden da hab, habe ich mich für NPN Transitoren entschieden, welche ich als Schalter benutze, um das Signal auf 5V zu erhöhren. Ich möchte an dieser Stelle nicht in die Tiefen der Transistortheorie eintauchen. Es sei nur soviel gesagt, dass man mit einem Transistor einen beliebigen Spannungspegel durch einen kleinen Strom an und aus schalten kann.
Bil 10 zeigt die dazugehörige Schaltung. Man muss sich den Transitor (Hier BD135) so vorstellen, dass er wie ein Schalter wirkt. Wenn die Bais (Base) logisch 1 ist (3,3V), dann wird der Collector mit dem Emitter verbunden. Ist die Basis logisch 0 (0V), dann ist der Collector phisikalisch vom Emitter getrennt. Im ersten Fall wird Ground direkt zum ESC Signal durschgeschaltet, im zweiten Fall werden über den PullUp Wiederstand R0 5V am ESC Signalausgang angelegt. Zu beachten ist hier, dass das Signal, welches vom ATXMega kommt, invertiert sein muss, da der Transistor das Signal ebenfalls invertiert. Sprich: Aus sicht des ATXMega ist eine logische 0 eine logische 1 und umgekehrt.
Wie das PWM Signal durch Software im ATXMega erzeugt wird, beschreibe ich in einem späteren Beitrag.
Abschließend gibt es nur noch zu beweisen, dass der ganze Bullshit, den ich gerade beschrieben habe auch funktioniert. Folgende zwei Videos zeigen die Motoransteuerung. Dabei werden die Motoren schrittweise von 0 auf ca. 80% iherer maximalen Drehzahl gebracht, Anschließend geht das Spielchen von Vorne los.
[video=youtube;P_D26iCHAaQ]http://www.youtube.com/watch?v=P_D26iCHAaQ&feature=youtu.be[/video]
[video=youtube;mvu7VpB2R2A]http://www.youtube.com/watch?v=mvu7VpB2R2A&feature=youtu.be[/video]
Viele Grüße,
Markus
Anhänge
-
21,3 KB Aufrufe: 131
-
21,4 KB Aufrufe: 131
-
23,4 KB Aufrufe: 133
-
16 KB Aufrufe: 139
-
314 KB Aufrufe: 133
-
310,6 KB Aufrufe: 140
-
362,5 KB Aufrufe: 127
-
442,8 KB Aufrufe: 127
-
348,5 KB Aufrufe: 132
-
491,4 KB Aufrufe: 147
Zuletzt bearbeitet: