Forum: Mikrocontroller und Digitale Elektronik Zwei Servosignale zu einem mixen


von Clemens Janzarik (Gast)


Lesenswert?

Hallo zusammen,

ich wollte fragen ob mir jemand bei meinem Senkrechtstarterprojekt 
helfen könnte. Im Prinzip will ich eine Kombination aus einem Tricopter 
und einem Deltaflügler bauen. Als Antrieb dienen drei Impeller, die sich 
um 90° schwenken lassen (zwei hinten, einer vorne mit Seitenruder). Wie 
weit die Impeller geschwenkt werden und das Flugzeug aus dem Schwebeflug 
in den Normalflug übergeht, soll mit einem Fußpedal an der Fernsteuerung 
gesteuert werden. Für die nötige Flugstabilität -das wichtigste bei 
diesem Projekt- verbaue ich ZWEI HobbyKing Multi-Rotor Control Boards 
V2.1 (Atmega168PA). Auf das eine flash ich das Programm für einen 
Tricoper, und auf das andere Board das Programm für normales Flugzeug 
(Airplane). Beide Boards werden mit den Steuerbefehlen vom Empfänger 
gespeist, aber die Signale die die Boards an die Motoren und Servos 
weitergeben, sollten je nach Stellung der Impeller, von den zwei 
verschiedenen Boards gemischt werden. Die Stellung der Impeller würde 
ich mit einem Potentiometer "ablesen" und und dann jeweils die zwei 
Kanäle, die für einen Motor bestimmt sind, zu einem Kanal mischen. 
Insgesamt würe ich mischen:
- 3 Motorensignale von Tricopterchip mit Motorsignal von Airplanecip
- Seitenrudersignal von Tricopterchip mit Seitenrudersignal von 
Airplanechip

ich hoffe das Projekt lässt sich in der Beschreibung einigermaßen 
nachvollziehen, ansonsten Fragen!
Also wie wäre das mischen der Signale am besten zu realisieren?
Mit vier einzelnen Microcontrollern oder einem großen? Ich habe leider 
noch keinerlei Erfahrung mit Microkontrollern und hoffe das mir in 
diesem Forum geholfen werden kann :)

: Verschoben durch Admin
von MaWin (Gast)


Lesenswert?

Clemens Janzarik schrieb:
> Ich habe leider
> noch keinerlei Erfahrung mit Microkontrollern und hoffe das mir in
> diesem Forum geholfen werden kann :)

http://www.mikrocontroller.net/articles/AVR-Tutorial
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

Ansonsten eine aussichtslose Sache.

von Clemens Janzarik (Gast)


Lesenswert?

Ich habe mit dass Toturial schon ein wenig durchgelesen, aber hab mir 
gedacht, dass es wesentlich einfacher wäre wenn mir ein Profi dabei 
hilft :)

von adrock (Gast)


Lesenswert?

Hi,

selbst wenn Du es rein technisch hinbekommst die Ausgänge zu "mixen", 
ich denke es wird nicht funktionieren.

Die beiden Regler bzw. Controlboards sind dafür nicht ausgelegt. Sie 
können evtl. gegeneinander arbeiten, sich aufschwingen etc. da sie 
jeweils nichts voneinander wissen.

Wenn überhaupt müsste man m.E. das Fluggerät bis zu einer bestimmten 
Geschwindigkeit im Tricoptermodus beschleunigen, und dann "hart" auf das 
Flugprogramm umschalten. Aber das ist natürlich auch eine kritische 
Angelegenheit.

Grüße
Markus

von Clemens Janzarik (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

das "harte" Umschalten wäre natürlich auch eine Möglichkeit, man 
bräuchte dafür nur eine angemessene Flughöhe ... Ich würde das ganze 
aber lieber elegant regeln. Die beiden Mikrocontroller dürften sich 
eigentlich nicht stören.
Der Tricoptercontroller würde nämlich einer Schieflage mit den 
Motordrehzahlen entgegenwirken, und der Flugcontroller mit den Rudern. 
So hätte jeder Controller seinen eigenen Bereich. Ist das Flugzeug noch 
recht weit im Schwebeflug haben die Ruderbewegungen keine Auswirkung, je 
weiter es in den Normalflug übergeht desto mehr "greifen" dann die 
Ruder, und die Ausgleich-befehle vom Tricopter an die Motoren werden 
"gedämpft" (werden mit dem (einen) Signal vom Flug-Controller gemischt).
Das Seitenruder ist im vorderen Impeller montiert und schwenkt mit 
diesem mit, es ist immer für die selbe Achse zuständig. Die 
Gegensteuerbefehle sind für dieses auf beiden Chips gleich, es würde nur 
der Steuerbefehlsgeber geändert werden.
Beim Mischen würde ich sozusagen je nach Verhältnis die Mitte zwischen 
zwei Signalen berechnen und ausgeben. Es werden also nur die Motoren mit 
einem Signal gemischt, dass nicht zur Stabilität dient, und das 
Seitenruder, dessen Ausgleichbefehle sowieso gleich sind gemischt. Es 
ist natürlich eine etwas unausgereifte Sache zwei Boarards mit eigenen 
Gyros zu verbauen und dann extern zu mischen aber, ich denke es ist 
einfacher als ein neues Programm für einen Mikrocontroller zu 
entwickeln.
Naja ich habe jetzt schon mit dem Bau begonnen, und werde es dann mit 
der harten, Methode testen.
Im Anhang ist noch eine kleine Skizze vom Modell

von Cyblord -. (cyblord)


Lesenswert?

Clemens Janzarik schrieb:
> Ich habe mit dass Toturial schon ein wenig durchgelesen, aber hab mir
> gedacht, dass es wesentlich einfacher wäre wenn mir ein Profi dabei
> hilft :)

Ich übersetz das mal:
"Ich habe keine Lust mir die Grundlagen mühsam zu erarbeiten ich suche 
einen Dummen der mir das Zeug einfach auf Zuruf macht bzw. mir alles 
Schritt für Schritt erklärt".

Is klar.

Desweiteren kann ich nur dem Rest zustimmen. Mit deinem Wissen ist das 
aussichtslos. Setz dich an die Grundlagen und fang an wie jeder andere 
auch. So ein Projekt kannst du in frühestens 1 Jahr mal angehen wenn du 
bis dahin fleißig bist.

gruß cyblord

von Blackbird (Gast)


Lesenswert?

Wenn denn wenigstens Elektronik-Grundlagen vorhanden sind, kann man 
Servo-Signale auch rein analog mischen. Hat man in der Ära vor den 
Mikrocontrollern nur so gemacht.
Hat auch den Charme, das man alles schön mit Potis nachtrimmen kann.

Multiplex, Simprop, Robbe, Graupner und Co. haben da einen riesen Fundus 
an Schaltungen hinterlassen.


Blackbird

von Oliver S. (oliverso)


Lesenswert?

Das Problem ist doch gar nicht das Mischen, sondern der komplette 
Ansatz. Das fliegt nie.

Oliver

von Udo S. (urschmitt)


Lesenswert?

Blackbird schrieb:
> Wenn denn wenigstens Elektronik-Grundlagen vorhanden sind, kann man
> Servo-Signale auch rein analog mischen. Hat man in der Ära vor den
> Mikrocontrollern nur so gemacht.

Das ist schon richtig, nur bleibt das Problem, das das Zumischen aus der 
'anderen'Regelung, zu einer Stellwertveränderung führt, was zu einer 
Istwertänderung führen wird, was die erste Regelung wieder ausgleichen 
will. Also greift sie ein, was für die andere Regelung wieder zu einer 
Änderung führt und so fort.
Je nachdem arbeiten dann beide Regelungen wunderschön gegeneinander was 
zu den tollsten Effekten führen kann. Zumindest so lange bis sich das 
Teil mehr oder weniger eindrucksvoll in Höhe 0 eingräbt.
Clemens hat ein Problem, er hat sich regelungstechnisch so ziemlich das 
schwierigste ausgesucht was es in der Luftfahrt gibt (oder warum fliegen 
so viele 1:1 Senkrechtstarter -nicht Hobschrauber- durch die Gegend?) 
ohne auch nur ansatzweise Ahnung von Regelungstechnik zu haben. Noch 
nicht mal von der rein technischen Implementierung der Regelungstechnik, 
dem Programmieren eines µCs hat er Ahnung.
Ich wünsche ihm viel Glück, bin allerdings pessimistisch, wenn er nicht 
extrem viel Durchhaltevermögen hat.

von axelr (Gast)


Lesenswert?

alles mit ordentlich Schub fliegt irgentwie

von Karl H. (kbuchegg)


Lesenswert?

Seh ich auch so.
Der ganze Ansatz mit 2 Control-Baords ist schon nicht gut. Ich finde es 
ein wenig naiv zu denken, dass man das mit 2 Reglern, die jeder einen 
speziellen FLugzustand abdecken und graduellem zusammenmischen der 
Stellgrößen hinkriegt.

Das Projekt an sich ist interessant. Sogar hochinteressant. Aber dazu 
muss man vor Ort sein, experimentieren können und vor allen Dingen kommt 
man mit "Ich bin Neuling" da nicht weiter. Sein Handwerk darf einem da 
nicht mehr in die Quere kommen. Das Werkzeug Programmieren muss da schon 
in  Fleisch und Blut übergegangen sein. Die restlichen Probleme (die 
interessanten) sind noch groß genug.

von Blackbird (Gast)


Lesenswert?

Schubvektorsteuerung gibt es schon eine Weile für die Düsen-Fraktion.
Nur so als Hinweis.

Dass das so nicht funktioniert, ist fast jedem klar. Das war aber nicht 
die Frage des TO.

Blackbird

von min (Gast)


Lesenswert?

Warum baust Du nicht ersteinmal einen (Multi)Tricopter und arbeitest 
dich in das Programm ein. Funktionierende Projekte, die bereits 
ausgearbeitet wurden
findet man doch zuhauf. Z.b. hier: http://www.multiwii.com/
Der Rest kommt dann von alleine...
Man kann auch gleich die Rotoren in ein Delta einbauen. Die Rotoren 
schwenkbar zu machen, ist aber nicht nur eine softwaremäßige 
Herausforderung, sondern wird ein mechanisches Problemwerden. Die 
Sensoren mögen nämlich eins überhaupt nicht: Vibrationen.

von Markus M. (adrock)


Lesenswert?

...evtl. findest Du auch noch Infos wenn Du nach Osprey Modellen suchst. 
Aber ich glaube die bringen gleich einen speziellen Gyro/Controller 
mit...

Grüße
Markus

von Clemens Janzarik (Gast)


Angehängte Dateien:

Lesenswert?

Ersteinmal danke für die vielen Beiträge :)

Das die Methode mit den zwei Flug-controllern nicht ausgereift ist sehe 
ich inzwischen ein. Ich würde gerne mal nur um ein bisschen 
reinzuschuppern mit Microontrollern arbeiten, aber ich glaube nicht, 
dass ich Talent dafür habe ^^. Das mit dem Analogen mixen hört sich gut 
an, das werde ich gleich mal in Google suchen. An sich hatte ich das 
Modell schon fertiggestellt, und war auch schon dran es im Schwebeflug 
zu testen. Hätte ich mir nur nicht diese billigen Regler aus China 
gekauft! Nach 1 Sekunde in der Luft fängt das teil zu rauchen an ! Jetzt 
warte ich erstmal auf die neuen Regler, dann kann ich das Teil auch auf 
seine normalen Flugeigenschaften prüfen. An sich ist alles noch ein 
bisschen wackelig, aber es ist ja nur der erste Prototyp. Das Schwenken 
der Impeller funktioniert recht gut.

von Frank (Gast)


Lesenswert?

Also für Modellbau-Profis ist das kein neues und zudem ein längst 
gelöstes Problem. Es tritt im Zusammenhang mit RC-Flugmodellen auf, die 
ein sog. V-Leitwerk haben. Da müssen die beiden Steuerknüppelbefehle 
auch speziell gemischt werden.

Also mal nach "Controller für V-Leitwerk" suchen, ich glaube, beim 
großen "C" gab es sowas ...

von Clemens Janzarik (Gast)


Lesenswert?

Ja genau sowas bräuchte ich, nur dass das Mischverhältnis noch mit einem 
Poti einstellbar sein sollte. Dann wäre ich fertig mit meinem Projekt :D

von Malte (Gast)


Lesenswert?

Vermutlich würde das mit dem Mischen sogar funktionieren. Optimal wäre 
es zwar nicht, da müsste man direkt an die Regelung ran, aber ich könnte 
mir vorstellen, dass es schon hinhaut.

Es ist halt ein hässliches Design die PWM Signale, die an die Servos 
gehen zu mitteln und dann nochmal auszugeben.
Technisch würde sich wohl eine Umwandlung der PWM Signale in eine 
analoge Spannung anbieten (man nehme je einen Kondensator und einen 
Vorwiderstand) und dann das analoge Signal wieder in PWM Umwandeln. Hmm, 
was nimmt man da, wenn man analog unterwegs ist? Einen NE555 mit 
bisschen was drumherum?

Hübscher wird das Ganze natürlich, wenn du die Regelung selbst 
implementierst - digital. Wenn du richtig einsteigen willst, nimmst 
einen großen Atmel AVR. Ansonsten bietet sich auch ein Arduino an. 
Brauchst dann natürlich noch entsprechende Peripherie: Also zumindest 
ein Gyroskop mit Beschleunigungssensor.
Um die Regelung zu erstellen, muss man sich aber schon einige Gedanken 
machen. Ein Mathe-Leistungskurs reicht da leider nicht mehr ganz aus. Da 
muss man ggf. seine Kenntnisse noch auf Differentialgleichungen und ein 
klein wenig Numerik erweitern.

Ich habe derzeit ein ähnliches Projekt am Laufen.
Leider zieht es sich ein wenig - ist halt schon viel Aufwand :-)

Viel Erfolg!

Gruß,
Malte

von Clemens Janzarik (Gast)


Lesenswert?

Hallo Malte,

wie schaut denn dein Projekt aus?
Also ich habe das Teil jetzt mal mit den neuen Reglern getestet : Der 
Schub würde noch ausreichen um eine Kamera (100g) mit zu wuchten. Das 
Schwenken der Impeller funktioniert auch bei vollem Schub. Das Problem 
ist, dass das Teil leider sehr unruhig schwebt, was vermutlich an der 
noch etwas wackligen Konstruktion liegt.
Des weiteren habe ich mir einen Atmega8 mit Zubehör gekauft, arbeite 
gerade das AVR-tutorial durch und habe mir schon ein paar Beiträge über 
Servosignale durchgelesen. Ich habe schon eine grobe Vorstellung wie man 
die Signale des Control Boards mischen könnte:

Zuerst gehe ich davon aus, dass die Pulse der Signale vom Hobbykingboard 
(Motor1,Motor2,Motor3,Servo1) alle geordnet nacheinander kommen. Deshalb 
könnte man alle Signale auf ein Pin legen, der dann einen Interrupt 
auslöst, der einen Timer die Pulslängen messen lässt und in den 
Registern ablegt.
Die Signale (Motor,Servo2), die vom Normalflug-board oder direkt vom 
Empfänger kommen (je nachdem ob ich mit zwei Boards arbeite)  werden auf 
dem anderen Pin mit Interrupt gemessen und in den Registern abgelegt.
Anschließend wird die Stellung der Impeller mit einem Poti über einen 
AD-Wandler gemessen .
Danach werden die Signale gemischt:

Die Pulslänge für den 1 Motor

=Motor1*(Potistand/Potimaxstand)+Motor*(1-Potistand/Potimaxstand)

Die Pulslänge für den 2 Motor

=Motor2*(Potistand/Potimaxstand)+Motor*(1-Potistand/Potimaxstand)

Die Pulslänge für den 3 Motor

=Motor3*(Potistand/Potimaxstand)+Motor*(1-Potistand/Potimaxstand)

Die Pulslänge für den Seitenruderservo

=Servo1*(Potistand/Potimaxstand)+Servo2*(1-Potistand/Potimxstand)

Jetzt müssen die Pulslängen (Motor1,Motor2,Motor3,Seitenruder) nurnoch 
über den Counter nacheinander Erzeugt werden.

von Wolfgang (Gast)


Lesenswert?

Malte schrieb:
> Technisch würde sich wohl eine Umwandlung der PWM Signale in eine
> analoge Spannung anbieten (man nehme je einen Kondensator und einen
> Vorwiderstand) und dann das analoge Signal wieder in PWM Umwandeln.

Das geht allerdings nicht mit jedem Servosignal.
Die Steuerinformation steckt nur in der Pulslänge und ist unabhängig von 
der Pausenlänge. Mit dem Tiefpass erzeugt man aber eine Analogspannung, 
die dem Verhältnis von Pulsdauer zu Periodenlänge entspricht.
Das Verfahren geht also schief, falls die Pulse nicht in festem Abstand 
kommen.

von cppler (Gast)


Lesenswert?

Also wenn ich Dich richtig verstanden habe soll Dein Modell ein VTOL 
ähnlich der Osprey werden nur mit drei statt zwei Rotoren.
Das Dein Ansatz falsch ist wurde ja schon erwähnt, Du brauchst einen 
Controller der Dir den Übergang von senkrecht starten zu vertikal 
fliegen sauber regelt.
Mixen oder Umschalten funktioniert nicht weil sich die Steuersignale 
nicht grün sind.
Die einfachste Variante für dich wäre einfach ein/zwei zusätzliche 
Impellerantriebe hinten an die Flügel zu montieren und wenn das Modell 
hoch genug ist damit zu beschleunigen und wenn es stabil ist die 
restlichen Impeller auf den Flugmodus zu schalten nachdem sie gekippt 
sind.
Oder Du stellst Dich der Herausforderung ...

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.