Forum: Mikrocontroller und Digitale Elektronik Flugsteuerung Lage/Motoransteuerung/Servos


von Gordon R. (lumbricus)


Lesenswert?

Einen Wunderschönen guten abend zusammen,

Schon mal vorab gesagt habe ich bis jetzt wenig ahnung von µc's. also 
verzeiht mir "dumme" fragen.

ich versuche mit ein paar komilitonen einen helikopter mit 2 rotoren zu 
entwickeln. Unser ziel ist es:

2-3 brushless motoren
ca. 10 servos ansteuern
3 gyros
3 beschleunigungs sensoren auszuwerten.

ich habe mich jetzt mehrere tage eingelesen komme aber nicht wirklich 
weiter.
Meine Frage ist, wie verwirkliche ich die steuerung möglichst billig, 
beziehungsweise wieviel "leistung" benötige ich überhaupt? Empfiehlt es 
sich die schaltung komplett selber herzustellen oder entwicklungs 
platinen zu verwenden?

wie gesagt, wir müssen erst mal die µc verstehen. dazu hatten wir uns 
überlegt erst mal "einfache" schaltungen zu verwirklichen, jedoch würden 
wir gerne die teile dann gerne auch für das projekt verwenden und nich 
nur als testschaltung verstauben zu lassen, wenn wir die schaltungen 
begriffen haben.

Also unser primäres ziel ist die ansteuerung von servos und blmotoren in 
den griff zubekommen, dannach kommt erst die flugregelung.

Was wären denn eure ansätze an die sache heran zu gehen? Laut foren sind 
µc für die aufgabe besser geeignet als fpga's, ist das so richtig?

Wo bekomme ich schaltbilder her? würden wohl mit einem usb-programmer 
arbeiten wollen.

Als programmiersprache haben wir uns C (wahrscheinlich mit eclipse) 
ausgesucht.

von Floh (Gast)


Lesenswert?

Schau mal unter nanocopter/quadcopter nach, da gibts sehr viele 
Schaltungen und Erklärungen für Motortrieber, IMU, Regelung, 
Kalmanfilter...

Müsst die Sachen nur dann dementsprechend reduzieren. :-)

von U.R. Schmitt (Gast)


Lesenswert?

Gordon Ruf schrieb:
> Wo bekomme ich schaltbilder her? würden wohl mit einem usb-programmer
> arbeiten wollen.
>
> Als programmiersprache haben wir uns C (wahrscheinlich mit eclipse)
> ausgesucht.

Beispielschaltbilder und Ansteuerungen wie von Floh schon gesagt.

Aber ihr habt eine falsche Reihenfolge: Erst herausfinden was ihr 
benötigt (Rechenleistung, IO-Pins, Peripherie etc., dann den 
entsprechenden Prozessor bzw. Prozessorfamilie, dann die Sprache und 
Entwicklungsumgebung die passt.

Da beim Hubschrauber alles Gewicht zählt werdet ihr wohl um zumindest 
teilweise Eigenentwicklung kaum rumkommen.

Wofür 10 Servos???

Fangt klein an, dann bleibt der Frust auch kleiner.

Viel Erfolg

von MaWin (Gast)


Lesenswert?

> einen helikopter mit 2 rotoren

http://de.wikipedia.org/wiki/Tandem-Konfiguration ?

> Meine Frage ist, wie verwirkliche ich die steuerung möglichst billig,

Na ja, ein uC an Bord, der die Servos entsprechend den Gyros steuert,
ist schon mal richtig, und nicht so teuer.

> beziehungsweise wieviel "leistung" benötige ich überhaupt?

Tja, das ist das Problem.
Die Flugdynamik eines Hubschraubes ist extrem komplex.
Ich kenne jetzt nur richtige Hubschrauber mit Heckrotor,
aber du musst ständig partielle Differentialgleichungen lösen,
und alles beeinflusst sich gegenseitig.

Man muss VOR dem Steuern ermitteln, welche STÖRREAKTION zu erwarten ist 
und diese gleich ausgleichen, sonst gibt es unschöne Rumgeeiere.

Und dazu muß man halt eine halbwegs stimmige Simulation des Objekts 
haben.

Und die war wie gesagt komplex.

Ziel dürfte ja sein, bei losgelassener Steuerung den Hubschrauber auf 
Position zu halten. Das ist schon schwer genug, um nicht zu sagen 
unmöglich unter allen Umständen zu erfüllen.

Das Problem beginnt mit deinen Sensoren. Leichter Drift ist nicht zu 
erkennen. Einfluss von Wind kann zwar kompensiert werden in dem Sinne 
daß der Hubschrauber nicht kippt, aber er ist dann woanders. Eigentlich 
müsstest du, wenn du die Position halten willst, also gegensteuern und 
dazu gerade von der Lage abweichen, also absichtlich kippen und nach 
Kompensation wieder zurückkippen zum Bremsen. Besonders tückisch ist die 
Ausbildung von Wirbeln unter den Rotoren, durch die der Hubschrauber, 
und sei die Regelung noch so gut, einfach absackt weil er keinen 
Auftrieb mehr hat.

von Lehrmann M. (ubimbo)


Lesenswert?

Gordon Ruf schrieb:
> ich versuche mit ein paar komilitonen einen helikopter mit 2 rotoren zu
> entwickeln. Unser ziel ist es:
>
> 2-3 brushless motoren

Ungewöhnlich - eigentlich verwendet man nur einen leistungsstarken Motor 
- den Rest macht aus Gewichtsgründen eine Mechanik.

> ca. 10 servos ansteuern

Wofür denn 10 Servos ?
Taumelscheibe 2, Rotorblattanstellung 1, Heckrotoranstellung 1 = 5 
Servos

Gordon Ruf schrieb:
> 3 gyros
> 3 beschleunigungs sensoren auszuwerten.

Eine gute Basis - in der Praxis ist es ein Beschleunigungssensor mit 3 
Achsen. Um die Rotation zu detektieren wirst du zusätzlich einen 
Magnetkompas zu Rate ziehen.

Gordon Ruf schrieb:
> Meine Frage ist, wie verwirkliche ich die steuerung möglichst billig,

Mikrocontroller (AVR, PIC, dsPIC) + Sensorik (siehe unten) + PID Regler 
und diverse Softwaremischer.

Gordon Ruf schrieb:
> beziehungsweise wieviel "leistung" benötige ich überhaupt

Da musst du dir andere Modellbauhelikopter anschauen und deren Leistung 
begutachten.

Gordon Ruf schrieb:
> Empfiehlt es
> sich die schaltung komplett selber herzustellen oder entwicklungs
> platinen zu verwenden?

Aus Gewichtsgründen selber entwickeln. Nix für Anfänger.

Gordon Ruf schrieb:
> wie gesagt, wir müssen erst mal die µc verstehen. dazu hatten wir uns
> überlegt erst mal "einfache" schaltungen zu verwirklichen, jedoch würden
> wir gerne die teile dann gerne auch für das projekt verwenden und nich
> nur als testschaltung verstauben zu lassen, wenn wir die schaltungen
> begriffen haben.

Schwer (siehe oben) aber ein guter Ansatz mit den Minimalstprojekten. 
Sonst wird das auch nix.

Gordon Ruf schrieb:
> Also unser primäres ziel ist die ansteuerung von servos und blmotoren in
> den griff zubekommen, dannach kommt erst die flugregelung.

Das geht daneben. Zuerst mal mit einfachst LED-Blink-Schaltungen 
anfangen. Glaubt mir, ansonsten bleibt ihr irgendwann Stecken und habt 
viel Geld für viel Frustration ausgegeben. Nennt man dann zwar Lehrgeld 
aber das kann man sich sparen. Und nein ihr seid nicht anderst als 
andere Anfänger - auch wenn ihr das glaubt. Ihr müsst perfekt mit 
Interrupts umgehen können, und perfekt Mathe auf dem µC beherrschen. 
Eine Hochsprache wie C ist Mindestanforderung.

Gordon Ruf schrieb:
> Was wären denn eure ansätze an die sache heran zu gehen? Laut foren sind
> µc für die aufgabe besser geeignet als fpga's, ist das so richtig?

FPGA ist eine ganz andere Klasse. Da sind Mikrocontroller ein recht 
einfach zu erlernender Witz dagegen. FPGAs sind hier völlig fehl am 
Platze. Außer vielleicht bei Bildverarbeitung. Schau dir AVRs oder PICs 
an aber frag bitte hier im Forum nicht was besser ist - ansonsten gibt 
es hier Glaubenskrieg. Nutze die Suchfunktion. Da findest du 1000000de 
von Threads.

Gordon Ruf schrieb:
> Wo bekomme ich schaltbilder her? würden wohl mit einem usb-programmer
> arbeiten wollen.

Selbst entwickeln oder irgendwo klauen. Auf 
http://mikrokopter.de/ucwiki/MikroKopter?action=show&redirect=StartSeite 
gibt es einige Schaltung (BLDC-Central für die 
Brushlessmotorenansteuerung, ...)

Ich darf dich / euch gleich warnen. Das ist kein Einsteigerprojekt. 
Glaubt mir ihr meistert das nicht als Einstieg - das kann keiner. Wir 
sprechen hier nicht von simplen Basicprogrammen wo man ein paar LEDs 
leuchten lässt und RGB-Farben einstellt und ein Display ansteuert.

Schon alleine für die Ansteuerung der BLDC Motoren würde ich als 
Hobbyprojekt (effektiv 2h pro Tag) mit Einlesezeit und Finalisierung 2 
Monate ansetzen. Wobei das noch die einfachere Übung ist. Stichworte: 
BackEMF, Ankerdetektierung, Zwangskommutation, ...

Dann eure Sensorik: Die Filterung der Eingangswerte (ACC + Gyro) sind 
knallharte Mathematik. Lernt man an der Uni Elektrotechnik im vierten 
Semester: http://en.wikipedia.org/wiki/Kalman_filter
Braucht ihr - ohne den braucht ihr nicht anzufangen. Verstehen und ganz 
viel Lesen!

Weiter gehts mit Mathe: PID Regler - 
http://de.wikipedia.org/wiki/Regler#PID-Regler
Auch der ist absolutes A und O der Sache. - ohne den braucht ihr 
ebenfalls nicht anzufangen.

Noch was zum Googln: IMU (Sensorik da könnt ihr was fertiges verwenden 
z.B. von Sparkfun.com zu beziehen über einen deutschen Händler (ist 
einfacher) http://www.watterott.com/)

Gordon Ruf schrieb:
> würden wohl mit einem usb-programmer
> arbeiten wollen.

gute Idee - kommt auf dem verwendeten Mikrocontroller an.

Gordon Ruf schrieb:
> Als programmiersprache haben wir uns C (wahrscheinlich mit eclipse)
> ausgesucht.

Könnt ihr das denn schon? Ansonsten müsst ihr euch erst in C einarbeiten 
und dann könnt ihr mit Mikrocontrollern anfangen. Wenn ihr C schon könnt 
gehts für AVR hier los: 
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
Ansonsten zuerst C lernen: 
http://openbook.galileocomputing.de/c_von_a_bis_z/

Viel Erfolg

von Ulrich P. (uprinz)


Lesenswert?

Also ich komme jetzt auch nicht auf 10 Servos und auch nicht auf 3 
Sensoren... Allemal einen 3-Achsen Sensor kann ich mir vorstellen. 
Aber ich habe da noch nicht alles am Markt verglichen. Die Chinesen 
setzen auf ihren kleinen Zimmer-Mücken jedenfalls einen einfachen 
1-Achsen Sensor ein. Nagut, der versucht auch gerade mal die beiden 
Coax-Rotoren so zu steuern, dass der Heli nicht um die eigene Achse 
trudelt. Und das schafft ein Billigsensor auch nur in gewissem Maße, man 
muss noch immer trimmen.

In größeren Modellen kann man vielleicht einen echten Kreisel einsetzen 
oder auch zwei oder drei. Damit wären aber nur die jeweiligen Achsen 
elektronisch stabilisiert. Für einen Seitenversatz durch Windböe ist das 
immer noch nix. Also doch wieder Beschleunigungssensoren.

Würde mich interessieren, wie das bei dem Quadro gemacht wird, der per 
iPad/Pod/Phone gesteuert wird. Der soll ja angeblich seine Lage auf 
Knopfdruck sehr gut halten können. Da das Teil eine oder zwei Kameras 
hat, würde ich es über eine Bildanalyse machen. Auf Knopfdruck den 
Autofokus auf ein Bild scharf stellen und dann den Autofocus rückkoppeln 
in die Lagesteuerung, sprich das Bild mit dem Copter scharf halten.

Gruß, Ulrich

von Karl H. (kbuchegg)


Lesenswert?

Und auch nicht ganz "unwichtig":

Könnt ihr so ein Teil überhaupt schon fliegen?

Denn: Ihr braucht nicht glauben, dass man das zusammenlötet, das 
Programm aufspielt und dann fliegt das Teil auch schon. Ihr werdet den 
Heli mehr als einmal in letzter Sekunde aus den unmöglichsten Fluglagen 
retten müssen!

von Karl H. (kbuchegg)


Lesenswert?

> Wofür denn 10 Servos ?

Er hat von einem Doppelrotor gesprochen.

Ich weiß jetzt nicht, ob er damit die allseits beliebten Spielzeuge 
meint oder einen richtigen Doppelrotor mit 2 Taumelscheiben. Die 20 Euro 
Spielzeuge kann ich mir aber ehrlich gesagt nicht vorstellen. Die können 
das alles nicht mehr tragen.

Pro Taumelscheibe 3 Servos sind schon mal 6. Für jeden Motor einen 
Regler sind 8 (ich zähle den Regler als Servo). Die restlichen 2 sind 
mir auch unklar.

von Peter D. (pdiener) Benutzerseite


Lesenswert?

Ich würde für die ersten Versuche fertige Modellflugregler als 
Leistungselektronik für die Brushlessmotoren verwenden. So lässt sich 
der Antriebsmotor ganz einfach wie ein Servo ansteuern und vorab auch 
mit einer normalen (Flugmodell-)Fernsteuerung betreiben.

Wenn ihr E-Technik studiert und (oder) interessiert seid, könnt ihr 
später ja immernoch eine eigene Leistungselektronik bauen. Wenn man noch 
nie Drehstrommotoren angesteuert hat ist das nämlich mit reichlich 
Zeitaufwand verbunden. Und selbst wenn man damit Erfahrung hat, ist es 
neben einem Fernsteuerempfänger eine ganz besondere Herausforderung, 
dass dieser nicht gestört wird.

Und wie Karl Heinz Buchegger geschrieben hat finde ich es auch sehr 
wichtig, dass man das Modell vorerst von Hand fliegen kann, also ohne 
eigene Regelung. Nur so kann man richtig beurteilen, ob die Flugdynamik 
in Ordnung ist und Verbesserungen am Modell einschätzen.

Zudem wird es nahezu unmöglich sein, die ganze Software auf einmal beim 
ersten Flugversuch fehlerfrei hinzubekommen. Ich würde immer ein Modul 
nach dem anderen reinprogrammieren und den Rest immer von Hand steuern. 
Natürlich ist dabei das allerwichtigste, dass man einen Kanal an der 
Fernsteuerung hat, mit dem man komplett auf manuelle Steuerung 
umschalten kann.

Grüße,

Peter

von Gordon (Gast)


Lesenswert?

guten morgen zusammen,

danke erst mal für die vielen antworten und euer feedback.vlt noch ganz 
kurz bisschen was zu unserem hintergrund. sind luft und 
raumfahrtstudenten...also die mathematik, flugregelung und 
programmierung (wir können mehrere programmiersprachen, jedoch erst 
grundkenntnisse in c) bekommen wir in den griff....nur von e-technik 
haben wir noch nicht so viel ahnung.

zum zeitaufwand den wir investieren können ist zu sagen....das wir den 
ganzen tag an der uni eingepfercht hocken und jederzeit uns tage lang 
mit der materie auseinander setzen können und auch hochmotiviert sind ^^

zu unserer flugerfahrung: haben bis jetzt 3 verschiedene helis geflogen 
und beherrschen diese großteils auch ziemlich gut :)

@Flo danke für die links (qudrocopter hatte ich schon gelesen)

@Schmitt

das mit der herangehensweise, erst mal pins,rechenleistung usw bestimmen 
und darüber dann die µc auszuwählen ist für mich sehr schwierig da ich 
selbst nicht weiß wieviel wir wirklich benötigen. wieviele pins pro 
servo? wieviele für einen brushless? wieviel rechenleistung benötig die 
bl ansteuerung?

die ca. 10 servos rühren daher, da wir keinen konventionellen 
tandemhubschrauber entwickeln wollen, sondern einen der die 2 rotoren 
quer zur flugrichtung + schwenkbar(2 servos) + pitchbare(2 servos) 
besitzt. (damit du dir das besser vorstellen kannst, sowas in der art:

http://www.gamersunity.de/img/sys/2009-31/thumbs/20090724_AVTR_SCREEN_NG_Helicopter_Flyover_light.1024-640.jpg

also wird es haupsächlich eine eigenentwicklung und wir können uns 
sowieso nur kleine teile wie bl ansteuerung "mopsen" :)

@Michael

vielen vielen dank für die ausführliche übersichtliche antwort!! hat 
sehr geholfen.

Leistungsberechnung haben wir mal gemacht und mit anderen modellbau 
helis verglichen und dürfte passen. Mit leistung meinte ich eigentlich 
rechenleistung, mein fehler. sorry.

also die essenz deiner aussage ist: kein fpga, mit kleinprojekt 
anfangen, gut in c einarbeiten (irgendwelche empfehlungen für projekte?)

von Modellflieger (Gast)


Lesenswert?

So eine Sache, wie Ihr die vorhabt, gibt es schon ...

Nennt sich GyroBot 900, wird von LF-Technik vertrieben und kostet 
weniger als 900 Euro.

Beim "normalen" Modellheli kommt Ihr mit 3 Servos für die TS (Bei 120° 
Anlenkung) und 1 Servo für das Heck aus. (Beim Verbrenner noch 1 Servo 
extra für Vergaser)

Ein schönes Projekt um in die Flugsteuerung einzusteigen ist der Wii - 
Copter auf Basis von einem Arduino.

Eine Wii Motion Control mit den 3 MEMS Gyro drin, ein Arduino Board und 
4 BL Motoren + BL Regler vom Chinamann ... Macht für unter 200 Euro ein 
Fluggerät mit Tragkraft von fast 300 Gramm und eine Flugzeit von 15 
Minuten.

Gruß vom Modellflieger.

von Ulrich P. (uprinz)


Lesenswert?

Ich will den Heli auch, aber eher als reales Fluggerät zum Pendeln 
zwischen Arbeit und zu Hause :)

Also zu Eurer Auswahl:
Mir fallen zwei Controller ein, die für Euch in Frage kommen. Die DsPIC 
Serie ist gerade in Power-/Motor-Control recht stark, kenne ich aber nur 
vom Hörensagen. Selber setze ich aktuell alles auf STM32F1xx oder 
STM32F2xx auf. Auch hier sind PWM Stufen mit Extras und Optimierung auf 
Power-/Motor-Control drin.

Ein 72MHz STM32F10x sollte für Euch erst einmal passen. Auf einigen 
bezahlbaren Entwickler-Kits ist oft auch schon mal eine Motorstufe mit 
drauf, aber meist nur für Stepper. Die STM32F20x laufen noch mal fast 
doppelt so schnell und haben noch mehr Interfaces.

Aber egal, denn Ihr werdet mit einfachen Experimenten anfangen und erst 
mal ein System aufsetzen, dass sich per Serieller mit "Hallo Welt" 
meldet. Dann werdet Ihr sehen, dass die Libraries vom Hersteller doch 
nicht alles machen, was Ihr wollt, also werdet Ihr Euch Sensoren kaufen 
und diese erst mal auslesen. Dann kommt eine SD-Card hinzu, damit sich 
ein bereits fertiger Heli den Testaufbau zwischen die Kufen klemmt und 
Ihr mal reale Messwerte aus der Luft bekommt. Dann werdet ihr das 
Protokoll Eurer Fernbedienung hacken und irgendwas auf dem Demo-Board 
damit steuern, dann werdet Ihr das Protokoll emulieren und damit ein 
paar Servos und ein paar BLDC-Controller, die Eure Rotoren antreiben.
Ihr werden testen ob die Platine nun zwischen Empfänger und Servos 
/BLDCs geschaltet zuverlässig reagiert.

Dann kommen wir zu dem Teil, wo ihr versuchen werdet, die Werte der 
Sensoren in die Fernsteuersignale eingreifen zu lassen. D.h. es wird mit 
einigen einfache Beeinflussungen anfangen und dann werdet Ihr Euch 
austoben und Filtern und was auch immer alles einbauen.

Ich denke, dass Ihr bei der STM32F sehr gut aufgehoben seid. Wenn Ihr 
mehr Pinne oder mehr Speicher braucht, es gibt immer noch einen 
größeren. Oder es gibt sie mit externem Speicher-Interface, wo dann noch 
mal FLASH oder RAM oder beides ran passt. In jedem Fall kann man alles 
bisher gemachte mitnehmen und gleich weiter machen auch beim Wechsel vom 
F1 zum F2 ist das wenig Aufwand.
Abgesehen davon macht es garnix, wenn der CPU eine Nummer zu groß ist, 
man muss sie ja nicht mit voller Taktrate fahren.

Auch müsst Ihr wissen, dass CortexM für Machine-Control gedacht ist, 
wärend CortexA für Audio/Video platziert ist. Eurer Lageregelung wird 
ein MPEG-Decoder oder ein HDMI Interface nicht helfen, aber Ihr werden 
sehen, dass A Typen nur zwei PWMs haben, eine für das LCD-Backlight und 
eine für den Kontrast. Während M-Typen zwar schon mit einem LCD und 
Mini-Kamera-Interface aufwarten, aber x PWM-Kanäle mit 
Pulsbreiten-Option, Dead-Time und Fault-Detection haben.

Vorteil der STM32 als echte CortexM3 wäre für Euch sicherlich noch die 
Tatsache, dass es alles an Tools dafür frei gibt, alles sowohl unter 
Windows als auch unter Linux läuft (gcc, Eclipse, insight-gdb debugger, 
openocd JTAG software) und ein guter JTAG schon für 39€ zu haben ist der 
perfekt mit dem openocd und dem STM32 zusammen spielt.

Nochmal:
Wenn Ihr Euch auf das konzentriert, was Ihr könnt und das konzentriert, 
was zu Eurem Studienbereich gehört, dann seid Ihr vollkommen ausgelastet 
und das Projekt wird spannend und großen Spaß machen. Wenn Ihr Euch an 
BLDC Controller ran wagt, Ihr werdet frustriert das Zeug in die Ecke 
werfen.

Als alter Meister, bei dem schon einige Studenten vorbei gemussten, die 
ihr Diplom gemacht haben, kann ich diese Bastelfreude nur unterstützen, 
schickt mir ruhig eine PN, wenn Ihr abseits noch was wissen wollt zu 
Bezugsquellen oder Setup der Entwicklungsumgebung.

Alles andere hier, damit auch Andere was davon haben.
Gruß, Ulrich

von Peter D. (pdiener) Benutzerseite


Lesenswert?

>das mit der herangehensweise, erst mal pins,rechenleistung usw bestimmen
>und darüber dann die µc auszuwählen ist für mich sehr schwierig da ich
>selbst nicht weiß wieviel wir wirklich benötigen. wieviele pins pro
>servo? wieviele für einen brushless? wieviel rechenleistung benötig die
>bl ansteuerung?

Jeder Servo braucht einen Pin. Das Signal ist ein pulsweitenmoduliertes 
Rechteck. Wenn man es leicht haben will, schließt man das an einen 
Hardware-PWM Ausgang an. So braucht man sich nicht in Software um das 
ständige zeitrichtige Umschalten kümmern. Das Problem wird nur sein, 
dass man kaum einen Prozessor bekommt, der mehr als zehn Hardware-PWM 
Ausgänge hat.

Daher muss man das wohl in Software machen. Problem: Die anderen 
Rechenjobs werden dadurch stark ausgebremst. Lösungsvorschlag: Nehmt 
einen zweiten Prozessor, der nichts anderes macht, als die Servos 
anzusteuern. Der kann dann z.B. über die serielle Schnittstelle 
Steuerkommandos vom Flugrechner bekommen.


Ein BLDC-Regler aus dem Modellbaubereich wird genau wie ein Servo 
angesteuert.

Wenn ihr den BLDC-Regler selbst bauen wollte, gilt das gleiche wie für 
den Servo-Coprozessor. Der sollte eine eigene CPU haben und sonst nichts 
machen. Man sollte genau genommen sogar pro BLDC-Coprozessor nur einen 
Motor regeln, also muss es das für mehrere Motoren entsprechend mehrfach 
geben.


Im Optimalfall sieht das dann so aus:
Es gibt einen Avionikrechner, dort sind alle Sensoren und der 
Fernsteuerempfänger dran und der rechnet die Fluglageregelung. Weiterhin 
gibt es dort drei Schnittstellen, eine zum Servo-Coprozessor und zwei zu 
den BLDC-Coprozessoren.

Als Servo-Coprozessor eignet sich eigentlich jeder ATmega mit genügend 
Pins.

Als BLDC-Coprozessor würde ich persönlich einen TMS320F28xx nehmen, der 
steht aber vermutlich für euch nicht zur Auswahl wegen der aufwändigeren 
Einlernphase für den Programmierer. Als zweite Empfehlung kann ich mich 
Ulrich P. anschließen, bei den STM32 wird man auch für diese Aufgabe 
fündig.

Aber auch seine Empfehlung bzgl. BLDC-Regler Selbstbau kann ich nur 
wiederholen. Das ist wirklich nicht einfach. Wir sprechen über 
hardwarenahe, zeit- und sicherheitskritische Software sowie Mixed-Signal 
und Leistungselektronik. Dazu kommt, dass man für getaktete 
Leistungselektronik eine Menge Erfahrung für das Leiterplattenlayout 
braucht. Es reicht bei Weitem nicht, alles einfach nur richtig 
anzuschließen. Kauft am besten die BLDC-Regler erstmal.

Grüße,

Peter

von Ulrich P. (uprinz)


Lesenswert?

Danke Peter :)

Es gibt übrigens im Internet ein Forum, das sich OpenServo nennt. Hier 
kann man einigen handelsüblichen Servos eine andere Steuerplatine 
verpassen, die unter openSource Software + openHardware entwickelt 
wurde.

Diese Servos können statt PWM auch I2C oder andere Protokolle. Damit 
könnte man die Servos auch an einen I2C-Bus statt an 10 PWMs hängen.

Natürlich kann man auch PWM nutzen, dann würde ich aber mal überlegen, 
wie man die Aufgaben nach Flugzeug-Anforderungen aufteilen kann und dann 
in sich geschlossene funktional Gruppen bilden.

Also Beispielsweise hat Euer Heli ja zwei Rotoren, die beide einen BLDC 
haben. Regelt Ihr nun den Auftrieb über die Drehzahl, oder die 
Anstellung oder beides? Wenn die Drehzahl auf beiden Rotoren immer 
gleich ist, dann kann man eine Steuerbaugruppe mit einem kleinen 
Controller machen, die aus einem Fernsteuersignal beide Drehzahlen 
macht.
Wird die Drehzahl teilweise durch Lageregelung oder Querlenkung 
geregelt, dann kann man beide Fernsteuersignale an diese Baugruppe geben 
und die übernimmt die Mischung.

In der Flugsteuerung sehr verbreitet ist übrigens CAN als Bus. Also kann 
man eine Rotobaugruppe entwickeln, die nur Taumelscheibe und einen BLDC 
ansteuert. Diese gibts dan zwei mal im Heli.

Ihr seht worauf ich hinaus will, etwas modularisiert macht das Ganze 
mehr Spaß, weil man eher Teilerfolge erzielen kann, nicht immer alles 
neu machen muss, wen was nicht hin haut, und in Teams arbeiten kann, die 
sich nicht in die Quere kommen.

Ob man dabei nun verschiedene uC einsetzt oder nur unterschiedlich große 
von ein und dem selben, ist die Frage. Ich würde immer auf den gleichen 
Typ setzen, mal einen als 32-Pin mit 32k/64k FLASH und für den 
Flugrechner eben einen mit mehr Pinnen für die ganzen Sensoren, 
Fernsteuerung... und viel Flash für die Mathematik.

Es macht übrigens nur wenig Unterschied, ob man eine fette CPU mit 72MHz 
und 25mA Stromaufnahme oder mehrere des gleichen Typs aber eben 
gedrosselt auf 8..16MHz bei 5..10mA einsetzt.

Gruß, Ulrich

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.