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