-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: MPU6050 mit Atmega32

  1. #1

    MPU6050 mit Atmega32

    Anzeige

    Guten Abend liebe Roboternetz-Gemeinde,

    ich habe hier ein MPU6050 (genauer: ein 10DOF von drotek).
    Hat jemand diesen schon erfolgreich mit einem Atmega32 ausgelesen bekommen?
    Irgendwie komme ich da nicht weiter und finde auch nur Code für Arduino-Plattformen.
    Vielleicht kann mir jemand hier seinen Code posten?
    Man muss das Rad ja nicht immer wieder neu erfinden und ich wäre der Person sehr dankbar
    Hier haben ja schon einige mit dem Sensor gearbeitet.

    Liebe Grüße,
    Kreata.

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    24
    Beiträge
    1.544
    Hi,

    ich verwende auch einen MPU60x0, lese ihn aber mit einem ATXMega32A4 aus. Wenn du den ATMega32 mit 5V betreibst, brauchst du einen Pegelwandler.
    Als erstes müsstest du uns natürlich verraten, in welcher Sprache zu Programmieren möchtest, sonst wirds schwer mit dem Code posten.
    Es gibt auch genug Beispiele im Inet, wo man sehr schön sieht, wie man den Sensor auslesen kann / soll / muss

    Gruß
    Chris

  3. #3
    Hallo!
    Auf dem 10DOF ist ein 3,3V Spannungsregler drauf.
    Ich programmiere in C und habe zwar 'C-Code' dafür gefunden, aber die arbeiteten alle mit der Arduino lib und diese will ich nicht benutzen.
    Im Grund genommen kann man ja einfach diese Funktionen durch eigene ersetzen, aber ich weiß nie genau was diese machen.

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    24
    Beiträge
    1.544
    Hi,

    ok, dann kannst du dir das ja schonmal ersparen!
    Im Prinzip findest du alle wichtigen Infos im DB, das wird dir keiner abnehmen
    Der Ablauf sieht in etwa so aus:
    - Sensor initialisieren (Power-Managment, Full-Scale-Range, DLPF, CLK-Source, etc..)
    (- Offset bestimmen)
    - Sensor auslesen: Slave-Write-Adresse senden, auszulesendes Register senden, Rep-Start, Slave-Read-Adresse senden, Daten einlesen, Stop

    Gruß
    Chris

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.02.2006
    Beiträge
    982
    Ich hatte meine MPU mal am Raspberry..auch mit C (ohne fremd libs)..
    Ich kann dir die files gerne zukommen lassen, aber da das mein 'Einstiegsprojekt' in C war..weiss ich nicht ob du da nicht direkt Augenkrebs beim lesen bekommst

    Gruss, Andreas
    Nam et ipsa scientia potestas est..

  6. #6
    Gerne, immer her damit
    Klar würde ich es schaffen, Che, nur erspart mir der fertige Code locker 4-7 Tage programmieren & debuggen.
    Dafür gibt es ja fertige Libs

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    24
    Beiträge
    1.544
    Hi,

    also die paar Zeilen Code programmier ich in <10 Minuten!
    Aber jetzt passts ja eh

    Gruß
    Chris

  8. #8
    also die paar Zeilen Code programmier ich in <10 Minuten!
    Interessant. Dann zeig mal her.

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.02.2006
    Beiträge
    982
    Ich bin allerdings erst Montag Abend wieder zuhause.
    Nam et ipsa scientia potestas est..

  10. #10
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    24
    Beiträge
    1.544
    Hi,

    also erstmal, ich progge in Bascom, deswegen wirds dir nicht viel helfen, der Ablauf sollte aber 1:1 der gleiche sein.

    Initialisieren:
    Code:
    Sub Init_mpu()
    
    
       '--- (25) Sample Rate Divider = 1 ---
       I2cstart #2                                              'start condition
       I2cwbyte Mpuaddw , #2                                    'write adress of MPU-6050
       I2cwbyte 25 , #2                                         'Register 25 Sample Rate Divider (1..8 kHz)
       I2cwbyte &B00000000 , #2                                 'Divider set to 1   (soll)
       I2cstop #2                                               'stop condition
    
       '--- (26) DLPF = 42/44 Hz ---
       I2cstart #2                                              'start condition
       I2cwbyte Mpuaddw , #2                                    'write adress of MPU-6050
       I2cwbyte 26 , #2                                         'Register 26 DLPF_CFG (digital lowpass filter) Configuration
       I2cwbyte &B00000011 , #2                                 'Bits 0..2 = 011 (3) - ACC:44Hz, 4.9ms; Gyro:42Hz, 4.8ms
       I2cstop #2                                               'stop condition
    
       '--- (27) Gyro Full Range = +-2000°/s ---
       I2cstart #2                                              'start condition
       I2cwbyte Mpuaddw , #2                                    'write adress of MPU-6050
       I2cwbyte 27 , #2                                         'Register 27 Gyro Configuration
       I2cwbyte &B00011000 , #2                                 'Bits 3+4 = 11 - Full Scale Range: +/-2000°/s
       I2cstop #2                                               'stop condition
    
       '--- (28) ACC Full Range = +-2g ---
       I2cstart #2                                              'start condition
       I2cwbyte Mpuaddw , #2                                    'write adress of MPU-6050
       I2cwbyte 28 , #2                                         'Register 28 ACC Configuration
       I2cwbyte &B00000000 , #2                                 'Bits 3+4 = 00 - Full Scale Range: +/-2g / No High Pass Filter
       I2cstop #2                                               'stop condition
    
       '--- (107) Power Management 1 ---
       I2cstart #2                                              'start condition
       I2cwbyte Mpuaddw , #2                                    'write adress of MPU-6050
       I2cwbyte 107 , #2                                        'Register 107 Power Management 1
       I2cwbyte &B00001011 , #2                                 'No Reset / No Sleep / No Cycle / Temp_Sens: Dis / Clock Source: Z-Gyro
       I2cstop #2
    
    
    End Sub
    Gyro auslesen:
    Code:
    Sub Read_gyro()
    
    
       I2cstart #2
       I2cwbyte Mpuaddw , #2
       I2cwbyte 67 , #2
       I2crepstart #2
       I2cwbyte Mpuaddr , #2
    
       I2crbyte Tmp_gyrox(2) , Ack , #2
       I2crbyte Tmp_gyrox(1) , Ack , #2
    
       I2crbyte Tmp_gyroy(2) , Ack , #2
       I2crbyte Tmp_gyroy(1) , Ack , #2
    
       I2crbyte Tmp_gyroz(2) , Ack , #2
       I2crbyte Tmp_gyroz(1) , Nack , #2
    
       I2cstop #2
    
    
       Gyrox = Gx
       Gyroy = 0 - Gy
       Gyroz = 0 - Gz
    
    End Sub
    ACC auslesen:
    Code:
    Sub Read_acc()
    
    
       I2cstart #2
       I2cwbyte Mpuaddw , #2
       I2cwbyte 59 , #2
       I2crepstart #2
       I2cwbyte Mpuaddr , #2
    
       I2crbyte Tmp_accx(2) , Ack , #2
       I2crbyte Tmp_accx(1) , Ack , #2
    
       I2crbyte Tmp_accy(2) , Ack , #2
       I2crbyte Tmp_accy(1) , Ack , #2
    
       I2crbyte Tmp_accz(2) , Ack , #2
       I2crbyte Tmp_accz(1) , Nack , #2
    
       I2cstop #2
    
       Accx = Ax
       Accy = Ay
       Accz = Az
    
    
    End Sub
    Gruß
    Chris

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Kompiling fehler bei der I2Cdevlib und MPU6050 Quellcode
    Von Phill IP im Forum Sensoren / Sensorik
    Antworten: 3
    Letzter Beitrag: 05.02.2013, 17:09
  2. [ERLEDIGT] MPU6050 Initialisieren mit dem Netduino
    Von Robo-Hero im Forum Sensoren / Sensorik
    Antworten: 2
    Letzter Beitrag: 05.02.2013, 13:02
  3. Problem mit optischer Maus an STK500 mit ATMega32
    Von collatz im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 21.04.2008, 21:17
  4. datenaustausch von atmega32 zu atmega32 über spi usw...
    Von roboterheld im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 14.10.2007, 23:39
  5. Speicherplatz des ATmega32 + Display an ATmega32
    Von Rob.Anfänger im Forum AVR Hardwarethemen
    Antworten: 6
    Letzter Beitrag: 19.11.2006, 02:59

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •