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
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.
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.
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
Es spricht also wegen der Rechenleistung nichts für einen 32 bitter. ?
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
... 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.
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.
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...
STM32F100 - 2.5 EUR / Cortex M3, GNU Toolchain, ADC, DAC, PWM und gut. Leider nur LQFP.
@ 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.
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.