Eigentlich nicht. Durch Rückgriff auf mühevoll erarbeites Halb- (in meinem Fall) und Fachwissen (in Arkons Fall) ist so ein Artikel in Nullkommanix geschrieben :-)
Druckbare Version
Hi Nils,
Scotch hat alles Wesentliche zusammen gefasst.
Willa hat mal zumindest die Idee, den IMU per I²C auszulesen, nicht komplett augeschlossen und einer der Svens (wenn ich mich recht erinnere) hat theoretisch "bewiesen", dass sich die beiden Kommunikationspfade nicht gegenseitig im Weg sind. Sein Argument war, glaube ich, dass die Motoren ihre Werte bekommen, wenn alles fertig berechnet ist, die Sensoren aber vorher ausgelesen werden müssen, um Werte für die Berechnungen zu bekommen.
Allerdings ist ja nach der Berechnung und vor der Berechung eigentlich die gleiche Zeit... Ich kann nur vermuten, dass genug Reserven im Mega328 stecken, um die Zeitanforderungen erfüllen zu können. Gegenseitig beharken können sich die beiden Kommunikationspfade nicht, da nur eine Datenleitung vorhanden ist, die für beide Richtungen (lesen der Messwerte und senden der Stellwerte für die Motoren) verwendet wird. Nacheinander.
Meine beiden Ansätze des IMU-Würfelersatzes per SD-746 und MPU-6050 sind jedenfalls von dieser Voraussetzung ausgegangen. Bisher hat aber meines Wissens noch niemand den Beweis angetreten.
SEMESTERFERIEN!!!!!!
Endlich.....
...hab ich wieder Zeit meine DLXm flugfertig zu machen. Die liegt schon seit Monaten mit gebrochenem Flügel in Ihrer Kiste.
Aus diesem Anlass frage ich mal vorsichtig nach ob noch jemand (Willa) ein paar 5x3 GWS 3-Blatt oder andere Artikel von www.gwsprops.com braucht. Der Shop kommt aus den USA ist aber einer der wenigen, der die kleinen Dreiblätter verkauft. Würde ne Sammelbestellung machen um die Versandkosten zu drücken.
BTW: Ich habe grade eine E-Mail an CNC-Modellsport geschickt und gefragt, ob sie nicht vielleicht doch Lust hätten meine letzte Bestellung welche ich vor 10 Monaten aufgegeben und bezahlt habe zu verschicken :D
Hallo Harry,
danke für deine Ausführliche Erklärung.
Ich habe aber auch noch eine Frag zu i2C.
Auf dem Triguid sind ja die Wiederstädte für den I2C Port drauf.
Ich habe hier ein BMP085 Drucksensor der auch per I2C angesprochen wird.
Der Sensor ist auf ein Breakout Board von Watterott
http://www.watterott.com/de/Breakout...en-Drucksensor
Auf dem Breakout Board sind ebenfalls Widerstände drauf. Muss ich die dann entfernen?
Gruß Ingo
Hallo Matthias,
stimmt die 3.3 V da war etwas. Aber ich habe irgend wo noch einen Spannungsregler rum liegen...
Gruß Ingo
Aber nicht vergessen das auch das I2C Signal auf 5V umgesetzt werden muss sonnst lebt der Drucksensor nicht lange
War das nicht umgekehrt?
Das I²C-Signal muss für die Lebenserwartung des Sensors auf 3,3 V gedrück werden.
Und der Mega328 braucht das I²C-Signal mit mindestens 3,2 V (rechnet man die Toleranzwerte nach Datenblatt).
Meine Theorie geht zwar in die Richtung, dass man zumindest einen Versuch wagen kann, ob die gegebene Kombination von Sensor und AtMega eventuell zusammen spielt, wenn die beiden I²C-Leitungen mit PullUps nach 3,3 V versehen werden, sicherer (im Sinne von Erfolg versprechender) ist aber, zwei FETs und zwei zusätzliche Widerstände zu spendieren und einen Pegelwandler nach der Appnote von Philipps (jetzt NXP) dazwischen zu schalten.
Den Tipp mit der Appnote bzw. den beiden FETs habe ich von Günter und Richard (siehe hier und ff: https://www.roboternetz.de/community...l=1#post493717).
Jo, Fehler vom Amt, das Signal muss auf 3,3 Volt runter. Aber man kann den Sensor nicht einfach so an ein Atmega anschließen. Auch mit Pull-Ups nicht. Denn der Atmega stellt den I2C Takt bereit und dann stehen 5V auf der Leitung. Oder meintest du Spannungsteiler? Das könnte funktionieren.
Mit den Sensor hab ich schon ausgiebig rumgespielt. Mein Converter sieht so aus,
Anhang 19282
Ist im Grunde das Gleiche wie die Schaltung aus den Mikrocontroller.Net Forum und funktioniert super.
Mfg
Matthias
PS: Ich weiß, der LM317 ist nicht exakt auf 3,3V eingestellt. Sind ungefähr 3,05V. Funktioniert aber trotzdem.
Nein. Es genügt die pull-ups gegen 3.3V statt gegen 5V zu legen. Weil - das ist auch der Grund weshalb man Pullups braucht- der Controller den Bus nicht treibt sondern nur gegen Masse zieht. Der high-Pegel stellt sich also von selbst ein wenn der MC nicht gegen Masse zieht.Zitat:
Aber man kann den Sensor nicht einfach so an ein Atmega anschließen. Auch mit Pull-Ups nicht. Denn der Atmega stellt den I2C Takt bereit und dann stehen 5V auf der Leitung. Oder meintest du Spannungsteiler?
gruß,
kounst
Guten Abend, oder auch nicht....
braucht noch jemand eine ganze Werkstatt voller Tricopterzubehör?
Ich geb auf.
Neue TriGUIDE, neuen Arduino, alles neu: Servo zittert.
What the f????????
Nils
Hmm verwirrt ich jetzt bin.
ich habe jetzt mal kurz Google bemüht.
Es gibt I2C Komponenten die mit 3,3v laufen aber 5V auf dem I2c Bus tolerant sind und auch welche die es nicht sind.
Für diese gibt es Pegelwandler IC's
z.B. diese Geschichte hier.
http://store.diydrones.com/I2C_SMBus...br-0009-04.htm
@Nils,
das ist echt Sch... ist das zittern so stark das es das Fliegen beeinträchtigt?
Ich habe hier noch eine kleine Platine mit der man mehrere Servos per I2C ansteuern kann.
Habe ich allerdings noch nie getestet. Villeicht könntest Du auf diesem Wege ein zitter freies Servo erhalten.
Und Du kannst den Nick Roll Ausgleich auch darüber steuern.
Z.B. könnte man auch eine von Willa seinen i2c zu ppm Platinen benutzen.
Ok ist ein erheblicher Aufwand für die Programmierung. Ein Versuch wäre es aber wert.
Gruß Ingo
Was mir gerade zum Thema i2c -> Servo einfällt.
Es würde das µC entlasten da man den PPM für das Servo nicht erzeugen muss.
Gruß Ingo
Fliegen macht so keinen Spaß. Das kann Im Testsetup ist keine einzige alte Komponente mehr vorhanden...
Es war ja vorher auch nicht da, zu allem Überfluss ist auch der QuadroPPM auch noch hinüber, der macht keinen Muxx mehr. Nochmal 30 Euro...
Ich hab die Nase voll.
Hat noch jemand Lust sich die Platinen von mir schicken zu lassen um sie zu untersuchen? Ich hab keine Lust mehr...
Nils
Ja du hast recht. Es gibt solche Komponenten und auch MC die mit 3.3V laufen und trotzdem einige IO Ports haben die 5V vertragen. Die können da aber auch nicht 5V treiben sondern nur 3.3V. Aber es macht ihnen nix wenn 5v anliegen.Zitat:
Es gibt I2C Komponenten die mit 3,3v laufen aber 5V auf dem I2c Bus tolerant sind und auch welche die es nicht sind.
Das hat natürlich den Vorteil das der Bus mit 5V laufen kann und trotz 3.3V Komponenten die 5V logikpegel !sicher! erreicht werden.
@Nils: Das ist ja schei..!! Kann mir deine Frustration vorstellen.
Ich würde dir vorschlagen nicht gleich ganz das Handtuch zu werfen. Vielleicht findet sich ja wer der sich deine Platine anschaut. Ansonsten solltest du vielleicht etwas pausieren und etwas Abstand gewinnen... Ich schätze deine Frustrationstoleranz ist ausgeschöpft..
gruß,
kounst
@Nils
Ist das zittern im stand eher ein leichtes brummen und im Flug fängt das Servo an zu springen?
Guten morgen (sigh),
Zittern:
http://www.youtube.com/watch?v=mxw9D...eature=related
Zusammenfassung:
-Alle(!) Teile getauscht (Empfänger servo Stromversorgung, Triguide Arduino etc.)
-Auch die servos für die Kamera an anderen Kanälen Zittern
-originalsoftware und Parameter probiert.
und das Zittern hatte ich vorher nicht!
Nils
HI Nils,
langsam wird´s mysteriös...
Die einzige Komponenten, die immer identisch sind, sind noch dein Akku und die Verbindungen vom Akku zur Platine.
Ah, vorgestern hatte ich noch eine Idee aber wieder vergessen: Stehen die Fuses in deinen Arduinos korrekt?
Ich kenne mich damit nicht so wahnsinnig gut aus, aber wenn beispielsweise der Clock nicht vom externen 16 MHz-Quarz sondern aus Versehen vom internen 8,xx MHz Oszillator abgeleitet wird, stimmt im Timing so gut wie nichts. Ob der Rest dann überhaupt noch funktionieren würde, wage ich zu bezweifeln, aber miss doch einfach mal an der grünen LED, ob dort die richtige Frequenz anliegt (Oszi hast du doch im Zugriff, oder?)
Willa hat die Zeile 1015 so kommentiert:
"Set Led_grn 'toggle green led every 500 cycles (I use this to determine the speed of the program)"
Da müsste Willa mal angeben, welchen Wert er dort normaler Weise misst.
Hast du noch parat, wann das Gezappel angefangen hat?
Du bist vorher geflogen wie ein junger Gott, dann hast du auf 2,4 GHz umgerüstet, Piepser eingebaut, Nivellierung im Flug eingebaut, das Kameragedöns angeflanscht...
Hast du auch Willa Mod auf Hardware-I²C nachgezogen?
Hi Harry,
ich habe 5 Verschieden Akkus, habe sowohl den Kabelbaum mit den ESCs Verwendet, als auch einen akku Direkt angeschlossen und nun verwende ich ein Labornetzte3iul zu Inbetriebnahme, auch nutze ich einen anderen Empfänger, da der ATmega 88 meines QuadroPPM tot ist.
Die einzige Konstante in der ganzen Zeit bin ich.
Das mit den Fuses würde aber nicht erklären, warum das auf einmal auftrat.
Also ich bin geflogen und habe festgestellt, dass die Kamera eine Dämpfung braucht, daraufhin habe ich Gummipuffer eingebaut, beim Testflug ist mir das Wackeln aufgefallen.
Kann der neue Arduino evtl bei dem Kurzschluss auf dem alten Board was mitbekommen haben?
Ich habe auch überlegt, ob der alte Arduino evtl. einen Metallspan beim Bastelb abbekommen aht oder so.
Sonst weiss ich auch nicht mehr.
Ich hab noch drei Wochen Zeit dann muss der Mist fliegen.
Ich bestell gleich einen dritten Arduino.
Wer hat Lust sich meine Platine und den Arduino mal vorzunehmen?
Ich rbauch mal einen direkten Vergleich evtl. Leide ich ja doch unter Wahnvorstellungen...
Gruß
Nils
Hi Nils
Nur so ein gedanke, warst du es nicht der sein Gyro damals zerrissen hat? Die sachen mit den abgerissenen Kondensator. Nicht das da was im argen liegt oder sich was aufschwingt.
Wie sehen denn im TriGUI die Live Werte vom Yaw Gyro aus? Zappeln die auch?
Mfg
Matthias
Hi, hab ich auch schon gedacht, der Gyro ist ja fachgerecht repariert, und die Tests fanden unter anderem ohne IMU statt und auch mit im code deaktivierten Gyro einfluss.
Gruß
Nils
Nur so zur Info, wie hoch ist denn die gesamt Stromaufnahme. Also Gyro+Triguide+Servo+Empfänger mit abgeklemmten Motoren?
Moinsen,
Oben angegebene Config mit Labornetzteil:
Durchschnittliche Stromaufnahme 61mA
Maximal: 82mA (LEDs blinken)
Minimal 58,23
Gruß
Nils
Moin Nils,
ist das teil wirklich nicht fliegbar?
ich habe grade extra mal meine akkus geladen und getestet.
es sieht genauso aus wie bei deinem zuletzt geposteten video!
und das letzte mal als ich flog funktionierte alles 1A!
ich würde ja mein signal auch mit einem oszi prüfen. aber mein ausbilder ist z.z. im urlaub und ich kann nicht mit dem oszi umgehen.
gruß, sven
Hi,kann mal jemand schauen was passiert, wenn ihr den IMU würfel abnehmt. Würd mich interessieren.
@Bammel: Und das sieht bei dir dann auch so aus?
http://www.youtube.com/watch?v=Z7z5u64NMFY
Also ich weiss ja nicht...
Nils
ohne imu intialisiert die triguide doch garnicht!
ufff so heftig zittert das bei dir!? da ist wirklich was im argen... meinst net das liegt an der sw... aber das ist schon alles sehr komisch! hast du mal alles freiluftverdrahtet!? also nicht im chassis selbst!? vllt fängst du dir da störungen ein!
du hast doch aluteile!? hast du die mal mit masse verbunden!? habe gehört das es da probleme geben kann, also wnen die nichts mit masse verbunden sind
ikke will einfach net das du das teil in die ecke haust und einen mk baust :D die mk's sind zwar auch gut. habe aber auch noch keinen geflogen.
wenn du die ganze hardware getauscht hast kanns ja nurnoch die software sein! ist das signal immernoch so verschoben?
Hi,
alles ist außerhalb des Kopters verdrahtet, kein Kontakt mit dem chassis. Die TriGUIDE initialisiert ohne IMU sehr wohl.
An der Software kanne s nicht liegen, ich nutze Willas Originalcode mit Originalparametern. Die haven vorher funktioniert. Das ist ja nicht schon immer so gewesen mit dem zittern...
Nils
also grade ohne imu getested. der servo drifftet langsam zu einer seite abe aber die bewegungen sonst sind sauber... sieht nur ein wenig rasted aus aber das war schon immer so.
Hi Nils,
wie ist denn das Verhältnis deiner Hebel am Servo und am Motorträger?
Auf dem Film sieht das ein bisschen nach Übersetzung aus, sprich der aktive Teil am Servoarm ist länger als am Motorträger.
Bei meiner Konstruktion ist der Servoarm kürzer als am Motor, sprich, ein Zittern des Servos wirkt sich nicht so stark aus.
Zusätzlich sitzt dein Motor "oben drauf", d.h. der Motor belastet den Servo stark, das Ganze kann sich aufschwingen.
Was passiert, wenn du den Motor abmontierst (oder einfacher, nur den Servo ohne sonstige Mechanik betreibst)? Ich glaube, du hast schon früher geschrieben, dass der Servo auch ganz alleine zittert, stimmts?
Eben fällt mir noch ein, hast du mit deinem neuen Chassis schon immer Probleme gehabt, oder flog dieses neue Chassis auch schon ohne Servo-Gezitter?
Ich weß, Murphy ist überall, aber dass beide Arduinos auf Grund eines Kurzschlusses den gleichen Fehler bekommen, erscheint mir schon recht unwahrscheinlich.
Wenn ich mehr Zeit hätte, würde ich dir ja eine Untersuchung anbieten, aber momentan bekomme ich nichts zusammen, der Krempel würde nur hier rumliegen und Staub ansetzen. Das hilft dir auch nicht weiter. Frühestens im September habe ich wieder ein bisschen Luft für solche Späße, aber ich hoffe, wir bekommen dich früher wieder in die Luft.
Ja, das erscheint mir auch sehr unwahrscheinlich. Zumal ein Zusammenhang zwischen einem Kurzschluss und den am Oszi sichtbaren zittrigen Impulslängen sicher auch nicht einfach zu erklären wäre.Zitat:
...dass beide Arduinos auf Grund eines Kurzschlusses den gleichen Fehler bekommen, erscheint mir schon recht unwahrscheinlich.
Bei fixem Timerladewert tritt das Zittern nicht auf, als Ursache wurde eindeutig der 1er Sprung des RC-Empfängers identifiziert (soweit ich mich erinnere). Deshalb würde ich versuchen das Eingangssignal etwas zu filtern, z.b. nur Änderungen über einer gewissen Schwelle weiterzuverarbeiten:
Wenn (neues_Empfängersignal > (Empfängersignal+Schwelle)) oder (neues_Empfängersignal < (Empfängersignal-Schwelle))
dann Empfängersignal=neues_Empfängersignal
HI Nils,
das sind normale Werte, deckt sich in der Größenordnung mit meinen Messungen. Meine Werte liegen im Schnitt 10 mA drunter, aber du hast helle 5 mm LEDs, meine SMD-LEDs sind deutlich sparsamer ausgelegt.
[edit]
Upps, habe den Kontext vergessen: Meine Antwort bezieht auf die Stromwerte des IMUguide.
@Nils
Die Stromwerte sehen normal aus. Zucken die Motoren denn auch? Wird das Zittern weniger wenn du mit der Fernsteuerung etwas weg gehst? Wie ist das Antennenkabel verlegt?
Wie greifst du das PPM Signal ab?
Mfg
Matthias
So, ich war gerade im Keller und habe mal das Oszi angeworfen und ein paar Filmchen gedreht... ja, natürlich von meinem Tri und dessen Servo.
Die kurze Zusammenfassung vorweg: Mein Servo zittert ebenfalls, das wirkt sich aber auf den Motor nicht so sehr aus (meine Vermutung: Die Übersetzung ab Servo-Hebel bis zum Motor ist bei mir UNTERsetzt, ca. 8 mm zu 10 mm, und der Motor sitzt zentriert hinter der Drehachse der Lagerung, mein Servo muss also nur die Masse des Motors drehen, nicht schwenken. Die Mechaniker unter euch können sicher erklären, warum das besser ist).
Der Servoimpuls wandert bei meiner TriGUIDE langsam von der Mitte weg und zappelt dabei ebenfalls leicht, was der Servo ja deutlich genug in Bewegung und Lärm umsetzt.
Nils, versuche doch einfach mal, deinen Motor ebenfalls uns Tiefgeschoss zu setzen... ach nee, das geht bei dir ja nicht so einfach wie bei meiner Konstruktion.
Ich versuche mal, die wesentlichen Teile meiner Filmkunst so aufzubereiten, dass ich sie hier zeigen kann...
http://www.vimeo.com/26210647
... geht noch einen Augenblick, hab´s gerade erst hochgeladen...
also was man da im letztenvideo sieht ist ganz klar ein aufschaukeln der servoINTERNEN regelung. der hebelarm ist sehr ungünstig gewählt (ca. faktor 3 zu groß), und der schwere motor bringt das servo zum schwingen. wenn du das änderst sollte es wenigstens wieder fliegbar werden... Es reichen zum fliegen eigentlich auch 45° gesamtausschlag (also so 25°nach links und 20° nach rechts). Jedenfalls hat das servo dann ein deutlich einfacheres leben.
Hallo an alle,
zunächst einmal vielen dank für die Antworten von gestern, bin leider auf dem Sprung nach Hamburg, ich werde mich heut abend um eure Tipps kümmern.
Ich habe gerade eben einmal aus Interesse den IM durchgemessen.
Ich habe mal alle Widerstände zwischen den Massen der Gyros und des ACC gemessen und das selbe für 5V und dabei ist mir aufgefallen, daß der Yaw Gyro keinen Kontakt zum 5V Eingang und zu den anderen 5V Pins der Gyros hat. Und eine Spannung messe ich im Betrieb zwischen GND und 5V auch nicht WTF?????
Wieso liefert der dann bitte Werte ohne Versorgungsspannung?
Habe ich etwa die ganze Zeit an der Falschen Stelle gesucht oder was??
Nils
Der wird dann nichts gemessen haben ausser das rauschen im äther. :-)
Aber das Zittern trat doch auch ohne IMU bzw. mit deaktiviertem IMU per Software auf oder? Was gibt die TriGUI denn für den Gyro aus?
Was du aber wirklich noch umsetzen solltest sind die Vorschläge zur Optimierung der Servowege/-arme. Wie schon öfter hier beschrieben sind deine Hebelwege suboptimal. Dazu kommt, dass dein Motor, wie von Harry beschrieben, über der Drehachse liegt. Damit liegt auch der Schwerpunkt über der Achse wodurch der Servo mit größeren Drehmomenten (Masse*Hebelarm=Drehmoment) zu kämpfen hat. Kommt dann noch dazu, dass sich der Motor(+Propeller) dreht wirkt zusätzlich noch dessen Trägheitsmoment in das System mit ein. Das in Kombination mit deine Übersetzung kann die Haltekraft des Servos leicht übersteigen wodurch er nachregelt und sich dann halt aufschaukelt.
Ich bin auch dagegen, dass du deine Hardware in die Ecke kloppst oder verkaufst. Irgendwie wird sich das Problem schon lösen lassen. Und noch haben wir zwei gute Ansätze ;)