20
BAB III PERANCANGAN
3.1 Garis Besar Perancangan Garis besar perancangan memuat keseluruhan bagian alat dan perjalanan proses secara garis besar. Perancangan keseluruhan adalah acuan untuk diturunkan menjadi perancangan yang lebih teknis sehingga terwujud alat yang mensimulasikan pengukur tinggi badan digital berbasiskan mikrokontroler dengan keluaran suara. Perancangan diwujudkan dalam bentuk diagram blok seperi ditunjukkan Gambar 3.1.
Gambar 3.1 Diagram blok pengukur tinggi digital
Sensor mendeteksi besaran fisik berupa tinggi badan seseorang denganprinsip pendeteksian jarak melalui gelombang ultrasonik. Sensor telah terbentuk dalam sebuah modul dan cara kerja sensor telah dialurkan. Pengolah bekerja memberikan runtutan logika yang diperlukan sehingga sensor bekerja.
20
21
Besaran ukur yang diterima berupa nilai waktu dalam mikro detik, yaitu waktu yang diperlukan bagi sinyal untrasonik mulai dipancarkan sampai diterima kembali.Kecepatan kerja pengolah berdasarkan pada sumber detak yang digunakan. Sumber detak ini menjadi dasar perhitungan waktu yang dilakukan oleh timer didalam pengolah. Nilai waktu yng diterima pengolah dari modul sensor dirubah kedalam nilai mikro detik. Melalui sebuah rumus waktu pantulan tersebut dirubah menjadi nilai jarak. Nilai jarak akan mengurangi niai tinggi posisi sensor sehingga ditemukan tinggi badan terukur. Nilai tinggi badan dibagi menjadi nilai ratusan, puluhan dan satuan yang kemudian diambilkan kesetaraan nilai alamat rekam dan waktu putar pesan.Alamat dan mode kerja diberikan ke perekam suara agar memperdengarkan pesan terekam pada alamat tersebut dengan lama waktu yang ditentukan. 3.2 Perangkat Keras Perancangan perangkat keras merupakan penjabaran dari garis besar perancangan yang menekankan pada pembentukan perangkat keras berupa skema rangkaian dan penjelasan proses berkaitan dengan perangkat tersebut. 3.2.1 Sensor jarak Modul sensor SRF04 tidak memerlukan penambahan komponen luar, modul ini langung dihubungkan ke pin pengolah dan cat daya. Pin 2 akan menerima logika untuk pemulaian proses pengukuran jarak. Pin 3 akan mengirimkan logika tinggi dengan lama waktu logika bergantung pada jarak yang terdeteksi. Jalur positif catu daya melalui pin 1, jalur ground malalui pin 4. Gambar menunjukkan hubungan kaki dari sensor jarak.
22
5V 1 2 3 4
PD2 PD3
Sensor Gambar 3.2 kaki Sensor jarak
3.2.2 Pengolah Pengolah mempergunakan mikrokontroler ATMega16, untuk dapat berfungsi maka mikrokontroler harus dirangkai dengan komponen tambahan pada pin reset. Pin tersebut berfungsi untuk menjaga logika 1, karena logika 0 akan membuat program mengalami reset. Komponen lain yang ditambahkan adalah pembangkit detak berupa kristal, pada alat ini dipergunakan 11,059200 MHz. Dua jalur pendeteksian diperuntukkan ke modul SRF04 yaitu melalui PD2 dan PD3 yang akan terhubung dengan pin trigger dan clock. Jalur keluaran untuk pemberian alamat rekam diberikan melalui pin PA0 sampai PA7 yang akan terhubung dengan jalur alamat A0 samapai A7 dari ISD. Jalur keluaran untuk kendali rekam diberikan melalui pin PD5sampai PD7 yang akan terhubung ke pin CE, PD dan P/R. Dua komunikasi serial diberikan melalui pin PD0 dan PD1 yang akan terhubung dengan perangkat penyesuai level komunikasi RS232. Gambar 3.3 menunjukkan perancangan rangakain pengolah.
23
14 15
T2IN R2IN
2X27pF
11,0592MHz
12
13
PD0(RXD) PD1(TXD) XTAL2
22 23 24 25 26 27 28 29
A0/M0 A1/M1 A2/M2 A3/M3 A4/M4 A5/M5 A6/M6 A7
XTAL1
ATMega8515 ATMEGA16 AT
5V 9 10k
PC0(SCL) PC1(SDA) PC2 PC3 PC4 PC5 PC6(TOSC1) PC7(TOSC2)
+
RESET
PD7(OC2) PD6(ICP1) PB5(OC1A)
21 20 19
CE PD P/R
10u 40 39 38 37 36 35 34 33
pin2 SRF pin3SRF
16 17 18
PA0(ADC0) PA1(ADC1) PB2(ADC2) PB3(ADC3) PB4(ADC4) PB5(ADC5) PA6(ADC6) PA7(ADC7) PD2(INT0) PD3(INT1) PD4(OC1B)
GND GND
11 31 5V
VCC AVCC AREF PB0(XCK/T0) PB1(T1) PB2(INT2/AIN0) PB3(OC0/AIN1) PB4(SS) PB5(MOSI) PB6(MISO) PB7(SCK)
10 30 32 1 2 3 4 5 6 7 8
Gambar 3.3 Rangkaian Pengolah
3.2.3 Antarmuka komunikasi serial Antarmuka komunikasi serial memerlukan perangkat tambahan untuk menyesuaiakan level tegangan mkirokontroler dengan level tegangan RS232. Perangkat yang dipergunakan adalah ic MAX232. IC ini dirangkai denhgan komponen tambahan seperti yang telah ditunjukkan pada datasheet. Perangkaian tersebut adalah sebagai berikut:
1 6 2 7 3 8 4 9 5
3
10uF
4 5 14 11
CONNECTOR DB9
7 9
C1+
V+
C1-
VCC
C2+
GND
C2-
V-
T1OUT T1IN
R1IN R1OUT
T2OUT R2OUT
T2IN R2IN
2
5V
16 15
10uF
10uF
1
10uF
24
6 13 12 10 8
PD0(RXD) PD1(TXD)
MAX232
Gambar 3.4 Antarmuka komunikasi serial 3.2.4 Perekam suara Perekam suara mempergunakan seri ISD2560 yang merupakan chip perekam suara dengan model pengalamatan parallel, dengan pemberian data alamatrekam dan operasional rekam diberikan melalui logika pada masing-masing pin dari chip.Gambar menunjukkan perangkaian perekam ISD2560.
PD7 PD6 PD5
23 24 27 22 25 26
VSSD VSSA AGC
ISD25120 CE PD P/R OVF EOM XCLK
MIC MIC REF ANA IN ANA OUT AUX IN SPSP+
28 16 12 13 19 +
470k
17 18 20 21 11 15 14
Gambar 3.5 Perekam suara
Audio
AmplifierAmplifier+
+
22u
VCCD VCCA
0,1u
A0/M0 A1/M1 A2/M2 A3/M3 A4/M4 A5/M5 A6/M6 A7 A8 A9
0,1u
1 2 3 4 5 6 7 8 9 10
22u
PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7
25
Untuk dapat bekerja pada chip ini harus ditambahkan komponen luar berupa kapasitor dan resistor.Pemasukan suara rekam dapat melalui pin MIC yang berpasangan dengan MIC REF apabila diinginkan pemasukan suara langsung. Pemasukan suara dapat juga melalui pin ANA IN, dengan pin ini maka suara dapat dimasukkan dari sumber suara yang telah diolah. 3.2.5 Penguat suara Penguat suara dipergunakan untuk memperkuat daya listrik sinyal suara agar terdengar lebih keras. Penguat yang dipergunakan adalah seri LM386 yang merupakan penguat audio dengan daya 350 mwatt. Perancangan rangkaian seperti ditunjukkan datasheet penguat seperti berikut:
8 1 6
VCC
22u
+
5
7
3
SPK+ 470k 0,1u
2 LM386
100k
470k 0,1u
0,1u
470k 0,1u
+
-
4
SPEAKER
Gambar 3.6 Penguat suara
3.3 Perangkat Lunak 3.3.1 Perangkat Lunak Mikrokontroler Perancangan perangkat lunak mengacu pada garis besar perancangan dengan penekanan pada rencana pembentukan alur proses. Perangkat lunak
SPK-
26
melakukan proses antarmuka dengan modul dan IC perekam. Sebagai pemicu kedua proses tersebut adalah penakanan tombol. Secara garis besar, proses yang dilakukan digambarkan seperti diagram alir berikut:
Main Program
Baca tombol
Y tombol = play?
flash_buttom() common_measure()
T tombol = replay?
Y
flash_buttom() b_said = 1
T Y
Y
flash_buttom() b_sw_up=1
tombol = up?
b_sw_up = 0
Y b_said = 1?
kirim data ke ISD()
T
while (1)
T
end
Gambar 3.7 Alur Program Utama
27
Program membaca masukan tombol, kemudian program akan menyeleksi tombol yang ditekan. Apabila tombol yang ditekan adalah tombol play, maka program akan mengeksekusi prosedur flash_buttom() yang berfungsi untuk menyalakan indikator lalu mengeksekusi prosedur common_measure(). Prosedur common_measure() berfungsi untuk menghitung tinggi dan memberikan nilai 1 ke variable b_said yang menunjukkan bahwa data siap untuk dikeluarkan. Setelah didapat data tinggi, kemudian program akan mengecek apakah tombol up ditekan atau tidak. Apabila tidak, maka program akan mengecek nilai variable b_said. Jika variable b_said bernilai 1, maka program akan mengeksekusi prosedur untuk mengeluarkan output suara berdasarkan data tinggi yang sudah didapat. Jika tombol yang ditekan adalah tombol replay, maka program hanya akan memberikan nilai 1 kepada variable b_said sehingga pada saat pengecekan variable b_side program akan mengeluarkan output suara berdasarkan data tinggi yang didapat pada proses pengukuran sebelumnya. Tombol up berfungsi untuk memilih pengaturan pengukuran tinggi. Jika tombol up pada posisi open maka variable b_sw_up akan bernilai 0 dan sebaliknya bila tombol up pada posisi close. Jika variable b_sw_up bernilai 1, maka nilai tinggi adalah 200 dikurangi hasil perhitungan dan jika bernilai 0, maka tinggi adalah 150 dikurangi dengan hasil perhitungan.
28
common_measure()
PORTD.3 = 1 delay 10 us PORTD3. = 0 i=0 T
PORTD.2 = 1?
T
Y
PORTD.2 = 0?
T
c_sec+=1
c_time[i] = c_sec c_sec = 0 i++
i = 10 ?
Y Hitung rata-rata konversi c_time ke jarak
konversi jarak ke data alamat
b_said = 1
return
Gambar 3.8 Alur Prosedur Pengukuran
29
Pada proses pengukuran, pertama program akan mengirim pulsa trigger pada PORTD.3 selama 10us ke perangkat ultrasonic. Setelah itu, program akan menunggu sinyal pantul dari perangkat penerima ultrasonic di PORTD.2. Jika perangkat ultrasonic belum menerima sinyal pantul, maka perangkat ultrasonic akan mengirim sinyal logic 0 ke PORTD.2. Jeda waktu ini akan dihitung sebagai data jarak yang kemudian akan dikonversikan menjadi tinggi. Proses pengukuran ini dilakukan sebanyak 10 kali untuk mendapatkan hasil yang akurat. Setelah data tinggi didapat, maka program akan merubah nilai variable b_said menjadi 1 yang menandakan data siap dikirimkan ke output suara.
Prosedur Said()
Prosedure start_rec_play()
PORTC = addrress[0] start_rec_play() i=1 ambil address[i]
PD = 0 P/R = 1
ada data?
Y
PORTC = address[i] start_rec_play() i++
CE = 0 _delay_ms(20) CE = 1
T PORTC = address[last] start_rec_play()
delay
return return
Gambar 3.9 Alur Prosedur Output Suara
30
Untuk mengeluarkan output suara, program dibagi menjadi dua prosedur. Prosedur start_rec_play() berfungsi untuk memberika sinyal untuk menjalankan perintah mainkan ke perangkat output suara. Sedangkan prosedur said() berfungsi untuk mengatur alamat dari data yang akan dimainkan dan memanggil prosedur start_rec_play(). Pertama, program akan membaca data tinggi, kemudian mengkonversi setiap karakter menjadi alamat yang akan dikirimkan ke perangkat output suara. Output suara kemudian akan mengeluarkan suara sesuai dengan alamat yang telah dituju. Porses ini berlangsung sebanyak panjang karakter. Listing program di lampirkan di bab lampiran. 3.3.1 Perangkat Lunak Penampil Perancangan perangkat lunak untuk menampilkan hasil pengukuran menggunakan visual basic. Penampil hasil dalam tugas akhir ini di fungsikan sebagai penampil saja dengan data yang sudah diolah mikrokontroller ATmega16. Di dalam perancangan tidak ikut di sertakan formula untuk menghitung jarak, hal ini dimaksudkan untuk mencegah terjadinya ketidakcocokan hasil antara penampil dan mikrokontroller. Di bawah ini adalah diagram alir dari penampil Hasil.
Start
I = panjang karakter (buff) J=0
A
31
A T Buff [J]=T ?
T
Buff [J]=P ?
Y
Lbl_tinggi=buff[j+2] sampai buff [j+7]
Y Lbl_timer=buff[j+2] sampai buff [j+7]
INC [j]
J=i
Tampilkan
End
Gambar 3.10 Alur Prosedur Penampil
Mikrokontroller mengirimkan data T:00000 P:00000, data ini akan di baca satu-persatu urut oleh penampil. Mula-mula penampil membaca apakah isi buff adalah T,jika Ya maka baca data dari [j+2] sampai [j+7]. Jika Tidak penampilakan membaca apakah isi buff adalah P, jika ya maka baca data dari [j+2] sampai [j+7]. Selanjutnya semua bacaan data ditampilkan di monitor.