T1 612012041 BAB III

(1)

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

Buzzer

MATLAB

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