Forum: FPGA, VHDL & Co. Quadchopter-Steuerung im FPGA?


von Uli (Gast)


Lesenswert?

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

von Purzel H. (hacky)


Lesenswert?

Scheint mir weniger praktisch zu sein wie ein Controller. Schau doch mal 
bei den Quadrocopter Leuten rein : http://www.mikrokopter.com

von Uli (Gast)


Lesenswert?

Uii... Das ging fix.... Guck ich mir gerade an...

PS: Meine Entschuldigung für die Rechtschreibfehler in der originalen 
Post... Es ist spät...

von PittyJ (Gast)


Lesenswert?

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.

von abc (Gast)


Lesenswert?

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.

von Simon K. (simon) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.