MPU6050 raspberry

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hi Leute,

    ich habe die Software von R.Hirst nach der neuen Hardware vom Pi (Rev.2) angepasst.

    Das kleine Video zeigt die Lageveränderung MPU6050 (linke Hand Kamera, rechte Hand Board).
    Größere Bewegungen sind möglich.

    Hardware:
    raspberry pi mit Debian Image
    i2cdetect - detect I2C chips
    i2cdetect -y 1,
    ic2 Adr bei mir 0x69
    MPU6050 (von drotek, Frankreich)
    http://www.drotek.fr/shop/en/42-mpu…elerometer.html
    Coppler von Adafruit
    http://www.adafruit.com/products/914
    Kann aber auch direkt GPIO Port verbunden werden

    [youtube]aXAdcCq37no[/youtube]

    Gruß
    Kurt

    :)

  • Hey Kurt,

    gibts darüber irgendwo nen kurzen Bericht, wie genau du den MPU6050 eingerichtet hast und wie man die Bildschirausgabe verwirklicht?
    Hört sich ziemlich interessant an. Leider kenn ich mich mit dem I2C-Bus noch nicht so gut aus.

    Gruß James

  • Hi James,

    hier Infos zur Anwendung.

    Software
    apt-get update
    apt-get install i2c-tools
    ----------------------
    demo_3d laden.
    http://www.raspberrypi.org/phpBB3/viewtop…=22266&p=296126

    Ich habe im Pfad /home/pi/MPU6050-Pi-Demo die Software installiert.

    Hardware
    Modul 6050
    + 3,3 Volt, Gnd, SCL, SDA
    Kennung auf der Rückseite.

    i2cdetect -y 1 (raspberry Rev 2)
    Anzeige 69 - OK

    cd/home/pi/MPU6050-Pi-Demo

    Evtl noch Rechte chmod +x *

    startx aufrufen
    LXTerminal aufrufen.

    sudo demo_3d

    Gruß
    Kurt

    :)

  • Hi Kurt,

    danke für die schnelle Antwort. Werd ich morgen gleich ausprobieren.
    Hast du vielleicht auch etwas im Zusammenhang mit Python und dem smbus Modul oder
    etwas in der Art gemacht/gefunden?
    Bin jetzt schon n paar Stunden auf der suche und hab nichts brauchbares gefunden.
    Der MPU scheint eher bei den Arduinousern beliebt zu sein :)

    Gruß James

  • Hilfee...ich bekomme immer den Fehler: "Failed to write reg: Input....." .
    Ich hab ja das model A und darum in der Datei I2Cdev.cpp überall bei "/dev/i2cdev-0" die Null durch eine Eins ersetzt.
    Wenn ich "$i2cdetect -y 1" eingebe, wird mein MPU als 69 angezeigt.
    Hat vielleicht jemand ne Idee, woran das liegen könnte ?

    Gruß James


    Fehler beim Ausführen von demo_dmp:


    Code der I2Cdev.cpp Datei:

  • Hallo,

    ich habe mir auch den MPU6050 gekauft, habe allerdings ein kleines Problem mit der Temperatur. Ich möchte sie gerne aus den Registern 0x41 (HB) und 0x41 (LB) auslesen, ich bekomme die Werte, kann Sie aber nicht in sinvolle °C Werte wandeln. Leider bekomme ich Werte um die 190°C, hatte schon überlegt ob es in Fahrenheit oder Kelvin ausgegeben wird, aber das wären beide nicht akzeptable Werte. :)
    Im Datasheet steht, dass das LB -531 bei 35°C ist. Ich habe mal unten rein gepackt was ich durchführe, hat jemand ne Idee wo mein Denkfehler liegt? :)

    Code
    Temp_H = wiringPiI2CReadReg8(fd, MPU6050_RA_TEMP_OUT_H);
    Temp_L = wiringPiI2CReadReg8(fd, MPU6050_RA_TEMP_OUT_L);
    printf("Temp_H: %i, Temp_L : %i\n", Temp_H, Temp_L); //debugging
    Temp_H=Temp_H<<8;
    Temp_raw=Temp_H+Temp_L;
    printf("Temperatur raw: %i\n", Temp_raw); //debugging
    Temp_C=((float)Temp_raw+(float)521)/((float)340)+(float)35;
    printf("Temperatur in Celsius: %f \n",Temp_C);

    Danke schon mal,
    Auti

  • Moin!

    1)

    Code
    Temp_H=Temp_H<<8;
    
    
    Temp_raw=Temp_H+Temp_L;

    Sind Temt_H und Temp_L jeweils uint8_t (also unsignet 8bit lang?)
    Und: Ist Temp_raw int16_t, also signed 16bit lang?

    Zitat

    Daran lags bei mir.

    2)

    Kann man binär einfach so mit + und - rechnen? Im Grunde willst du ja vorallem ein "oder" haben, oder? ;) Ich habe es nicht ausprobiert, aber bei mir geht es so:

    Code
    uint8_t a,b;
    uint16_t accelx=0;
    float accel_x;
    
    
    a=wiringPiI2CReadReg8(dev, 0x3C);
    b=wiringPiI2CReadReg8(dev, 0x3B);
    accelx= ( b << 8) | a;

    Lg

    -Lego

    Einmal editiert, zuletzt von lego2minecraft (5. Dezember 2013 um 08:40)

  • Kenn mich leider nicht so gut aus mit solchen gyros. Aber könnte man mit dem MPU6050 4 Verbraucher (z.B Motoren/Leds ist mir zur Zeit noch ziemlich egal was...) ansteuern, also wie sieht das auch hat man da 4 outputs wo sich die Spannung mit dem Winkel ändert?
    Ist sicher schwerer als ich mir das vorstelle aber wenn man sich damit beschäftigt könnte man das doch hin bekommen oder ist dafür ein Gyro besser? :)

    Hoff mir kann jemand weiter helfen!

    Einmal editiert, zuletzt von Valerian (16. Februar 2014 um 02:35)

  • Muss das Thema nochmals nach vorne geben sorry, aber kennt sich jemand mit dem MPU6050 aus und vielleicht auch schon einmal 4 Verbraucher damit geschaltet.
    Oder vielleicht gibt es da auch was besseres als diesen Gyro :)

    Habe 4 ventile die Hydraulikzylinder ansteuern.

  • Ohne mich damit jetzt großartig beschäftigt zu haben. Der Chip wird ja über I2C angesteuert und so brauchst du mindestens einen µProzessor der die Lage des Chips ausließt und dann kannst du mit den Daten, was auch immer du gerade vorhast, dein Vorhaben realisieren.

    Aber den [font="Tahoma, Verdana, Arial, sans-serif"]MPU6050 an den PI anschließen und dann über die GPIO die Hydraulikzylinder ansteuern, sollte funktionieren(ohne Gewähr)![/font]


  • Kenn mich leider nicht so gut aus mit solchen gyros. Aber könnte man mit dem MPU6050 4 Verbraucher (z.B Motoren/Leds ist mir zur Zeit noch ziemlich egal was...) ansteuern, also wie sieht das auch hat man da 4 outputs wo sich die Spannung mit dem Winkel ändert?
    Ist sicher schwerer als ich mir das vorstelle aber wenn man sich damit beschäftigt könnte man das doch hin bekommen oder ist dafür ein Gyro besser? :)

    Hoff mir kann jemand weiter helfen!


    Moin!

    Der MPU ist ein Gyro (Winkel pro sec) UND ein Accelerometer (Beschleunigungssensor, also z.B. Pos. zum Schwerefeld der Erde). Daher kannst du auf jeden Fall vier externe Verbraucher damit steuern. Sensoren wie der MPU6050 werden gerne für selbst gebaute Quadrocopter benutzt und da muss man ja eben gerade vier Motoren auf Grundlage des aktuellen Winkels/Winkelgeschw. ansprechen. Also das ist kein Problem :)

    Lg
    Lego

  • Ich finde hier keine Anschluss Beschreibung oder bin ich blind :huh:

    Wie habt ihr euer MPU6050 breakout-board an den PI verkabelt?


    Es gibt aber unterschiedliche MPU6050 (manche haben 10 pins, andere aber nur 8 usw), deshalb solltet ihr möglichst immer verlinken wo ihr den her habt oder genauer dazu schreiben um was für ein MPU6050 es sich handelt...
    ich hab zB ein GY-521 :
    GY_521.jpg


    PS: Und bitte auch eure Beiträge vor dem Abschicken noch mal Korrektur lesen und Schreibfehler ausbessern - danke
    PPS: Und ggf auch mal die Forumsuche oben rechts nach MPU6050 bemühen

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!