Browse Source

Beschleunigungssensor: Gyroscope und kalibrierung mit Schwellwertfestlegung

Beschleunigungssensor
Franziska Bausewein 11 months ago
parent
commit
c2ad9c6847
1 changed files with 15 additions and 12 deletions
  1. 15
    12
      app/src/main/java/com/example/greenwatch/Beschleunigungssensor.java

+ 15
- 12
app/src/main/java/com/example/greenwatch/Beschleunigungssensor.java View File

@@ -17,13 +17,13 @@ public class Beschleunigungssensor extends AppCompatActivity implements SensorEv

private SensorManager bsmanager;
private ArrayList<Float> Gesamt_be;
private int sensorType = Sensor.TYPE_GYROSCOPE, zaehler_runde =0, listen_groesse = 10000;
private int sensorType = Sensor.TYPE_GYROSCOPE, zaehler_runde =0, listen_groesse = 200, kalibrieren;
private Sensor sens, sensor_l;
private float x_value = 0, y_value, z_value, Vorbesetzung = 0, gesamt_runde =0;
private double Schwellwert = 0.5, mittelwertsumme = 0.0, Offset;
private double Schwellwert = 0.2, mittelwertsumme = 0.0, Offset = 0.1;
String Daten, Warnung, Zeitstempel;
TextView Daten_Bsensor, Warnung_Bsensor, test;
private boolean toggle = true, ts_setzen = true, kalibrieren;
private boolean toggle = true, ts_setzen = true, start_messen;

@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -42,15 +42,16 @@ public class Beschleunigungssensor extends AppCompatActivity implements SensorEv
sens = bsmanager.getSensorList(sensorType).get(0);
}
Gesamt_be = new ArrayList<Float>();
for (int i = 0; i < listen_groesse; i++){
for (int i = 0; i < listen_groesse ; i++){
Gesamt_be.add(Vorbesetzung);
}
kalibrieren = true;
kalibrieren = 0;
start_messen = false;
}

public static String getTimestamp(){
Long tslong = System.currentTimeMillis();
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy, HH:mm:ss");
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
Date date = new Date(tslong);
String result = sdf.format(date);

@@ -69,6 +70,7 @@ public class Beschleunigungssensor extends AppCompatActivity implements SensorEv
Gesamt_be.remove(zaehler_runde);
Gesamt_be.add(zaehler_runde, gesamt_runde);
mittelwertsumme = 0.0;

//Mittelwert des Arrays berechnen
for (int i = 0; i < listen_groesse; i++){
if (Gesamt_be.get(i) < 0){
@@ -78,17 +80,18 @@ public class Beschleunigungssensor extends AppCompatActivity implements SensorEv
}
}
mittelwertsumme = mittelwertsumme/listen_groesse;
if (kalibrieren == true){
if (kalibrieren < listen_groesse){
Offset = mittelwertsumme;
kalibrieren = false;
kalibrieren++;
}else {
start_messen = true;
}
mittelwertsumme = mittelwertsumme - Offset;
StringBuilder testsb = new StringBuilder();
testsb.append(mittelwertsumme);
String tests = testsb.toString();
test.setText(tests);

if((mittelwertsumme > Schwellwert ) & (ts_setzen == true)){
if((mittelwertsumme > (Schwellwert+Offset) ) & (ts_setzen == true) &(start_messen == true)){
Zeitstempel = getTimestamp();
StringBuilder ts = new StringBuilder();
ts.append("Warnung: ")
@@ -98,8 +101,8 @@ public class Beschleunigungssensor extends AppCompatActivity implements SensorEv
Warnung = ts.toString();
Warnung_Bsensor.setText(Warnung);
ts_setzen = false;
}else if((mittelwertsumme > Schwellwert) & (ts_setzen == false)){
} else if ((mittelwertsumme < Schwellwert) & (ts_setzen == false)) {
}else if((mittelwertsumme > (Schwellwert+Offset)) & (ts_setzen == false)){
} else if ((mittelwertsumme < (Schwellwert+Offset)) & (ts_setzen == false)) {
Warnung_Bsensor.setText("");
ts_setzen = true;
}

Loading…
Cancel
Save