Dumme Frage zum Gyro MPU-6050

Hi,

ich würde gerne einen Servo über einen MPU-6050 Gyro ansteuern, wie in diesem Video zu sehen:

Ieider scheitere ich schon am ersten Schritt. Ich kann nirgenswo die Information finden an welche Pins der Gyro angeschlossen wird.
Da scheine ich irgendwass total verpasst zu haben. Ich hoffe es kann mir hier einer weiterhelfen.

Wenn jemand zusätzlich auch schon einen ähnlichen sample Sketch hat, würde ich auch nicht drauf spucken :slight_smile:

Danke und Gruss

Moin, darf man fragen, welchen Arduino du hast?
Hast du den mpu6050 auf einem Board, z.b. gy521?
Hast du einen Link zu deinem mpu6050?

Hier noch ne kleine Hilfe:

http://playground.arduino.cc/Main/MPU-6050

LG

Hi, danke für die schnelle Antwort.

Ich habe zwei UNOs und einen neuen Leonardo
Mein MPU6050 ist genau der im Link unten abgebildete.

Gerade dieser Link ist aber Teil meines Problems, denn der Anschluss oder die Bezeichnungen des Gyros wie SCL/SDA/XDA/XCL/ADO/INT werden dort nicht erwähnt.

Der MPU6050 hat ein I2C Interface (SDA/SCL) und wird demnach an die I2C Schnittstelle des Arduino angeschlossen (Analog Pins 4 und 5). Hier kannst Du dich näher über I2C informieren: Arduino Playground - HomePage

XDA/XCL ist eine zweite I2C Schnittstelle des 6050 für den Anschluss eines Magnetometers (z.B. HMC5883). Dessen Daten werden dann vom 6050 intern verarbeitet und zusammen mit den Accel./Gyro Daten ausgegeben, aus 6DOF werden dann 9DOF.

Mit ADO auf VCC oder GND kann zwischen zwei verschiedenen I2C Adressen gewählt werden. Wichtig, wenn man zwei 6050 gleichzeitig anschließen will.

INT gibt ein Interruptsignal aus, wenn Daten bereitstehen. Wird meist nicht benötigt.

Die beste Bibliothek für die Verwendung eines 6050 findest Du hier: varesano.net -

Hi,

danke, das hat mir schon einmal riesig weitergeholfen, jedoch leider jeden Menge neuer fragen aufgeworfen.

Ich fange mal von vorne an. Ich habe den Gryro an die 3,3 Volt angeschlossen, die grüne Betriebslampe Leuchtet. Dann SCL an PIN 4 und SDA and PIN 5. Dann die FreeIMU Bibliothek instaliert, und gleich das Beispiel MPU6050_raw geladen. Das bricht jedoch mit dieser Fehlermeldung ab:

MPU6050_raw.ino:39:21: error: MPU6050.h: No such file or directory
MPU6050_raw:45: error: 'MPU6050' does not name a type
MPU6050_raw.ino: In function 'void setup()':
MPU6050_raw:64: error: 'accelgyro' was not declared in this scope
MPU6050_raw.ino: In function 'void loop()':
MPU6050_raw:76: error: 'accelgyro' was not declared in this scope

Ein Blick auf die Files zeigt das tatsächlich kein MPU6050.h vorhanden ist. Kann ich das das hier nehmen, oder ist das eine total andere Baustelle?

Also der Uno hat doch auch extra SDA und SCL. Wenn du ihn umdrehst, dann auf der Seite und in der nähe des USB anschlusses, siehst du das stehen.

Da hab ich z.B. meinen angeschlossen, da es bei pin 4 und 5 nicht funktioniert hat. Muss auch zugeben, das ich nicht lange getestet habe :slight_smile:

LG

LoL. Bei mir konnte es gar nicht funktionieren da ich die digitalen Ports 4+5 verwendet habe. Das muss einem doch gesagt werden. Dann starte ich mal eine neue Testreihe.

UPDATE: Hat leider auch nichts gebracht. Fehlermeldung beim Upload von MPU6050_raw und kein Ergebnisse beim Sample Sketch auf Arduino Playground - MPU-6050 :frowning:

hehe. Dann kann das nicht gehen. Bin mir nicht ganz sicher, aber vielleicht solltest du die mpu6050.h von deinem Link noch mit in deinr library aufnehmen.
Dein Fehler besagt ja, das diese fehlt.

lg

hi,

die FreeIMU.h ist vorhanden. in:

FreeIMU-20121122_1126.zip\FreeIMU-20121122_1126\libraries\FreeIMU

Du mußt diesen letzten ordner FreeIMU direkt in Deinen libraries-ordner kopieren.

gruß stefan

bluebravo:
hehe. Dann kann das nicht gehen. Bin mir nicht ganz sicher, aber vielleicht solltest du die mpu6050.h von deinem Link noch mit in deinr library aufnehmen.
Dein Fehler besagt ja, das diese fehlt.

lg

Habe ich schon probiert. Dann kommt eine noch längere Fehlermeldung.

Wird das Gerät denn erkannt, wenn du den
http://playground.arduino.cc//Main/I2cScanner
mal laufen lässt?

Eisebaer:
hi,

die FreeIMU.h ist vorhanden. in:

FreeIMU-20121122_1126.zip\FreeIMU-20121122_1126\libraries\FreeIMU

Du mußt diesen letzten ordner FreeIMU direkt in Deinen libraries-ordner kopieren.

gruß stefan

Das habe ich gemacht. Wenn ich die Beispiele aus dem FreeIMU Ordner lade, passiert einfach gar nichts. Keine Fehlermeldungen, aber auch keinen Output auf dem serial Monitor.

bluebravo:
Wird das Gerät denn erkannt, wenn du den
Arduino Playground - HomePage
mal laufen lässt?

nope.

Scanning...
No I2C devices found

Angeschlossen sind derzeit:
VCC an +3,3 V
GND an GND
SCL an A5
SDA an A4

Bloß mal als versuch an die von mir erwähnten SCL und SDA pins gesteckt?

Die IMU hat einen 5V->3,3V regler drauf. Du musst mit 5V dran..

heavykopter:
Die IMU hat einen 5V->3,3V regler drauf. Du musst mit 5V dran..

keine Veränderung bei 5 V. Vieleicht ist einfach der Gyro im Ar&%$.

bluebravo:
Bloß mal als versuch an die von mir erwähnten SCL und SDA pins gesteckt?

Ach Verdammt. Ich war schon wieder die ganze Zeit an den falschen PINs.

"The pins supporting I2C/TWI previously used analog pins A4 & A5. Now these pins are located at digital pins D2 & D3". Ich vewrsuche es jetzt mit denen beim USB port.

heavykopter:
Die IMU hat einen 5V->3,3V regler drauf. Du musst mit 5V dran..

meiner läuft auch bei 3.3V

UPDATE: Direkt an die SCL/SDA angeschlossen, funktioniert es. Aus dem Sketch von kommen jetzt auch vernünftige Daten raus. XD

Hat jetzt noch zufällig jemand zur Fehlermeldung eine Idee

MPU6050_raw.ino:39:21: error: MPU6050.h: No such file or directory
MPU6050_raw:45: error: 'MPU6050' does not name a type
MPU6050_raw.ino: In function 'void setup()':
MPU6050_raw:64: error: 'accelgyro' was not declared in this scope
MPU6050_raw.ino: In function 'void loop()':
MPU6050_raw:76: error: 'accelgyro' was not declared in this scope

metulski:
UPDATE: Direkt an die SCL/SDA angeschlossen, funktioniert es. Aus dem Sketch von kommen jetzt auch vernünftige Daten raus. XD

Hat jetzt noch zufällig jemand zur Fehlermeldung eine Idee

MPU6050_raw.ino:39:21: error: MPU6050.h: No such file or directory
MPU6050_raw:45: error: 'MPU6050' does not name a type
MPU6050_raw.ino: In function 'void setup()':
MPU6050_raw:64: error: 'accelgyro' was not declared in this scope
MPU6050_raw.ino: In function 'void loop()':
MPU6050_raw:76: error: 'accelgyro' was not declared in this scope

Die Bibliothek aus dem FreeIMU Zip lautet MPU60X0 und nicht MPU6050. Auch die Dateien lauten so und in den Beispielprogrammen stehen auch die richtigen includes. Bist Du sicher, dass Du nicht aus versehen Beispiele verwendest, die woanders her sind?
Wobei ich mir an Deiner Stelle die Beispiele aus dem FreeIMU Bibliotheksverzeichnis ansehen würde. Da ist eigentlich alles dabei was man braucht. Probier mal "FreeIMU_yaw_pitch_roll" aus.