22. November 2011
Bei dieser Übung haben wir uns das erste Mal mit dem Beschleunigungssensor vertraut gemacht. Im Setupt muss eine Kalibrierung (horizontale Lage) vorgenommen werden calibrateOffset() und die Werte für die drei Achsen entsprechenden korrigiert werden. Auf die drei Achsen wirken folgende Kräfte in der horizontalen Lage: X=0g, Y=0g, Z=1g Die Kräfte auf die drei Achsen haben wir uns dann via Processing visualisieren lassen. 1g: $3F = 64#include <Wire.h> #include <MMA_7455.h> MMA_7455 mySensor = MMA_7455(); char xVal, yVal, zVal; char prevxVal=0, prevyVal=0, prevzVal=0; float smoothPrev = 0.8; float smoothNew = 0.2; void setup() { Serial.begin(9600); mySensor.initSensitivity(2); // X=0g, Y=0g, Z=1g (1g: $3F = 64) mySensor.calibrateOffset(2, 19, -5); } void loop() { xVal = mySensor.readAxis('x'); yVal = mySensor.readAxis('y'); zVal = mySensor.readAxis('z'); xVal = (smoothPrev * prevxVal) + (smoothNew * xVal); yVal = (smoothPrev * prevyVal) + (smoothNew * yVal); zVal = (smoothPrev * prevzVal) + (smoothNew * zVal); Serial.print(xVal, DEC); Serial.print('\t'); Serial.print(yVal, DEC); Serial.print('\t'); Serial.print(zVal, DEC); Serial.print('\t'); Serial.println(); prevxVal = xVal; prevyVal = yVal; prevzVal = zVal; }