Forum: Mikrocontroller und Digitale Elektronik AVR-NET-IO - Verarbeitung und Ausgabe von Roll und Pitch Winkeln als analoge Signale (PWM?)


von Martin S. (morton)


Lesenswert?

Hallo zusammen,

ich nutze das AVR-NET-IO Board mit einem ATmega32 µC. Nun möchte ich 
gerne zwei variable Winkel-Eingaben (Roll und Pitch, jeweils im Bereich 
-180° bis +180°) in der Software verarbeiten und auf 6 Spannungswerte 
Roll(X, Y, Z) und Pitch(X, Y, Z) umrechnen. Diese sollen als analoge 
Signale an eine Verstärkerplatine ausgeben werden, welche dann einen 
künstlichen Horizont ansteuert. Der künstliche Horizont soll sich in 
Abhängigkeit von den eingegeben Winkeln entsprechend positionieren.

Die, in Abhängigkeit des Winkels, bereits gemessenen analogen 
Spannungen, welche normalerweise den künstlichen Horizont ansteuern, 
betragen 2V bis 15V bei einer Frequenz von 400 Hz. X, Y und Z sind 
jeweils 120° phasenverschoben.

Ich habe mir nun überlegt, dass ich die gemessenen Spannungswerte in der 
Software auf µC-kompatible 0V bis 5V umrechne und diese in Abhängigkeit 
der eingegebenen Roll- & Pitch-Winkel über den µC ausgebe.

Nun stehe ich vor dem Problem, dass ich hier kaum Erfahrung habe und ich 
nicht genau weiß, wo und wie ich die Sache anpacken muss. Ich habe mich 
in das Thema (Software-)PWM eingelesen, bin aber auch auf DA-Wandler wie 
den LTC2645 gestoßen, welcher 4 Ausgänge und die Option bietet, bei 
Inaktivität den zuletzt erreichten Wert zu halten, was hier womöglich 
von Nöten ist. Wie gehe ich hier am Besten vor? Eignet sich hierfür eine 
Software-PWM (habe 2 PWM-Ausgänge, PB1 und PB2) oder ist dabei die 
Berechnung und Ansteuerung zu zeitintensiv? Bietet sich der LTC2645 an 
oder gibt es diesen auch direkt mit 6 Ausgängen, so dass die Ausgabe der 
6 Signale u.U. parallel erfolgen kann? Wie wird der LTC2645 genau 
angesteuert?

Ich hoffe ich habe hier alles halbwegs verständlich dargelegt. Vielen, 
vielen Dank im Voraus für eure Mühen, mir zur Helfen!

Schöne Grüße,
Morton

von c-hater (Gast)


Lesenswert?

Martin S. schrieb:

> Ich hoffe ich habe hier alles halbwegs verständlich dargelegt.

Nein, hast du nicht. Und das liegt mit einiger Wahrscheinlichkeit daran, 
dass du es selber nicht richtig verstanden hast.

Am besten fängst du erstmal damit an, zu begreifen, was so ein 
künstlicher Horizont tut. Der stellt Bewegungen um ZWEI Achsen dar, 
nicht mehr und nicht weniger. Du hast zwei Winkel als Eingabegrößen, das 
paßt also eigentlich bereits vollständig, da gibt es eigentlich nichts 
mehr zu rechnen.

Was bleibt, ist die Klärung der genauen Funktionsweise des künstlichen 
Horizonts. Wieso braucht der drei Größen, um die zwei Winkel 
darzustellen? Oder andersrum: Wie genau wirken sich Änderungen der drei 
Größen auf die zwei tatsächlich angezeigten Winkel aus? Erfasse diese 
Zusammenhänge systematisch in Form eines Systems von zwei Gleichungen.

| f1=g1(x,y,z)
| f2=g2(x,y,z)

Ist das geschafft, formst du das Gleichungssystem so um, dass sich die 
inverse Funktionalität ergibt, das sollte dann ein System aus drei 
Gleichungen werden.

| x=g1(f1,f2)
| y=g2(f1,f2)
| z=g3(f1,f2)

Nun brauchst du nur noch diese drei gefundenen Gleichungen in der 
Notation der von dir verwendeten Programmiersprache hinschreiben und der 
Drops ist im Wesentlichen gelutscht.

Der Rest ist dann nur noch die Bereitstellung der drei Ausgabeglieder 
und die Skalierung der drei Funktionsergebnisse auf den verfügbaren 
Wertebereich der Ausgabeglieder.

von Stefan F. (Gast)


Lesenswert?

> Die ....Spannungen, welche normalerweise den künstlichen Horizont
> ansteuern, betragen 2V bis 15V bei einer Frequenz von 400 Hz.
> X, Y und Z sind jeweils 120° phasenverschoben.

Das ist extrem unklar ausgedrückt. Kannst die die drei Signale als 
Diagramm darstellen? Warum hast du überhaupt drei Signale obwohl es doch 
nur zwei Steuersignale und nur zwei Achsen gibt?

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
Noch kein Account? Hier anmelden.