Forum: Mikrocontroller und Digitale Elektronik Flightcontroller programmieren


von Frank Schweizer (Gast)


Lesenswert?

Guten Tag,
ich bin derzeit in der 12. Klasse und wir(3 Jungs) programmieren als 
Seminararbeit den Flightcontroller eines Quadrocopters - zumindest ist 
das der Plan. Da wir mit dem Programmieren zwar Erfahrung haben, mit 
Mikrocontrollern aber nicht, wende ich mich an euch. Unsere 2 
Hauptprobleme sind derzeit, dass wir nicht wissen welcher 
Mikrocontroller am besten geeignet ist und wie man die ESC'S(3 Kabel zum 
Controller, welches macht was?) anspricht. Wir haben 3 Mikrocontroller 
zur Auswahl:

- Texas Instruments Launchpad Msp-exp430g2 (m430g2553)
- CC3D EVO (überhaupt programmierbar??)
- Arduino oder Ardupilot

Am Anfang ist erstmal geplant, dass die Motoren laufen(ohne 
Fernsteuerung, rein Code-Technisch) und wir die Drehzahl per Code 
regulieren können. Dies sollte bis Ende Oktober funktionieren. Hier die 
restlichen relevanten Teile:

- 4 Simonk 12A ESC's
- 4 MT2204 2300kv Brushless Motoren (2x CW, 2x CCW)

Könnt ihr uns etwas auf die Sprünge helfen?

von Jochen (Gast)


Lesenswert?

Wollte ihr die komplette Software selber schreiben? Dann sucht euch ein 
anderes Projekt.
Wenn das Ding nur irgendwann fliegen soll und ihr die Software 
irgendwoher kopiert würde ich zu einem Avr/Arduino basiertem System 
raten. Dafür gibts massig Software.

von Frank Schweizer (Gast)


Lesenswert?

Unser Plan war es, erstmal die Motoren anzubekommen und dann 
weiterzugehen. Minimales Ziel ist es, dass der Quadrocopter per Code 
nach oben fliegt, dann rechts und links und wieder landet.
Ist das wirklich zu viel?

von Naja (Gast)


Lesenswert?

Naja.

Dazu bedarf es einer Fluglageregelung.
Einfach nur die Motoren ansteuern wird nicht lange funktionieren.
Man muss mittels eines 3-Achsen-Gyroskops und eines 
3-Achsen-beschleunigungssensors das Das Ding regeln.

So trivial ist das nicht, wenn man alles selbst machen will.


mfg.

von Christopher B. (chrimbo) Benutzerseite


Lesenswert?

Frank Schweizer schrieb:
> Minimales Ziel ist es, dass der Quadrocopter per Code nach oben fliegt,
> dann rechts und links und wieder landet.

Also auch noch quasi autonom. Ist euch klar dass es einfach wird wenn 
man einen Teil der Regelung nach außen lagert? Also auf einen Piloten

von Badewannenkaleun (Gast)


Lesenswert?


von Uups (Gast)


Lesenswert?

Jetzt lass mal das Kalman Filter. Der einfache Teil daran ist, dass es 
eine Matrix ist. Der andere, sind die einzelnen Koeffizienten. Die 
Mathematik dahinter ist derart angehoben, dass man gleich sein laesst. 
Also sag doch gleich : lass es sein, es wird eh nichts. Nach einem 
Studium dann wieder.

von Anselm 6. (anselm68)


Lesenswert?

Ein CC3D hat zumindest die Hardware um alles machen zu können.
Da gibts ja auch 2 Projekte die auf dieser Hardware Fluggeräte steuern 
können.
Bei mindestens einem ist der Quellcode auch offen verfügbar.
Da könnt Ihr ja mal nachsehen wie sowas gemacht wird.

Als Grundlage solltet Ihr Euch mal ein wenig Theorie überlegen.
4 Motoren sind zu steuern, diese müssen via PID Regler gesteuert werden.
Die Fluglage muss erfasst werden und gegebenenfalls durch eingreifen auf 
die Motorroutine nachgeregelt werden.
Ein Fernsteuersender muss empfangen und interpretiert werden.

Alles in allem ist es nicht ganz trivial was Ihr da vor habt.


Anselm

Einfach nur Motorleistung steuern wird nichts werden.

von Flieger (Gast)


Lesenswert?

Stichwort ist: MultiWii

Basiert in der allereinfachsten Version auf einem ATmega328.

Dazu braucht Ihr dann einen Arduino ProMini 5V / 16 MHz (Das Board, wo 
der ATmega328p drauf ist.) und ein Sensorboard mit MPU6050 Gyro / 
Beschleunigungssensor.

Die MultiWii Software ist gut kommentiert und der Arduino Sourcecode ist 
frei.

Die Afro Controller: Am Stecker sind braun (5V Masse), Rot (Da kommen 5 
Volt raus, wenn der Controller am Akku steckt.) und Orange (Signal In).

Wenn Ihr an den Braunen und dem Orangen Anschluß am Servostecker ein 
Signal mit einer Impulslänge von 1000 µs bis 2000 µs anlegt, dann läuft 
der Motor zwischen 0 und Vollgas.

von Philipp_K59 (Gast)


Lesenswert?

Wenn es nur um das programmieren geht wäre die Multiwii wirklich das 
einfachste.

Ein unprogrammiertes Board mit allen Sensoren ist garnicht mal so teuer.

CRIUS MWC MultiWii SE gibts ab 15€ .. in DE etwas überteuert.

Der schon genannte Arducopter ist das gleiche mit einem Mega 2560 
Prozessor und den gibts in China schon ab 30€ als "CRIUS AIOP".

von Rainer U. (r-u)


Lesenswert?

Flieger schrieb:
> Die MultiWii Software ist gut kommentiert und der Arduino Sourcecode ist
> frei.

Naja.. durch die vielen IFDEFs aber schon sehr schwer lesbar geworden. 
Das alles "nachzustricken" halte ich auch für zu ambitioniert, drin 
'rumprogrammieren geht schon.

Die Motoren kriegt man zum laufen, indem man eine PWM an das Signal-Pin 
der ESCs legt, das ist einfach. Aber dann gehen die Probleme erst 
richtig los ;-)

von Digit-22 N. (digit-22)


Lesenswert?

Hallo zusammen,

ich bin seit vielen Jahren Modellbauer und fliege seit ca 5 Jahren 
Copter aller Art. Damals gab es kaum flugsteuerungen. Der Rolf Bakke hat 
damals kleine Sterungen entwickelt die mit einem Atmega48 bis 
Atmega168PA liefen. Kein schnickschnack. Nur 3 Gyros die nur die Aufgabe 
hatten die Drehzahl der Rotoren zu steuern so das der Copter überhaupt 
fliegen konnte.... Google mal nach KK Boards. ZB. KK Black 5.5. Wenn du 
lange genug suchst findest du auch einen Quellcode zu den Boards.

Um die Fluglage zu regeln wurde ja schon gesagt das da sehr viel 
Reglungstechnik dahinter steckt. Die Begriffe wie PID, Gain... sollten 
absolut bekannt und verstanden sein. Ein Regelalgorithmus mus 
geschrieben werden und vieles vieles mehr. Um das ganze verstanden zu 
haben, müsstest du mindestens Transformation1 und Transformation2 
Vorlesungen gehört und verstanden haben. Sprich mit der fourier bzw. 
LaPlace Transformation kann man solche Rechnungen durchführen. Also 
nicht ganz trivial wie schon gesagt.

Die CC3D ist im grunde wie ZB. die Naze32 eine komplett fertige 
Flugsteuerung die mit der Cleanflight, Basefleight oder Openpilot 
Firmware/Software bespielt wird. Der Prozessor ist ein STM32 Bit 
Prozessor. Also macht es das ganze nicht gerade einfacher... Diese Board 
werden hauptsächlich in der FPV Szene zum FPV Racen genutzt. Ich selbe 
fliege die CC3D mit der Cleanfleight Firmware.

Lange Rede kurzer Sinn. Wie schon ob des öffteren geschrieben, das ganze 
ist kein Projekt für zwischendurch. Allein an den einfachsten 
Flugsteuerungen wie die KK Boards haben Entwickler jahre lang 
entwickelt.

Wenn Ihr aber einfach nur die Motoren zum laufen bringen wollt, braucht 
ihr nur mit dem Controller (Am besten Atmega328P) an den PWM Ausgängen 
ein PWM Signal mit einer Grundfrequenz von 50Hz und einer Pulsweite von 
1 bis 2ms erzeugen. Dieses Signal müsst ihr nur auf den Regler (Weißes 
Signal Kabel) geben. Ist die Pulsweite 1ms so ist die Drehzahl = 0. Bei 
1,5ms Pulsweite = halbe Drehzahl. Und 2ms PW Volle Drehzahl.

Schau die dazu erstmal das RC PWM Signal mal genauer an...



Hoffe ich konnte helfen.


LG
Digit-22

von Alex W. (a20q90)


Lesenswert?

Frank Schweizer schrieb:
> Ardupilot

In diesem Fall wäre Eure Arbeit ja schon fertig!

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.