35
sosialita
PEMBACAAN SENSOR
ACCELEROMETER LIS3DSH PADA
MODUL STM32F4–DISCOVERY
Salman, Endro ArtonoPusat Teknologi Roket e-mail : salman.kyn@gmail.com
Modul STM32F4 Discovery
STM32F4-Discovery adalah modul mikrokontroller STM32 yang diproduksi oleh ST Microelectronics. Mikrokontroler ini termasuk dalam 32 bit Acorn RISC Machine (ARM) mikroprosesor dan sudah dilengkapi dengan flash memory dan RAM. Mikrokontroler adalah sebuah chip yang berfungsi sebagai pengontrol rangkaian elektronik dan umumnya dapat menyimpan program didalamnya. Di dalam STM32F4-Discovery tersedia fasilitas umum dari sebuah mikrokontroler seperti Serial Peripheral Interface (SPI), Universal Synchronous/Asynchronous Receiver Transmitter (USART)/ Universal Asynchronous Receiver Transmitter (UART), Inter Integrated Circuit (I2C), timers, Analog to Digital (A/D) atau Digital to Analog (D/A) converter dan Input/Output (I/O) pin. Selain menggunakan mikrokontroler yang menurut penulis cukup “kencang”, modul ini juga berisi sensor dan fitur lain yang sangat berguna untuk modul pembelajaran atau penelitian. Beberapa fitur yang tersedia pada development board ini adalah :
• STM32F407VGT6 mikrokontroller dengan
kecepatan hingga 168MHz dengan 1MB flash memory dan 196KB SRAM.
• 8 buah LED.
• 2 buah switch push button.
• CS43L22 audio DAC dengan class D Amplifier. • MP45DT02 omni-directional digital microphone. • LIS3DSH 3-axis digital motion sensor.
• Micro-USB with On-The-Go Functionality. • Dual 50-Pin Expansion Headers.
• On-Board ST-LINK/V2.
Gambar 1 menunjukan letak sensor dan komponen penting dari STM32F4-Discovery.
41
PEMBACAAN SENSOR
ACCELEROMETER LIS3DSH
PADA MODUL
STM32F4–DISCOVERY
Salman, Endro Artono Pusat Teknologi Roket e-mail : salman.kyn@gmail.com
Modul STM32F4 Discovery
STM32F4-Discovery adalah modul mikrokontroller STM32 yang diproduksi oleh ST Microelectronics. Mikrokontroler ini termasuk dalam 32 bit Acorn RISC Machine (ARM) mikroprosesor dan sudah dilengkapi dengan flash memory dan RAM. Mikrokontroler adalah sebuah chip yang berfungsi sebagai pengontrol rangkaian elektronik dan umumnya dapat menyimpan program didalamnya. Di dalam STM32F4-Discovery tersedia fasilitas umum dari sebuah mikrokontroler seperti Serial Peripheral Interface (SPI), Universal Synchronous/Asynchronous Receiver Transmitter (USART)/ Universal Asynchronous Receiver Transmitter (UART), Inter Integrated Circuit (I2C), timers, Analog to Digital (A/D) atau Digital to Analog (D/A) converter dan Input/Output (I/O) pin. Selain menggunakan mikrokontroler yang menurut penulis cukup “kencang”, modul ini juga berisi sensor dan fitur lain yang sangat berguna untuk modul pembelajaran
atau penelitian. Beberapa fitur yang tersedia pada development board ini adalah :
STM32F407VGT6 mikrokontroller dengan kecepatan hingga 168MHz dengan 1MB flash memory dan 196KB SRAM.
8 buah LED.
2 buah switch push button.
CS43L22 audio DAC dengan class D Amplifier. MP45DT02 omni-directional digital microphone. LIS3DSH 3-axis digital motion sensor.
Micro-USB with On-The-Go Functionality. Dual 50-Pin Expansion Headers.
On-Board ST-LINK/V2.
Gambar 1 menunjukan letak sensor dan komponen penting dari STM32F4-Discovery.
Gambar 1. Development Board STM32F4-Discovery
Salah satu daya tarik yang membuat penulis ingin mencoba kehandalan mikrokontroler ini adalah tulisan salah satu blog (http://thebcfactor.net) yang menyatakan bahwa dengan perlakuan khusus modul ini bisa di-“compile” dengan menggunakan arduino IDE. Diharapkan dengan banyak contoh program dan library dalam arduino akan memberikan kemudahan dalam penggunaannya. Dalam blog (http://thebcfactor. net) sudah menjelaskan secara rinci tentang instalasi dan contoh program penyalaan LED dan menggunakan komunikasi serial dengan komputer melalui software
Gambar 1. Development Board STM32F4-Discovery
36 Vol. 12 No. 1 Juni 2017
link009.html) dan install pada komputer. • Pada aplikasi arduino biasanya belum terdapat
konfigurasi board STM32F4-Discovery. Konfigurasi board pada arduino harus di-install “Arduino SAM Boards (32 bit ARM Cortex M-3) by Arduino”. Selain itu kita harus unduh file STM32Duino (https://github. com/rogerclarkmelbourne/Arduino_STM32/ archive/master.zip) dari Roger Clarks github. File Arduino_STM32-master.zip di-unpack dan folder tersebut di-copy-kan ke folder “My Document>Arduino>hardware”. Terkadang kita harus membuat folder “hardware” karena saat pertama kali instalasi arduino IDE tidak ada folder tersebut.
LIS3DSH 3 Axis Digital Motion Sensor Accelerometer.
Sensor accelerometer adalah sebuah tranduser yang berfungsi untuk mengukur percepatan, mendeteksi dan mengukur getaran , ataupun untuk mengukur percepatan akibat gravitasi bumi. LIS3DSH adalah sensor accelerometer digital 3 axis dari ST Electronics dengan daya yang rendah dan berukuran 3x3x1 mm LGA-16 pin. Sensor accelerometer ini bisa diakses melalui SPI atau I2C. Kita bisa memilih skala penuh antara ±2g/±4g/±6g/±8g dengan kecepatan data keluaran dari 3,125 Hz sampai 1,6 KHz. Dalam pengujian ini menggunakan komunikasi SPI pada pilihan skala ±2g saja.
software serial terminal. Kali ini penulis ingin membaca sensor accelerometer yang ada di modul STM32F4-Discovery dan menampilkannya melalui serial terminal. Diharapkan mikrokontroller ini dapat digunakan untuk mendapatkan hasil perhitungan yang lebih baik dari mikrokontroler 8 bit atau 16 bit. Berikut adalah langkah-langkah untuk instalasi pada komputer:
Unduh driver untuk windows pada link (
http://www.st.com/en/development-tools/stsw-link009.html) dan install pada komputer.
Pada aplikasi arduino biasanya belum terdapat konfigurasi board STM32F4-Discovery. Konfigurasi board pada arduino harus di-install “Arduino SAM Boards (32 bit ARM Cortex M-3) by Arduino”. Selain itu kita harus unduh file STM32Duino
(https://github.com/rogerclarkmelbourne/Arduino_STM3 2/archive/master.zip) dari Roger Clarks github. File
board STM32F4-Discovery pada Tools>Board:”STM32F4-DISCOVERY F407”.
Untuk langkah install secara lengkap dan contoh programming awal seperti penyalaan LED bisa dilihat di
http://thebcfactor.net.
LIS3DSH 3 Axis Digital Motion Sensor Accelerometer.
Sensor accelerometer adalah sebuah tranduser yang berfungsi untuk mengukur percepatan, mendeteksi dan mengukur getaran , ataupun untuk mengukur percepatan akibat gravitasi bumi. LIS3DSH adalah sensor accelerometer digital 3 axis dari ST Electronics dengan daya yang rendah dan berukuran 3x3x1 mm LGA-16 pin. Sensor accelerometer ini bisa diakses melalui SPI atau I2C. Kita bisa memilih skala penuh antara ±2g/±4g/±6g/±8g dengan kecepatan data keluaran dari 3,125 Hz sampai 1,6 KHz. Dalam pengujian ini menggunakan komunikasi SPI pada pilihan skala ±2g saja.
Gambar 2. Koneksi STM32F4-Discovery dengan laptop Gambar 2. Koneksi STM32F4-Discovery dengan laptop
37
sosialita
SOSIALITA
43
Gambar 3. IC LIS3DSH pada STM32F4-Discovery Board
Dari datasheet LIS3DSH dan schematic
STM32F4-Discovery seperti terlihat pada gambar 2, dapat terlihat
hubungan pengkabelan melalui SPI atau I2C. Koneksi antar keduanya dapat diperlihatkan pada Tabel 1.
Register yang digunakan dalam koneksi SPI dalam pengujian ini hanya sedikit, untuk lebih lengkap diharapkan membaca datasheet dari sensor LIS3DSH. Beberapa register yang dipakai dalam pengujian ini dapat terlihat pada Tabel 2.
Tabel 1. Koneksi antara Mikrokontroller dengan sensor LIS3DSH
MCU Pin Nama Sinyal Jenis I/O State Fungsi PA5 SCL/SPC IN RISING EDGE I2C/SPI CLOCK
PA6 SDO OUT - SPI DATA OUT
PA7 SDA/SDI I/O - I2C DATA/ SPI DATA IN
PE3 CS IN LOW CHIP SELECT
PE0 INT1 OUT HIGH INTERUPT 1
PE1 INT2 OUT HIGH INTERUPT 2
Tabel 2. Register pada sensor LIS3DSH
Nama register Alamat Default
Value Keterangan WHO_AM_I 0Fh 3Fh Who Am I register
CNTRL_REG4 20h 07h Output data rate, Block data update, axis enable
CNTRL_REG5 24h 00h Anti aliasing filter, Full scale selection, Self test enable, Serial interface mode selection.
OUT_X_L 28h - X axis output register low values
OUT_X_H 29h - X axis output register high values
OUT_Y_L 2Ah - Y axis output register low values
OUT_Y_H 2Bh - Y axis output register high values
OUT_Z_L 2Ch - Z axis output register low values
OUT_Z_H 2Dh - Z axis output register high values
43 Gambar 3. IC LIS3DSH pada STM32F4-Discovery Board
Dari datasheet LIS3DSH dan schematic STM32F4-Discovery seperti terlihat pada gambar 2, dapat terlihat hubungan pengkabelan melalui SPI atau I2C. Koneksi antar keduanya dapat diperlihatkan pada Tabel 1.
Register yang digunakan dalam koneksi SPI dalam pengujian ini hanya sedikit, untuk lebih lengkap diharapkan membaca datasheet dari sensor LIS3DSH. Beberapa register yang dipakai dalam pengujian ini dapat terlihat pada Tabel 2. Tabel 1. Koneksi antara Mikrokontroller dengan sensor LIS3DSH
MCU Pin Nama Sinyal Jenis I/O State Fungsi PA5 SCL/SPC IN RISING EDGE I2C/SPI CLOCK
PA6 SDO OUT - SPI DATA OUT
PA7 SDA/SDI I/O - I2C DATA/ SPI DATA IN
PE3 CS IN LOW CHIP SELECT
PE0 INT1 OUT HIGH INTERUPT 1
PE1 INT2 OUT HIGH INTERUPT 2
Tabel 2. Register pada sensor LIS3DSH Nama register Alamat Default
Value Keterangan
WHO_AM_I 0Fh 3Fh Who Am I register
CNTRL_REG4 20h 07h Output data rate, Block data update, axis enable
CNTRL_REG5 24h 00h Anti aliasing filter, Full scale selection, Self test enable, Serial interface mode selection.
OUT_X_L 28h - X axis output register low values
OUT_X_H 29h - X axis output register high values
OUT_Y_L 2Ah - Y axis output register low values
OUT_Y_H 2Bh - Y axis output register high values
OUT_Z_L 2Ch - Z axis output register low values
OUT_Z_H 2Dh - Z axis output register high values
SOSIALITA
43 Gambar 3. IC LIS3DSH pada STM32F4-Discovery Board
Dari datasheet LIS3DSH dan schematic
STM32F4-Discovery seperti terlihat pada gambar 2, dapat terlihat
hubungan pengkabelan melalui SPI atau I2C. Koneksi antar keduanya dapat diperlihatkan pada Tabel 1.
Register yang digunakan dalam koneksi SPI dalam pengujian ini hanya sedikit, untuk lebih lengkap diharapkan membaca datasheet dari sensor LIS3DSH. Beberapa register yang dipakai dalam pengujian ini dapat terlihat pada Tabel 2.
Tabel 1. Koneksi antara Mikrokontroller dengan sensor LIS3DSH
MCU Pin Nama Sinyal Jenis I/O State Fungsi
PA5 SCL/SPC IN RISING EDGE I2C/SPI CLOCK
PA6 SDO OUT - SPI DATA OUT
PA7 SDA/SDI I/O - I2C DATA/ SPI DATA IN
PE3 CS IN LOW CHIP SELECT
PE0 INT1 OUT HIGH INTERUPT 1
PE1 INT2 OUT HIGH INTERUPT 2
Tabel 2. Register pada sensor LIS3DSH
Nama register Alamat Default
Value Keterangan
WHO_AM_I 0Fh 3Fh Who Am I register
CNTRL_REG4 20h 07h Output data rate, Block data update, axis enable
CNTRL_REG5 24h 00h Anti aliasing filter, Full scale selection, Self test enable, Serial interface mode
selection.
OUT_X_L 28h - X axis output register low values
OUT_X_H 29h - X axis output register high values
OUT_Y_L 2Ah - Y axis output register low values
OUT_Y_H 2Bh - Y axis output register high values
OUT_Z_L 2Ch - Z axis output register low values
OUT_Z_H 2Dh - Z axis output register high values
Dari datasheet LIS3DSH dan schematic STM32F4-Discovery seperti terlihat pada gambar 2, dapat terlihat hubungan pengkabelan melalui SPI atau I2C. Koneksi antar keduanya dapat diperlihatkan pada Tabel 1.
Register yang digunakan dalam koneksi SPI dalam pengujian ini hanya sedikit, untuk lebih lengkap diharapkan membaca datasheet dari sensor LIS3DSH. Beberapa register yang dipakai dalam pengujian ini dapat terlihat pada Tabel 2.
SOSIALITA
Tabel 3 memperlihatkan sensitivitas sensor untuk masing-masing skala.
Tabel 3. Sensitivitas sensor LIS3DSH
Fuse bits setting Sensitivitas (mg/bit) Skala penuh (g)
000 0,06 ±2
001 0,12 ±4
010 0,18 ±6
011 0,24 ±8
100 0,73 ±16
Listing permrograman dengan arduino IDE ditunjukan seperti Gambar 4, 5 dan 6 berikut:
Gambar 4. Listing program “include header dan variable”
Gambar 5. Listing program “setup”
Tabel 3 memperlihatkan sensitivitas sensor untuk masing-masing skala.
Vol. 13 No. 1 Juni 2018 Gambar 3. IC LIS3DSH pada STM32F4-Discovery Board
Tabel 1. Koneksi antara Mikrokontroller dengan sensor LIS3DSH
Tabel 2. Register pada sensor LIS3DSH
38 Vol. 13 No. 1 Juni 2018
Gambar 4. Listing program “include header dan variable”
Gambar 5. Listing program “setup”
39
sosialita
45 Gambar 6. Listing Program “loop”
Selanjutnya dilakukan pengujian dengan cara menggerakan modul STM32F4-Discovery masing masing pada sumbu X,Y dan Z sensor LIS3DSH untuk mengetahui perbedaan nilai akselerasi berdasarkan gaya grafitasi. Gaya grafitasi bumi digunakan untuk mengkalibrasi nilai keluaran dari accelerometer. Untuk itu, dalam melakukan pengujiannya, modul STM32F4-Discovery diarahkan terhadap gravitasi bumi, hingga masing-masing sumbu dari
accelerometer akan searah atau berlawanan terhadap arah gravitasi bumi. Hasil pembacaan dari pengujian ini disimpan dalam format file .txt dapat dibuat grafik yang menunjukan besar nilai akselerasi terhadap waktu, seperti ditunjukan pada Gambar 8.
Hasil pembacaan dengan menggunakan terminal pada Arduino, dapat diperlihatkan pada Gambar 7.
Gambar 7. Gambar serial monitor
SOSIALITA
Gambar 8. Hasil plot data dengan MATLAB
Dari hasil pengujian ini dapat ditarik kesimpulan bahwa pembacaan sensor LIS3DSH pada modul STM32F4-Discovery dengan menggunakan arduino IDE relative lebih mudah dibandingkan mikrokontroler 8 bit atau 16 bit karena library
dan function pada arduino memang sudah lengkap. Mikrokontroller STM32F4 juga dirasa cukup mumpuni untuk mengolah data accelerometer.
Selanjutnya dilakukan pengujian dengan cara menggerakan modul STM32F4-Discovery masing masing pada sumbu X,Y dan Z sensor LIS3DSH untuk mengetahui perbedaan nilai akselerasi berdasarkan gaya grafitasi. Gaya grafitasi bumi digunakan untuk mengkalibrasi nilai keluaran dari accelerometer. Untuk itu, dalam melakukan pengujiannya, modul STM32F4-Discovery diarahkan terhadap gravitasi bumi, hingga masing-masing sumbu dari accelerometer akan searah atau berlawanan terhadap arah gravitasi bumi. Hasil pembacaan dari pengujian ini disimpan dalam format file .txt dapat dibuat grafik yang menunjukan besar nilai akselerasi terhadap waktu, seperti ditunjukan pada Gambar 8.
Hasil pembacaan dengan menggunakan terminal pada Arduino, dapat diperlihatkan pada Gambar 7.
Dari hasil pengujian ini dapat ditarik kesimpulan bahwa pembacaan sensor LIS3DSH pada modul STM32F4-Discovery dengan menggunakan arduino IDE relative lebih mudah dibandingkan mikrokontroler 8 bit atau 16 bit karena library dan function pada arduino memang sudah lengkap. Mikrokontroller STM32F4 juga dirasa cukup mumpuni untuk mengolah data accelerometer.
Vol. 13 No. 1 Juni 2018 Gambar 7. Gambar serial monitor