Hallo, ich möchte einmal ganz unbedarft fragen ob siche eine Steuerung für einen Quas-Chopter sinnvoll in einem FPGA realisieren lässt. Kurz zu mir: Ich bin Dipl. Informatiker und seit 8 Jahren im Bereich Embedded Systeme beruflich tätig. Also Programmieren, Debuggen etc. (bei uns Lautherbach ICDs) sind mir durchwegs vertraute Themengebiete. Mit dem aufbau elektronischer Schaltungen beschäftige ich mich privat allerdings erst relativ kurz. Ich bin Besitzer einer Amateurfunklizenz und habe ein paar private Projekte auf AVR-Basis gemacht. Ich würde mich allerdings gerne diesbezüglich weiterbilden, und so suche ich nun halbwegs sinnvolle Anwendungen um mich mit FPGAs zu beschäftigen. Ich will nicht die 100ste Umsetzung von irgendeinem Softcore-System bauen, sondern irgendetwas von Scratch aufbauen. Als Zeitrahmen stelle ich mir maximal 2-3 Jahre neben vollberuflicher Tätigkeit vor. Meine Fragen: - Ist es sinnvoll eine Quad-Chopter Flight Control Unit per FPGA zu realisieren? - Ist mein zeitlicher Rahmen halbwegs realistisch? - Weiß wer von einem ähnlichen Projekt (Hauptaugenmerk FPGA-Basis) - Taugt meine aktuelle Hardwarebasis (ein ARM9-Eval Board+JTAG etc, ein Altera Cyclone II EP2C8) für dieses Projekt? Besten Dank für die Mühe und Zeit für die Antworten! Grüße, Uli
Scheint mir weniger praktisch zu sein wie ein Controller. Schau doch mal bei den Quadrocopter Leuten rein : http://www.mikrokopter.com
Uii... Das ging fix.... Guck ich mir gerade an... PS: Meine Entschuldigung für die Rechtschreibfehler in der originalen Post... Es ist spät...
Ich programmiere Rechner seit 20 Jahren und habe mich im letzten Jahr in FPGAs eingearbeitet. Mein Erfahrungen damit: Man kann wunderbar Hardware damit ansteuern. Protokolle wie SPI oder I2C zu bedienen geht wunderbar. Auch ist dabei schön, dass alles gleichzeitig geht, und sich nichts in die Quere kommt. Aber sobald da zeitliche Abläufe hineinkommen, wird es kompliziert. Das geht nur mit State-Machines, und die werden schnell unübersichtlich. Aus A=1; sleep(2); A=2; sleep(3); wird eine State-Machine mit 4 Zuständen und mindestens 20 Zeilen. Schnell noch mal dahinter ein A=3; ist nicht so einfach, dann muss erst ein 5ter State erzeugt werden. Auch das debuggen ist nicht so einfach (gibt keine printf). Der Entwicklungszyklus dauert wesentlich länger (write,compile,simulate, program), und die 'Compiler' brauchen mehr Zeit. Du wirst hier Leute finden, die mit einem FPGA alles machen, und wohl auch etwas fixer mit den FPGAs sind als ich. Doch für mich kristallisiert sich heraus: Mit dem FPGA mache ich die Interfaces für die Hardware, bereite Daten auf. Alles was parallel ist und Geschwindigkeit braucht. Sobald aber Algorithmen mit zeitlicher Abhängigkeit und vielen Entscheidungen gebraucht werden, ist eine CPU einfacher zu benutzen. Für mich die richtige Lösung sind Hardcores mit angeschlossenem FPGA, so wie es Xilinx jetzt mit den Zynq plant. Aber das dauert noch etwas. Die Einarbeitung in ein FPGA lohnt sich auf jeden Fall, man lernt eine neue Welt kennen. Doch einen Hubschrauber möchte ich damit alleine nicht steuern wollen.
Dein Beispiel hinkt aber ein wenig. In dem Fall würde man eine einzelne Statemachine mit 2 States und einem Konfigurationspackage entwerfen. Kaum Arbeit, übersichtlich und ganz einfach erweiterbar. Jede Änderung muss man auch nicht ständig neukompilieren, vieles kann man auch als Registersettings per Rs232 oder USB ganz leicht zur Laufzeit updaten. Ich weiß nicht genau was man braucht für eine Quadrokopter Steuerung, aber außer das ein FPGA Oversized dafür ist sehe ich kaum Probleme. Wenn nicht ein extrem hoher Takt benötigt wird, dann kann ein FPGA bis auf wenige Ausnahmen das gleiche wie ein µC. (und mehr) Der Gesamtaufwand für die Entwicklung ist aber höher, das kann man nicht leugnen.
Ich habe selbst mal ein Quadrokopter "from Scratch" gebaut und kann dir sagen: Die Programmierung des "Flight-Control-Rechners" ist das Geringste aller Probleme, dass du dabei hast. Du wirst dich also nicht nur zum Teil überhaupt mit deinem FPGA beschäftigen, weil Mechanik, Regelungstechnik, BLDC-Ansteuerung, usw. dich davon abhalten.
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.