T1 612012041 BAB III
18
BAB III
PERANCANGAN SISTEM 3.1 Gambaran Sistem
Sistem ini bertujuan untuk mengambil data sudut kemiringan tubuh bagian tulang belakang, dirancang dengan accelerometer dan gyro yang dapat dimanfaatkan sebagai alat ukur kelengkungan tulang belakang dengan cara memanfaatkan pengukuran percepatan gravitasi dan percepatan sudut pada
accelerometer dan gyro. Nilai output pada accelerometer dan gyro diolah oleh arduino nano melalui I2C. Pada pin output dan input arduino, terhubungmodul sd card melalui SPI, sehingga hasil data dari pengukuran dapat disimpan pada memori SD card. Setelah mendapatkan data terukur dari accelerometer dan gyro
yang diproses melalui arduino, data pada modul sd card akan diolah dengan menggunakan software MATLAB, dengan menampilkan grafik hasil pengukuran dan membuat rekam medik sampel uji. Sistem tersebut akan ditempatkan pada korset agar mudah digunakan dan tidak menggangu kenyamanan saat digunakan. Sistem ini ditunjukan pada orang-orang yang membungkuk yang mengakibatkan kifosis atau skoliosis, sehingga dibutuhkan pengukuran dua dimensi terhadap sumbu x dan y.
Gambar 3.1. Blok Diagram Sistem
I2C
SPI
Arduino NANO
GY-521 Modul SD Card
GPIO
BuzzerMATLAB
Power Bank 5.1V (Lithium Polymer) Switch
(2)
19
menunjukkan blok diagram sistem secara keseluruhan yang dirancang. Secara umum sistem yang dirancang terdiri dari kontrol utama, sensor, notifier, komunikasi, matlab, dan sumber daya listrik.
1. Kontrol Utama
Kontrol utama dalam blok diagram sistem di atas adalah arduino nano.
2. Sensor
Dalam bagian ini terdapat beberapa perangkat keras, diantaranya : a. Accelerometer
b. Gyroscope
Keseluruhan sensor tersebut terdapat pada modul GY-521.
3. Notifier
Buzzer menggunakan speaker kecil dengan menggunakan tegangan 3 Volt , menggunakan PWM (Pulse Width Modulation), digunakan sebagai notifikasi. Tiga buah led berwarna merah, kuning dan biru juga digunakan sebagai pemberi tanda apabila ada perintah melalui tombol switch.
4. Komunikasi
Komunikasi diperlukan guna mengirim dan menerima data antara modul GY-521 dengan arduino nano menggunakan i2C. Komunikasi melalui SPI digunakan antara SD card modul dengan arduino nano.
5. Sumber Daya Listrik
Sumber Daya Listrik untuk sistem ini adalah baterai lithium polymer 5.1 volt pada power bank digunakan sebagai sumber daya listrik pada arduino nano, modul GY-521, buzzer dan modul sd card.
(3)
20
3.2 Perancangan Perangkat Keras
Pada bagian ini, akan dibagi menjadi dua yaitu bagian perangkat keras elektronik dan perancangan wearable device.
3.2.1 Perangkat Keras Elektronik
Arduino nano digunakan sebagai kontrol utama dalam sistem ini. Berikut adalah tabel konfigurasi penggunaan pin pada Arduino nano.
Tabel 3.1. Konfigurasi Pin pada Arduino nano
No Nama Port Fungsi
1 A0 Notifier Led Merah
2 A1 Notifer Led Biru
3 A2 Notifer Led Kuning
4 A4 I2C SDA GY-521
5 A5 I2C SCL GY-521
6 D13 SCK (SPI) modul sd card
7 D12 MISO (SPI) modul sd card
8 D11 MOSI (SPI) modul sd card
9 D10 CS (SPI) modul sd card
10 D9 Notifier Buzzer
11 D8 Notifier Buzzer
12 D4 Tombol Input A
13 D3 Tombol Input B
14 D2 Tombol Interupt
Sistem utama terletak pada perangkat keras elektronik. Sistem dapat diperingkas lebih sederhana dengan penggunaan I2C untuk pengukuran percepatan sudut dan gravitasi menggunakan GY-521. GY-521 memiliki DMP (Digital Motion Processing) yang dimana didalam MPU6050 memiliki mikrokontroler tersendiri untuk memproses data pengukuran percepatan gravitasi dan sudut. Jika menggunakan DMP memiliki konsekuensi memori pada Arduino nano yang besar, sehingga DMP tidak digunakan dalam sistem ini. Modul sd card akan menyimpan data berupa text yang berisi data
(4)
21
olahan Arduino nano terhadap sensor percepatan sudut dan gravitasi. Halaman data yang digunakan adalah .txt, berisikan data pengukuran pada sumbu y dan x.. Tombol digunakan untuk menentukan program yang akan dijalankan pada Arduino nano, sedangkan notifier led sebagai pengganti display, untuk mempermudah pengguna memilih menu.
(5)
22
Pada sistem dicatu dengan tegangan 5.5 Volt yang didapatkan dari Power Bank
melalui port USB Arduino nano. Keseluruhan sistem membutuhkan tegangan rata-rata 5 Volt sehingga tidak dibutuhkan step up tegangan untuk mencatu modul-modul elektronika lainnya. Modul-modul elektronika seperti GY-521 dan sd card, mendapatkan tegangan dari Arduino nano, karena pada mikrokontroler ini memiliki
port output tegangan berupa 5.5 Volt dan 3.3 Volt sehingga, modul elektronika bisa mendapatkan supply dengan mengkoneksikan pada port 5.5 Volt (+5V). Setiap modul elektronik memiliki regulator masing-masing yang bisa dilihat pada rangkaian Bab II. Regulator tersebut digunakan untuk menstabilkan tegangan yang berlebih, regulator yang digunakan memiliki tegangan ouput 3.3 Volt.
(6)
23
Gambar 3.4. 3D Design Board Sistem Meggunakan Solid Work
(7)
24
Ket:
Ukuran dalam mm
Pada gambar, terdapat GY-521, modul sd card, sistem, dan power bank. Power bank memiliki kapasitas 3300 mAh dengan tegangan 5.1 Volt, dan arus sebesar 1000 mA. Untung menghubungkan antara sumber tegangan dengan sistem utama menggunakan kabel usb. Pada saat pengujian yang nanti akan dilakukan, modul sd card akan di tempatkan pada bagian atas sistem, yang tersambung melalui SPI. Modul sd card
diletakan diatas Arduino nano supaya menghemat penggunaan tempat, serta sistem lebih terlihat dinamis.
3.2.2 Perancangan wearable device
Gambar 3.6. Ukuran Korset yang Digunakan dalam Perancangan
(8)
25
Korset yang digunakan menggunakan kain lentur yang bisa menyesuaikan ukuran bentuk tubuh responden. Dipilihnya korset lantaran, mudah sekali untuk digabungkan dengan perangkat elektronik dengan cara dijahit. Selain itu, jarak antara sensor yang dipasang dengan tubuh tidak terlalu jauh sehingga dapat meningkatkan akurasi dalam pengukuran sudut pada tubuh bagian tulang belakan
Gambar 3.8. Desain Pemasangan Seluruh Sistem pada Tubuh 3.3 Perancangan Perangkat Lunak
Pada bagian ini, akan dibagi menjadi dua yaitu bagian perangkat lunak pada Arduio dan perangkat lunak pada Matlab.
3.3.1 Perangkat Lunak pada Arduino
Dalam memprogram Arduino, digunakan Arduino IDE versi 1.6.7. Arduino IDE yang sudah terinstall pada komputer dapat langsung terkoneksi dengan Arduino uno melalui port USB, komunikasi antar komputer dengan Arduino menggunakan komunikasi serial dari chip FTDI. Arduino juga menyediakan library yang berfungsi untuk mempermudah programmer memprogram. Berikut merupakan pustaka yang digunakan dalam perancangan sistem ini.
Tabel 3.2. Daftar penggunaan library
NO Nama Library Fungsi
1 Timer.h Mengatur interrupt
2 Wire.h Menghubungkan i2C
3 SPI.h Menghubungkan SPI
(9)
26
Gambar 3.9. Diagram Alir Algoritma Sistem pada Perangkat Keras MULAI
APAKAH TOMBOL MULAI BERNILAI LOW ?
APAKAH TOMBOL PILIH BERNILAI HIGH ?
YA A A TAMBAH NILAI FLAG YA YA
APAKAH FLAG BERNILAI GENAP ?
SET NILAI FLAG MENJADI 1 dan NYALAKAN LED BIRU
SET NILAI FLAG MENJADI 0 dan NYALAKAN LED
KUNING
YA TIDAK
APAKAH FLAG BERNILAI LEBIH DARI 4 ?
SET NILAI FLAG 0 1
1
1 TIDAK
(10)
27
Gambar 3.10. Diagram Alir Algoritma Sistem pada Perangkat Keras
APAKAH TOMBOL MULAI
BERNILAI HIGH DAN
KONDISI BERNILAI 1 ?
APAKAH TOMBOL PILIH
BERNILAI HIGH DAN
KONDISI BERNILAI 1?
LED BIRU, MERAH, KUNING
MENYALA
TIDAK TIDAK
SET NILAI KONDISI
MENJADI 1 C C D YA D
MATIKAN LED BIRU,
MERAH, dan KUNING
LED KUNING MENYALA
APAKAH NILAI KONDISI
BERNILAI 1 ?
AMBIL DATA SUDUT
KEMIRINGAN
TRANSFER DATA SUDUT KEMIRINGAN PADA SD
CARD
YA
CEK SUDUT KEMIRINGAN
APAKAH SUDUT KEMIRINGAN MELEBIHI
SUDUT BUNGKUK ? TIDAK YA BUZZER BERBUNYI YA TIDAK C
(11)
28
Gambar 3.11. Diagram Alir Algoritma Sistem pada Perangkat Keras
Berikut adalah penjelasan algoritma pada perangkat lunak arduino:
a. Pertama kali Arduino nano akan menunggu perintah dari penguna.
b. Arduino nano akan melakukan pengecekan apakah ada perintah atau tidak. Jika ada, maka Arduino akan melanjutkan ke perintah selanjutnya, dan jika tidak maka Arduino akan menunggu hingga tedapat perintah dari pengguna.
MATIKAN LED BIRU, MERAH, dan KUNING
LED BIRU MENYALA
APAKAH NILAI KONDISI BERNILAI 1 ?
AMBIL DATA SUDUT KEMIRINGAN
TRANSFER DATA SUDUT KEMIRINGAN PADA SD
CARD YA
CEK SUDUT KEMIRINGAN
TIDAK
C
INT 1
SET KONDISI BERNILAI 0
(12)
29
c. Flag dalam program berfungsi sebagai variabel untuk menentukan apakah kondisi bernilai genap atau ganjil. Hal ini dilakukan untuk membuat satu tombol dapat memilih beberapa menu, sehingga nilai flag selalu bertambah, dan apabil flag melebihi nilai empat maka akan dikembalikan nilainya menjadi nol. Nilai flag ini mengindikasikan tombol menu satu dan tombol menu dua. Sedangkan tombol pilih merupakan tombol yang berfungsi untuk menjalakan program selanjutnya.
d. Apabila tombol menu satu yang ditekan maka pengguna akan menjalankan mode observasi. Indikator dari mode ini adalah led kuning akan menyala. Data pengukuran nantinya akan disimpan dalam halamana A.txt
e. Apabila tombol menu dua yang ditekan maka pengguna akan menjalankan mode siaga. Indikator dari mode ini adalah led biru akan menyala. Data pengukuran nantinya akan disimpan dalam halaman B.txt
f. Saat mode observasi, bertujuan untuk mengukur besarnya sudut tulang punggung bagian tulang belakang saat kebiasaan duduk. Data yang diambil pada sumbu x dan y dilihat dari belakang pengguna.
g. Saat mode siaga, bertujuan untuk melakukan terapi fisik dengan cara menegakan kembali tulang punggung. Ketika buzzer berbunyi, pengguna harus menegakan tulang punggung bagian belakang.
h. Apabila terjadi kesalahan, atau ingin meghentikan pengukuran, maka tombol
interrupt dapat digunakan untuk menhentikan semua aktivitas sistem, kemudian sistem akan menyimpan seluruh data terakhir pada modul sd card. Lampu led berwarna merah akan menyala sebagai indikator apabila aktivitas seluruh sistem sudah berhenti.
3.3.2 Perangkat Lunak pada Matlab
Versi matlab yang digunakan dalam perancangan ini adalah R2015b (8.6.0.267246) 64 bit. Program matlab digunakan karena dapat memudahkan perancang memvisualisasikan dan menganalisa dalam bentuk grafik.
(13)
30
Gambar 3.12. Flow Chart Analisis Data
START
Load database
Masukan no mor nama pada menu option
Apakah memilih tombol go ?
Apakah memilih tombol analisis ?
Tampilkan grafik pengukuran roll
dan pitch
YA YA YA TIDAK TIDAK A A Apakah memilih tombol Hasil ?
Pindah ke Halaman Hasil YA TIDAK Tampilkan Data statistik dan Analisis END Y Apakah memilih tombol tambah data? YA
Pindah ke halaman tambah data Y Y Y Isikan data X X Tampilkan data responden
(14)
31
Berikut adalah penjelasan algoritma perangkat lunak pada matlab:
a. Load database berfungsi untuk memuat database yang tersimpan pada .xlx dalam satu folder dengan program yang dibuat.
b. Pemasukan nomor digunakan untuk mencari daftar orang yang akan dianalisis datanya.
c. Tombol Go berfungsi sebagai tombol yang memutuskan program untuk mencari data dalam database.
d. Apabila terdapat daftar nama pada database sesuai dengan yang diinginkan maka program akan menampilkan data-data berupa data raw dari Arduino nano pada tabel. Data yang ditampilkan adalah data pada sudut x dan y pada mode siaga dan observasi pada halaman utama.
e. Apabila tombol analisis ditekan, maka akan ditampilkan grafik roll dan pitch.
Roll adalah sudut ketika responden membungkuk, pitch adalah sudut dimana responden bergeser ke kanan atau ke kiri.
f. Apabila tombol hasil ditekan, maka program akan menampilkan pada halaman hasil. Halaman hasil akan menampilkan data-data statistik, dari data tersebut akan diolah menjadi data analisa hasil perhitungan sistem. Data statistika mencangkup mean, median, modus. Pembuatan histogram juga ditampilkan dalam halaman hasil guna mempermudah memvisualisasikan distribusi sudut. Hasil akhir data data statistika tersebut akan dianalisa dan akan menampilkan diagnosis berisi, jenis stadium, kecondongan tubuh kekiri atau ke kanan, sudut tulang belakang sebelum terapi fisik, sudut tulang belakang sesudah terapi fisik, dan besarnya sudut tulang belakang.
g. Halaman tambah data akan muncul apabila tombol tambah data ditekan. Halaman ini berfungsi untuk menstransfer data dari sd card dan akan dimasukan dalam database dalam halaman .xlx. Halaman ini juga membutuhkan beberapa inputan seperti nama, umur, dan jenis kelamin.
(15)
32
(16)
33
(17)
34
(1)
29
c. Flag dalam program berfungsi sebagai variabel untuk menentukan apakah kondisi bernilai genap atau ganjil. Hal ini dilakukan untuk membuat satu tombol dapat memilih beberapa menu, sehingga nilai flag selalu bertambah, dan apabil flag melebihi nilai empat maka akan dikembalikan nilainya menjadi nol. Nilai flag ini mengindikasikan tombol menu satu dan tombol menu dua. Sedangkan tombol pilih merupakan tombol yang berfungsi untuk menjalakan program selanjutnya.
d. Apabila tombol menu satu yang ditekan maka pengguna akan menjalankan mode observasi. Indikator dari mode ini adalah led kuning akan menyala. Data pengukuran nantinya akan disimpan dalam halamana A.txt
e. Apabila tombol menu dua yang ditekan maka pengguna akan menjalankan mode siaga. Indikator dari mode ini adalah led biru akan menyala. Data pengukuran nantinya akan disimpan dalam halaman B.txt
f. Saat mode observasi, bertujuan untuk mengukur besarnya sudut tulang punggung bagian tulang belakang saat kebiasaan duduk. Data yang diambil pada sumbu x dan y dilihat dari belakang pengguna.
g. Saat mode siaga, bertujuan untuk melakukan terapi fisik dengan cara menegakan kembali tulang punggung. Ketika buzzer berbunyi, pengguna harus menegakan tulang punggung bagian belakang.
h. Apabila terjadi kesalahan, atau ingin meghentikan pengukuran, maka tombol
interrupt dapat digunakan untuk menhentikan semua aktivitas sistem, kemudian sistem akan menyimpan seluruh data terakhir pada modul sd card. Lampu led berwarna merah akan menyala sebagai indikator apabila aktivitas seluruh sistem sudah berhenti.
3.3.2 Perangkat Lunak pada Matlab
Versi matlab yang digunakan dalam perancangan ini adalah R2015b (8.6.0.267246) 64 bit. Program matlab digunakan karena dapat memudahkan perancang memvisualisasikan dan menganalisa dalam bentuk grafik.
(2)
30
Gambar 3.12. Flow Chart Analisis Data
START
Load database
Masukan no mor nama pada menu option
Apakah memilih tombol go ?
Apakah memilih tombol analisis ?
Tampilkan grafik pengukuran roll
dan pitch YA YA YA TIDAK TIDAK A A Apakah memilih tombol Hasil ?
Pindah ke Halaman Hasil YA TIDAK Tampilkan Data statistik dan Analisis END Y Apakah memilih tombol tambah data? YA
Pindah ke halaman tambah data Y Y Y Isikan data X X Tampilkan data responden
(3)
31
Berikut adalah penjelasan algoritma perangkat lunak pada matlab:
a. Load database berfungsi untuk memuat database yang tersimpan pada .xlx dalam satu folder dengan program yang dibuat.
b. Pemasukan nomor digunakan untuk mencari daftar orang yang akan dianalisis datanya.
c. Tombol Go berfungsi sebagai tombol yang memutuskan program untuk mencari data dalam database.
d. Apabila terdapat daftar nama pada database sesuai dengan yang diinginkan maka program akan menampilkan data-data berupa data raw dari Arduino nano pada tabel. Data yang ditampilkan adalah data pada sudut x dan y pada mode siaga dan observasi pada halaman utama.
e. Apabila tombol analisis ditekan, maka akan ditampilkan grafik roll dan pitch.
Roll adalah sudut ketika responden membungkuk, pitch adalah sudut dimana responden bergeser ke kanan atau ke kiri.
f. Apabila tombol hasil ditekan, maka program akan menampilkan pada halaman hasil. Halaman hasil akan menampilkan data-data statistik, dari data tersebut akan diolah menjadi data analisa hasil perhitungan sistem. Data statistika mencangkup mean, median, modus. Pembuatan histogram juga ditampilkan dalam halaman hasil guna mempermudah memvisualisasikan distribusi sudut. Hasil akhir data data statistika tersebut akan dianalisa dan akan menampilkan diagnosis berisi, jenis stadium, kecondongan tubuh kekiri atau ke kanan, sudut tulang belakang sebelum terapi fisik, sudut tulang belakang sesudah terapi fisik, dan besarnya sudut tulang belakang.
g. Halaman tambah data akan muncul apabila tombol tambah data ditekan. Halaman ini berfungsi untuk menstransfer data dari sd card dan akan dimasukan dalam database dalam halaman .xlx. Halaman ini juga membutuhkan beberapa inputan seperti nama, umur, dan jenis kelamin.
(4)
32
(5)
33
(6)
34