Hallo zusammen, Ich habe mir einen Tri- und Quadrocopter gebaut. Den Flugcontroller habe ich fertig und alles funktioniert recht gut. Leider habe ich das Problem, das der Copter sich bei Wind nicht mehr sooo toll steuern laesst... Darum wuerde ich gerne Sensoren einbauen die mir die Fluglage stabilisieren. Als erstes soll der gesteuerte Winkel gehalten werden (so gut wie es halt geht). Danach soll noch ein Beschleunigungssensor zum Einsatz kommen. Ich habe auch schon ein bisschen darueber gelesen wegen Rauschen und Filtern, drift etc. Leider sind viele Beitraege fuer meinen Geschmack recht schnell zu umfangreich geworden, deswegen will ich an dieser Stelle selber nachfragen.. Zum Einsatz soll nach Moeglichkeit eine Fertige Platine kommen wo ich nur noch die Werte auslesen muss (Vorzugsweise mit SPI). Was fuer Platinen koennt ihr empfehlen? Welche Moeglichkeiten der Filterung gibt es? Hoffe Ihr koennt mir weiterhelfen!!! Gruss
Die Sensoren sind schon auf deinem Flugcontroller vorhanden. Ansonsten wäre es ziemlich schwierig, einen Copter stabil (sogar bei Windstille) in der Luft zu halten.
Nein bisher habe ich nur einen Atmega8 zur Ansteuerung der Regler, der die Motoren anteuert verbaut. Gut es ist nicht ganz einfach den ohne Stabilisierung zu fliegen, da ich aber ein recht erfahrener Modellpilot bin, kann ich das... Leider ist das momentan gar nix fuer ein Anfaenger bzw. fuer einen leicht fortgeschrittenen Flieger... Deswegen will ich ja Sensoren einbauen die mir die Fluglage etwas stabilisieren. Es muss ja nicht zu 100% genau sein. Gerne bin ich auch bereit so ca. 25 Euro fuer eine Sensorplatine auszugeben. Vorteilhaft waere natuerlich wenn ich die Daten von der Platiene mit SPI abgreifen kann. MPU-6050 waere so eine Platine, leider aber nur mit I2C steuerbar. Zur Not wuerde auch das gehen. Ich weis aber nicht wie gut diese Platine ist.
Das gibt es alles schon fertig mit offenen sources.. Der atmega wird zu klein werden, dann wirds ein Atmega328p und auf den passt die OpenSource Firmware multiWii. Das ganze Board fertig inkl. Sensoren geht so ab die 13€ los. http://www.ebay.de/itm/NEU-MultiWii-Standard-Edition-MWC-SE-v2-5-Flug-Controller-Board-f-FPV-Multirotor-/201353391876?hash=item2ee198ef04:g:IoEAAOSwYGFUxiFN
Ja auch schon gesehen, aber ich will das alles selber machen, nix mit Arduino.
Also danke an alle die mir Alternativen vorgeschlagen haben, aber ich will die Komplette Schlatung und Programmierung selber machen. Es ist einfach nur mein Wissensdurst den ich stillen will ;) Daher suche ich eine Platine die mir die entsprechen Werte ausgibt. Vorzugsweise ueber SPI. Kann mir da jemand so eine Empfehlen? Evtl. auch eine zu der ein ein Tutorial gibt etc...
pad89 schrieb: > Also danke an alle die mir Alternativen vorgeschlagen haben, aber ich > will die Komplette Schlatung und Programmierung selber machen. Es ist > einfach nur mein Wissensdurst den ich stillen will ;) Das beisst sich aber mit > Ich habe auch schon ein bisschen darueber gelesen wegen Rauschen > und Filtern, drift etc. Leider sind viele Beitraege fuer meinen > Geschmack recht schnell zu umfangreich geworden, deswegen will ich > an dieser Stelle selber nachfragen.. Das ganze ist nun mal ziemlich umfangreich und anspruchsvoll. > Daher suche ich eine Platine die mir die entsprechen Werte ausgibt. > Vorzugsweise ueber SPI. Was jetzt? Wasch mir den Pelz aber mach mich nicht nass?
@karl heinz, das ziemlich kannst du weg lassen, weil die mathematischen bibliotheken ... müßte er dann ja auch selber machen viel spass pad89
@TO wenn du in der Bucht oder beim Chinesen nach DOF und SPI suchst zeigt es ein paar Sensorboards an. Wie gut die Sensoren sind lässt sich wohl am besten in einem Multikopter Forum nachlesen. Aber da du ja nicht den Anpruch stellst das Teil selbständig fliegen zu lassen werden die alle gut genug sein. Den Regelkreis zu programmieren dürfte eine herausforderung sein (PID Regler) Die Möglichkeit bei multiWii oder Adrucopter anzuschauen wie dei das gemacht haben und/oder ein fertiges Board zu benutzen wurden ja schon genannt.
pad89 schrieb: > aber > ich > will die Komplette Schlatung und Programmierung selber machen. > ... > Daher suche ich eine Platine die mir die entsprechen Werte ausgibt. > Vorzugsweise ueber SPI. Ja, was denn nun? Selbermachen, oder fertige Platine kaufen? Kauf dir halt irgend eine der open-source-Platinen, und programmier deine eigene Software dafür. Oliver
Also folgende Punkte muessen abgearbeitet werden: Welche Gyroplatinen koennen empfohlen werden? (SPI) Wie funktioniert das mit der Filterung? Das sind die einzigen beiden Punkte die ich wissen will... Mit Umfangreich meine ich, das immer wieder alternativen vorgeschlagen werden, wie ach nimm das Arduino oder gleich fertige Sachen fuer < 20 Euro etc. (Ist jetzt nicht boese gemeint ). Daruch kommen dann recht viele Posts zusammen und das eigentliche Thema wird immer mal wieder zwischendurch behandelt. Ich wollte einfach nur die Antworten auf meine beiden Fragen haben. Welche Platinen mit SPI und wie funktioniert das mit der Filterung etc.. Damit waere mir schon echt geholfen....
die zweite frage ist das eigentlich interessante, weil welche cpu willst du verwenden?
Hi, Wenn Du die Dinger schon ohne jede Stabilisierung fliegen kannst, ist es vermutlich gar nicht so extrem schwierig wie bei den ausgereiften Steuerungen. Nimm das MPU-6050 oder ähnliche. Wenn man unbedarft herangeht wird da für lange Zeit kein Board die Grenze sein. Was ich nicht verstehe ist warum I2C so ausgeschlossen sein soll. Gerade bei mehreren Sensoren ist das ein Segen und auch keine Raketentechnik. Wenn's denn sein muß, LSM9DS1 kann auch SPI. Gruß, Norbert
pad89 schrieb: > Ich wollte einfach nur die Antworten auf meine beiden Fragen haben. > Welche Platinen mit SPI und wie funktioniert das mit der Filterung Tja, die Formulierung einfach zu beantwortender Fragen ist nicht trivial. "Platinen" mit "Sensoren" und "SPI" als Beschreibung ist so blödsinnig wie ungenau. Das führt dann dazu, dich in die Kategorie "völlig ahnungslos ud des googlens nicht mächtig" einzuordnen, mit dem dann gut (und richtig) gemeinten Ratschlag, doch einfach einen der fertigen Flightcontroller zu nutzen. Aber vielleicht fängst du nochmal von vorne an, und fragst ganz einfach genau das, was du wissen möchtest. Oliver
Sorry, hatte oben geschrieben das ich einen Atmega8 verwende, es ist aber ein Atmega32. Zurzeit sieht mein Aufbau so aus: Ich habe einen normalen Empfaenger von Spektrum. AtTiny's lesen von jedem Kanal die Werte von meinem Emfaenger ein und der Atmega32 liest dann von diesen die Werte ueber SPI aus, macht noch ein paar Berechnungen und gibt dann ein Servosignal an meine Regler, die wiederum meine Motoren steuern. Jetzt waere es natuerlich toll, wenn ich eine fertige Sensorplatine haette, wo ich die Daten auch ueber SPI auslesen koennte. Diese Daten werte ich dann im Atmega32 aus und sende zum Schluss ein entsprechendes Signal an die Regler... Das ist im grunde genommen der Ablauf.
Hallo, ich habe von Quadcopter keine Ahnung, aber schau Die mal den MPU6050 an, ist allerdings I2C. ich weiß, das Arduino ein Reizwort ist, manchmal auch für mich. Arduino ist ein Name für ein Sammelsurium schon zusammengelöteter üblicher Bauteile. Man kann den Namen auch weglassen und z.B. nach einem MPU6050 suchen, nur ich z.B. möchte die Leiterplatte nicht erstellen und fertigen lassen und zusammenlöten müssen wenn ich es vermeiden will. Also nehme ich ein "Arduino-Shield" von netten Chinesen, suche mir Datenblatt und Schaltplan und hänge es an den µC meiner Wahl. Dann könnte ich mich in Ruhe mit der Software rumärgern. Wenn das auf Anhieb so nicht klappt, bin ich froh, wenn irgendwo ein Arduino Nano oder PrMini rumliegt, wo ich in 5 Minuten alles zusammenstecken kann, die passen de Lib suchen und mir mal schnell anschauen kann, was eigentlich rauskommen soll. Niemand wird gezwungen, die ArduinoIDE oder den Bootloader zu nutzen, man kann auch seinen ISP-Programmer ranstecken usw. usw. Mit dem MPU6050 will ich auch mal rumspielen, ich weiß nur noch nicht wozu... Gruß aus Berlin Michael
:
Bearbeitet durch User
Ja ueber das Ding bin ich auch schon gestolpert, leider kein SPI aber nun gut. Leider weis ich nicht so genau wieder gut das ist... Aber ein Versuch waere es wert ;)
pad89 schrieb: > leider kein SPI Ich verstehe dein Problem dabei nicht! Wenn er kein SPI hat, dann nimm halt das I2C-Protokoll. Oder hast du ein Problem weil das I2C zwei Pullups nötig hat? Welche Programmierumgebung nutzt du?
PS: Bestelle dir doch zum Basteln einfach mal das APM 2.6-Board. Gibts beim Chinesen für unter 50 Euro. Die Bauteile darauf kosten fasst soviel im Einkauf. Kannst also schlachten. Oder du programmierst auf dieser Basis deine Flugsteuerung. Nett zu erwähnen ist auch der Magnetfeldsensor an Bord. Den kannst du später einbauen. Und wenn du dann noch Lust hast, schließt du an den Steckern einfach ein GPS-Modul an und lässt die Routen abfliegen. Und bei Bedarf kannst noch ein Funk-Link anschließen. Oder ein OSD. Oder beides. Ich hab das Ding in meinem FX79. Mit GPS, Kompass, Funk-Link OSD und Kameras. Ganz toll wenn jemand trainieren möchte. Ein Schalter umgelegt und das Ding fängt an aus jeder Lage in der Luft sich korrekt auszurichten, zu dir zurück zu fliegen und über dir in eingestellter Höhe zu kreisen. Nennt sich RTL (ReturnToLaunch). Macht er auch wenn die Fernsteuerung ausfällt (passierte mir einmal). Dann kreist das Ding solange bis der Motor keinen Saft mehr bekommt, und er leitet die Landung ein. Rsultat: Landung perfekt. Ist laut Gesetz zwar illegal, aber mir ist das lieber als ein versicherter legaler Crash in eine unschuldige Person...
Eigentlich stoert mich I2C nicht, "ich" finde SPI nur einfacher und es wuerde auch etwas besser zu meinem Programmablauf passen. Es ist aber auch kein Problem das ueber I2C anzusteuern. Ich Programmiere in C
Hi, dann nimm z.B. das hier: http://www.watterott.com/de/MinIMU-9-v3 Das ist Stand der Technik. Lass Dir die Werte lesbar skaliert auf dem Terminal anzeigen und spiele damit herum. Dann bekommst Du recht schnell ein Gefühl dafür wie Du filtern und regeln musst. Gruß, Norbert
Norbert S. schrieb: > Wenn Du die Dinger schon ohne jede Stabilisierung fliegen kannst, ist es > vermutlich gar nicht so extrem schwierig wie bei den ausgereiften > Steuerungen. Naja es ist schon nicht einfach, eine recht grosse Menge an Fingerspitzengefuehl ist erforderlich ;)
asd schrieb: > und was nutzt du jetzt? ;-) Maus und Tastatur ;) Norbert S. schrieb: > dann nimm z.B. das hier: > http://www.watterott.com/de/MinIMU-9-v3 > Das ist Stand der Technik. > Lass Dir die Werte lesbar skaliert auf dem Terminal anzeigen und spiele > damit herum. Dann bekommst Du recht schnell ein Gefühl dafür wie Du > filtern und regeln musst. Der sieht auch gut aus. Ich denke das ich mir den und den MPU 6050 bestellen werde... So kommen wir doch nun zum Filtern... Ich habe gelesen das es einen Kalman filter gibt... Ein bisschen drueber gelesen aber wieder verworfen da mir die Berechnungen ein wenig zu kompliziert sind. Gehoert habe ich aber noch von einer anderen, recht guten, Filtermethode. Leider will mir der Name nicht mehr einfallen -.-
pad89 schrieb: > Naja es ist schon nicht einfach, eine recht grosse Menge an > Fingerspitzengefuehl ist erforderlich ;) Hi, Nee, ich meinte die Programmierung. Du musst das eben nicht gleich idiotensicher hinbekommen wie es die fertigen Regler das schaffen (wenn sie denn richtig eingestellt sind). Gruß, Norbert
Norbert S. schrieb: > Nee, ich meinte die Programmierung. Du musst das eben nicht gleich > idiotensicher hinbekommen wie es die fertigen Regler das schaffen (wenn > sie denn richtig eingestellt sind). Ach so... Ne das will ich auch nicht... Das Projekt sollte eigentlich nur fuer mich sein, konnte meinen Mund aber nich halten und so wollen ein paar Leute schon sowas haben. Mit "sowas haben" meine ich, das die Steuerung die ich entwickle nicht fuer einen Copter gedacht ist. Es ist eine andere Art von Flugzeug die auf 3 unterschiedliche Arten fliegen kann ;_) Ist jetzt aber nicht das Thema ;) Fakt ist, das diese Leute auch schon fliegen koennen ;)
Arduino sind doch auch nur avr-gcc Klassen.. Wenn im MultiWii Arduino opensource xode die Klassen getdatampu9050 und Accelerationfilter stehen wird da auch nur reiner avrgcc genutzt.. Vielleicht durch einige Variablen verarduinot wie allgemeines Int oder boolean. Wenn der schon fliegt und du das noch alles nachfragst haste nix gelernt. z.B. Filterroutinen, PID https://github.com/diydrones/ardupilot/blob/3d7ec3704d88053ae03b6e01077946ec2084af99/libraries/AC_PID/AC_PID.cpp
:
Bearbeitet durch User
Philipp K. schrieb: > Wenn der schon fliegt und du das noch alles nachfragst haste nix > gelernt. Erklaere das mal genauer... Vermutlich wird im Arduino nur normaler AVR Code genutzt. Aber nochmal zum Verstaendnis... Ich will nur einen ganz stinknormalen atmega nehmen und dort ganz stinknormalen AVR Code nutzen!!! Ich will jetzt auch nicht 3000mal erklaeren warum wieso weshalb!!!
Hi, Gaaanz ruhig, da musste hier durch. Problem sind die ganzen Spinner die sowas bauen wollen und keinen Schimmer haben. Ich habe durchaus verstanden was Du vorhast, also nimm so ein Board mit Gyro, ACC und ev. Mag und probiere damit herum. Da Du das Ding ja auch so beherrschst, ist es vermutlich am einfachsten einfach mal zu probieren. Nur eine Achse nur Gyro und wenn der nach links rollen will etwas rechts dazugeben. Ganz vorsichtig rantasten. Dafür ist es übrigens extrem hilfreich, wenn Du Parameter per Bluetooth (Laptop, Android) für jeden Startversuch verstellen kannst. Kramt man nicht jedesmal das Programmierkabel raus. Gruß, Norbert
Genau so habe ich mir das auch gedacht. Das das nicht von Anfang an perfekt klappt ist klar, da muss man sich rantasten.
http://www.ebay.de/itm/MPU-9250-SPI-IIC-9-Axis-Attitude-Sensor-Module-Gyro-Accelerator-Magnetometer-NEW-/181633656729?hash=item2a4a35a799:g:pNgAAOSwPcVViVca Ist das eine von den "Ich will alles selber machen" aber "eine fertige Platine mit SPI reich"?
Hallo, nein, steht zumindest I2C drin. Und außerdem ist das Teil bestimmt "Arduino compatibel" auch wenn es nicht dransteht. ;-) Gruß aus Berlin Michael
:
Bearbeitet durch User
Ja das wuerde auch gehen, aber ich habe mich jetzt fuer dieses entschieden: http://www.watterott.com/de/MinIMU-9-v3 Ich denke das wird ganz gut sein und das Datenblatt ist auch recht gut beschrieben. Und ich wette auch das es Arduino kompatibel ist :D :P Ich hatte mich halt noch nicht mit I2C auseinander gesetzt. Habe es mir aber vorhin durchgelesen wie das geht und joa... koennte klappen ;) Werde morgen mal mit den Controller ein paar Versuche starten... Interessant wird es ja erst noch... Wenn die Gyrowerte dann soweit stimmen, dann muss ich um die Ausgleichswerte zu erhalten die gesteuerten Werte herausfinden und diese dann von den Tatsaechlichen Werten abziehen. Wird bestimmt noch interessat werden...
Hi, gute Wahl und lass Dich durch die Unkenrufe nicht beirren. Viel Erfolg und berichte einfach mal. Noch ein Tipp: Falls Du auch die Höhe per Luftdruck regeln willst: Es gibt da einen geilen Sensor "State of the Art". Allerdings muß man sich den Druck aus 27 Parametern mit fiesen Formeln selber berechenen. Hat echt keinen Spaß gemacht. Inzwischen gibt es einen Sensor von ??? der gleich den Druck in Pa oder was weiß ich ausgibt. Wenn das rennt ist das aber erschreckend genau. Kurzfristig +-20cm mit primitiver Filterung. Drift über 10 Min. ist gleichzeitig ne Wettervorhersage ;-) Bei Annäherung an den Boden habe ich SRF02 benutzt. Wirklich idiotensicher (auch I2C) und bei wenigen Metern und halbwegs ebenem Boden zentimetergenau. Gruß, Norbert
Danke Norbert!!! Ein Fliegerkollege hat mir auch mal so einen Sensor empfohlen (der bastelt auch gerne mal ;) ). Der soll sich angeblich einfach auslesen lassen und auch gleich PA Werte zurueck geben. Muss den nochmal fragen wieder das Teil hies. Leider wird es bei mir mit der ganzen Elektronik erst naechstes Jahr was, aber ich wollte mir einfach schon mal das Wissen aneignen damit ich so richtig loslegen kann ;) Das Grundwissen wie ich die ganze Sache realisiere habe ich jetzt (Glaube ich zumindest ;) ). Jetzt beschaeftige ich mich damit wie ich Sensor und Steuerung unter einen Hut bringen kann.
hi, Der Sensor den ich hatte/meinte war MS5611. Auslesen ist einfach aber etwas eklige Auswertung... Das war aber vor 2-4 Jahren mit Abstand der beste Sensor den man kaufen konnte. Der Neuere war glaube ich Bosch? BS280 oder sowas? Sorry, ist aktuell nicht mehr meine Baustelle. Ach ja, der ganze Quark ist auch in Deinem Android verbaut. Mit entsprechenden Apps (Sensortest oder so) kannst Du die Werte auch direkt mal sehen, wenn Du mit dem Telefon herumfuchtelst. Edit: Es fällt auf, daß sich die Meckerpötte nicht mehr melden, nachdem es konkret wurde... Gruß, Norbert
:
Bearbeitet durch User
Unheimlich... Woher weist du das ich Android benutze ;) Ja stimmt gibt da eine App mit der man die Werte auslesen kann. Programmiere zwar auch hin und wieder mal mit dem Android aber bis auf die Sensoren musste ich noch nicht runter ;)
Hi, Es gibt Apps die die Rohwerte der Sensoren anzeigen, da muß man sich nicht Java auf Android antun. Edit: Jemand der sowas bastelt hat kein IPhone... Gruß, Norbert
:
Bearbeitet durch User
Hallo, mit den Berechnungen bei Luftdrucksensoren habe ich mich vor ein paar Jahren mal miz den HP03S von HopeRF rumgeschlagen. Läuft hier heute noch, war allerdings nie auf die nutzbare Genauigkeit ausgelegt, nur Wettersensor. Ich hatte mir jetzt mal den BMP180 angeschaut, da ist im Datenblatt von 0,5m die Rede. Rechnerei ist offenbar genauso haarsträbend, ich habe diesmal zum rumspielen eine fertige Library genommen. zumindest stimmt der gemessene Druch mit meinem alten HP03S gut überein. Ist ein China-Modul wie dieses hier: http://www.amazon.de/BMP180-Digitale-Luftdruck-Sensor-Arduino/dp/B00N1TSTPA Man beachte die Artikelüberschrift... ;-) Gruß aus Berlin Michael
Jop Ueberschrift gelesen ;) Ist doch gar nicht schlecht das man Arduino erweitern kann ;) Tja das mit dem Druck ist halt so eine Sache. Um das Modell ein oder 2 Meter ueber den Boden schweben zu lassen, kann man auch Ultraschallsensoren nehmen bestimmt...
Das Problem am Ende wird sein das Du in einem gewissen Rechentakt für alle Berechnungen und Syncs bleiben musst und da kommen erst die Anforderungen an den Code zu Tage.. Beim Arducopter/MultiWii ist das was die aus einem Mega2560/Atmega328P rausholen schon eine Super Leistung von der man nur lernen kann. Ultraschall, Kompass, GPS-Lock und absolutes ruhiges stehen in der Luft. Viele sagen dazu "ein Atmega ist zu langsam", fast überfordert auf jeden Fall.
Hallo, ein schöner Thread, also will ich auch mal mein Senf dazugeben. Als erstes Freu ich mich auf die Ergebnisse. Ich muss ja sagen Arduino hat auch was gutes!! Seit es den gibt bekommt man auch viele Sensoren schon fertig ohne sich alles selber zubauen. Gerade zum Basteln oder Testen eine sehr schöne Sache. Siehe hier. Wichtig ist nur bei der Verarbeitung, das du eine Äquidistante Verarbeitung oder Abtastung hast. Das ist meist recht wichtig für verschieden Filtern. Und macht dann die Betrachtung der Werte deutlich einfacher. @Unbekannt: Viele behaupten das ja und meistens ist nicht die Rechenleistung das Problem, sondern die Anzahl von Schnittstellen. Das Projekt bekommt man eventuell auch auf ein Attiny, nur dort könnte der Speicher etwas klein werden. Mal schaun vielleicht bau ich auch mal so ein Ding. Hätte jetzt echt Lust darauf. ^^ viele grüße
Ich werde sehen wie es klappt und ob die Rechenleistung ausreicht. Ich gehe jetzt aber mal davon aus das sie fuer das alles ausreichend ist. Da ich einen ganz normalen Empfaenger nutzen moechte, habe ich fuer jeden Kanal erstmal einen eigenen AtTiny genommen. Diese uebernehmen mir das aus Auslesen der Werte vom Empfaenger, welche ja Servosignale sind. Diese sind per SPI an meinem Atmega32 angeschlossen. Zuerst hole ich mir diese Werte, danach dann die Werte von den Sensoren. Wenn ich dann alles habe, dann wird der Code vom PID-Regler durchlaufen und die daraus resultierenden Werte sind dann meine Stellwerte fuer die Motoren. Da ich anfange mit 4 Motoren, muss auf jedenfall eine minimale Zeit von 8ms einplanen die mein Code braucht um abgearbeitet zu sein. 8ms - Jeder von den Reglern kann man ein Servosignal uebergeben. Dieses muss zwischen 1ms und 2ms lang sein. Naja ich beschaeftige mich erstmal mit dem PID-Regler. Naja ich bau jetzt erst mal den Tannebaum auf ;) bis spaeter
> Naja ich beschaeftige mich erstmal mit dem PID-Regler. > Naja ich bau jetzt erst mal den Tannebaum auf ;) bis spaeter Mit tatkräftiger Unterstützung & Beratung wirst du das letztere hinbekommen.
pad89 schrieb: > Baum steht :D Habe ich mit doch gleich gedacht, mit tatkräftiger Unterstützung & Beratung bekommst auch du einen Tannenbaum aufgebaut :)
Hi, zur Rechenleistung: Du musst nicht alles im schnellen Takt abarbeiten. Schnell muß hauptsächlich der Gyro ausgewertet werden. Dann kommt der ACC aber das ist schon träger und nicht so präzise. Während der Gyro schon winzigste Bewegungen anzeigt geht das beim ACC noch lange im Rauschen unter. Alles weitere wie Kompass, Höhe (Luftdruck/US), und erst recht GPS können dagegen schnarchlangsam sein. Gruß, Norbert
Arrg... was ist gleich noch mal ACC??? Beschleunigungssensor?? -.- Was mich gerade kuemmert ist, wo bekomme ich die Sollwerte her (Kp glaube ich) Mir faellt nur eine Moeglichkeit ein, sobald ich starte muss der Controller einige Werte von der Funke Speichern. Ich habe mir das ungefaehr so vorgestellt: Wenn ich den Nick oder Roll Knueppel bewege, bekommt mein uC ein Wert von 1 bis 2, jenachdem welche Position mein Knueppel hat. In der Mittenstellung bekomme ich Werte von 1,5. Um den staendig gesteuerten Winkel zu erhalten, wuerde ich einen Timer Starten sobald ich einen neuen Wert erhalten habe. Bekomme ich dann einen weiteren Wert stoppe ich den Timer, speicher mir den Timerwert, danach starte ich den Timer wieder. Nun wird der Winkel berechnet aus dem Wert von der Funke und dem Timerwert und Drehrate des Copters bei dem Wert von der Funke. Daraus ergibt sich dann ein Winkel. Dieser wird gespeichert. Danach kann dann der PID-Regler seine Arbeit machen etc... Koennte das so in etwa passen???
Hi, Ja, ACC ist der Beschleunigungssensor. Dein Verfahren habe ich nicht 100% kapiert aber ich glaube so ganz ist das nicht der richtige Weg. Sollwerte bekommt der Copter erstmal vor dem Start indem für alle Sensoren die Nullage gespeichert wird. Und dann kommt es darauf an, in welchem "Modus" Du fliegen willst. Der "Profimodus" sorgt nur dafür, daß der Copter die Lage im Raum hält, also nur die Winkel stabilisiert werden. Wenn Du also nach links steuerst neigt er sich um sagen wir 5° und so bleibt er dann bei Knüppel neutral. Du gibst also die Drehung vor. Einfacher zu fliegen ist es wenn der Knüppel die Lage vorgibt. Also Knüppel etwas nach links bedeutet 5° Neigung und die wird ausgeregelt. Knüppel neutral und er stellt sich wieder waagerecht. Gruß, Norbert
Ja im Grunde genommen meinte ich da auch so ;) Ich kann nur schlecht schreiben was ich meine -.- eine totale Schwaeche... Ich beschreibe mal kurz wie es bei meinen Helis ist. Ich drucke den Rollknueppel nach Rechts bis ich auf 20 Grad bin und lasse diesen dann wieder los. Der Heli behaelt aber diese 20 Grad bei. Halte ich den Hebel gedrueckt, wird der Winkel immer groesser. Wenn es keinen Boden gaebe so wuerde ich immer Kreise in Rollrichtung machen ;) Der Winkel verkleinert sich dann erst wenn ich wieder nach Links steuer. Das ist so wie du es beschrieben hast, also Profimodus ;) Interessant ist jetzt den Winkel der angesteuert wird herauszufinden. Ich wuerde das dann so machen: Zuerst muss ich berechnen wie die Drehrate des Copters ist ueber die Achsen. Gut das bekomme ich hin. Diese wird dann erstmal fest einprogrammiert. Nun weis ich welche Drehraten ich bei welchen Knueppelausschlaegen habe. Der Ablauf um den gesteuerten Winkel zu berechnen wuerde ich dann so machen: Sollwert berechnen: get Wert 1 -> speichern -> Timer starten -> get Wert 2 -> Timer stoppen -> Timer Wert speichern -> Winkel aus max. Drehrate * (Wert1 - 1) und Timerwert berechnen. Usw.. Den Sollwert uebergebe ich dann meinen PID-Regler. Der Wert der daraus kommt vergleiche ich dann mit meinem Wert2 und uebergebe dann die Differenz daraus an meinen Motorregler... Ich berechne mir immer den Sollwinkel, die Sensoren geben mir den Istwinkel und der PID-Regler berechnet mir dann einen Wert den ich mit dem neuen Winkel abgleichen kann um diesen dann an den Motorregler weiterzugeben...
Das waere dann der "Einfache Modus" Im "Profimodus" muessen gesteuerten Winkel addiert bzw. Subtrahiert werden.
Hi, Jein. Das Aufintegrieren der Drehrate ist nicht ganz der richtige Weg. Der ACC gibt Dir den Winkel, nicht der Gyro. Der Gyro dient erstmal dazu per Drehrate 0 den aktuellen Winkel zu halten. Der reagiert längst bevor man das am ACC merkt. Langfristiger (so im Sekundenbereich) wird auf den vorgegebenen Winkel ausgeregelt. Gyro ist also ähnlich wie P und Acc ähnlich I. D würde ich erstmal weglaassen. Wenn man die Regler der prof. Steuerungen nicht zu weit aufreisst, kann da D auch auf 0 bleiben. D wäre die Ableitung vom Gyro. Mit dem Knüppel übersteuerst Du den Gyro, also die Drehrate und letztlich auch den Acc aber der ist eben träge (in der Software). Tipp zum Testen bzw. rumprobieren: Den Quadro an zwei Motoren aufhängen und diese deaktivieren. Die anderen beiden Motoren drehen so bei mittlerer Drehzahl, so daß der Copter noch in den Seilen hängt. Jetzt ist er nur noch in einer Achse frei und Du kannst die Regelung der beiden drehenden Motoren testen (das ist dann + Konfiguration). Gruß, Norbert
Jaa man muss sich da erstmal reinfuchsen ;) Also ich hoffe das ich dich richtig verstanden habe... Mit dem uebersteuern des Gyros meinst du das ich mir den aktuellen Winkel vom Gyro holen soll + meinen aktuell gesteuerten Winkel. Das muesste doch dann der Winkel sein den ich haben will.
Hi, der Gyro liefert Dir keinen Winkel sondern nur die Drehrate in °/s! Und so wie Du das beschreibst soll der Knüppel auch nur die Drehrate steuern. Also quasi wie ein Querruder am Flächenflieger ohne V-Form. Gruß, Norbert
Aehm ja genau drehrate... Genau der Knueppel soll mir nur die Drehrate steuern. Je groesser der Knueppelausschlag ist, desto mehr Drehrate habe ich. Also muss ich die Drehrate vom Steuern nehmen und diese mit der Drehrate des Gyros vergleichen. Die Differenz daraus muss ich dann mit meiner Drehrate vom Steuern addieren. Danach diesen Wert umrechen sodass ich auf meine ms komme die dann an meinen Regler sende. Ich hoffe wirklich das das jetzt so richtig ist -.-
Hi, ja, so ungefähr. Da kommt jetzt der PID-Regler ins Spiel und wenn Du X-Konfiguration willst kommen noch ein paar Knoten im Hirn dazu. Jetzt noch die zweite Achse dazu und der Wahnsinn ist fast komplett. Jetzt muß ich Dich in die Welt des Experimentierens entlassen denn weiter habe ich das damals nicht getrieben. Nachdem mir wirklich klar wurde was dahinter steckt hab ich das ganz schnell wieder gelassen. Gruß, Norbert
Was zum Geier ist denn nun wieder die X-Konfiguration.... Im Grunde genommen muss das ja moeglich sein so einen PID-Regler zum implementieren auch ohne Doktor Titel ;) Ich werde einfach immer weiter forschen bis ich es habe :) Experimentieren ist immer gut und ohne waere es doch langweilig ;) Dann Danke ich dir und den anderen auch fuer die echt tolle Hilfe :)
Hi, X ist das übliche, ein Motor links vorne, einer rechts vorne, rechts hinten, links hinten. + ist einer vorne, hinten, links, rechts. Gruß, Norbert
Ach darauf hast du dsa bezogen ;) Nunja wie ich das weis ich schon so ungefaehr ;) schliesslich fliegt der ja schon, wenn auch nicht toll...
Norbert S. schrieb: > Nachdem mir wirklich klar wurde was dahinter steckt hab ich das ganz > schnell wieder gelassen. War bei mir auch so.. Lieber vorhandenen Code mit Verständnis lesen als ohne Verständnis rumbasteln und letzendlich nur Moppsen :D Es gibt irgendwo noch eine Bachelorarbeit als PDF zum Thema Steuerung und Aufbau einer QuadrocopterMCU mit aller Mathematik und Theorie..
Du könntest Dich mal vom GY-80 Board inspirieren lassen. Das hat zwar I2C und kein SPI, dafür aber Magnetfeld-, Gyro-, Beschleunigungs-, Temperatur- und Luftdrucksensoren zusammen auf einer winzigen Platine. Die Kalibrierung und Aufbereitung der Messdaten ist keineswegs trivial, aber es gibt eine Reihe von Beispielprogrammen und Literatur von den Sensorherstellern. Ich könnte mir vorstellen, dass man damit z.B. einen dsPIC schon gut beschäftigen könnte, für die Fluglagenkontrolle brauchst Du ja sicher eine gewisse Echtzeitfähigkeit.
Also ich will auch nicht soooo tief in das Thema einsteigen, aber ein bisschen will ich schon wissen, alleine weil es mich beschaeftigt wie es geht ;) Ich werde in der Steuerung ein PI ode auch einen PID Regler einsetzen bzw. programmieren. Ich habe mir auch schon ein paar Tutorials durchgelesen und angeschaut. Auch die Bachelorarbeit habe ich gelesen und bin mir recht sicher das ich es gut verstanden habe wie es Funktioniert. Also ob jetzt I2C oder SPI ist mir eigentlich wurscht mittlerweile. Ich hatte mich halt noch nicht mit I2C beschaeftigt gehabt und waere deswegen lieber auf SPI gegangen. Das hat sich jetzt aber geaendert. Vermutlich wird das schwierigste das filtern und kalibrieren der Sensoren sein. Die Aufbereitung natuerlich auch.. Sollte das alles funzen, heist es experimentieren ;)
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.