Jumat, 10 Februari 2012

SENSOR GYROSCOPE LISY300

Sensor gyroscope yang saya gunakan ini adalah sebuah modul yang terdiri dari sensor Gyroscope LISY300AL dan ADC serial ADC101S021 yang dikeluarkan oleh PARALLAX Inc. Pada modul ini pun telah dilengkapi dengan regulator tegangan 3.3 V sebagai supply nya. Modul Sensor Gyroscope LISY300AL dapat mendeteksi kecepatan sudut (angular rate) satu axis, yaitu sumbu Z (yaw). Dan mampu membaca sampai ± 300°/s full scale.

[PROTOKOL KOMUNIKASI]
Pada dasarnya output dari sensor Gyroscope LISY300AL adalah berupa tegangan analog, tetapi oleh PARALLAX Inc, output dari sensor Gyroscope tersebut dibaca menggunakan ADC serial. Sehingga untuk mengakses modul ini kita harus menggunakan protokol kumunikasi SPI (Serial Peripheral Interface). Berikut adalah timing diagram cara mengakses Modul Sensor Gyroscope LISY300AL (ADC serial ADC101S021).
 Pada dasarnya untuk dapat mengakses Modul Sensor Gyroscope LISY300AL ini, sebenarnya kita hanya harus tau cara mengakses ADC serial ADC101S021, dikarenakan Sensor Gyroscope itu sendiri dibaca oleh ADC serial ADC101S021. Dari gambar diatas terlihat bahwa terdapat 3 jalur untuk mengakses ADC serial ADC101S021 yaitu CS, SCLK dan SDATA.
CS digunakan untuk meng-enable ADC serial ADC101S021 agar dapat diakses, harus beri logika LOW.
SCLK digunakan sebagai serial clock, dimana semua aplikasi yang berkomunikasi secara serial membutuhkan clock untuk mengaksesnya, maksimal kecepatan clock untuk mengakses ADC serial ADC101S021 adalah 4MHz.
Sedangkan SDATA adalah jalur data serial yang berasal dari ADC serial ADC101S021. Data yang berasal dari ADC serial ADC101S021 mempunyai 15 bit data. Yaitu 3 bit 0 (LOW) awal, 10 bit data ADC dan 2 bit 0 (LOW) akhir. Dimana 10 bit data ADC dimulai dari MSB dan diakhiri oleh LSB.
[SENSITIVITAS]
Dan sensor Gyroscope LISY300AL, mempunyai sensitivitas 3.3 mV/°/s. Dimana ADC serial ADC101S021 mempunyai pembacaan data 10 bit (0-1023 atau sebanyak 1024 step) dengan perkiraan 3.22 mV/step. Sehingga setiap perubahan setiap step adalah perubahan 1 derajat.
[ZERO RATE LEVEL]
Sebenarnya sensor Gyroscope LISY300AL sudah terkalibrasi dari pabriknya. Yaitu dengan supply tegangan 3.3 V akan menghasilkan zero rate level 1.65 V (tegangan offset atau Voffset). Nilai zero rate level ini terjadi ketika Gyroscope tidak melakukan kecepatan sudut (angular rate), atau sensor Gyroscope dalam keadaan diam. Atau dengan kata lain jika dibaca menggunakan ADC 10 bit, dengan range input ADC 0-3.3 V, maka didapat nilai ADC sebesar 512 untuk zero rate level (tidak terjadi percepatan sudut atau dalam keadaan diam). Jika sumbu Z bergerak searah jarum jam, maka nilai ADC akan berkurang (dibawah nilai zero rate levelnya), Jika bergerak berlawanan arah jarum jam maka nilai ADC akan bertambah (diatas zero rate levelnya).
Tetapi menurut datasheet Gyroscope LISY300AL:
“Zero-rate level describes the actual output signal if there is no angular rate present. For a 3.3 V powered sensor the absolute zero-rate output is ideally 1.65 V. Zero-rate level of precise MEMS sensors is, to some extent, a result of stress to the sensor and therefore zero-rate level can slightly change after mounting the sensor onto a printed circuit board or after exposing it to extensive mechanical stress. This value changes very little over temperature and also very little over time.”
[KALIBRASI]
Karena alasan diatas, maka terjadi penyimpangan untuk nilai zero rate levelnya, yaitu maksimal sekitar 512±24. Oleh karena itu harus dilakukan cara untuk dapat menentukan nilai zero rate level melalui kalibrasi.
Pada dasarnya nilai zero rate level sudah bisa kita tentukan sendiri, yaitu saat tidak terjadi kecepatan sudut (angular rate) atau gyroscope dalam keadaan diam. Sebagai contoh ketika saya baca keluaran Modul Sensor Gyroscope LISY300AL muncul nilai 511, 509, 504, 513 (berubah-ubah). Dari data tersebut bisa saja saya mengambil kesimpulan jika nilai zero rate levelnya adalah 507 (nilai tengahnya).
Pertanyaannya, mengapa nilainya tidak diam/statis? Jawabannya adalah sensor gyroscope bersifar dinamis, dimana sensor gyroscope mempunyai nilai saat terjadi  kecepatan sudut (angular rate). Sedangkan saat diam (tidak terjadi angular rate) maka nilainya adalah sama dengan zero rate level. Lalu nilainya yang berubah-ubah dikarenakan gyroscope mempunyai efek drift saat kondisi diam (saya tidak tahu istilah drift dalam bahasa indonesia). Hal ini adalah kebalikan dari sensor accelerometer, dimana sensor accelerometer bersifat statis. Oleh karena itu mengapa pada banyak aplikasi selalu menggabungkan dua buah sensor tersebut (gyroscope dan accelerometer).
Baiklah, berikut adalah cara melakukan kalibrasinya. Cara ini saya dapat dari program demo yang diberikan oleh PARALLAX Inc.
center (saya gunakan untuk mengganti istilah zero rate level)
data_gyro (hasil pembacaan ADC dari gyroscope melalui komunikasi SPI)
center(n)=(center(n-1)+data_gyro(n))/ n
dimana:
n = banyaknya sampling
center(n-1) = 0 (bernilai nol pada awalnya)
Semakin banyak n (sampling) maka semakin baik untuk mendapatkan nilai zero rate levelnya. Kalibrasi ini dilakukan hanya 1 kali pada awal program saja.

0 komentar:

Posting Komentar