Hallo. Ich bin ganz neu hier und habe ein großes Problem. Ich muss im Physik Lk eine Facharbeit schreiben. Das Thema wurde vom Lehrer gegeben, und ist in meinem Fall der Beschleunigungssensor. Es ist das Modell von Elv, und auch das I2C Interface von denen. http://www.elv.de/3-achsen-beschleunigungssensor-3d-bs-komplettbausatz.html und http://www.elv.de/usb-i2c-interface-komplettbausatz-inkl-gehaeuse-bearbeitet-und-bedruckt-usb-kabel-3-anschlusskabel.html Allerdings habe ich kaum, bzw. gar kein Vorwissen im Bereich Mikroelektronik. Es wird nicht viel erwartet, ein paar Seiten Text über die grobe Funktionsweise des Sensors, und die ebenfalls verwendete I2C Schnittstelle, und ein paar Versuche. Bei mir scheitert es aber schon beim auslesen der Messdaten. Mit h-Term bekomme ich dann 10-Bit Messwerte ausgegeben. Die kann ich ja in einer Datei speichern. Wie schaffe ich es jetzt diese werte in g (m/s^-2) umzuwandeln? Mein Ziel ist es eigentlich am Ende eine Tabelle mit den Werten einer Zeit zugeordnet zu haben. Es müssen gar nicht all zu viele sein, eine manuelle Umrechnung mit Excel würde auch reichen. Die Aufgabe besteht eigentlich nicht darin, die Werte zu bekommen, ich glaube mein Lehrer hatte sich das alles ein wenig einfacher vorgestellt. Kann mir da einer helfen? Ich wäre euch wirklich sehr sehr dankbar, da ich von meinem Lehrer auch nicht mehr viel Hilfe erwarten kann. LG cargo
Finn S. schrieb: > Wie schaffe ich es jetzt diese werte in g (m/s^-2) umzuwandeln? Das steht im Datenblatt auf Seite 21.
Vielen Dank schon mal für die schnelle Antwort. Allerdings hilft mir das nicht wirklich weiter. Wie gesagt, habe kaum Vorwissen. Wenn ich in hTerm den Befehl "s7002s7106p" an den BMA020 sende bekomme ich z.B "81 03 81 FC 81 C1" zurück. Im Binärsystem: 00111000 00110001 00100000 00110000 00110011 00100000 00111000 00110001 00100000 01000110 01000011 00100000 00111000 00110001 00100000 01000011 00110001 00100000 00001101 00001010 Ich kann weder aus der Anleitung, noch aus dem Datenbatt jetzt erkennen welche Bits jetzt die Messwerte enthalten. http://www.elv-downloads.de/Assets/Produkte/9/915/91521/Downloads/91521_bma020_data.pdf Auf Seite 9 des Datenblatts findet sich das Messwert- und Konfigurations -Register des BMA020. Für mich leider völlig unverständlich. Nochmal vielen Dank im Voraus. LG
Es ist die grundlegende Arbeit mit einem Sensor sich erstmal damit auseinanderzusetzen wie die Messwerte codiert und dargestellt werden. Dazu besitzt ein Sensor meist Speicherbereiche, also Register, welche sich lesen und oft auch schreiben lassen. Dazu spezielle Befehle die dazu veranlassen etwas zu tun. Das steht alles im Datenblatt. Ja man muss ein Datenblatt lesen können um mit so einem Sensor zu arbeiten. Lies es und versuche es zu verstehen. Wenn dazu konkrete Fragen auftauchen, stelle zitieren und hier die Frage stellen. > Ich kann weder aus der Anleitung, noch aus dem Datenbatt jetzt erkennen > welche Bits jetzt die Messwerte enthalten. Dazu gibts doch die MemoryMap dort stehen alle Daten und wie sie im Speicher organisiert sind. Du liest einen Speicherbereich aus und hast diese Daten. Was Bits, Bytes und Words sind ist dir klar? Binärdarstellung von Zahlen? Kannst du Englisch? Weißt du was ein "Register" ist? Ich seh das Problem nicht. gruß cyblord
Die Umrechnung nahc binär ist schon mal falsch. Man darf die Umrechnung ja nicht von den ASCII-Werte nehmen, sondern von der Hex-Repräsentation 81 03 81 FC 81 C1 ist (mal schnell im Kopf) 10000001 00000011 10000001 11111100 10000001 11000001 Dann wohl jeweils 2 Bytes zusammen und * 0.004g multiplizieren.
Finn S. schrieb: > Ich muss im Physik Lk eine Facharbeit schreiben. Das Thema wurde vom > Lehrer gegeben, und ist in meinem Fall der Beschleunigungssensor. > Es ist das Modell von Elv, und auch das I2C Interface von denen. Wie kommst du an die Facharbeit wenn du keine Ahnung von Softwareentwicklung hast? Der Lehrer kann das wohl kaum voraussetzen. Vieleicht erwartet er ja nur daß du Messreihen aufzeichnest und die dann auf dem Papier oder in einem Excel Sheet umrechnest, oder ist/war er der Meinung daß du ein Crack in Bezug auf Programmierung bist?
Udo Schmitt schrieb: > Finn S. schrieb: >> Ich muss im Physik Lk eine Facharbeit schreiben. Das Thema wurde vom >> Lehrer gegeben, und ist in meinem Fall der Beschleunigungssensor. >> Es ist das Modell von Elv, und auch das I2C Interface von denen. > > Wie kommst du an die Facharbeit wenn du keine Ahnung von > Softwareentwicklung hast? > Der Lehrer kann das wohl kaum voraussetzen. Vieleicht erwartet er ja nur > daß du Messreihen aufzeichnest und die dann auf dem Papier oder in einem > Excel Sheet umrechnest, oder ist/war er der Meinung daß du ein Crack in > Bezug auf Programmierung bist? Nein, genau wie du sagst, in Excel umrechnen reicht total. PittyJ schrieb: > Die Umrechnung nahc binär ist schon mal falsch. > Man darf die Umrechnung ja nicht von den ASCII-Werte nehmen, sondern von > der Hex-Repräsentation > > 81 03 81 FC 81 C1 > > ist (mal schnell im Kopf) > 10000001 00000011 10000001 11111100 10000001 11000001 > > Dann wohl jeweils 2 Bytes zusammen und * 0.004g multiplizieren. Okay. Das hilft mir schon mal sehr weiter. Die Binär Zahlen hatte ich direkt aus hTerm, jetzt weiß ich wie man das richtig in Binär umrechnet. 2 bytes zusammen nehmen? Addieren? Weclhe jeweils? Die ganzen Bytes?, denn im Datenblatt (Seite 9) sind in der Tabelle ja jeweils Bit 6 und 7 bei 02h, 04h, und 06h den acceleration Daten zugeordnet. Kann mir einer ganz simpel sagen was 02h, 04h und 06h bedeutet? Sind das die Bytes, von vorne durchnummeriert? Habe jetzt einige Testwerte erhalten, während ich den Sensor nicht bewegt habe. Byte 2,4,6 ändern sich nicht. Byte 1,3,5 wechseln zwischen "81", "41" und "C1". Hilft das? In Byte 1,3,5 müssten ja eigentlich nur Bit 6,7 von Bedeutung für die Messdaten sein. cyblord ---- schrieb: > Es ist die grundlegende Arbeit mit einem Sensor sich erstmal damit > auseinanderzusetzen wie die Messwerte codiert und dargestellt werden. > Dazu besitzt ein Sensor meist Speicherbereiche, also Register, welche > sich lesen und oft auch schreiben lassen. Dazu spezielle Befehle die > dazu veranlassen etwas zu tun. > Das steht alles im Datenblatt. Ja man muss ein Datenblatt lesen können > um mit so einem Sensor zu arbeiten. Lies es und versuche es zu > verstehen. Wenn dazu konkrete Fragen auftauchen, stelle zitieren und > hier die Frage stellen. > >> Ich kann weder aus der Anleitung, noch aus dem Datenbatt jetzt erkennen >> welche Bits jetzt die Messwerte enthalten. > Dazu gibts doch die MemoryMap dort stehen alle Daten und wie sie im > Speicher organisiert sind. Du liest einen Speicherbereich aus und hast > diese Daten. > > Was Bits, Bytes und Words sind ist dir klar? Binärdarstellung von > Zahlen? Kannst du Englisch? Weißt du was ein "Register" ist? Ich seh das > Problem nicht. > > gruß cyblord Okay, konkrete Fragen zu stellen habe ich jetzt versucht. Was Bits und Bytes sind weiß ich. Nur nicht welche konkreten Bits oder Bytes jetzt meine Daten enthalten. Das kann ich leider auch nicht aus dem Datenblatt schließen.
Finn S. schrieb: > Kann mir einer ganz simpel sagen was 02h, 04h und 06h bedeutet? > Sind das die Bytes, von vorne durchnummeriert? Ja, das sind die Register Adressen in hexadezimaler Schreibweise. Anhand dieser Register Adressen kannst du die Bedeutung der Bytes in Figure 1 auf Seite 9 erfahren. > 2 bytes zusammen nehmen? Addieren? Weclhe jeweils? > Die ganzen Bytes?, denn im Datenblatt (Seite 9) sind in der Tabelle ja > jeweils Bit 6 und 7 bei 02h, 04h, und 06h den acceleration Daten > zugeordnet. Byte 03h enthält die 8 höherwertigen Bits des Beschleunigung in x Richtung (acc_x<9:2>). Byte 02h enthält die 2 niederwertigen Bits der Beschleunigung in x Richtung (acc_x<1:0) an den Bit-Positionen 6 und 7. Ein Beispiel mit deinen Messwerten: 81 03 10000001 00000011 Byte 2 Byte 3 Weil Byte 3 die höherwertigen Bits (MSB) enthält wird Byte 3 vor Byte 2 getauscht. 03 81 00000011 10000001 Byte 3 Byte 2 Jetzt werden die Bits 0 bis 5 in Byte 2 entfernt, weil nur Bit 6 und 7 eine Information über die Beschleunigung enthält. 00000011 10 Byte 3 Byte 2 Der Wert von acc_x ist also "00000011 10". Das ist die Darstellung des Wertes "14" im Zweiterkomplement. acc_x = 14 Jetzt nurnoch acc_x mit 0.004g multiplizieren wie PittyJ schrieb und fertig. Dein Sensor liegt vermutlich gerade unbewegt auf dem Tisch, denn der Beschleunigungs-Wert in X Richtung ist ziemlich klein... > Byte 1,3,5 wechseln zwischen "81", "41" und "C1". > Hilft das? In Byte 1,3,5 müssten ja eigentlich nur Bit 6,7 von Bedeutung > für die Messdaten sein. Das hilft. Wie du siehst ändern sich nur die obersten beiden Bits, also Bit 6 und 7. Und nur die sind von Bedeutung für deine Messdaten. Der Wert "01" hätte also auch vorkommen können, wenn Bits 6 und 7 beide "0" sind. Das unterste Bit (Bit 0) ist übrigens auf "1" um dir anzuzeigen, dass gerade jetzt ein neuer Messwert zur Verfügung steht. Du musst ihn nur noch umrechnen. Versuch das doch gleich mal selber mit deinen neuen Testwerten! ;-)
Wow, vielen vielen Dank! Das hilft mir sehr weiter. Wie du richtig erkannt hast liegt der Sensor auf dem Tisch. ;) Also müsste für den y-Wert ein ähnlich kleiner Wert rauskommen. Will auch mal probieren. 81 FC 10000001 11111100 Byte 4 Byte 5 Vertauschen: FC 81 11111100 10000001 Byte 5 Byte 4 Bits 0-5 in Byte 4 entfernen: 11111100 10 Byte 5 Byte 4 Ergibt : 1111110010 Also: acc_y = 1010 Umgerechnet also 4.04g. Irgendetwas stimmt nicht, nur ich sehe den Fehler nicht. Für z bekomme ich 774, also 3,096g, obwohl es doch eigentlich ca. 1g sein müssten. Der gleiche Fehler? Danke für eure Hilfe, ihr rettet mich.
Du vergisst, dass der Beschleunigungssensor auch negative Werte messen kann. Sobald dein Beschleunigungswert mit einem 1-Bit beginnt ist das ein Hinweis, dass ein negative Beschleunigung gemessen wurde und im Zweierkomplement dargestellt wird. Also erstmal die negative Zahl für y in eine positive Umwandeln: 1111110010 = -(0000001101 + 1) = -0000001110 Das entspricht dem Wert -14. Diesen Wert musst du jetzt mit 0,004 multiplizieren. Deine Beschleunigung ist somit -0,056g. Das gleiche für z. 774 = 1100000110. 1100000110= -(0011111001 + 1) = -0011111010 Das entspricht dem Wert 250. Diesen Wert wiederum mit 0,004 multiplizieren. Deine Beschleunigung in z-Richtung ist 1g. Und oh Wunder, das entspricht genau der Erdbeschleunigung, dein Beschleunigungsmesser steht als in x- und y-Richtung unbewegt still auf dem Tisch mit der Unterseite zum Boden. Gruß Daniel
Finn S. schrieb: > Ergibt : > 1111110010 > Also: > acc_y = 1010 Ganz knapp daneben. Du hast einen Fehler bei der Umrechnung von negativen Zahlen im Zweierkomplement gemacht. Die Umrechnung negativer Zahĺen im Zweierkomplement von Hand ist übrigens hier gut beschrieben. http://de.wikipedia.org/wiki/Zweierkomplement 1111110010 ist eine negative Zahl (weil das Bit ganz links "1" ist) Nach der Umrechnung des Zweierkomplements ergibt sich acc_y = -13 falls ich mich nicht verrechnet habe. Das sind dann also acc_y = -0.052g Schau mal auf Seite 21 im Datenblatt. Da ist eine Tabelle mit ein paar umgerechneten Beispielwerten. Wenn du irgendwo mehr als +/- 2g rausbekommst ist definitiv etwas falsch. > Für z bekomme ich 774, also 3,096g, obwohl es doch > eigentlich ca. 1g sein müssten. Der gleiche Fehler? Der gleiche Fehler; acc_z = -0.992g Auf deinem Schreibtisch herscht Gravitation nach unten!
Finn S. schrieb: > Ich muss im Physik Lk eine Facharbeit schreiben. Finn S. schrieb: >Bei mir scheitert es aber schon beim auslesen der Messdaten. Finn S. schrieb: > Nein, genau wie du sagst, in Excel umrechnen reicht total. Bei der ganzen Hilfe aus dem Internet hört sich das ziemlich bitter an. 10K wären meiner Meinung nach schon zu viel.
void schrieb: > 1111110010 ist eine negative Zahl (weil das Bit ganz links "1" ist) > Nach der Umrechnung des Zweierkomplements ergibt sich > acc_y = -13 falls ich mich nicht verrechnet habe. Du hast dich verrechnet. 1111111111 ist -1 und nicht -0
Ach das Zweierkomplement habe ich ganz vergessen. Jetzt ist es auch bei mir richtig. :) Ich habe mittlerweile mir eine Excel Maske gemacht, in die ich die Messdaten nur noch rein kopieren muss, um die Beschleunigung in g und den zugehörigen Graphen zu bekommen. Das klappt wunderbar, und ich kann endlich meine Versuche machen. Ohne eure einfachen Erklärungen wäre ich echt aufgeschmissen gewesen. Danke ein letztes mal! Foren sind etwas tolles. gaspS schrieb: > Finn S. schrieb: >> Ich muss im Physik Lk eine Facharbeit schreiben. > > Finn S. schrieb: >>Bei mir scheitert es aber schon beim auslesen der Messdaten. > > Finn S. schrieb: >> Nein, genau wie du sagst, in Excel umrechnen reicht total. > > Bei der ganzen Hilfe aus dem Internet hört sich das ziemlich bitter an. > 10K wären meiner Meinung nach schon zu viel. Bin mir nicht ganz sicher was du mir sagen willst.?
Hallo. Nachdem meine Versuche nun wunderbar funktioniert haben, habe ich noch eine Frage zur Interpretation. Ich weiß, das hier ist kein Physik Forum, aber vielleicht gibt es ja doch jemanden der mir helfen kann. Für den Versuch durchlief der Sensor eine harmonische Schwingung. Das Sensor Modul auf dem Steckbrett wurde auf einer Schaukel befestigt, welche an zwei ca. 1,5 Meter langen Seilen aufgehängt ist. Der Zeitabstand zwischen den Messwerten beträgt 0,1 Sekunden. Die Beschleunigung in z-Richtung beschreibt eine Sinus Kurve um die y= -1g Achse. Jetzt bin ich ein wenig verwirrt wie ich das interpretieren soll. Verändert sich nur der Wert der Beschleunigung, nicht aber die Richtung? Oder muss ich 1g dazu addieren wegen des Ortsfaktors? Sehe ich das richtig, dass an den Amplituden der Sinus Kurve auch die Schaukel bei der maximalen Auslenkung war? Ich habe mal ein Bild vom Graphen, und die Excel Datei angehangen. Ich bin für jede Art von Hilfe dankbar! Ich muss morgen abgeben, also wärs super wenn mir jemand kurz helfen könnte. :) LG Finn
Ich kann dir leider nicht ganz folgen was deine Frage ist. Mir ist auch dein Versuchsaufbau nicht ganz klar. Ist der Sensor immer senkrecht? Du hast folgende Kräfte: Erdbeschleunigung Fliehkraft Erdbeschleunigung zeigt immer nach unten ( ob +g oder -g kommt auf die Lage der z-achse an.) Die Fliehkraft ist immer senkrecht zur Schaukel. Ich weiß jetzt nicht wie schnell die Schaukel geschaukelt hat (Stichwort achsenbeschriftung), aber ich denke der Sensor lag hier nicht immer waagerecht, weshalb er einfach sinusförmig gekippt wurde. Eventuell in x-richtung, diese müsste dann auch sinusförmig um den Nullpunkt verlaufen. Das Quadrat beider Kurven zusammen sollte an jedem punkt 1 ergeben. Wenn du mit Amplitude das maximum der Kurve meinst, das würde ich am Tiefpunkt der Schaukel ansetzen, da dort g maximal is (also 9,81) und die fliehkraft ( höchste geschwindigkeit) ebenfalls. Wenn g negativ ist, sind es entsprechend die minima
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.