Mit MPU6050 accelerometer/Gyroskop-Modul
Teste ich meine MPU6050 Modul mit Arduino Mega. Ich fand Jeff Rowberg geschrieben hat, eine Bibliothek für diese. Ich habe versucht, mit dieses Beispiel von ihm. Aber die Arduino IDE gibt eine große Zahl von Fehlern, wenn Sie versuchen, um zu überprüfen, die Skizze.
Habe ich bereits installiert Jeffs Bibliothek. (folgende Bild zeigt die Inhalte in der Bibliothek)
Dies ist der Fehler, ich bin immer:
In file included from C:\Users\LordXaX\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:42,
from sketch_dec08a.cpp:50:
C:\Users\LordXaX\Documents\Arduino\libraries\MPU6050/MPU6050.h:792: warning: only initialized variables can be placed into program memory area
In file included from sketch_dec08a.cpp:50:
C:\Users\LordXaX\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:89: warning: only initialized variables can be placed into program memory area
C:\Users\LordXaX\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:89: error: conflicting declaration 'const prog_uchar dmpMemory [1929]'
C:\Users\LordXaX\Documents\Arduino\libraries\MPU6050/MPU6050.h:792: error: 'dmpMemory' has a previous declaration as 'prog_uchar dmpMemory [1929]'
C:\Users\LordXaX\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:229: warning: only initialized variables can be placed into program memory area
C:\Users\LordXaX\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:271: warning: only initialized variables can be placed into program memory area
C:\Users\LordXaX\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:271: error: conflicting declaration 'const prog_uchar dmpUpdates [47]'
C:\Users\LordXaX\Documents\Arduino\libraries\MPU6050/MPU6050.h:931: error: 'dmpUpdates' has a previous declaration as 'uint8_t dmpUpdates [29][9]'
C:\Users\LordXaX\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:281: error: no 'uint8_t MPU6050::dmpInitialize()' member function declared in class 'MPU6050'
C:\Users\LordXaX\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:506: error: no 'bool MPU6050::dmpPacketAvailable()' member function declared in class 'MPU6050'
C:\Users\LordXaX\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:533: error: no 'uint8_t MPU6050::dmpGetAccel(int32_t*, const uint8_t*)' member function declared in class 'MPU6050'
C:\Users\LordXaX\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:541: error: no 'uint8_t MPU6050::dmpGetAccel(int16_t*, const uint8_t*)' member function declared in class 'MPU6050'
C:\Users\LordXaX\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:549: error: no 'uint8_t MPU6050::dmpGetAccel(VectorInt16*, const uint8_t*)' member function declared in class 'MPU6050'
C:\Users\LordXaX\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:557: error: no 'uint8_t MPU6050::dmpGetQuaternion(int32_t*, const uint8_t*)' member function declared in class 'MPU6050'
C:\Users\LordXaX\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:566: error: no 'uint8_t MPU6050::dmpGetQuaternion(int16_t*, const uint8_t*)' member function declared in class 'MPU6050'
C:\Users\LordXaX\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:575: error: no 'uint8_t MPU6050::dmpGetQuaternion(Quaternion*, const uint8_t*)' member function declared in class 'MPU6050'
C:\Users\LordXaX\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:590: error: no 'uint8_t MPU6050::dmpGetGyro(int32_t*, const uint8_t*)' member function declared in class 'MPU6050'
C:\Users\LordXaX\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:598: error: no 'uint8_t MPU6050::dmpGetGyro(int16_t*, const uint8_t*)' member function declared in class 'MPU6050'
C:\Users\LordXaX\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:608: error: no 'uint8_t MPU6050::dmpGetLinearAccel(VectorInt16*, VectorInt16*, VectorFloat*)' member function declared in class 'MPU6050'
C:\Users\LordXaX\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:616: error: no 'uint8_t MPU6050::dmpGetLinearAccelInWorld(VectorInt16*, VectorInt16*, Quaternion*)' member function declared in class 'MPU6050'
C:\Users\LordXaX\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:628: error: no 'uint8_t MPU6050::dmpGetGravity(VectorFloat*, Quaternion*)' member function declared in class 'MPU6050'
C:\Users\LordXaX\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:639: error: no 'uint8_t MPU6050::dmpGetEuler(float*, Quaternion*)' member function declared in class 'MPU6050'
C:\Users\LordXaX\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:645: error: no 'uint8_t MPU6050::dmpGetYawPitchRoll(float*, Quaternion*, VectorFloat*)' member function declared in class 'MPU6050'
C:\Users\LordXaX\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:658: error: no 'uint8_t MPU6050::dmpProcessFIFOPacket(const unsigned char*)' member function declared in class 'MPU6050'
C:\Users\LordXaX\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:668: error: no 'uint8_t MPU6050::dmpReadAndProcessFIFOPacket(uint8_t, uint8_t*)' member function declared in class 'MPU6050'
C:\Users\LordXaX\Documents\Arduino\libraries\MPU6050/MPU6050_6Axis_MotionApps20.h:693: error: no 'uint16_t MPU6050::dmpGetFIFOPacketSize()' member function declared in class 'MPU6050'
sketch_dec08a.cpp: In function 'void setup()':
sketch_dec08a.cpp:177: warning: only initialized variables can be placed into program memory area
sketch_dec08a.cpp:181: warning: only initialized variables can be placed into program memory area
sketch_dec08a.cpp:182: warning: only initialized variables can be placed into program memory area
sketch_dec08a.cpp:182: warning: only initialized variables can be placed into program memory area
sketch_dec08a.cpp:185: warning: only initialized variables can be placed into program memory area
sketch_dec08a.cpp:191: warning: only initialized variables can be placed into program memory area
sketch_dec08a:187: error: 'class MPU6050' has no member named 'dmpInitialize'
sketch_dec08a.cpp:197: warning: only initialized variables can be placed into program memory area
sketch_dec08a.cpp:201: warning: only initialized variables can be placed into program memory area
sketch_dec08a:198: error: 'class MPU6050' has no member named 'getIntStatus'
sketch_dec08a.cpp:206: warning: only initialized variables can be placed into program memory area
sketch_dec08a:205: error: 'class MPU6050' has no member named 'dmpGetFIFOPacketSize'
sketch_dec08a.cpp:216: warning: only initialized variables can be placed into program memory area
sketch_dec08a.cpp:218: warning: only initialized variables can be placed into program memory area
sketch_dec08a.cpp: In function 'void loop()':
sketch_dec08a:246: error: 'class MPU6050' has no member named 'getIntStatus'
sketch_dec08a.cpp:260: warning: only initialized variables can be placed into program memory area
sketch_dec08a:263: error: 'class MPU6050' has no member named 'getFIFOBytes'
Wie überwinde ich diese?
Ich habe versucht, sehr schwer zu bedienen ist dieses Gerät die Beschleunigung/Gyroskop-Werte. Aber immer noch kein Erfolg.
BEARBEITEN
Dies ist, was ich bekomme beim Versuch zu kompilieren (verify).
Scheint ein problem mit dem compiler. Können Sie versuchen, und kommen zurück? Ich habe mit der mpu6050 und jeff rowberg code, hatte viele Probleme, aber nicht, dass man...
Gut, als Sie fragte, habe ich entfernt, die gesamte Bibliothek und neu erstellt, es aus den Dateien hier. Das gleiche Beispiel kommt als eine Bibliothek mit Beispiel. Ich habe es geladen und ausprobiert. Aber trotzdem, die überprüfung fehlschlägt. Ich weiß nicht, was zu tun ist. Er sagt, 'class MPU6050' has no member named 'dmpInitialize'. Ich habe hochgeladen ein screen shot zu. Bitte sehen Sie in der post bearbeitet. Danke!
Blick auf den link den du gepostet gibt es nicht eine dmpInitialize, es ist eine initialize-aber vielleicht mal probieren. Ich bin nicht vertraut mit diesem Modul, aber vielleicht ist die " dmp " - Präfix ist eine Art von debug-version in eine andere Bibliothek. Sorry, sehe ich die extra version in der .h-Datei, aber wie es aussieht, hängt insbesondere bedingt definiert.
Danke für die Anregung. Gab nur einen Versuch, seine nicht funktioniert entweder. Aber ich denke, dass der ursprüngliche Aufruf ist richtig. Jeff selbst geschrieben hat, den code. (BTW, dmp ist nicht für das Debuggen, es bedeutet Digital Motion Processor)
Okay, scheint dann so, du bist fehlen einige DEFs. Im Grunde, Jeff Bibliothek hat einige "add-on" - Teile, die Sie kann oder auch nicht brauchen (zum Beispiel, Sie können, greifen Sie alle raw-Daten, ohne die dmp). Stellen Sie sicher, dass Sie einschließlich der Header, die benötigt werden, und dass Sie erklären, die DEFs, die Sie benötigen (einschließlich MPU6050_6Axis_MotionApps20.h)
Gut, als Sie fragte, habe ich entfernt, die gesamte Bibliothek und neu erstellt, es aus den Dateien hier. Das gleiche Beispiel kommt als eine Bibliothek mit Beispiel. Ich habe es geladen und ausprobiert. Aber trotzdem, die überprüfung fehlschlägt. Ich weiß nicht, was zu tun ist. Er sagt, 'class MPU6050' has no member named 'dmpInitialize'. Ich habe hochgeladen ein screen shot zu. Bitte sehen Sie in der post bearbeitet. Danke!
Blick auf den link den du gepostet gibt es nicht eine dmpInitialize, es ist eine initialize-aber vielleicht mal probieren. Ich bin nicht vertraut mit diesem Modul, aber vielleicht ist die " dmp " - Präfix ist eine Art von debug-version in eine andere Bibliothek. Sorry, sehe ich die extra version in der .h-Datei, aber wie es aussieht, hängt insbesondere bedingt definiert.
Danke für die Anregung. Gab nur einen Versuch, seine nicht funktioniert entweder. Aber ich denke, dass der ursprüngliche Aufruf ist richtig. Jeff selbst geschrieben hat, den code. (BTW, dmp ist nicht für das Debuggen, es bedeutet Digital Motion Processor)
Okay, scheint dann so, du bist fehlen einige DEFs. Im Grunde, Jeff Bibliothek hat einige "add-on" - Teile, die Sie kann oder auch nicht brauchen (zum Beispiel, Sie können, greifen Sie alle raw-Daten, ohne die dmp). Stellen Sie sicher, dass Sie einschließlich der Header, die benötigt werden, und dass Sie erklären, die DEFs, die Sie benötigen (einschließlich MPU6050_6Axis_MotionApps20.h)
InformationsquelleAutor Anubis | 2012-12-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den MPU6050_DMP6 Beispiel von Jeff arbeitet für mich. Von Ihrem kompilieren Fehler, es scheint, dass Sie haben MPU6050.h, statt MPU6050_6Axis_MotionApps20.h. Stellen Sie sicher, dass Sie die richtigen sind.
Wenn man sich die code für die Bibliothek, werden Sie feststellen, dass die .dmp___ Methoden sind nicht implementiert MPU6050.cpp Datei, aber in der MPU6050_6Axis_MotionApps20.h-Datei. Wenn dies nicht lösen, poste deinen code.
InformationsquelleAutor Steve Heim
versuchen Sie jeffs i2c .cpp und .h-Dateien in den gleichen Ordner wie die mpu6050 library-Dateien, die ich gefunden, dass dies dann für mich gearbeitet, sorry wenn das ein bisschen spät, aber hoffentlich hilfreich 😛
^ Sollte poste deine Lösung als Antwort
InformationsquelleAutor Chris
Ich hatte das gleiche problem und es stellte sich heraus, ich war auch beide
MPU6050.h und MPU6050_6Axis_MotionApps20.h. Ich auskommentiert MPU6050.h und es jetzt kompiliert einwandfrei. Scheint, dass der ehemalige überschreiben der letzteren.
InformationsquelleAutor Alea
Hab ich gelöst die compile-problem, indem Sie I2Cdev.cpp und I2C.h in der MPU6050 library-Ordner. (Geist: dies sind die dev - Dateien). Diese sind Jeff Bibliotheken und kann hier gefunden werden GitHub
InformationsquelleAutor andere