Hallo, ich habe eine Frage zum MPU 6050. Ich möchte für meine Projektarbeit mit dem Beschleunigungssensor eine Vibration messen, aber weiß nicht genau wie ich das anstellen soll. Konkrekt habe ich den Beispielsketch aus der Arduino libary genommen und den mit einem RGB LED streifen versucht zu verbinden. Am Ende würde ich gerne einen Sensor programmiert habe mit dem ich dann für Bedienpersonen an Werkzeugen einen Schwellenwert anzeigen lassen kann ob die eingeleitete Vibration gesundheitsgefährdend ist oder nicht (dafür auch die LEDs grün= nicht schädlich rot=gefährdung) Mit dem Sketch funktionuerte die Ausgabe der Bewegung des Sensors schon und die LED leuchtetn auch,aber wie werte ich die Daten überhaupt aus?? Da liegt mein Hauptproblem momentan Vielleicht weiß jemand hier ja weiter wäre euch sehr dankbar Schöne Grüße Luise // MPU-6050 Short Example Sketch #include<Wire.h> #include<LiquidCrystal.h> LiquidCrystal lcd (); // was muss dort rein? const int MPU_addr=0x68; // I2C address of the MPU-6050 int16_t AcX,AcY,AcZ,Tmp,GyX,GyY,GyZ;// kann Temperatur und Gyroskop nicht rausgenommen werden? #include <Adafruit_NeoPixel.h> #define PIN 7 // How many NeoPixels are attached to the Arduino? #define NUMPIXELS 10 // When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send signals. // Note that for older NeoPixel strips you might need to change the third parameter--see the strandtest // example for more information on possible values. Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); int delayval = 500; // delay for half a second void setup(){ Wire.begin(); Wire.beginTransmission(MPU_addr); Wire.write(0x6B); // PWR_MGMT_1 register Wire.write(0); // set to zero (wakes up the MPU-6050) Wire.endTransmission(true); Serial.begin(9600); pixels.begin(); // This initializes the NeoPixel library. } void loop(){ Wire.beginTransmission(MPU_addr); Wire.write(0x3B); // starting with register 0x3B (ACCEL_XOUT_H) Wire.endTransmission(false); Wire.requestFrom(MPU_addr,14,true); // request a total of 14 registers AcX=Wire.read()<<8|Wire.read(); // 0x3B (ACCEL_XOUT_H) & 0x3C (ACCEL_XOUT_L) AcY=Wire.read()<<8|Wire.read(); // 0x3D (ACCEL_YOUT_H) & 0x3E (ACCEL_YOUT_L) AcZ=Wire.read()<<8|Wire.read(); // 0x3F (ACCEL_ZOUT_H) & 0x40 (ACCEL_ZOUT_L) /* lcd.clear(); lcd.setCursor(0,0); lcd.print(" m/s^2"); // Vibatrion bzw Beschleunigung in m/s^2*/ Serial.println("AcX = " + String(AcX) + " | AcY = " +String(AcY) + " | AcZ = " +String(AcZ)); delay(100); // For a set of NeoPixels the first NeoPixel is 0, second is 1, all the way up to the count of pixels minus one. for(int i=0;i<NUMPIXELS;i++){ // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255 pixels.setPixelColor(i, pixels.Color(30,10,50)); // Moderately bright green color.für rot ? 150,0,0 ? pixels.show(); // This sends the updated pixel color to the hardware. delay(0); // Delay for a period of time (in milliseconds). } } // Loop
wegen der auswertung solltest du mit deinem betreuer sprechen. in welchem kontext sollst du die projektarbeit anfertigen ? schule/berufsschule/uni/fh ? im endeffekt musst du dir anhand der kriterien einen entsprechenden algorithmus ausdenken und diesen dann umsetzen.
Luise R. schrieb: > Vielleicht weiß jemand hier ja weiter wäre euch sehr dankbar Ueblicherweise benutzt man fuer die Teile ein Kalman Filter um das Rauschen wegzukriegen. Wenn du dann nur an der Frequenz und Groesse der Vibration interessiert bist wuerde man den Absolutwert des Vektors benutzen und darauf eine FFT oder vielleicht DWT rechnen. Falls du die Richtung auch brauchst, puh, vielleicht kann man ja was mit ner PCA machen, also SVD auf eine Matrix an Messwerten? Oder PCA auf die absoluten FFT Ergebnisse in alle Richtungen? Oder meinst du wie man die Gesundheitsgefaehrdung von Vibrationen bestimmt? Gibt es das ueberhaupt solamge einen die Vibrationen nicht einfach mechanisch kaputt machen? Irgendwann wirds halt zu Schall...
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.