Beschleunigungssensor: Gyroscope und kalibrierung mit Schwellwertfestlegung
This commit is contained in:
parent
a111765677
commit
c2ad9c6847
@ -17,13 +17,13 @@ public class Beschleunigungssensor extends AppCompatActivity implements SensorEv
|
|||||||
|
|
||||||
private SensorManager bsmanager;
|
private SensorManager bsmanager;
|
||||||
private ArrayList<Float> Gesamt_be;
|
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 Sensor sens, sensor_l;
|
||||||
private float x_value = 0, y_value, z_value, Vorbesetzung = 0, gesamt_runde =0;
|
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;
|
String Daten, Warnung, Zeitstempel;
|
||||||
TextView Daten_Bsensor, Warnung_Bsensor, test;
|
TextView Daten_Bsensor, Warnung_Bsensor, test;
|
||||||
private boolean toggle = true, ts_setzen = true, kalibrieren;
|
private boolean toggle = true, ts_setzen = true, start_messen;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
@ -42,15 +42,16 @@ public class Beschleunigungssensor extends AppCompatActivity implements SensorEv
|
|||||||
sens = bsmanager.getSensorList(sensorType).get(0);
|
sens = bsmanager.getSensorList(sensorType).get(0);
|
||||||
}
|
}
|
||||||
Gesamt_be = new ArrayList<Float>();
|
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);
|
Gesamt_be.add(Vorbesetzung);
|
||||||
}
|
}
|
||||||
kalibrieren = true;
|
kalibrieren = 0;
|
||||||
|
start_messen = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getTimestamp(){
|
public static String getTimestamp(){
|
||||||
Long tslong = System.currentTimeMillis();
|
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);
|
Date date = new Date(tslong);
|
||||||
String result = sdf.format(date);
|
String result = sdf.format(date);
|
||||||
|
|
||||||
@ -69,6 +70,7 @@ public class Beschleunigungssensor extends AppCompatActivity implements SensorEv
|
|||||||
Gesamt_be.remove(zaehler_runde);
|
Gesamt_be.remove(zaehler_runde);
|
||||||
Gesamt_be.add(zaehler_runde, gesamt_runde);
|
Gesamt_be.add(zaehler_runde, gesamt_runde);
|
||||||
mittelwertsumme = 0.0;
|
mittelwertsumme = 0.0;
|
||||||
|
|
||||||
//Mittelwert des Arrays berechnen
|
//Mittelwert des Arrays berechnen
|
||||||
for (int i = 0; i < listen_groesse; i++){
|
for (int i = 0; i < listen_groesse; i++){
|
||||||
if (Gesamt_be.get(i) < 0){
|
if (Gesamt_be.get(i) < 0){
|
||||||
@ -78,17 +80,18 @@ public class Beschleunigungssensor extends AppCompatActivity implements SensorEv
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
mittelwertsumme = mittelwertsumme/listen_groesse;
|
mittelwertsumme = mittelwertsumme/listen_groesse;
|
||||||
if (kalibrieren == true){
|
if (kalibrieren < listen_groesse){
|
||||||
Offset = mittelwertsumme;
|
Offset = mittelwertsumme;
|
||||||
kalibrieren = false;
|
kalibrieren++;
|
||||||
|
}else {
|
||||||
|
start_messen = true;
|
||||||
}
|
}
|
||||||
mittelwertsumme = mittelwertsumme - Offset;
|
|
||||||
StringBuilder testsb = new StringBuilder();
|
StringBuilder testsb = new StringBuilder();
|
||||||
testsb.append(mittelwertsumme);
|
testsb.append(mittelwertsumme);
|
||||||
String tests = testsb.toString();
|
String tests = testsb.toString();
|
||||||
test.setText(tests);
|
test.setText(tests);
|
||||||
|
|
||||||
if((mittelwertsumme > Schwellwert ) & (ts_setzen == true)){
|
if((mittelwertsumme > (Schwellwert+Offset) ) & (ts_setzen == true) &(start_messen == true)){
|
||||||
Zeitstempel = getTimestamp();
|
Zeitstempel = getTimestamp();
|
||||||
StringBuilder ts = new StringBuilder();
|
StringBuilder ts = new StringBuilder();
|
||||||
ts.append("Warnung: ")
|
ts.append("Warnung: ")
|
||||||
@ -98,8 +101,8 @@ public class Beschleunigungssensor extends AppCompatActivity implements SensorEv
|
|||||||
Warnung = ts.toString();
|
Warnung = ts.toString();
|
||||||
Warnung_Bsensor.setText(Warnung);
|
Warnung_Bsensor.setText(Warnung);
|
||||||
ts_setzen = false;
|
ts_setzen = false;
|
||||||
}else if((mittelwertsumme > Schwellwert) & (ts_setzen == false)){
|
}else if((mittelwertsumme > (Schwellwert+Offset)) & (ts_setzen == false)){
|
||||||
} else if ((mittelwertsumme < Schwellwert) & (ts_setzen == false)) {
|
} else if ((mittelwertsumme < (Schwellwert+Offset)) & (ts_setzen == false)) {
|
||||||
Warnung_Bsensor.setText("");
|
Warnung_Bsensor.setText("");
|
||||||
ts_setzen = true;
|
ts_setzen = true;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user