рдкрд░рд┐рдЪрдп
рд╣рд╛рдп рд╣реНрд░рд╛рдмреЙрдмреНрд╕рдЪрд╕реНрдЯреЗрд╡реЗрдЯреЛ! рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдореИрдВ рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдХреИрд╕реЗ рдПрдХ рдмрд╛рд░ рдореБрдЭреЗ рдПрдЪрдЯреАрд╕реА рдбрд┐рдЬрд╝рд╛рдпрд░ рдХреЗ рд╕реЗрдВрд╕рд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдерд╛, рдЬреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИред

рд▓рдХреНрд╖реНрдп рдерд╛: рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреА рдЧрддрд┐ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдирд╛ред рдпрд╣реА рд╣реИ, рд╕реЗрдВрд╕рд░ рд╕реЗ рдбреЗрдЯрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЗрди рдорд╛рдкреЛрдВ рдХреЗ рддреНрд╡рд░рдг рдФрд░ рд╕рдордп рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛ред рдЖрдЧреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдбреЗрдЯрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЧрддрд┐ рдХреА рдЧрдгрдирд╛ рдХрд░рддреА рд╣реИ, рдФрд░ рдлрд┐рд░ рдЪрд▓рддреА рд╣реИред
рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореБрдЭреЗ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдХреЗ рдорд╛рд╣реМрд▓ рдХреЗ рд╕рд╛рде рдЯрд┐рдВрдХрд░ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдореБрдЭреЗ рдЬрд╛рд╡рд╛ рдореЗрдВ рдЧреНрд░рд╣рдг рдХреЗ рдмреАрдЪ рдореЗрдВ рдХреЛрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рдерд╛, рдореБрдЭреЗ рдореВрд▓ рдмрд╛рддреЗрдВ рд╕реАрдЦрдирд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдЕрдВрдд рдореЗрдВ, рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рдорд╛рдЗрдХреНрд░реЛрдПрд╕рдбреА рдХрд╛рд░реНрдб рдкрд░ SQLite рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рддрд╛ рдерд╛ред рдпрд╣рд╛рдВ рдкрд╣рд▓реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:

рдпрд╣ рдПрдХреНрд╕реЗрд▓реЗрд░реЗрд╢рди (Y- рдЕрдХреНрд╖) рдмрдирд╛рдо рд╕рдордп (X- рдЕрдХреНрд╖) рдХрд╛ рдПрдХ рдЧреНрд░рд╛рдл рд╣реИ, рдЗрд╕ рдкреНрд░рдпреЛрдЧ рдореЗрдВ рдлреЛрди рдХреЛ рдмрд╕ рдлрд┐рд╕рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрдмрд▓ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдзрдХреЗрд▓рд╛ рдЧрдпрд╛ рдерд╛ред рдлрд┐рд░ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдкрд░реАрдХреНрд╖рдг рд╣реБрдП, рдореИрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕реЗрдВрд╕рд░ рдХреА рд╕рдВрддреГрдкреНрддрд┐ рдореВрд▓реНрдп (рдЕрдзрд┐рдХрддрдо рдФрд╕рдд рджрд░реНрдЬреЗ рдХрд╛ рддреНрд╡рд░рдг рдореВрд▓реНрдп) рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдлреЛрди рдзреАрд░реЗ-рдзреАрд░реЗ рддреНрд╡рд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдкрд░рд┐рдкрддреНрд░ рдкрде рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛ред рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдбреЗрдЯрд╛ рдЧреНрд░рд╛рдл:

рд╕реЗрдВрд╕рд░ рдХреА рд╕рдВрддреГрдкреНрддрд┐ рд▓рдЧрднрдЧ 18.35 m / s ^ 2 рдХреЗ рдореВрд▓реНрдп рдкрд░ рд╣реБрдИред
рддрдм рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдЖрдВрдХрдбрд╝реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛:

рдпрд╣рд╛рдВ рдЖрдк рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдлреЛрди рдХреЛ рд╕реНрд▓рд╛рдЗрдб рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ: рдиреАрд▓реА рд░реЗрдЦрд╛ рддреНрд╡рд░рдг рд╣реИ, рд▓рд╛рд▓ рд░реЗрдЦрд╛ рдЧрддрд┐ рд╣реИ рдФрд░ рд╣рд░реА рд░реЗрдЦрд╛ рдЧрддрд┐ рд╣реИред рдпрд╣ рдмрд╣реБрдд рд╕рдлрд▓ рдирд╣реАрдВ рд╣реИ, рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХред рдпрд╣рд╛рдБ рд╡рд┐рд╕реНрдерд╛рдкрди рдХрднреА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдерд╛ред
рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреБрднрд╡ рдХрд╛ рдПрдХ рдФрд░ рдЕрдзрд┐рдХ рдЖрджрд░реНрд╢ рдЙрджрд╛рд╣рд░рдг рд╣реИ:

рдпрд╣рд╛рдВ, рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдлреЛрди рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╢рдВрд╕рдиреАрдп рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдореИрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдлреЛрди рдХреЗ рд╕рд╛рде рдЪрд▓рддреЗ рд╕рдордп рдбреЗрдЯрд╛ рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛:

рдФрд░ рдлреЛрди рдХреЗ рд╕рд╛рде рдЪрд▓рдиреЗ рдкрд░ рднреА:

рдЪрд▓рдиреЗ рдФрд░ рджреМрдбрд╝рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░, рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рдХрд┐ рд╕реЗрдВрд╕рд░ рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдХреИрд╕реЗ рдЬрдорд╛ рд╣реЛрддреА рд╣реИрдВ, рдЙрдирдХреЗ рдЖрдЧреЗ рдХреЗ рдмрд╣рд┐рд╖реНрдХрд░рдг рдХреЗ рд▓рд┐рдП, рдЗрди рд╕рднреА рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЕрдзреНрдпрдпрди рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдХреЗрд╡рд▓ рдПрдХ рдПрдХреНрд╕ рдЕрдХреНрд╖ рд╕реЗ рдбреЗрдЯрд╛ рд╣реИ, рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рддреНрд╡рд░рдг рд╕реЗрдВрд╕рд░ рдкрд░ рдкреНрд░рднрд╛рд╡ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд▓реЗрдЦрд╛рдВрдХрди рдирд╣реАрдВ рд╣реИ (рдлреЛрди рдХреЗ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдШреБрдорд╛рд╡ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ)ред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдШреБрдорд╛рд╡ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рдПрдХ рдЕрдХреНрд╖ рд╕реЗ рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЧрдпрд╛ рдерд╛:

рдЗрд╕ рдкреНрд░рдпреЛрдЧ рдореЗрдВ, рдлрд╝реЛрди рдЯреЗрдмрд▓ рдкрд░ рдерд╛, рдФрд░ рдЙрд╕рдХрд╛ рдПрдХ рдкрдХреНрд╖ рдЯреЗрдмрд▓ рдкрд░ рдлрд╝реЛрди рдХреЗ рд▓рдВрдмрд╡рдд рд╕реНрдерд┐рддрд┐ рдХреЗ рднреВрдд рдкрд░ рдЪрдврд╝ рдЧрдпрд╛ред рдпрд╣рд╛рдВ, рд▓рд╛рд▓ рд░реЗрдЦрд╛ рдХреЛрдг (рдХрдореНрдкрд╛рд╕ рд╕реЗ рдкреНрд░рд╛рдкреНрдд) рд╣реИ, рд╣рд░реЗ рд░рдВрдЧ рдХрд╛ рддреНрд╡рд░рдг рд╕реЗрдВрд╕рд░ рдкрд░ рдореВрд▓реНрдп рд╣реИ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореВрд▓реНрдп = рддреНрд╡рд░рдг + рдЧреБрд░реБрддреНрд╡), рд╡рд╛рдпрд▓реЗрдЯ рддреНрд╡рд░рдг рдореВрд▓реНрдп (рдХреЛрдг рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдпреЛрдЬрд┐рдд) рд╣реИред рдпрд╣реА рд╣реИ, рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛ред
рдирд┐рд╖реНрдХрд░реНрд╖
рдпрд╣ рд╕рд╡рд╛рд▓ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдФрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрд░реА рдЬрд┐рдЬреНрдЮрд╛рд╕рд╛ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдкреНрд░рдХрдЯреАрдХрд░рдг рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдЗрди рд╕реЗрдВрд╕рд░ рд╕реЗ рдорд╛рдк рдХреА рдЖрд╡реГрддреНрддрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдЪреНрдЪ-рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реЛрдЧрд╛ред
UPD: рдореИрдВрдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд╕рднреА рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реА рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдЦреЛрджрд╛ рд╣реИ, рдореИрдВ рдЖрдкрд╕реЗ рдХрд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рдХреЗрд╡рд▓ Android рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдбрд╛рдВрдЯреЗрдВ рдирд╣реАрдВ:
package com.dimond.acc;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.hardware.SensorListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.os.Environment;
import android.os.SystemClock;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.database.sqlite.SQLiteDatabase;
public class acc extends Activity implements SensorListener {
public class AXYZTdata
{
float ax;
float ay;
float az;
long time;
public AXYZTdata( float in_ax, float in_ay, float in_az, long in_time)
{
ax = in_ax;
ay = in_ay;
az = in_az;
time = in_time;
}
}
SensorManager sm = null ;
final String tag = "logging" ;
private EditText MassivN;
TextView DataText;
String TimeNowtmp;
int N, sec, stroka=0;
AXYZTdata[] mass = new AXYZTdata[10000];
float acc_x, acc_y, acc_z, acc_time = 0;
SQLiteDatabase mDatabase = SQLiteDatabase.openOrCreateDatabase( "/mnt/sdcard/DB/" +String.valueOf(System.currentTimeMillis())+ ".db" , null );
int onoff=0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
sm = (SensorManager) getSystemService(SENSOR_SERVICE);
Button start = (Button) findViewById(R.id.Start);
Button stop = (Button) findViewById(R.id.Stop);
Button write = (Button) findViewById(R.id.Write);
DataText = (TextView) findViewById(R.id.data);
//
String DATABASE_CREATE =
"create table accdb" +
"(_id integer primary key autoincrement, " +
"acc_x text not null," +
"acc_y text not null," +
"acc_z text not null," +
"time_h_m_s text not null);" ;
mDatabase.execSQL(DATABASE_CREATE);
//
start.setOnClickListener( new OnClickListener() {
public void onClick(View arg0)
{
startwrite();
}
});
//
stop.setOnClickListener( new OnClickListener() {
public void onClick(View arg0)
{
stopwrite();
}
});
//
write.setOnClickListener( new OnClickListener() {
public void onClick(View arg0)
{
masstosql();
DataText.setText( "Writed!!!" );
}
});
}
public void startwrite()
{
onoff=1;
return ;
}
public void stopwrite()
{
onoff=0;
DataText.setText(String.valueOf(stroka));
return ;
}
public void masstosql()
{
long StartTime = mass[0].time;
for ( int i=0; i<stroka; i++)
{
mDatabase.execSQL(String.format( "INSERT INTO accdb (acc_x, acc_y, acc_z, time_h_m_s) VALUES ('%s','%s','%s','%s');" ,
mass[i].ax, mass[i].ay, mass[i].az, mass[i].time-StartTime));
}
return ;
}
public void onSensorChanged( int sensor, float [] values) {
synchronized ( this ) {
Log.d(tag, "onSensorChanged: " + sensor + ", x: " + values[0] + ", y: " + values[1] + ", z: " + values[2]);
if (sensor == SensorManager.SENSOR_ACCELEROMETER && onoff==1) {
AXYZTdata tmp;
tmp = new AXYZTdata(values[0], values[1],values[2], System.currentTimeMillis());
mass[stroka] = tmp;
stroka++;
}
}
}
public void onAccuracyChanged( int sensor, int accuracy) {
Log.d(tag, "onAccuracyChanged: " + sensor + ", accuracy: " + accuracy);
}
@Override
protected void onResume() {
super.onResume();
sm.registerListener( this , SensorManager.SENSOR_ACCELEROMETER, SensorManager.SENSOR_DELAY_FASTEST);
}
@Override
protected void onStop() {
sm.unregisterListener( this );
super.onStop();
}
}
* This source code was highlighted with Source Code Highlighter .
рдпрд╣рд╛рдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреМрди
рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реИ ред