Tes 1 Accelerometer

Tujuan:

  1. mengetes algoritma interfacing I2C ADXL345 driver
  2. mengecek kemampuan ADXL345
  3. mendapatkan data mentah Accelero (dalam g)

Hasil:

  1. HasilTes1.txt
  2. Source Code
    // program untuk baca Accelero ADXL345
    // 0.1
    // Spazio 0.2
    // 13 Feb 2012
    //memasukkan library untuk komunikasi I2C
    #include// Definisi2 ADXL345
    #define ACC (0x53) //Alamat register ADXL345
    #define REG_POWER_CTL 0x2D //register Power Control
    #define ACC_TO_READ (6)// Axis Accelermoter yg akan dibacavoid setup() {
    //inisialisasi komunikasi serial
    Serial.begin(9600);
    delay(1);
    //inisialisai library Wire dan membangun jalur I2C dimana Arduino sebagai master
    Wire.begin();//mengatur accelerometer agar dalam mode measurement dan menonaktifkan semua
    //fitur powersaving melalui register 0x2D
    Wire.beginTransmission(ACC); //start transmission to ACC
    Wire.write(REG_POWER_CTL); // register address: 0x2D
    Wire.write(0x08); // 0x08
    Wire.endTransmission(); //end transmission}void loop() {
    int data_acc[3]; //variabel yg akan menyimpan data accelerometer
    int regAddress = 0x32; //alamat register data accel X0
    byte buff[ACC_TO_READ]; //buffer untuk menyimpan data accelero sementara//membaca data akselerometer
    Wire.beginTransmission(ACC); //start transmission to ACC
    Wire.write(regAddress); //sends address to read from
    Wire.endTransmission(); //end transmissionWire.beginTransmission(ACC); //start transmission to ACC
    Wire.requestFrom(ACC, ACC_TO_READ); // request 6 bytes from ACCint i = 0;
    while(Wire.available()) //ACC may send less than requested (abnormal)
    {
    buff[i] = Wire.read(); // receive a byte
    i++;
    }
    Wire.endTransmission(); //end transmission//masking!!
    //each axis reading comes in 10 bit resolution, ie 2 bytes. Least Significat Byte first!!
    //thus we are converting both bytes in to one int
    data_acc[0] = (((int)buff[1]) << 8) | buff[0];
    data_acc[1] = (((int)buff[3])<< 8) | buff[2];
    data_acc[2] = (((int)buff[5]) << 8) | buff[4];//menampilkan pembacaan Acclerometer
    for(i = 0; i < 3; i++){
    Serial.print(data_acc[i]);
    Serial.print(” “);
    }
    Serial.println(“”);}

 Hal – hal yang masih jadi pertanyaan:

  1. Kenapa saat diletakkan dalam keadaan seimbang data AccX tidak menghasilkan nilai 1???
    Jawaban: Berdasarkan referensi ini, data_acc yg qt dapat dari source code diatas menghasilkan data mentah komponen percepatan tiap sumbu (axis). Agar mendapatkan nilai percepatan tiap sumbu maka perlu diolah lagi.
    Berdasarkan data sheet ADXL345, jika accelerometer dalam keadaan rata pada bidang XY maka yang bernilai 1 adalah percepatan gravitasi arah Z bukan arah X. Hati-hati terhadap arah sumbu IMU!
  2. Apa gunanya data accelerometer dikalikan dengan gain?? (source code ADXL345 driver)
    Hipotesis: untuk mendapatkan nilai percepatan gravitasi tiap sumbu karena data yang didapat dari source code ini masih data mentah (seberapa mentah kah??? ini akan menjadi pertanyaan baru lagi) perlu diolah lagi agar menjadi data percepatan gravitasi tiap sumbu. Untuk mendapatkan percepatan gravitasi tiap sumbu, pada source code ADXL345 driver nilai data akselerometer (seperti yg didapat dari source code di atas) akan dikalikan dengan  nilai gain tiap axis dan dinormalisasi.
  3. Seberapa mentah data akselerometer yang didapat dari source code ini?? *DATA INI ARTINYA OPO???
    Data yg didapat dari source code ini merupakan data digital dari percepatan gravitasi tiap sumbu. Untuk merubahnya menjadi data percepatan gravitasi dalam g maka nilai mentah ini dikalikan dengan scale factor (referensi). Jadi kunci penting berikutnya adalah Scale Factor (Scale Factor = 1/sensitivity)
  4. Apa itu gain?
  5. Gimana caranya dapetnya?
    Dont know yet…

Hal – hal yang akan kami lakukan:

  1. Mencari tahu gunanya perkalian data accelerometer dengan gain di source code ADXL345 driver >> SOLVED
  2. mencoba untuk menormalisai vektor AccX, AccY dan AccZ >> DONE
  3. Melakukan kalibrasi sensor accelerometer: kalibrasi offset dan normalisasi

Tentang admin

Kami adalah tim penelitian yang fokus dalam pengembangan payload roket dalam rangka Kompetisi Muatan Roket Indonesia (Komurindo) yang diadakan oleh LAPAN. Kami berasal dari Universitas Indonesia. Target kami di Komurindo 2012 adalah masuk 10 besar. Cheers!
Pos ini dipublikasikan di Uncategorized. Tandai permalink.

Tinggalkan komentar