Accelerometer Android Sensor

Pada kesempatan kali ini akan mencoba posting mengenai android aplikasi development, sepertinya baru kali ini posting mengenai android di blog ini :D, yang kita bahas kali ini adalah tentang sensor dan hardware pada smartphone android, salah satunya adalah sensor accelerometer, seperti yang kita tahu sebuah handset android punya beberapa sensor yang ditanamkan didalamnya seperti Proximity sensor, Accelerometer, Compas, Magnetic field sensor, Gyroscope dan masih ada beberapa yang lain.

Accelerometer sensor sendiri adalah sebuah sensor yang dapat mengukur percepatan, mendeteksi dan mengukur getaran (vibrasi), dan mengukur percepatan akibat gravitasi. Contoh pemanfaatan aplikasi di android sendiri saat ini yang banyak dikembangkan adalah untuk untuk mendeteksi posisi suatu smartphone landcape atau vertical dengan otomatis perubahan pada layar, mendeteksi gerakan seperti gerakan percepatan langkah kaki ketika berjalan, dan juga gerakan tangan kita sebagai alat konsol untuk bermain game dan masih banyak kegunaan untuk pemanfaatan yang berkaitan dengan kontrol.

Berikut contoh accelerometer sensor aplikasi sederhana di android, yaitu aplikasi untuk menampilkan kordinat sumbu 3 axis accelerometer, yaitu sumbu X , Y, dan Z, untuk ilustrasi 3 axis sumbu di handset android seperti gambar dibawah

untuk membuatnya diasumsikan diasumsikan kita telah install weapon di pc kita, seperti JDK, Android SDK, Eclipse, ADT, dan berikut source code lengkapnya

accelerometer_3axis.java

package dev.andykamt.com;

import android.app.Activity;
import android.os.Bundle;
import android.hardware.Sensor; // memanggil funsi API sensor di android
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.widget.TextView;

public class accelerometer_3axis extends Activity implements SensorEventListener {
private SensorManager sensorManager;
TextView xCoor; // deklarasikan X axis object
TextView yCoor; // deklarasikan Y axis object
TextView zCoor; // deklarasikan Z axis object
/** Called when the activity is first created. */

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

xCoor=(TextView)findViewById(R.id.xcoor); // buat X axis object
yCoor=(TextView)findViewById(R.id.ycoor); // buat Y axis object
zCoor=(TextView)findViewById(R.id.zcoor); // buat Z axis object

sensorManager=(SensorManager)getSystemService(SENSOR_SERVICE);
// menambahkan listener. Listener untuk class ini adalah accelerometer_3axis
sensorManager.registerListener(this,
sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_NORMAL); // fungsi api yang dipakai untuk perubahan screen orientation
}

public void onAccuracyChanged(Sensor sensor,int accuracy){

}

public void onSensorChanged(SensorEvent event){

// cek jenis sensor
if(event.sensor.getType()==Sensor.TYPE_ACCELEROMETER){

// tetapkan directions
float x=event.values[0];
float y=event.values[1];
float z=event.values[2];

xCoor.setText("X: "+x);
yCoor.setText("Y: "+y);
zCoor.setText("Z: "+z);
}
}
}

accelerometer_3axis Manifest

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="dev.andykamt.com"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.INTERNET" />

<application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="false">
<activity android:name=".accelerometer_3axis"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

</application>
</manifest>

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@drawable/back"
android:padding="4dip">

<ImageView
android:id="@+id/icon"

android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginRight="6dip"

android:src="@drawable/icon2" />

<TextView
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"

android:gravity="center_vertical"
android:text="Accelerometer 3axis Sensor"
android:textColor="#00FF00"
android:textSize="20sp" />

<TextView
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"

android:singleLine="true"
android:ellipsize="marquee"
android:text="Aplikasi simple display 3 axis accelerometer :"
/>

<TextView
android:id="@+id/xcoor"
android:text="X Coordinate: "
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
/>

<TextView
android:id="@+id/ycoor"
android:text="Y Coordinate: "
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
/>

<TextView
android:id="@+id/zcoor"
android:text="Z Coordinate: "
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1" />

</LinearLayout>

untuk main.xml nya, disini kita tambahkan background sendiri, buat background gambar, disini diberi nama back.png dan ditaruh di dir  workspace\accelerometer_3axis\res\drawable-mdpi\ , karena medium dpi, mka standar size nya adalah 320×480 px,

tambah kan baris kodenya android:background=”@drawable/back”

Hasilnya akhirnya nantinya seperti gambar dibawah, untuk melihat perubahan sumbunya tingal di shake atau di goyang, sederhana kan 😀

Oh iya, untuk mendowload apk nya sudah saya upload disini, bagi yang mau mencoba :D,

Download APK

 

6

7 Responses

  1. klowor
    24/07/2012
  2. hernawanyudha
    27/09/2012
    • andykamto
      03/11/2012
  3. akhwan
    06/04/2013
  4. baybay
    16/04/2013
  5. g_besar
    21/08/2013
  6. Fendy
    24/06/2014

Kirim Komentar