BAB 3 PERANCANGAN SISTEM

advertisement
22
BAB 3
PERANCANGAN SISTEM
Pada bab ini akan dijelaskan keseluruhan dari sistem atau alat yang dibuat.
Secara keseluruhan sistem ini dibagi menjadi dua bagian yaitu perangkat keras yang
meliputi komponen yang digunakan sebagai penunjang dari sistem dan perangkat lunak
menjelaskan mengenai program yang digunakan pada AVR untuk dapat berkomunikasi
dengan ponsel.
3.1
Perancangan Perangkat Keras
Perancangan perangkat keras yang ada dalam sistem ini dibagi menjadi 4 modul
yaitu modul AVR, modul MAX232, modul relay dan modul push button. Sistem ini
juga dilengkapi ponsel sebagai alat penghubung antara sistem keamanan dengan pemilik
kendaraan, adapun ponsel yang digunakan adalah Sony Ericsson T68i. Perangkat yang
lain kami menggunakan sumber daya yang ada pada motor yang akan di pasang sistem
ini seperti aki untuk sumber daya pada sistem, klakson motor untuk output alarm, Coil
motor untuk mematikan mesin, kontak motor sebagai interupsi untuk sistem.
23
Push Button
Kontak Motor
Modul
Max232
Ponsel Sony
Ericsson T68
Input
Input
AVR ATMega
8535
Output
Mesin Motor
Output
Klakson Motor
Rx Tx
Ponsel Pemilik
Kendaraan
Gambar 3.1 Blok Diagram Sistem
Secara garis besar sistem ini dibuat selalu menyala atau stanby agar dapat
menerima input dari kontak motor pada saat kapanpun. Sehingga jika ada yang
melakukan kontak pada motor maka interupt pada AVR akan mendapat input.
Selanjutnya interupt akan mengaktifkan register timer agar mulai menghitung dari 0
sampai 10 detik. Jika tidak ada input yang valid dari push button maka AVR akan
mendial nomor ponsel pemilik selama 30 detik, mesin motor akan mati kemudian
klakson pada motor akan berbunyi. Jika pemilk kendaraan mendapat panggilan dari
24
ponsel kendaraan, pemilik harus merespon dengan menelpon ke ponsel yang ada di
motor agar dapat mematikan fungsi dial dari program. Setelah melakukan telpon ke
ponsel yang ada di motor pemilik harus memasukkan kode pengaman yang valid ke
modul push button agar validasi dapat dilakukan sehingga motor akan kembali dalam
keadaan normal.
Modul AVR digunakan sebagai modul utama dari sistem ini. Modul serial
digunakan sebagai komunikasi antara AVR dengan ponsel. Modul serial digunakan agar
AVR dapat memberi instruksi kepada ponsel untuk menghubungi pemilik kendaraan,
modul serial menggunakan IC MAX 232. Modul relay digunakan agar AVR dapat
mematikan mesin dan meyalakan klakson pada motor. Modul relay dibuat dengan
menggunkan IC ULN 2003. Tiap relay mengatur satu bagian dari motor yaitu mesin dan
klakson. Push button digunakan untuk pemilik memasukkan input ke AVR. Push button
yang digunakan sebanyak 4 buah, sehingga bentuknya dapat disesuaikan. Kontak motor
agar dapat diterima sebagai interupt oleh AVR di konversi menggunakan LM 7805.
Secara keseluruhan, perangkat keras sistem keamanan pada motor ini terdiri atas
beberapa modul seperti berikut ini:
„ Modul utama terdiri dari 1 buah mikrokontroler AVR ATMega 8535.
„ IC MAX232 untuk berkomunikasi serial dengan ponsel.
„ Ponsel dengan tipe Sony Ericsson T68i untuk mendial pemilik kendaraan.
„ IC ULN2003 untuk menguatkan arus dari AVR ke relay.
„ Relay 5 Volt untuk mematikan mesin dan menghidupkan klakson.
„ Rangkaian push button untuk memasukkan kode pengaman.
„ LM 7805 sebagai sumber tegangan dan pengkonversi tegangan dari accu ke
sistem keamanan.
25
3.1.1 Modul AVR [8][12]
U1
ISP Conector
A
V
R
Ke Relay
1
2
7
8
9
Accu
7805
5V
38
36
34
8
5
3
5
10
Out
In
40
A
T
M
E
G
A
6
12V
Push Button
Gnd
16
Dari Kontak mesin
14
15
Rx Tx
MAX 232
11
31
Gambar 3.2 Modul AVR
Rangkaian sistem minimun AVR ATMega 8535 pada sistem ini sudah memiliki
sistem timer, memiliki sumber internal dan eksternal interrupt, master/slaves serial
interface, memori EEPROM sebesar 512 byte, program flash 8 Kbytes, memori SRAM
sebesar 512 bytes, port USART, operating voltages 4,5 - 5,5 V dan mempunyai 32 buah
saluran I/O. AVR memiliki sistem prosesor 8 bit yang berbasis RISC dengan kecepatan
maksimal 16 MHz. Port-port pada AVR dibagi menjadi 4 bagian port dengan memliki
fungsi–fungsi khusus. Pada rangkaian ini digunakan kristal sebesar 4 MHz untuk
pembangkit pulsa eksternal.
26
Gambar 3.3 Rangkaian Pembangkit Pulsa
Rangkaian pembangkit pulsa clock bagi AVR ATMega 8535 menggunakan
sebuah pembangkit denyut eksternal yang berupa kristal 4 MHz dan 2 buah kapasitor
bernilai 22 pF. Kristal berfungsi untuk membangkitkan frekuensi sekitar 4 MHz untuk
menggerakkan sistem keseluruhan. Kapasitor berfungsi untuk stabilisasi frekuensi.
Kristal dipilih karena alasan stabilitas dan akurasi yang cukup baik serta mudah didapat
dipasaran. Rangkaian pembangkit ini menjadi sederhana karena pada AVR ATMega
8535 telah terdapat rangkaian pembangkit pulsa clock, sehingga hanya diperlukan
sedikit tambahan untuk komponen pendukung luar.
47uF
RESET
Vcc
2KΩ
Gambar 3.4 Rangkaian Reset
Rangkaian reset dibentuk dari kapasitor 47 μF dan resistor 2 KΩ yang
dihubungkan ke catu +5V dan pin RESET dari AVR ATMega 8535. Bila pin RESET
berlogika `0`, maka mikrokontroler akan di set ulang lalu membaca program dari awal.
Pada awal saat catu daya dinyalakan kapasitor dalam kondisi kosong akan di isi oleh
arus yang berasal dari Vcc, yang menyebabkan pin RESET berlogika `1` selama proses
pengisian kapasitor. Waktu tersebut digunakan untuk menjalankan program yang
terdapat didalam mikrokontroler untuk melakukan proses inisialisasi.
27
Komunikasi antara modul AVR dan PC bisa dilakukan dengan menghubungkan
modul AVR ke paralel port pada PC dengan menggunakan sebuah kabel khusus. Fungsi
dari kabel ini adalah untuk mendownload file hexa ke flash memori AVR ATMega
8535. Kabel ini panjangnya tidak boleh lebih dari 70 cm. Program aplikasi yang
digunakan pada PC adalah code vision AVR. Detail dari kabel downloader adalah
sebagai berikut:
Tabel 3.1 Konfigurasi pin Paraller Port dan pin pada PCB
Pin pada AVR
Pin pada port parallel
MOSI (6)
D5 (7)
MISO (7)
ACK (10)
SCK (8)
D4 (6)
Reset (9)
D7 (9)
Ground (11)
Ground (18)
Gambar 3.5 Kabel komunikasi AVR ke PC
28
3.1.2
Modul MAX232[8]
Komunikasi serial yang digunakan memakai IC MAX232, IC MAX232
berfungsi sebagai konverter tegangan dari ponsel ke mikrokontroler, yaitu dari logic
RS232 (-12 sampai +12 V) ke dalam logic TTL (0-5 V). Rangkaian dari IC MAX232
menggunakan konfigurasi cross null modem, dimana bagian TX dari mikrokontroler
akan dihubungkan dengan RX ke DB9 male, dan RX dari mikrokontroler akan
dihubungkan dengan TX ke DB9 male. Pin 14 pada IC MAX 232 di hubungkan ke pin 7
DB9 male, lalu pin 4 dan 5 DB9 male disatukan menuju ground.
Baudrate adalah perubahan data bit satu dan nol per satu detik. Baudrate yang
digunakan 9600 bps dengan data 8 bit, stop bit 1, parity none, konfigurasi ini digunakan
dalam program AVR ATMega 8535. Ponsel dapat berkomunikasi dengan AVR apabila
mengunakan baudrate yang sama dengan ponsel, dengan menggunakan baudrate 9600
bps pada kristal 4 MHz akan memiliki error 0,2%. Data yang dikirim setiap melakukan
komunikasi adalah 8 bit, stop bit digunakan apabila data 8 bit sudah dikirim semua lalu
di tutup dengan bit 1.
Gambar 3.6 Rangkaian Komunikasi Serial
29
Gambar 3.7 Kabel Data Sony Ericsson
Pin yang digunakan adalah pin nomor 4, 5, dan 8. Pin 4 berfungsi sebagai
penerima data. Pin 5 berfungsi sebagai pengirim data. Pin 8 berfungsi sebagai GND.
Gambar 3.8 Pin Pada Ericsson T68i
Tabel 3.2 Pin Pada Ericson T68i
30
3.1.3
Modul Relay
Modul relay pada sistem ini berfungsi untuk mematikan mesin dan menyalakan
klakson pada motor. Karena arus yang keluar dari AVR tidak cukup untuk mengaktifkan
relay maka IC ULN 2003 digunakan untuk menaikkan arus dari AVR ke relay. Cara
kerja relay adalah jika ULN 2003 di beri logika high sehingga Gnd pada ULN 2003
yang terhubung dengan relay dan menyebabkan relay aktif, jika logika low maka Gnd
pada ULN 2003 tidak terhubung dengan relay sehingga relay hanya akan mendapatkan
Vcc tanpa Gnd sehingga relay dalam kondisi ambang (Tristate).
Relay 1 berguna untuk mematikan mesin dengan mencut arus dari accu ke coil
motor, agar coil tidak mendapat arus dari accu. AVR akan memberikan logic ’1’ pada
pin PB.0 ke pin 2 ULN 2003 untuk mematikan mesin. Keadaan relay pada sebelum di
beri logic ’1’ oleh AVR adalah nor closed dengan pengertian keadaan switch terhubung.
Relay 2 berguna untuk menyalakan klakson pada motor dengan menyambungkan
kutub positif pada klakson dengan kutub positif pada accu motor. Sistem ini akan aktif
jika AVR memberikan logic ’1’ pada pin PB.1 ke pin 4 ULN 2003 untuk menyalakan
klakson sebagai sistem alarm pada motor. Keadaan relay pada sebelum diberi logic ’1’
oleh AVR adalah nor opened dengan pengertian keadaan switch terputus.
PB.0 PB.1
Gambar 3.9 Modul Relay dan IC ULN 2003
31
3.1.4
Modul Push Button[8]
Modul push button pada sistem ini digunakan sebagai konfigurasi input agar bisa
memasukkan kode pengaman dengan benar. Pin yang digunakan pada AVR untuk
menerima input yaitu pin 40 (PA.0), pin 38 (PA.2), pin 36 (PA.4), pin 34 (PA.6) yang
terhubung dengan rangkaian switch. Kapasitor yang digunakan pada rangkaian ini
bertujuan agar AVR pada saat menerima input dapat mengambil input sesuai dengan
input yang diberikan. Kapasitor juga digunakan sebagai anti bouncing dari program,
AVR bekerja dengan kecepatan mikro secon sehingga jika tidak dihalangi dengan anti
bouncing AVR akan mengambil input sebanyak seribu kali dari input. Dengan
menggunakan kapasitor AVR akan mengambil input sesuai dengan yang diberikan.
Modul push button di pasang terpisah dari modul utama sehingga arus AVR
yang masuk ke rangkaian ini harus stabil. Dalam penempatannya modul ini diletakkan di
bawah jok motor sehingga pemilk kendaraan dapat memasukkan kode pengaman dengan
mudah.
Gambar 3.10 Modul Push Button
32
3.1.5
Regulator Tegangan (LM-7805)
Regulator tegangan yang digunakan dalam sistem ini adalah LM-7805.
Keunggulan dari regulator ini adalah kemampuannya dalam menkonversi tegangan
input sebesar 12V dengan nilai Vout-nya sebesar 5V agar bisa di terima AVR sebagai
sumber daya. Regulator tegangan pada sistem ini mempunyai dua fungsi pertama
sebagai sumber daya pada sistem yang kedua sebagai input dari kontak motor agar bisa
di terima AVR sebagai interrupt pada pin 16 (PD.2). Berikut contoh rangkaian regulator
tegangan dengan LM-7805:
7805
12V
In
Out
5V
Modul
Relay
5V
Modul
MAX 232
Gnd
Accu
7805
In
Out
Gnd
Gambar 3.11 Rangkaian Regulator Tegangan Sebagai Sumber Daya Sistem
Gambar 3.12 Rangkaian Regulator Tegangan Sebagai Intrrupt ke AVR
33
3.2 Perancangan Perangkat Lunak
Tahap perancangan perangkat lunak atau program pada AVR menggunakan
bahasa C dan menggunkan register-register dari AVR. Bahasa C sebagai program utama
dari sistem ini, C digunakan untuk merancang fungsi-fungsi pada AVR yang akan
berperan sebagai pengatur sebagian besar fungsi dari sistem. Perintah antara AVR
dengan ponsel dalam penelitian ini menggunakan AT Command yang di kirim secara
serial dengan AVR. Algoritma yang digunakan pada sistem ini adalah apabila ada yang
melakukan kontak pada motor lalu menghidupkan mesin tanpa memasukkan kode
pengaman maka dalam 10 detik mesin motor akan mati lalu klason pada motor akan
menyala. Ponsel pada motor akan mendial pemilk yang kemudian akan di tanggapi oleh
pemilik dengan melakukan miss call ke ponsel kendaraan. Setelah melakukan miss call
pemilik harus memasukkan kode pengaman dengan benar. Maka sistem keamanan ini
akan berjalan normal kembali.
Dalam perancangannya sistem ini di bagi dua validasi yaitu validasi benar dan
validasi salah. Pada tiap validasi ada sedikit perbedaan cara untuk memenuhi nilai
validasinya agar suatu state menjadi benar atau salah. Dalam sistem interrupt digunakan
algoritma flag, agar saat program interrupt mulai mengaktifkan register TIMSK dengan
memberikan nilai hexa 0x04 dan mulai menghitung dari nol, flag disini digunakan agar
tidak terjadi pengulangan program interrupt. Sehingga pada saat timer mulai
menghitung dari 0 sampai ke 10 apabila ada interrupt ke dua sedang dilakukan, program
akan tetap menghitung dari angka terakhir sampai seterusnya bukan mengulang dari nol
lagi. Interrupt yang digunakan adalah interrupt 0 dengan mode rising edge, maksudnya
adalah apabila ada perubahan arus dari 0V ke 5V maka interrupt akan aktif dan
menjalankan program dalam interrupt.
34
3.2.1 Diagram Alir Kode Pengaman Benar [8]
Gambar 3.13 FlowChart Validasi Benar
35
Tahap awal sistem ini bekerja adalah menginisialisasi kode pengaman yaitu
1,2,3,4. Kode pengaman di sini bisa disesuiakan tergantung dari pemilik menginginkan
berapa banyak kode yang diinginkan menjadi kode pengaman. Kode pengaman akan di
simpan di dalam eeprom AVR sehingga saat di reset nilai dari kode pengaman tidak
akan berubah kecuali di program ulang. Setelah tahap inisialisasi program menunggu
input dari kontak motor, dalam program AVR jika mendapat input berupa nilai logic ’1’
maka timer pada AVR akan mulai menghitung dari 0 sampai 10 detik. Logika input
yang digunakan adalah rising high artinya dari logic yang awalnya ’0’ di rubah menjadi
’1’ akan menginterrupt program AVR untuk mulai menghitung dan memberikan status 1
agar kontak tidak mulai dari awal jika di beri triger lagi nantinya. Nilai dari status awal
dari sistem ini jika di reset maka akan bernilai 0, akan bernilai 1 jika mendapat triger
dari kontak. Setelah dapat triger dari kontak maka saat timer berjalan program akan
menunggu kode pengaman dimasukkan. Validasi kode pengaman dilakukan pada saat
push button sudah memasukkan 4 kali input untuk di validasi apakah nilai dari input
yang diberikan sama dengan kode pengaman yang di simpan dalam eeprom. Jika
hasilnya sama maka proses validasi kode pengaman sudah selesai dilakukan hasilnya
timer akan berhenti berhitung lalu nilai timer akan di jadikan 0, status di jadikan 0
kembali dan klakson akan berbunyi setengah detik untuk menandakan bahwa hasil
validasi benar. Motor akan dalam keadaan normal jika validasi benar ini dilakukan,
maka mesin motor tidak akan mati.
Apabila triger off atau motor akan dimatikan maka keadaannya akan kembali
pada saat awal tombol reset di tekan. Keadaan ini akan membuat sistem kembali stanby
menunggu interrupt selanjutnya dilakukan.
36
3.2.2
A
Diagram Alir Kode Pengaman Salah atau Lewat 10 Detik
Mesin Off
Calling On
Klakson On
Yes
30?
No
Pass_BTTN
Pressed ?
Yes
Yes
Misscall from
owner?
pass = true
?
Yes
20?
No
No
No
No
Counter ++
No
Yes
Yes
Mesin Off
Calling Off
Klakson On
Mesin Off
Calling On
Klakson On
Pass_BTTN
Pressed ?
Misscall from
owner?
Yes
No
If pass = true
?
No
Yes
C
Yes
B
Gambar 3.14 FlowChart Validasi Salah
Flow chart ini menjelaskan apabila timer sudah lewat 10 detik atau pemilik
memasukkan kode pengaman salah dan lewat dari 10 detik maka program akan masuk
37
ke dalam validasi salah. Dalam validasi ini mesin motor akan mati klakson motor
menyala dan ponsel yang pada kendaraan akan menelpon pemilik kendaraan. AVR akan
mendial pemilik kendaraan selama 30 detik, setelah 30 detik kemudian AVR akan
menutup panggilan yang sedang di lakukan. Pada saat ini program akan menunggu miss
call yang dilakukan pemilik ke ponsel yang ada pada kendaraan. Lama menunggunya
diberi waktu selama 20 detik jika lewat dari waktu yang diberikan tidak ada miss call
yang masuk maka AVR akan kembali mendial pemilik kendaraan. Miss call yang masuk
akan diberi nilai 1 untuk memberi flag kepada program agar tidak mendial ulang ke
pemilik kendaran. Setelah dapat miss call program akan menunggu kode pengaman di
masukkan dengan menekan push button. Input akan di validasi jika sudah di tekan 4 kali
jika nilainya sama dengan yang di simpan pada eeprom maka akan di beri nilai 1 oleh
program. Proses selanjutnya adalah melakukan validasi dua input yang diberikan dengan
menggunakan logika ’and (&&)’, apabila sesuai dengan logika yang ada maka
keadaanya mesin motor akan dapat dinyalakan kembali, klakson motor akan normal dan
status akan diberi nilai 0.
Cara lainnya adalah dengan mendahulukan kode pengaman dimasukkan
kemudian melakukan miss call. Kode pengaman dimasukan dengan cara menekan push
button sebanyak 4 kali sebagai input. Program akan menyocokan dengan nilai yang di
berikan sebagai input dengan yang nilai yang ada pada eeprom pada AVR. Apabila
hasilnya sama maka akan di beri nilai 1 oleh program. Dalam validasi ini memasukkan
kode pengaman tidak akan membuat AVR berhenti mendial pemilik kendaraan. Artinya
progam akan terus menerus mendial ke pemilik kendaraan untuk meminta untuk segera
di miss call. Jika miss call sudah di dapat maka program akan memberi nilai 1 untuk
nantinya akan dilakukan validasi dua input. Validasi dua input dilakukan dengan
38
menggunakan operator logika ’and (&&)’ sehingga jika salah satu masih bernilai 0
maka nilai dari logika ini belum valid. Apabila dua input sudah memenuhi validasi ’and’
maka mesin akan dapat dinyalakan kembali, klakson akan kembali normal dan status
akan kembail menajadi 0. Reset juga menjadi salah satu validasi input apabila pemilik
lupa dengan kode pengaman, dengan menekan tombol reset program akan memulai dari
awal sehingga keadaan motor menjadi normal.
Pertimbangan untuk menggunakan 2 validasi pada saat salah dan lewat dari 10
detik adalah untuk menghindari aksi coba-coba dari orang yang bukan pemilik
kendaraan. Selain itu satu validasi sangat lemah dalam hal keamanan maka digunakan
dua validasi dalam sistem keamanan ini.
39
3.3 Rancang Bangun Sistem
Gambar 3.15 Rancang Bangun Box dari Atas
40
Gambar 3.16 Rancang Bangun Box dari Samping
Gambar 3.17 Penempatan Charger dan Ponsel
41
Gambar 3.18 Penempatan Modul AVR dan Lain-lain
Download