INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Servo.h und Digitalservos
12.03.2015, 21:20
Beitrag #17
RE: Servo.h und Digitalservos
(12.03.2015 20:41)fs82 schrieb:  Hi,
ich hab alle Varianten zunächst als Minimalbeispiel getestet, also ohne MPU6050. Die Variante mit dem selbst generierten Servoimpuls von Bitklopfer hab ich vorhin mal in meine Programm mit MPU6050 übernommen und da zittern die Servos extrem. Nachdem ich sukzessive den MPU6050 Code herausgelöscht habe und schlussendlich keiner mehr drin war, waren die Servos auch wieder ruhig. Würde also mit ziemlicher Sicherheit davon ausgehen, dass da irgendwo ein Interrupt vom MPU6050 dazwischenfunkt.

Gruß
Fabian

klaro, also zumindest das normale delay() wird durch Interrupts unterbrochen, das haben wir hier mal ausgetestet. Und ich denk mal das da dann delayMicroseconds() auch keine Ausnahme macht.
Aber hast du schon mal versucht vor der Servoausgabe die Interrupts zu verbieten mit noInterrupts() und nachdem die Impulse raus sind wieder mit interrupts() zulassen. Dann müßte dieser MPU6050 Interrupt solange Pause haben. Dann kommts nur noch drauf ob das die MPU abarbeitung nicht stört.
lg
bk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.03.2015, 21:27 (Dieser Beitrag wurde zuletzt bearbeitet: 12.03.2015 21:28 von fs82.)
Beitrag #18
RE: Servo.h und Digitalservos
Soweit ich da durchsteige hat die MPU6050 ein 400KHz Frequenz. Ich hab schon mal versucht kleinere delays() in der Größenordnung von wenigen Millisekunden einzubauen und bin jedesmal in einen FIFO-Buffer-Overflow gelaufen. Aber ich glaube da macht nur Versuch kluch. Werd das morgen mal ausprobieren.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.03.2015, 21:51
Beitrag #19
RE: Servo.h und Digitalservos
(12.03.2015 21:27)fs82 schrieb:  Soweit ich da durchsteige hat die MPU6050 ein 400KHz Frequenz. Ich hab schon mal versucht kleinere delays() in der Größenordnung von wenigen Millisekunden einzubauen und bin jedesmal in einen FIFO-Buffer-Overflow gelaufen. Aber ich glaube da macht nur Versuch kluch. Werd das morgen mal ausprobieren.

...ähm Delays in Summe größer ca. 10mS sind aber in dem anderen Programm quasi verboten....das mußte dann mit der blinken ohne Delay Konstrukion machen. Sonst zappelt da gleich wieder was fürchterlich...
ähm dieser MPU Sensor hängt doch am i2C Bus...verstehe nicht warum der Trouble machen soll...der sagt doch nur was wenn er gefragt wird. Huh und ja der i2C Bus läuft mitunter mit 400KBit...

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.03.2015, 10:27
Beitrag #20
RE: Servo.h und Digitalservos
(12.03.2015 21:20)Bitklopfer schrieb:  Aber hast du schon mal versucht vor der Servoausgabe die Interrupts zu verbieten mit noInterrupts() und nachdem die Impulse raus sind wieder mit interrupts() zulassen.

Astrein, das funktioniert perfekt. Das ist mal wieder der Beweis dafür, um mal Einstein zu zitieren: "Mache die Dinge so einfach wie möglich - aber nicht einfacher." Als Bonus wird der Quelltext deutlich schlanker als mit Servo.h oder irgendeiner anderen Bibliothek. Danke für die Hilfe :-D

Beste Grüße
Fabian
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.03.2015, 10:38 (Dieser Beitrag wurde zuletzt bearbeitet: 13.03.2015 10:43 von Thorsten Pferdekämper.)
Beitrag #21
RE: Servo.h und Digitalservos
(12.03.2015 21:27)fs82 schrieb:  Soweit ich da durchsteige hat die MPU6050 ein 400KHz Frequenz.
Das ist die maximale I2C-Frequenz. Die ist aber per Default im Arduino niedriger und muss erstmal hochgesetzt werden, um wirklich die 400KHz zu erreichen.

Zitat: Ich hab schon mal versucht kleinere delays() in der Größenordnung von wenigen Millisekunden einzubauen und bin jedesmal in einen FIFO-Buffer-Overflow gelaufen.
Die JRowberg-Lib lässt den MPU6050 alle 10ms einen Interrupt erzeugen. Das kann man auch ändern. Ich hab das bei mir auf 50Hz laufen, also alle 20ms. Wenn man das macht und zusätzlich den I2C-Bus beschleunigt, dann braucht die Kommunikation mit der MPU nur noch wenige Millisekunden.

(12.03.2015 21:51)Bitklopfer schrieb:  ähm dieser MPU Sensor hängt doch am i2C Bus...verstehe nicht warum der Trouble machen soll...der sagt doch nur was wenn er gefragt wird. Huh
Das Ding erzeugt periodisch einen Impuls, der normalerweise auf Pin 2 oder 3 angeschlossen wird. Das ergibt dann einen Interrupt, wenn die MPU ihre Daten bereitstellt. Das kann man auch anders machen...

(13.03.2015 10:27)fs82 schrieb:  Astrein, das funktioniert perfekt. Das ist mal wieder der Beweis dafür, um mal Einstein zu zitieren: "Mache die Dinge so einfach wie möglich - aber nicht einfacher."
Tja, es kommt halt darauf an, was man genau machen will. Bei meinem Quadkopter macht es nichts aus, wenn die Impulse, die in die ESCs gehen, leicht schwanken. Die ESCs bilden eh einen Mittelwert. Die Daten von der MPU will ich aber möglichst genau zu den richtigen Zeiten haben.

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.03.2015, 10:46
Beitrag #22
RE: Servo.h und Digitalservos
Ok, gut zu wissen. Ich behalte das mal im Hinterkopf für den Fall das die aktuelle Programmierung nicht richtig funktioniert. Jetzt wird es erst einmal Zeit für den Erstflug, muss nur doch die Platine und das ganze Stromzeugs an den Flugapparat montieren und dann schauen wir mal ob es wirklich so funktioniert wie geplant. Danke an alle für die kompetente Hilfe.

Beste Grüße
Fabian
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.03.2015, 11:17
Beitrag #23
RE: Servo.h und Digitalservos
(13.03.2015 10:46)fs82 schrieb:  ... Flugapparat ...
Um was für einen Flugapparat geht es denn da?

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.03.2015, 11:57
Beitrag #24
RE: Servo.h und Digitalservos
(13.03.2015 10:38)Thorsten Pferdekämper schrieb:  ...
(12.03.2015 21:51)Bitklopfer schrieb:  ähm dieser MPU Sensor hängt doch am i2C Bus...verstehe nicht warum der Trouble machen soll...der sagt doch nur was wenn er gefragt wird. Huh
Das Ding erzeugt periodisch einen Impuls, der normalerweise auf Pin 2 oder 3 angeschlossen wird. Das ergibt dann einen Interrupt, wenn die MPU ihre Daten bereitstellt. Das kann man auch anders machen...

na dann haben wir da doch den Störenfried wo die Servoimpulse versemmelt wenn der da ungehindert am Interrupt ziehen darf...
Nur ist mit dieser Erkenntnis noch keine Lösung integriert...
lg
bk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
Star ATtiny Servo SOS SOS hansanne1310 16 262 Gestern 15:46
Letzter Beitrag: hansanne1310
  Servo über Temperatur steuern querkopf71 3 83 07.12.2016 19:21
Letzter Beitrag: hotsystems
  ATtiny und Servo Bibliothek malsehen 9 315 15.10.2016 18:09
Letzter Beitrag: malsehen
  Servo soll nur in Ruhelage stoppen Sven1996 1 243 19.08.2016 14:37
Letzter Beitrag: StephanBuerger
  Steuern von 4 Servo mittels eines Taster und eines Potis Jackie09 17 766 16.07.2016 11:43
Letzter Beitrag: Binatone
  Servo und PWM Ausgabe F2Ingo 4 497 17.06.2016 14:53
Letzter Beitrag: F2Ingo
  Hilfe bei Servo-steuerung Innocence 7 823 23.02.2016 11:00
Letzter Beitrag: hotsystems
  Servo.h lässt sich nicht einbinden ^^ EvilBen 5 706 08.02.2016 18:07
Letzter Beitrag: hotsystems
  Weichensteuerung mit Servo RCudino 21 3.036 05.01.2016 18:04
Letzter Beitrag: Markus0815
  Servo per Serieller Mointor ansteuern iggy 1 821 03.08.2015 03:08
Letzter Beitrag: yasi

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste