• Tidak ada hasil yang ditemukan

Perancangan dan Realisasi Prototipe BERA (Brainstem Evoked Response Audiometry) Berbasis PC.

N/A
N/A
Protected

Academic year: 2017

Membagikan "Perancangan dan Realisasi Prototipe BERA (Brainstem Evoked Response Audiometry) Berbasis PC."

Copied!
49
0
0

Teks penuh

(1)

ABSTRAK

Sistem pendengaran memegang peranan penting dalam kehidupan karena

masalah pendengaran dapat mengganggu kemampuan komunikasi verbal yang

sangat dibutuhkan dalam aktivitas sehari-hari. Masalah pendengaran sejak lahir

dapat mengakibatkan kesulitan dalam bahasa dan berbicara. Jika dilakukan

identifikasi dan penanganan dini secara pro-aktif, masalah pendengaran dapat

ditangani, dan pendengaran dapat dioptimalkan sehingga anak-anak tersebut dapat

sukses di sekolah dan dapat lebih produktif dalam masyarakat.

BERA (Brainstem Evoked Response Audiometry) merupakan alat yang

digunakan untuk mendeteksi masalah sejak dini pada bayi yang baru lahir dan

anak-anak kecil di mana dokter tidak melihat respon fisik melainkan respon

mental yang dapat diperoleh melalui scan otak. BERA menilai kesatuan dan

kondisi jalur syaraf pendengaran ke otak.

Skripsi ini membahas tentang desain dan pengujian dari prototipe BERA

yang dikoneksikan ke PC (Personal Computer). Fungsi dari PC adalah untuk

mengontrol alat BERA dan menampilkan hasil tes ke monitor. Tujuan

digunakannya PC adalah agar BERA dapat lebih mudah dioperasikan oleh

pengguna. Dalam skripsi ini, hasil tampilan sinyal yang terekam oleh prototipe

alat akan ditampilkan beserta perhitungan responnya.

Universitas Kristen Maranatha

(2)

ABSTRACT

The hearing function holds an important role because hearing trouble can

interfere with verbal communication, which is much needed in everyday

activities. Hearing trouble in children from birth can result in difficulties with

language and speech. When pro-active identification and early intervention is

practiced, hearing trouble can be managed, and hearing can be optimized so that

children can succeed in school and can be more productive in society.

BERA (Brainstem Evoked Response Audiometry) are appliance used to

detect early hearing trouble in newborn babies and young children where the

doctor is not looking for a physical response but a mental response and this is

done using a brain scan. BERA assesses the integrity and condition of the hearing

path to the brain.

This thesis discusses the design and testing of prototype BERA connected

to a PC (Personal Computer). PC function is to control BERA appliance and to

display the result of the test in a monitor. The purpose using a PC is to make

BERA more friendly to the user. In this thesis, signal recorded in the prototype

will be displayed with its calculated response.

Universitas Kristen Maranatha

(3)

KATA PENGANTAR

Puji dan syukur penulis panjatkan kepada Tuhan Yesus Kristus atas kasih

setia, rahmat dan karuniaNya yang selalu memberikan tuntunan, pertolongan dan

kekuatan sehingga laporan tugas akhir dengan judul “Perancangan dan Realisasi

Prototipe BERA berbasis PC” dapat diselesaikan.

Penulis menyadari bahwa terciptanya laporan tugas akhir ini adalah berkat

bantuan dari berbagai pihak, oleh karena itu penulis ingin mengucapkan terima

kasih kepada:

1. Bapak Roy Pramono Adhie ST., MT., selaku pembimbing yang telah

membantu dalam pelaksanaan tugas akhir ini.

2. Ibu Ir. Anita Soepartono MSc., selaku koordinator tugas akhir, yang

telah membantu dalam proses pelaksanaan tugas akhir.

3. Bapak Ir. Aan Darmawan MT., selaku Ketua Jurusan Teknik Elektro,

Universitas Kristen Maranatha.

4. Bapak Drs. Ir. Hanapi Gunawan, Msc., Bapak Drs. Zaenal Abidin,

Msc., dan Bapak Dr. Ir. Daniel Setiadikarunia, MT. selaku dosen

penguji yang telah banyak memberikan saran-saran dalam pembuatan

tugas akhir ini.

5. Para dosen, karyawan, dan staf Jurusan Teknik Elektro Universitas

Kristen Maranatha atas ilmu dan bantuan dalam proses perkuliahan.

6. Orang tua, Setyawati, Felix, dan Yani yang selalu memberikan

dukungan dalam doa, dana, dorongan dan semangat dalam

menyelesaikan tugas akhir ini. Terima kasih juga atas kasih sayang

selama ini.

7. Herman, Alex, Faisal, Yohanes, Budi Hertanto, Hendra, Pohan,

Melvin dan semua teman Jurusan Teknik Elektro yang tidak dapat saya

sebutkan satu persatu. Terima kasih atas bantuan, masukan, semangat,

dan persahabatan selama ini.

8. Yohana Mellina Suryadi yang selalu memberikan dukungan, bantuan,

doa, dan kasih dalam melaksanakan tugas akhir ini. Thanks a lot.

Universitas Kristen Maranatha

(4)

9. Rekan-rekan sel Thomas Aquinas dan rekan-rekan Komunitas

Tritunggal Mahakudus Bandung. Terima kasih atas dukungan dan

bantuan doanya.

10.Fransiskus Xaverius Hendra Gunawan. Thank you uncle.

11.Rekan-rekan serta semua pihak yang tidak dapat disebutkan

satu-persatu yang telah membantu dan memberikan dukungan baik secara

langsung maupun tidak langsung selama penyusunan laporan ini.

Penulis menyadari bahwa laporan tugas akhir ini memiliki banyak

kekurangan karena keterbatasan ilmu dan pengetahuan yang penulis miliki, oleh

karena itu penulis mengharapkan kritik dan saran yang membangun. Akhir kata,

dengan segala keterbatasan dan kekurangan yang ada, penulis berharap semoga

laporan tugas akhir ini dapat bermanfaat bagi pembaca sekalian.

Bandung, Februari 2007

Penulis

Universitas Kristen Maranatha

(5)

DAFTAR ISI

ABSTRAK i

ABSTRACT ii

KATA PENGANTAR iii

DAFTAR ISI v

DAFTAR TABEL viii

DAFTAR GAMBAR ix

DAFTAR LAMPIRAN xii

BAB I PENDAHULUAN 1

I.1 Latar Belakang 1

I.2 Identifikasi Masalah 1

I.3 Tujuan 2

I.4 Pembatasan Masalah 2

I.5 Spesifikasi Alat 2

` I.6 Sistematika Penulisan 2

BAB II LANDASAN TEORI 4

II.1 Mikrokontroler ATMEGA8 4

II.1.1 Arsitektur ATMEGA8 4

II.1.2 Interupsi pada ATMEGA8 5

II.1.3 Komunikasi Serial USART 7

II.1.4 ADC ATMEGA8 15

II.2 Penguat Operasional 22

II.2.1 Penguat Membalik (Inverting Amplifier) 23

II.2.2 Penguat Tak Membalik (Non Inverting Amplifier) 24

II.2.3 Penguat Diferensial 24

II.2.4 Common Mode Rejection Ratio 25

II.2.5 Penguat Instrumentasi 25

II.2.6 Pengikut Tegangan 26

II.2.7 Rangkaian Penjumlah (Summing Amplifier) 27

Universitas Kristen Maranatha

(6)

II.3 Filter 28

II.3.1 Low Pass Filter 28

II.3.2 High Pass Filter 30

II.3.3 Band Pass Filter 31

II.3.4 Band Stop Filter 32

II.3.5 Klasifikasi Filter menurut Karakteristik dan Tipe 34

II.4 Konverter Analog ke Digital 35

II.4.1 Konverter Analog ke Digital Lereng Ganda 35

II.4.2 Succesive Approximation Converter 36

II.4.3 Konverter Paralel 36

II.5 Sangkar Faraday 37

II.6 Pengenalan Antarmuka RS-232C 38

II.7 Elektroda 39

II.8 Electroencephalography (EEG) 40

BAB III PERANCANGAN DAN REALISASI 42

III.1 Perangkat Keras 42

III.1.1 Penguat Awal 42

III.1.2 Right Leg Driver (RLD) 44

III.1.3 High Pass Filter 45

III.1.4 Low Pass Filter 47

III.1.5 Notch Filter 48

III.1.6 Summing Amplifier 49

III.1.7 Mikrokontroler ATMEGA8 50

III.1.8 Optocoupler 6N136 51

III.1.9 Interface Komunikasi Serial RS-232 52

III.2 Perangkat Lunak 53

III.2.1 Perangkat Lunak ATMEGA8 53

III.2.2 Perangkat Lunak Delphi 57

BAB IV PENGUJIAN ALAT 62

IV.1 Pengujian Alat Analog 62

IV.1.1 Pengujian Instrumentation Amplifier 62

IV.1.2 Pengujian High Pass Filter 64

Universitas Kristen Maranatha

(7)

IV.1.3 Pengujian Low Pass Filter 65

IV.1.4 Pengujian Notch Filter 65

IV.1.5 Pengujian Summing Amplifier 66

IV.2 Pengujian Alat Digital 66

IV.2.1 Pengujian Perangkat Lunak ATMEGA8 66

IV.2.2 Pengujian Perangkat Lunak Delphi 67

IV.3 Pengujian Sistem 71

IV.3.1 Pengujian Sistem Terhadap Masukan Sinyal Sinus

Dan Kotak 71

IV.3.2 Pengujian Terhadap Manusia 78

BAB V KESIMPULAN DAN SARAN 82

V.1 Kesimpulan 82

V.2 Saran 82

DAFTAR PUSTAKA LAMPIRAN

Universitas Kristen Maranatha

(8)

DAFTAR TABEL

Tabel II.1 Macam-macam Sumber Interupsi pada AVR ATMEGA8 5

Tabel II.2 Perhitungan Nilai UBRR untuk Berbagai Mode Operasi 9

Tabel II.3 Penentuan Ukuran Karakter 10

Tabel II.4 Penentuan Mode Paritas 12

Tabel II.5 Pemilihan Mode Tegangan Referensi ADC 20

Tabel II.6 Tabel Pemilihan Bit Saluran Pembacaan ADC 21

Tabel II.7 Konfigurasi Clock ADC 22

Tabel II.8 Karakteristik Penguat Operasional Ideal 23

Universitas Kristen Maranatha

(9)

DAFTAR GAMBAR

Gambar II.1 Blok Diagram Fungsional ATMEGA8 4

Gambar II.2 Blok Diagram USART ATMEGA8 8

Gambar II.3 Register UBRR 9

Gambar II.4 Register UCSRB 10

Gambar II.5 Register UCSRS 11

Gambar II.6 Register UDR 12

Gambar II.7 Register UCSRA 13

Gambar II.8 Blok Diagram ADC ATMEGA8 15

Gambar II.9 Prescaler ADC 17

Gambar II.10 Diagram Waktu ADC, Konversi Pertama 18

Gambar II.11 Diagram Waktu ADC, Konversi Tunggal 18

Gambar II.12 Diagram Waktu ADC, Konversi Free Running 19

Gambar II.13 Register ADMUX 19

Gambar II.14 Format Data ADC dengan ADLAR = 0 20

Gambar II.15 Format Data ADC dengan ADLAR = 1 20

Gambar II.16 Register ADCSRA 21

Gambar II.17 Rangkaian Penguat Membalik 23

Gambar II.18 Rangkaian Penguat Tak Membalik 24

Gambar II.19 Penguat Diferensial 25

Gambar II.20 Rangkaian Penguat Instrumentasi 25

Gambar II.21 Rangkaian Pengikut Tegangan 27

Gambar II.22 Rangkaian Penjumlah Membalik 27

Gambar II.23 Rangkaian Penjumlah Tak Membalik 28

Gambar II.24 (a) Respon Frekuensi Low Pass Filter 29

(b) Rangkaian Low Pass Filter Orde 1 29

Gambar II.25 Unity Gain Low Pass Filter Sallen and Key Orde 2 29

Gambar II.26 (a) Respon Frekuensi High Pass Filter 30

(b) Rangkaian High Pass Filter Orde 1 30

Universitas Kristen Maranatha

(10)

Gambar II.27 Rangkaian Unity Gain High Pass Filter Sallen and Key

Orde 1 31

Gambar II.28 Respon Frekuensi Band Pass Filter 31

Gambar II.29 Respon Frekuensi Band Stop Filter 32

Gambar II.30 Rangkaian Notch Filter 33

Gambar II.31 Konverter Analog ke Digital Lereng Ganda 35

Gambar II.32 Konverter Analog ke Digital Successive Approximation 36

Gambar II.33 Rangkaian Konverter Paralel 3 bit 37

Gambar II.34 Beberapa Bentuk Elektroda EKG 40

Gambar II.35 Contoh Sinyal EEG 41

Gambar III.1 Diagram Blok Prototipe PC-based BERA 42

Gambar III.2 Rangkaian Skematik AD620AN 43

Gambar III.3 Rangkaian Preamplifier 44

Gambar III.4 Rangkaian Right Leg Driver 44

Gambar III.5 Rangkaian High Pass Filter 46

Gambar III.6 Rangkaian LPF Bessel Orde 4 47

Gambar III.7 Rangkaian Notch Filter 49

Gambar III.8 Rangkaian Summing Amplifier 50

Gambar III.9 Rangkaian Mikrokontroler ATMEGA8 51

Gambar III.10 Rangkaian Optocoupler untuk Komunikasi RS-232 dua Arah 52

Gambar III.11 Rangkaian Supply Tegangan untuk Rangkaian Digital 52

Gambar III.12 Rangkaian Antarmuka RS-232 53

Gambar III.13 Diagram Alir Program Utama ATMEGA8 54

Gambar III.14 Diagram Alir Proses Data ATMEGA8 56

Gambar III.15 Diagram Alir Proses Periksa Koneksi 57

Gambar III.16 Diagram Alir Proses Hitung Gain 58

Gambar III.17 Input dari ADC dalam Proses Penghitungan Penguatan 59

Gambar III.18 Diagram Alir Proses Pengambilan Sinyal 61

Gambar IV.1 Pengukuran Tahanan Masukan 63

Gambar IV.2 Program AVR Studio 3.56 67

Universitas Kristen Maranatha

(11)

Gambar IV.3 Tampilan Sinyal di PC jika Masukan Sinyal Sinus 100 Hz 68

Gambar IV.4 Tampilan Sinyal di PC jika Masukan Sinyal Kotak 100 Hz 68

Gambar IV.5 Tampilan Sinyal di PC jika Masukan Sinyal Sinus 1 kHz 69

Gambar IV.6 Tampilan Sinyal di PC jika Masukan Sinyal Kotak 1 kHz 69

Gambar IV.7 Tampilan Sinyal di PC jika Masukan Sinyal Sinus 3 kHz 70

Gambar IV.8 Tampilan Sinyal di PC jika Masukan Sinyal Kotak 3 kHz 70

Gambar IV.9 Tampilan di Osiloskop jika Masukan Sinus 100 Hz 72

Gambar IV.10 Tampilan Sinyal di PC jika Masukan Sinus 100 Hz 40 uVpp 72

Gambar IV.11 Tampilan di Osiloskop jika Masukan Kotak 100 Hz 73

Gambar IV.12 Tampilan Sinyal di PC jika Masukan Kotak 1 kHz 40 uVpp 73

Gambar IV.13 Tampilan di Osiloskop jika Masukan Sinus 1 kHz 74

Gambar IV.14 Tampilan Sinyal di PC jika Masukan Sinus 1 kHz 40 uVpp 74

Gambar IV.15 Tampilan di Osiloskop jika Masukan Kotak 1 kHz 75

Gambar IV.16 Tampilan Sinyal di PC jika Masukan Kotak 1 kHz 40 uVpp 75

Gambar IV.17 Tampilan di Osiloskop jika Masukan Sinus 2 kHz 76

Gambar IV.18 Tampilan Sinyal di PC jika Masukan Sinus 2 kHz 40 uVpp 76

Gambar IV.19 Tampilan di Osiloskop jika Masukan Kotak 2 kHz 77

Gambar IV.20 Tampilan Sinyal di PC jika Masukan Kotak 2 kHz 40 uVpp 77

Gambar IV.21 Hasil Pengujian jika Diberi Stimulus Sentuhan 78

Gambar IV.22 Hasil Pengujian jika Diberikan Stimulus Suara 1500 Hz 79

Gambar IV.23 Hasil Pengujian jika Diberikan Stimulus Suara 1500 Hz

Setelah Zooming 80

Gambar IV.24 Hasil Pengujian dalam lingkungan yang tidak tenang 81

Universitas Kristen Maranatha

(12)

DAFTAR LAMPIRAN

LAMPIRAN A RANGKAIAN SKEMATIK PERANGKAT KERAS

LAMPIRAN B LIST PROGRAM MIKROKONTROLER

LAMPIRAN C LIST PROGRAM DELPHI

LAMPIRAN D FOTO ALAT DAN PENGUJIAN ALAT

LAMPIRAN E TABEL BESSEL

Universitas Kristen Maranatha

(13)

LAMPIRAN A

(14)

2

Instrumentation Amplifier, G=749

AD620AN Notch Filter, G=1

OP07 Summing Amplifier, G=1

TL081

Rangkaian Penguat dan Filter

(15)

A-2

Rangkaian Digital

(16)

LAMPIRAN B

(17)

.INCLUDE "C:\Program Files\Atmel\AVR Studio\Appnotes\m8535def.inc"

.def tmp = R16

.def tmp1 = r17

.def tmp2 = r18

.def tmp3 = r21

.def tmp4 = r22

.def txbyte = R19

.def rxbyte = r20

.equ fclock = 11059200

.equ baud_rate = 230400

.equ ubbr_value = (fclock/(16*baud_rate))-1

.org 0x0000

rjmp main

.org 0x00B

rjmp usart_rxc

main:

ldi tmp,low(ramend)

out spl,tmp

ldi tmp,high(ramend)

out sph,tmp

rcall init_usart

ldi tmp,0

out ADMUX,tmp

ldi tmp,0b11000100

out ADCSRA,tmp

first_conv:

sbic adcsra,adsc

rjmp first_conv

in tmp,adcl

in tmp1,adch

com tmp

out portb,tmp

sei

(18)

ldi txbyte,33

rcall usart_tx

done:

rjmp done

usart_rxc:

rcall usart_rx

cpi rxbyte,58

brne gain

ldi txbyte,33

rcall usart_tx

rjmp keluar

gain:

cpi rxbyte,'?'

brne kirimADC

rcall convADC

add tmp1,tmp1

add tmp,tmp

brcc nocarry1

inc tmp1

nocarry1:

ldi zl,low(2*msg)

ldi zh,high(2*msg)

cpi tmp1,0

breq load4

add zh,tmp1

load4:

add zl,tmp

brcc load5

inc zh

load5:

lpm

mov txbyte,r0

rcall beda

(19)

rcall usart_tx

inc zl

brcc load6

inc zh

load6:

lpm

mov txbyte,r0

rcall beda

rcall usart_tx

kirimADC:

cpi rxbyte,47

brne keluar

ldi tmp3,100

count1:

dec tmp3

ldi tmp4,200

count:

dec tmp4

rcall convADC

add tmp1,tmp1

add tmp,tmp

brcc nocarry

inc tmp1

nocarry:

ldi zl,low(2*msg)

ldi zh,high(2*msg)

cpi tmp1,0

breq load1

add zh,tmp1

load1:

add zl,tmp

brcc load2

(20)

inc zh

load2:

lpm

mov txbyte,r0

rcall beda

rcall usart_tx

inc zl

brcc load3

inc zh

load3:

lpm

mov txbyte,r0

rcall beda

rcall usart_tx

cpi tmp4,0

brne count

cpi tmp3,0

brne count1

keluar:

reti

;============

; USART init

;============

init_usart:

ldi r21,0b10000000

out ucsra,r21

ldi tmp,high(ubbr_value)

out ubrrh,tmp

ldi tmp,low(ubbr_value)

out ubrrl,tmp

ldi tmp,(1<<rxen)|(1<<txen)|(1<<rxcie)

out ucsrb,tmp

ldi tmp,(1<<ursel)|(2<<ucsz0)

out ucsrc,tmp

ret

(21)

;=====================

; USART transmit data

;=====================

usart_tx:

sbis ucsra,udre

rjmp usart_tx

out udr,txbyte

ret

;====================

; USART receive data

;====================

usart_rx:

sbis ucsra,rxc

rjmp usart_rx

in rxbyte,udr

ret

;========================

; KONVERSI HEXA KE ASCII

;========================

HEX_ASCII2:

push tmp

rcall HEX_ASCII1

mov tmp1,tmp

pop tmp

swap tmp

rcall HEX_ASCII1

ret

HEX_ASCII1:

andi tmp,0b00001111

cpi tmp,0x0A

brsh bukan_angka

ldi tmp2,0x30

add tmp,tmp2

ret

(22)

bukan_angka:

ldi tmp2,0x37

add tmp,tmp2

ret

;=================

; KONVERSI ADC

;=================

convADC:

sbi adcsra,adsc

conv:

sbic adcsra,adsc

rjmp conv

in tmp,adcl

in tmp1,adch

ret

;===============================

; BEDAKAN ANGKA & HURUF

;===============================

beda:

cpi txbyte,65

brge huruf

subi txbyte,13

ret

huruf:

subi txbyte,20

ret

(23)

msg:

.db

"000102030405060708090A0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z"

.db

"101112131415161718191A1B1C1D1E1F1G1H1I1J1K1L1M1N1O1P1Q1R1S1T1U1V1W1X1Y1Z"

.db

"202122232425262728292A2B2C2D2E2F2G2H2I2J2K2L2M2N2O2P2Q2R2S2T2U2V2W2X2Y2Z"

.db

"303132333435363738393A3B3C3D3E3F3G3H3I3J3K3L3M3N3O3P3Q3R3S3T3U3V3W3X3Y3Z"

.db

"404142434445464748494A4B4C4D4E4F4G4H4I4J4K4L4M4N4O4P4Q4R4S4T4U4V4W4X4Y4Z"

.db

"505152535455565758595A5B5C5D5E5F5G5H5I5J5K5L5M5N5O5P5Q5R5S5T5U5V5W5X5Y5Z"

.db

"606162636465666768696A6B6C6D6E6F6G6H6I6J6K6L6M6N6O6P6Q6R6S6T6U6V6W6X6Y6Z"

.db

"707172737475767778797A7B7C7D7E7F7G7H7I7J7K7L7M7N7O7P7Q7R7S7T7U7V7W7X7Y7Z"

.db

"808182838485868788898A8B8C8D8E8F8G8H8I8J8K8L8M8N8O8P8Q8R8S8T8U8V8W8X8Y8Z"

.db

"909192939495969798999A9B9C9D9E9F9G9H9I9J9K9L9M9N9O9P9Q9R9S9T9U9V9W9X9Y9Z"

.db

"F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFFFGFHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZ"

.db

.db "I0I1I2I3I4I5I6I7I8I9IAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZ"

.db "J0J1J2J3J4J5J6J7J8J9JAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJVJWJXJYJZ"

(24)

.db

"K0K1K2K3K4K5K6K7K8K9KAKBKCKDKEKFKGKHKIKJKKKLKMKNKOKPKQKRKSKTKUKVKW

KXKYKZ"

.db

"L0L1L2L3L4L5L6L7L8L9LALBLCLDLELFLGLHLILJLKLLLMLNLOLPLQLRLSLTLULVLWLXLYLZ

"

.db

"M0M1M2M3M4M5M6M7M8M9MAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMT

MUMVMWMXMYMZ"

.db

"N0N1N2N3N4N5N6N7N8N9NANBNCNDNENFNGNHNINJNKNLNMNNNONPNQNRNSNTNUNVNW

NXNYNZ"

.db

"O0O1O2O3O4O5O6O7O8O9OAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOW

OXOYOZ"

.db

"P0P1P2P3P4P5P6P7P8P9PAPBPCPDPEPFPGPHPIPJPKPLPMPNPOPPPQPRPSPTPUPVPWPXPYPZ"

.db

"Q0Q1Q2Q3Q4Q5Q6Q7Q8Q9QAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQSQTQUQVQW

QXQYQZ"

.db

"R0R1R2R3R4R5R6R7R8R9RARBRCRDRERFRGRHRIRJRKRLRMRNRORPRQRRRSRTRURVRWRXR

YRZ"

.db

"S0S1S2S3S4S5S6S7S8S9SASBSCSDSESFSGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZ"

(25)

LAMPIRAN C

(26)

unit TA;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Menus, StdCtrls, ExtCtrls, CPort, ComCtrls, ActnMan, options, ActnColorMaps,

xyun, xygraph, xycopy, xygraph3d, math, LMDAboutDlg, ToneGen,

LMDCustomComponent, LMDContainerComponent, LMDBaseDialog;

type

TMainForm = class(TForm)

Label1: TLabel;

Label2: TLabel;

StatusBar1: TStatusBar;

Button1: TButton;

ComPort1: TComPort;

Button2: TButton;

Button4: TButton;

ComboBox1: TComboBox;

Button3: TButton;

PaintBox4: TPaintBox;

CheckBox1: TCheckBox;

LMDAboutDlg1: TLMDAboutDlg;

ToneGen1: TToneGen;

Button6: TButton;

Edit4: TEdit;

ScrollBar1: TScrollBar;

TrackBar1: TTrackBar;

Label3: TLabel;

ComDataPacket1: TComDataPacket;

Button7: TButton;

Button8: TButton;

Button9: TButton;

Button10: TButton;

Label4: TLabel;

Label5: TLabel;

Bevel1: TBevel;

(27)

Bevel2: TBevel;

RadioGroup1: TRadioGroup;

procedure FormCreate(Sender: TObject);

procedure Activate(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure ComPortOpen(Sender: TObject);

procedure ComPortClose(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure formclose(Sender: TObject; var Action: TCloseAction);

procedure Paint(Sender: TObject);

procedure paintboxmousedown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure paintboxmouseup(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure paintboxmousemove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

procedure Button6Click(Sender: TObject);

procedure Scrollchange(Sender: TObject);

procedure Freqchange(Sender: TObject);

procedure Changevolume(Sender: TObject);

procedure datapaket(Sender: TObject; const Str: String);

procedure Button7Click(Sender: TObject);

procedure Button8Click(Sender: TObject);

procedure Button9click(Sender: TObject);

procedure Button10Click(Sender: TObject);

procedure ComboBox2Change(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button12Click(Sender: TObject);

procedure Button11Click(Sender: TObject);

(28)

private

{ Private declarations }

public

end;

var

MainForm: TMainForm; status,status1:string;

flag,flag2,flag3,k,l,m,n,buffer,buffer1,setpoint,count2,signal1,signal2:integer;

gain,signal:real;

records : array [1..1000,1..20000] of real;

data, data2 : Tdatatype;

implementation

{$R *.dfm}

procedure TMainForm.FormCreate(Sender: TObject);

var i : integer;

begin

mainform.Height:= 864;

mainform.Width:= 1152;

enumcomports(combobox1.Items);

comport1.Port := combobox1.Items[1];

comport1.BaudRate := brcustom;

comport1.CustomBaudRate:=230400;

comport1.DataBits := dbseven;

comport1.StopBits := sbOneStopBit;

comport1.Connected := false;

port1:=comport1.port;

baudrate1:='230400';

data00:='7';

stop:='1-bit';

status:='Disconnected';

tonegen1.Frequency:=strtoint(edit4.Text);

statusbar1.Panels.Items[6].Text:='Stimulation Freq : '+edit4.Text+' Hz';

statusbar1.Panels.Items[5].Text:='T Sampling : 1 ms';

statusbar1.Panels.Items[7].Text:='Stimulation Volume : '+inttostr(5*trackbar1.Position)+' %';

(29)

flag:=0;

flag3:=100;

k:=0;l:=1;

xysetdataarray(data,20000,1);

xysetdataarray(data2,20000,1);

end;

procedure TMainForm.Activate(Sender: TObject);

begin

comport1.Port := port1;

statusbar1.Panels.Items[0].Text:='Port : '+port1;

if baudrate1='9600' then

begin

comport1.BaudRate:=br9600;

end;

if baudrate1='19200' then

begin

comport1.BaudRate:=br19200;

end;

if baudrate1='56000' then

begin

comport1.BaudRate:=br56000;

end;

if baudrate1='115200' then

begin

comport1.BaudRate:=br115200;

end;

if baudrate1='230400' then

begin

comport1.BaudRate := brcustom;

comport1.CustomBaudRate:=230400;

end;

statusbar1.Panels.Items[1].Text:='Baudrate : '+baudrate1+' bps';

if data00='5' then

begin

comport1.DataBits:=dbfive;

(30)

end;

if data00='6' then

begin

comport1.DataBits:=dbsix;

end;

if data00='7' then

begin

comport1.DataBits:=dbseven;

end;

if data00='8' then

begin

comport1.DataBits:=dbeight;

end;

statusbar1.Panels.Items[2].Text:='Data Bits : '+data00+'-bits';

if stop='1-bit' then

begin

comport1.stopBits:=sbOneStopBit;

end;

if stop='2-bits' then

begin

comport1.stopBits:=sbTwoStopBits;

end;

statusbar1.Panels.Items[3].Text:='Stop Bit(s) : '+stop;

if comport1.Connected=true then

begin

status:='Connected';

end;

if comport1.Connected=false then

begin

status:='Disconnected';

end;

statusbar1.Panels.Items[4].Text:='Status : '+status;

end;

procedure TMainForm.Button2Click(Sender: TObject);

begin

(31)

if ComPort1.Connected then

begin

ComPort1.Close;status:='Disconnected';

end

else

begin

ComPort1.Open;status:='Connected';

end;

statusbar1.Panels.Items[4].Text:='Status : '+status;

end;

procedure TMainForm.ComPortOpen(Sender: TObject);

begin

Button2.Caption := 'Disconnect';

button1.Enabled := true;

statusbar1.Panels.Items[4].Text:='';

end;

procedure TMainForm.ComPortClose(Sender: TObject);

begin

if Button2 <> nil then

Button2.Caption := 'Connect';

button1.Enabled := false;

button3.Enabled := false;

button4.Enabled := false;

statusbar1.Panels.Items[4].Text:='';

end;

procedure TMainForm.Button1Click(Sender: TObject);

begin

flag:=1;comdatapacket1.Size:=1;ComPort1.WriteStr(':');

end;

procedure TMainForm.Button4Click(Sender: TObject);

begin

flag:=2;Comport1.WriteStr('?');

end;

(32)

procedure TMainForm.Button3Click(Sender: TObject);

var i:integer;

begin

if button3.Caption='Get Signal' then

begin

button11.Enabled:=false;

button12.Enabled:=false;

flag3:=100;

flag:=3;

k:=0;l:=1;

buffer1:=buffer;

button3.Caption:='Stop Signal';

comdatapacket1.Size:=40000;

comport1.WriteStr('=');

end

else

begin

flag:=0;

button3.Caption:='Get Signal';

end;

end;

procedure TMainForm.formclose(Sender: TObject; var Action: TCloseAction);

begin

comport1.Close;

end;

procedure TMainForm.Paint(Sender: TObject);

var tm : boolean;

begin

xycleargraph(paintbox4,clwhite,clblack,1.0);

xystartgraph(0,100,0,flag3,40,40,40,40,clipon);

if checkbox1.checked then

begin

end

else

begin

(33)

xyxaxis(clblack,0,20000,0,0,'Time (mS)',true,false,false);

xyyaxis(clgreen,-5,5,0,0,'Voltage (uV)',1,false,false,false);

xysymbol(2,6,2);

end;

xyplotarray(data,1,3);

xytitle(clmaroon,'Brainstem Voltage');

if flag3=50 then

begin

xystartgraph(0,100,flag3,100,40,40,40,40,clipon);

xyxaxis(clblack,0,20000,0,0,'Time (mS)',true,false,false);

xyyaxis(clblue,-5,5,0,0,'Voltage (uV)',1,false,false,false);

xysymbol(2,6,2);

xyplotarray(data2,1,3);

xytitle(clred,'Brainstem Voltage after Stimulation');

end;

if checkbox1.checked then

xyinitruler(clred,100,round(paintbox4.height * 0.1)-20,1,3)

else

xyinitruler(clmaroon,100,round(paintbox4.height * 0.05)-20,1,0)

end;

procedure TMainForm.paintboxmousedown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

xymousedown(button,shift,x,y);

end;

procedure TMainForm.paintboxmouseup(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

xymouseup(button,shift,x,y);

end;

procedure TMainForm.paintboxmousemove(Sender: TObject; Shift: TShiftState;

X, Y: Integer);

(34)

begin

xymousemove(shift,x,y);

end;

procedure TMainForm.Button6Click(Sender: TObject);

begin

flag:=1;

end;

procedure TMainForm.Scrollchange(Sender: TObject);

begin

edit4.Text:=inttostr(20+scrollbar1.Position*scrollbar1.Position);

tonegen1.Frequency:=strtoint(edit4.Text);

statusbar1.Panels.Items[6].Text:='Stimulation Freq : '+edit4.text+' Hz';

end;

procedure TMainForm.Freqchange(Sender: TObject);

begin

scrollbar1.Position:=trunc(sqrt(strtofloat(edit4.text)-20));

tonegen1.Frequency:=strtoint(edit4.Text);

statusbar1.Panels.Items[6].Text:='Stimulation Freq : '+edit4.Text+' Hz';

end;

procedure TMainForm.Changevolume(Sender: TObject);

begin

tonegen1.LeftVolume:=5*trackbar1.Position;

tonegen1.RightVolume:=5*trackbar1.Position;

statusbar1.Panels.Items[7].Text:='Stimulation Volume : '+inttostr(tonegen1.leftvolume)+' %';

end;

procedure TMainForm.datapaket(Sender: TObject; const Str: String);

var i:integer;

begin

if str='!' then

begin

statusbar1.Panels.Items[4].Text:='PC-based BERA detected';

button3.enabled:=true;

button4.Enabled:=true;

(35)

end

else

begin

statusbar1.Panels.Items[4].Text:='PC-based BERA not detected';

end;

if str<>'!' then

begin

if flag3=100 then

begin

if radiogroup1.ItemIndex=1 then

records[l,k]:=signal;

end;

if radiogroup1.ItemIndex=1 then

begin

if flag3=50 then

begin

if radiogroup1.ItemIndex=1 then

records[l,k]:=signal;

end;

(36)

if radiogroup1.ItemIndex=1 then

button3.Caption:= 'Get Signal';

paintbox4.Refresh;

statusbar1.Panels.Items[4].Text:='PC-based BERA detected';

end;

end;

procedure TMainForm.Button7Click(Sender: TObject);

begin

form2.Show;

end;

(37)

procedure TMainForm.Button8Click(Sender: TObject);

begin

xycopystart;

end;

procedure TMainForm.Button9click(Sender: TObject);

begin

if MessageDlg('Exit now?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then

begin

MessageDlg('Exiting PC-based BERA application.', mtInformation, [mbOk], 0);

Close;

end;

end;

procedure TMainForm.Button10Click(Sender: TObject);

begin

lmdaboutdlg1.Execute;

end;

procedure TMainForm.ComboBox2Change(Sender: TObject);

begin

case combobox2.ItemIndex of

0 : tonegen1.Waveform := tgsine;

1 : tonegen1.Waveform := tgsquare;

2 : tonegen1.Waveform := tgtriangle;

3 : tonegen1.waveform := tgsawtooth;

4 : tonegen1.Waveform := tgnoise;

end;

end;

procedure TMainForm.Button5Click(Sender: TObject);

begin

tonegen1.Play;

end;

procedure TMainForm.Button12Click(Sender: TObject);

begin

(38)

button11.Enabled:=true;

m:=m-1;

for k:=1 to 20000 do

data[k,1]:=records[m,k];

paintbox4.Refresh;

if m=1 then

button12.Enabled:=false;

end;

procedure TMainForm.Button11Click(Sender: TObject);

begin

button12.Enabled:=true;

m:=m+1;

for k:=1 to 20000 do

data[k,1]:=records[m,k];

paintbox4.Refresh;

if m=n then

button11.Enabled:=false;

end;

end.

(39)

LAMPIRAN D

(40)

Rangkaian Analog

Rangkaian Digital

(41)

Rangkaian Analog dan Digital

Tampilan Program Delphi

(42)

Pengujian Alat terhadap Manusia

Pengujian Alat terhadap Manusia

(43)

LAMPIRAN E

(44)
(45)

BAB I

PENDAHULUAN

I.1 Latar Belakang

Perkembangan teknologi di bidang elektronika kedokteran saat ini sangat

pesat. Akhir-akhir ini, banyak dibuat alat-alat elektronik yang dapat membantu

pekerjaan seorang dokter dalam membuat diagnosa terhadap pasiennya. Selain itu,

komputer juga telah banyak digunakan untuk membantu dalam elektronika

kedokteran.

Kesehatan syaraf pendengaran pada bayi merupakan salah satu hal

penting. Jika gangguan syaraf pendengaran dapat dideteksi sejak dini pada bayi,

maka dapat dilakukan penanggulangan-penanggulangan untuk dapat membantu

memperbaiki kemampuan pendengaran dari bayi. Apabila gangguan tersebut tidak

diketahui sejak dini, maka tindakan penanggulangan bisa jadi akan terlambat.

Oleh karena itu, pemeriksaan syaraf pendengaran bayi merupakan hal yang

penting dilakukan.

Brainstem Evoked Response Audiometry (BERA) merupakan suatu alat

yang membantu kita dalam mengetahui kondisi syaraf pendengaran dari bayi.

BERA telah banyak digunakan di banyak Rumah Sakit untuk uji pendengaran.

Meskipun demikian, saat ini harga BERA masih sangat mahal. Peralatan BERA

ini sangat mungkin untuk dikembangkan lebih lanjut dengan menggunakan

teknologi-teknologi yang telah ada. Salah satunya yaitu dengan menggunakan

komputer PC (Personal Computer) untuk membantu pengoperasiannya.

I.2 Identifikasi Masalah

Bagaimana mendesain dan merealisasikan prototipe alat yang dapat

menampilkan sinyal pendengaran yang dihasilkan syaraf ke dalam suatu PC

(Personal Computer)

(46)

2

I.3 Tujuan

Mendesain dan merealisasikan prototipe alat yang dapat menampilkan

sinyal pendengaran yang dihasilkan syaraf ke dalam suatu PC (Personal

Computer)

I.4 Pembatasan Masalah

1. Hanya sebatas menampilkan sinyal dari batang otak yang diambil melalui

elektroda

2. Elektroda yang digunakan sama dengan elektroda jantung

3. Program yang digunakan untuk menampilkan sinyal adalah Borland

Delphi 7 dengan sistem operasi Windows XP Professional Edition

I.5 Spesifikasi Alat

1. Notch Filter 50 Hz

2. Resolusi ADC 10 bit

3. Menggunakan koneksi RS-232 dengan kecepatan 230400 bps

4. Filter band pass dengan frekuensi cut off 100 Hz dan 4 kHz

5. Penguatan = 46500 – 535500 kali atau 93.35 – 114.58 dB

6. Frekuensi sampling / scanning rate minimal 9000 Hz

I.6 Sistematika Penulisan ƒ Bab I

Pada bab I dibahas tentang latar belakang, identifikasi masalah, tujuan,

pembatasan masalah, spesifikasi alat, dan sistematika penulisan tugas

akhir ini.

ƒ Bab II

Pada bab II dibahas tentang teori penunjang mengenai mikrokontroler

ATMEGA8, rangkaian-rangkaian dasar op-amp, filter, Analog to Digital

Converter (ADC), RS-232C, elektroda, dan electroencephalography

(EEG).

(47)

3

ƒ Bab III

Pada bab III dibahas tentang perancangan hardware, perancangan

software, serta protokol komunikasi antara komputer dengan

mikrokontroler.

ƒ Bab IV

Pada bab IV dibahas mengenai uji coba dari hardware, software serta uji

coba hardware dan software secara keseluruhan.

ƒ Bab V

Pada bab V dibahas mengenai kesimpulan dan saran dari pelaksanaan

tugas akhir ini.

(48)

BAB V

KESIMPULAN DAN SARAN

V.1 Kesimpulan

1. Prototipe PC-based BERA telah berhasil direalisasikan dalam Tugas Akhir

ini.

2. Masih terdapat noise yang terekam dalam sistem, yang disebabkan oleh

adanya interferensi dari luar sistem.

3. Berdasarkan hasil pengujian prototipe PC-based BERA dalam Tugas

Akhir ini, respon dari sinyal batang otak adalah 0.03 detik atau 30 mili

detik setelah diberikan stimulus suara.

V.2 Saran

1. Untuk mendapatkan frekuensi sampling yang lebih tinggi, dapat

digunakan komunikasi yang lebih cepat daripada komunikasi RS-232,

misalnya USB (Universal Serial Bus).

2. Perangkat lunak dapat menggunakan algoritma lain sehingga dapat

meningkatkan frekuensi sampling.

3. Proses pengambilan sinyal melalui elektroda dapat menggunakan kabel

shielded yang lebih berkualitas sehingga dapat lebih menekan noise.

(49)

DAFTAR PUSTAKA

1. Martina, Ir. Inge, “36 Jam Belajar Komputer Delphi 5.0”, Elex Media

Komputindo, Jakarta, 2000.

2. Heryanto, Yadi, “Perancangan dan Realisasi Prototipe EKG 1 Lead

Berbasis PC dengan Pengembangan Komunikasi Data Lewat Telemetri

Digital”, Bandung, 2006.

3. Wardhana, Lingga, “Belajar Sendiri Mikrokontroler AVR Seri

ATMega8535”, Edisi 1, ANDI Offset, Yogyakarta, 2006.

4. Webster, John G., “Introduction of Biomedical Instrumentation”, Edisi

3,Mc Graw Hill, 1998.

5. Wijaya, Ir. Marvin Chandra, MM., MT., “Modul Bahasa Pemrograman”.

6. http://openeeg.sourceforge.net/doc/modeeg/modeeg.html, Agustus 2006.

7. http://www.datasheetcatalog.com/, Juli 2006.

Universitas Kristen Maranatha

Gambar

Tabel  II.1

Referensi

Dokumen terkait

Dari hasil analisa pengujian pertama pada tabel 4.2 dan pengujian kedua tabel 4.3 yang telah dilakukan didapatkan bahwa dalam pengiriman data dari alat ke PC antara kWh1, kWh2

Selain itu, juga menggunakan PC (Personal Computer) untuk menampilkan data digital serta mikrokontroler ATMega 16 yang memiliki kelebihan pada port ADC 8 channel 10-bit

Dalam tugas akhir initelah dirancang dan direalisasikan interface yang digunakan untuk mengendalikan robot dengan menggunakan Personal Computer (PC)/Notebook melalui

Sinyal digital ini diumpankan ke dalam komputer melalui interface, sinyal ini kemudian diolah komputer dan hasil pengolahan ditampilkan di monitor sebagai hasil pengukuran selain

Soundcard berfungsi sebagai ADC (Analog to Digital Converter) yang berfungsi untuk mengubah sinyal analog yang berasal dari elektroda, penguat dan filter menjadi sinyal

Solusi yang dimaksud adalah dengan merangcang suatu alat yang berfungsi sebagai Host Controller untuk transaksi file tanpa meggunakan PC berbasis

Data pengukuran yang dihasilkan alat kecepatan dan arah angin akan ditampilkan pada Personal Computer (PC) server dan dikirim ke web dengan bantuan program

Arah dan kecepatan angin dari masing-masing anemometer dikirim ke display PC (Personal Computer) dan proses perhitungan secara otomatis dilakukan melalui aplikasi yang