Forum: Mikrocontroller und Digitale Elektronik Flight Control 8 vs 32 bit


von Flieger (Gast)


Lesenswert?

Hallo,

Ich möchte eine Flight Control für meinen Quadrocopter
selbst entwickeln. Würdet ihr mir einen 8 bit Controller oder einen 32 
bit Controller empfehlen ?
Bzw. dann welche Typen ?

Mfg

von innerand i. (innerand)


Lesenswert?

Gibt es noch Gründe die im "Bastelbereich" für einen 8-Biter sprechen?

Grundsätzlich müssen Sie erstmal die Anforderungen an den µC erheben und 
können dann Anhand dieser Daten eine geeigneten µC auswählen.

von Georg G. (df2au)


Lesenswert?

Nimm einen Prozessor, den du schon kennst.

Und wenn du ein Erfolgserlebnis möchtest, dann nimm ein fertiges Board 
und eine fertige Open Source Soft als Basis und spiele damit.

Ob 8 Bit oder 32 Bit ist erst einmal relativ egal. Viele Quadcopter 
fliegen hervorragend mit einem ATMega328. Und es gibt auch viele, die 
einen ARM benutzen. Wichtig ist vor allem, dass du dich mit dem Ding 
auskennst. Der Rest ergibt sich.

von Karol B. (johnpatcher)


Lesenswert?

Prinzipiell würde ich schon sagen, dass ein 32 Bit ARM in solchen 
Anwendungsfällen mehr Sinn macht - alleine schon wegen der integrierten 
Floating Point Unit. Überhaupt kann es Sinn machen ein echtes 
Betriebssystem an Board zu haben (ggf. in Kombination mit einzelnen 
dedizierten Mikrocontrollern), um die vielen verschiedenen Aufgaben 
(Positionsbestimmung, Lageregelung, Fluglogik, Empfänger) möglichst 
unabhängig voneinander betreiben zu können.

Allerdings haben die Vorredner auch recht, wenn sie dir das empfehlen, 
womit du dich schon auskennst. Die Einarbeitung in eine neue Plattform 
kann nämlich durchaus "lange" dauern.

Mit freundlichen Grüßen,
Karol Babioch

von Flieger (Gast)


Lesenswert?

Es spricht also wegen der Rechenleistung nichts für einen 32 bitter. ?

von Karol B. (johnpatcher)


Lesenswert?

Flieger schrieb:
> Es spricht also wegen der Rechenleistung nichts für einen 32 bitter. ?

So wiederum würde ich das nicht formulieren. Es kommt halt im 
Wesentlichen ganz auf deine Anforderungen an. Zum Fliegen bekommt man 
ein solches System auch mit einem 8-Bit Mikrocontroller. Ein 32 Bit 
Mikrocontroller hat aber sicherlich mehr Potential. Es ist halt die 
Frage, ob bzw. wie gut man sich mit einer bestimmten Plattform auskennt, 
ob man sich etwas neues aneignen möchte, wie viel Zeit man hat und was 
genau das Ziel ist.

Mit freundlichen Grüßen,
Karol Babioch

von Quartaner (Gast)


Lesenswert?

... auch wird man beim 8-Bitter etwas mehr Hirnschmalz investieren 
müssen. Man kann nicht wild mit den Ressourcen um sich werfen!
Evtl ist auch eine Aufteilung auf mehrere 8-Bitter ratsam.

von quadro (Gast)


Lesenswert?

ich habe bislang 2 Copter gebaut. Einmal mit einem Atmega und einmal mit 
einem CortexM3.

Die Entwicklung mit dem Cortex war wesentlich einfacher. Der Atmega ist 
einfach scheiße langsam wenn es um Divisionen geht. Da kannste es teils 
nur noch mit Bitshifts realisieren. Normale Divisionen kannste knicken.

mit dem Cortex konnte ich meine Regel-formeln einfach 1:1 hinschreiben 
ohne mir Gedanken um Speed machen zu müssen. Das war doch wesentlich 
schöner. Beim Atmega musste ich herumtricksen.

Letztlich geht aber beides.

von Dr. Sommer (Gast)


Lesenswert?

Quartaner schrieb:
> Evtl ist auch eine Aufteilung auf mehrere 8-Bitter ratsam.
Was dann aber größer, schwerer, komplizierter und am Ende auch noch 
teurer als ein "dicker" 32bitter wie ARM ist...

von Guest (Gast)


Lesenswert?

STM32F100 - 2.5 EUR / Cortex M3, GNU Toolchain, ADC, DAC, PWM und gut. 
Leider nur LQFP.

von Falk B. (falk)


Lesenswert?

@ quadro (Gast)

>einfach scheiße langsam wenn es um Divisionen geht. Da kannste es teils
>nur noch mit Bitshifts realisieren. Normale Divisionen kannste knicken.

Aber es ging!

>mit dem Cortex konnte ich meine Regel-formeln einfach 1:1 hinschreiben
>ohne mir Gedanken um Speed machen zu müssen.

Das ist dann fast in der gleichen Liga von Leuten, die KEINERLEI Ahnung 
vom Photographieren haben und dann ihren vermatschten Megapixelmonster 
posten!
Nein, du nicht, aber prinzipiell.

>Das war doch wesentlich schöner.

Sicher. Aber

> Beim Atmega musste ich herumtricksen.

Man muss DENKEN! Hat noch keinem geschadet, auch wenn es bisweilen aus 
der Mode kommt.

Klar ist ein 32 Bitter deutlich leistungsfähiger, sicher ist es gut und 
meist sinnvoll, auf sowas heutzutage zurückzugreifen. Die Hardwarekosten 
kann man vergessen, die Dinger sind EXTREM preiswert geworden. Die 
Einarbeitung ist ein gutes Stück Holz.

von Karol B. (johnpatcher)


Lesenswert?

Falk Brunner schrieb:
> Man muss DENKEN! Hat noch keinem geschadet, auch wenn es bisweilen aus
> der Mode kommt.

Naja, ich verstehe deinen Einwand nicht so ganz. Klar, kann man da jetzt 
eine Grundsatzdiskussion daraus machen und argumentieren, dass die 
heutige "Jugend" nicht mehr selber denkt, sondern dazu neigt per Copy & 
Paste irgendetwas zusammen zu kopieren, von dem sie noch nicht mal im 
Ansatz verstehen wie es funktioniert. Keine Ahnung, ob das auch wirklich 
so ist, aber diese Diskussion führt sowieso komplett an der eigentlichen 
Fragestellung bzw. am Kommentar von "quadro" vorbei.

Ich würde ihm nämlich auch recht geben und behaupten, dass es leichter 
ist Dinge so notieren zu können, wie man es intuitiv auf dem Papier auch 
tun würde. Klar kann man mit Fixpunkt-Arithmetik, Bit-Shifts und anderen 
Trickserein auch viel aus einem 8 Bit Controller herausholen, aber 
letztendlich wird der Code dadurch nicht leichter verständlich und die 
Entwicklungszeit verkürzt sich auch nicht.

Wenn man also nicht unbedingt an einem Exkurs in "Performance mit 8 Bit 
AVRs" interessiert ist, macht eine Floating Point Unit in meinen Augen 
schon Sinn. Wie oben schon gesagt ist die Einarbeitung in neue 
Plattformen sicherlich nicht weniger aufwendig, dafür aber vielleicht 
etwas zukunftsträchtiger.

Und, dass es letztendlich irgendwie mit beiden Ansätzen gute Resultate 
erzielen kann, hat quadro ja gleich dazu gesagt, insofern empfand ich 
deinen Einwand als etwas ungerecht ihm gegenüber.

Mit freundlichen Grüßen,
Karol Babioch

von Ulrich H. (lurchi)


Lesenswert?

Mit einem 32 Bit µC (ARM) geht das programmieren etwas einfacher, weil 
man wohl genügend RAM und Rechenleistung hat. Mit dem 8 Bit µC geht 
vermutlich das löten einfacher, und die Anforderungen an die Versorgung 
und beim Treiben der Ausgänge hat man es ggf. auch einfacher.

von Michael F. (startrekmichi)


Lesenswert?

Mein Hexacopter fliegt momentan mit einem STM32F4-discovery durch die 
Gegend, später werde ich mal eine gesonderte Platine machen.

Ich finde es ganz praktisch, dass man auf dem F4 äußerst bequem und 
lesbar in c++ programmieren kann und eben keine Klimmzüge machen muss, 
um float oder Divisionen zu vermeiden. Die Lageschätzung und Regelung 
ist z.B. komplett mit Eigen (lineare Algebra c++ template-Bibliothek) 
gemacht, sodass man sogar Matrix-Vektor-Operationen einfach so 
hinschreibt wie auf dem Papier. Die Rechenzeit ist trotzdem irgendwo im 
Mikrosekundenbereich, also vernachlässigbar.

Es kommt mal wieder (wie eigentlich immer) darauf an, was man so vorhat. 
Wenn es nur um die Herausforderung geht, kann man natürlich einen 
8bitter nehmen. Aber sobald aufwändigere Regler dazukommen sollen, ist 
man mit dem 32er garantiert besser bedient und muss sich deutlich 
weniger Gedanken um die Ressourcen machen.

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.