Go Down

Topic: Benötige Hilfe bei Auswahl eines Gyroskopsensors und Geschwindigkeitsmessers (Read 4682 times) previous topic - next topic

Tobias93

Hallo Manfred,

ja die Baudrate passt. Denkst du es ist ein Hardwaredefekt des Boards?

Gruß,
Tobi
Nobody is perfect but - impossible is nothing

Tobias93

hey,

also die Baudrate und alles passt aber jetzt bekomme ich das hier im serial monitor angezeigt:

Quote

Yaw: nan Pitch: nan Roll: nan
Yaw: nan Pitch: nan Roll: nan
Yaw: nan Pitch: nan Roll: nan


Egal wie man das Board bewegt es ändert sich an der anzeige nichts. Kann mir jemand weiterhelfen?

Gruß,
Tobi
Nobody is perfect but - impossible is nothing

MaFu


hey,

also die Baudrate und alles passt aber jetzt bekomme ich das hier im serial monitor angezeigt:

Quote

Yaw: nan Pitch: nan Roll: nan
Yaw: nan Pitch: nan Roll: nan
Yaw: nan Pitch: nan Roll: nan


Egal wie man das Board bewegt es ändert sich an der anzeige nichts. Kann mir jemand weiterhelfen?

Gruß,
Tobi

Ich glaube, das wird angezeigt wenn keine Daten von der IMU kommen. Korrekt an den Arduino angeschlossen?
Hast Du PullUps am I2C Bus? Manche 6050 Boards enthalten schon eigene PullUps.
_______
Manfred

Tobias93

Hey,

nein ich habe keine zusätzlichen Bauteile an dem Board angeschlossen. Ich habe die I2C Anschlüsse an den I2C Ports auf der I/O Pin Seite angeschlossen, das sind ja die Pins (steht dran SCL bzw. SDA) In manchen Anschlussplänen sind sda und SCL an den analogpins 4 und 5 angeschlossen. Das sollte aber auch so gehen oder? Denkst du es ist ein hardwareproblem oder ein softwareproblem? Werde gleich nochmal ein Tonic aufmachen, weil das ein Projekt ist und mir langsam die Zeit davon rennt, das Board muss doch schonmal bei irgendjemand anderes funktioniert haben und dann nehm ich genau das Programm und dann muss es ja bei mir auch gehen, nur damit ich weiß ob es überhaupt funktioniert.

Gruß
Tobi
Nobody is perfect but - impossible is nothing

MaFu

Ob I2C Pins oder die Pins 4 und 5 ist egal, die laufen intern eh zusammen.
Schau mal dass Du ein Datenblatt für das Board findest. Du müsstest prüfen, ob das Board I2C Pullups besitzt. Wenn nicht, musst Du die noch mit berücksichtigen. Probiers mal mit 4,7k.
_______
Manfred

Tobias93

Hey,
aus dem Datenblatt werde ich nicht so richtig schlau, kann ich die pull-up Wiederstände auch einfach zum testen dranlöten oder mach ich da was kaputt wenn es schon interne hat? Eigentlich mach ich nichts kaputt, das Signal wird wohl nur dann bei zwei pull ups einfach nicht mehr ankommen wegen dem Spannungsabfall oder?

Wie kann ich die I2C Adressse einstellen? Muss ich die einstellen?

Gruß tobi
Nobody is perfect but - impossible is nothing

Serenifly

Wenn du zwei Pull-Up dran hast sollten die parallel hängen. Dass heißt du halbierst die praktisch. Was soll da groß passieren? Im schlimmsten Fall funktioniert es immer noch nicht und du entfernst sie wieder.

Die I2C Adresse deines Moduls und deiner Software müssen schon gleich sein. Manche Module haben dafür Jumper, z.B. mein LCD. Andere haben sie fest und die Adresse muss dann in der Software eingetragen werden. Manchmal kann/muss man die Adresse im Konstruktor übergeben. Oder sie ist als Konstante festgelegt. Da musst du mal bei der Initialisierung der Klasse schauen. Wenn deine Bibliothek genau für den Sensor ist kann es auch schon passen.

Tobias93

Hey,
Ok ich versuche das mit den Pull Ups aus. Mit der Adressierung bin ich mir immer noch nicht wirklich sicher weil in meinem Sketch nichts von Adresse auftaucht.

Gruß,
Tobi
Nobody is perfect but - impossible is nothing

Serenifly

Schau mal in die Bibliothek des Sensors. Irgendwo in den globalen Variablen sollte da die Adresse mal definiert werden (z.B. über #define oder const). Wenn sie nicht passt kannst du sie da auch ändern. Sie wird auf jeden Fall bei Datenübertragungen angegeben. Also z.B. bei der Auslese-Methode. Kann sein dass sie da auch fest lokal steht.

Tobias93

hey,

was meinst du mit "wenn sie nicht passt" ?? Wie müsste sie den lauten? Ich finde in der FreeIMU.cpp und FreeIMU.h keine Angaben zu einer I2C Adresse des Gerätes.

Gruß,
Tobi
Nobody is perfect but - impossible is nothing

MaFu

Wenn ichs noch richtig in Erinnerung habe ist es 0x68 bei AD0 auf Masse (default) und 0x69 bei AD0 auf Vcc. Die Adresse steht vermutlich in der MPU60x0.h bzw MPU60x0.cpp.
Das Invensense Board sollte eigentlich einen Spannungswandler haben. Das welches ich kenne (vom Bild her) hat einen 5V Pin und einen 3,3V Pin. Wie sieht es bei Deinem aus?
_______
Manfred

erni-berni

Die Adressen sind in der MPU60X0 Library im File MPU60X0.h definiert.
Code: [Select]
#define MPU60X0_ADDRESS_AD0_LOW     0x68 // address pin low (GND), default for InvenSense evaluation board
#define MPU60X0_ADDRESS_AD0_HIGH    0x69 // address pin high (VCC)
#define MPU60X0_DEFAULT_ADDRESS     MPU60X0_ADDRESS_AD0_LOW

Tobias93

hey,

muss ich dann jetzt in der Library alle anderen Adressen ausklammern?

Gruß,
Tobi
Nobody is perfect but - impossible is nothing

MaFu


hey,

muss ich dann jetzt in der Library alle anderen Adressen ausklammern?

Gruß,
Tobi

Siehe mein Post im anderen Thread.
_______
Manfred

Tobias93

Nobody is perfect but - impossible is nothing

Go Up