PEMBACA BARCODE 128
SISTEM IDENTIFIKASI OTOMATIS TIKET PENUMPANG TUGAS AKHIR
Diajukan Sebagai Salah Satu Syarat Memperoleh Gelar Sarjana Teknik
Jurusan Teknik Elektro
Disusun oleh : YAYUK SULISTIOWATI
NIM : 015114044
PROGRAM STUDI TEKNIK ELEKTRO JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS SANATA DHARMA YOGYAKARTA
2007
THE AUTOMATIC PASSENGGERS TICKET IDENTIFICATION SYSTEM BARCODE READER 128
THE FINAL PROJECT
Presented as Partial Fulfillment of the Requirements to Obtain the Sarjana Teknik Degree
in Electrical Engineering
Arranged by :
YAYUK SULISTIOWATI STUDENT NUMBER: 015114044
ELECTRICAL ENGINEERING STUDY PROGRAM ELECTRICAL ENGINERING DEPARTMENT
ENGINEERING FACULTY SANATA DHARMA UNIVERSITY
YOGYAKARTA 2007
HALAMAN PERNYATAAN KEASLIAN HASIL KARYA
Dengan ini saya menyatakan bahwa dalam Tugas Akhir ini tidak terdapat karya yang pernah diajukan untuk memperoleh gelar kesarjanaan di suatu Perguruan Tinggi, dan sepanjang pengetahuan saya juga tidak terdapat karya atau pendapat yang pernah ditulis atau diterbitkan oleh orang lain, kecuali yang secara tertulis diacu dalam naskah ini dan disebutkan dalam daftar pustaka.
Yogyakarta, Januari 2007 Penulis
Yayuk Sulistiowati
Tidak ada hikmat dan pengertian, dan tidak ada pertimbangan yang dapat menandingi Tuhan. (Amsal 21:30)
Janganlah seorangpun menganggap engkau rendah karena engkau muda. Jadilah teladan bagi orang-orang percaya, dalam pekataanmu, dalam tingkah lakumu, dalam kasihmu,
dalam kesetiaanmu, dan dalam kesucianmu. (1 timotius 4 :12)
Janganlah hatimu iri kepada orang-orang yang berdosa, tetapi takutlah akan Tuhan senantiasa. Karena masa depan sungguh ada, dan harapanmu tidak akan hilang. (Amsal
23:17-18)
Skripsi ini kupersembahkan untuk : Kemuliaan Tuhan Yesus Kristus
Orang tuaku yang tercinta :
Bapak AG.Djumiran dan Ibu Widihastuti Sumangkut Kakak-kakakku yang kukasihi :
Edwin Budiono Sumangkut Edhi Sudarmanto Sumangkut Umi Yuniarti,, ST
ALMAMATERKU……
Kata Pengantar
Puji dan syukur penulis panjatkan kepada Tuhan Yesus Kristus atas karunia-Nya sehingga penulis dapat menyelesaikan tugas akhir ini dengan baik. Dalam penulisan Tugas Akhir ini penulis banyak mendapat bantuan, sehingga laporan ini dapat selesai pada waktunya. Oleh karena itu pada kesempatan ini penulis ingin menyampaikan ucapan terima kasih yang sebesar-besarnya kepada orang tuaku Ag.Djumiran dan Widihastuti Sumangkut, saudara-saudaraku: Mas Ed, Mas Edhi, Mbak Yun yang terus mendukung sampai diselesaikannya Tugas Akhir ini.
Pada kesempatan ini penulis juga mengucapkan banyak terima kasih kepada: 1. Ir. Greg. Herliarko, SJ., SS.,BST.,MA.,MSc.,selaku Dekan Fakultas Teknik 2. Bapak A. Bayu Primawan,S.T.,M.T., selaku Kaprodi Teknik Elektro.
3. Bapak Ir. Iswanjono, MT atas ide-ide, nasehat dan bimbingannya selama penyusunan Tugas Akhir ini.
4. Bapak Petrus Setyo Prabowo,S.T atas nasehat-nasehat dalam penulisan laporan Tugas akhir.
5. Bapak dan Ibu dosen yang telah banyak memberikan pengetahuan dan bimbingan kepada penulis selama kuliah.
6. Pak Jito, Mas Broto dan Mas Suryo, dan segenap dosen dan karyawan USD. 7. Kakak iparku mbak Ester, kemenakan-2ku Christy E.S.Sumangkut, Dirgo S. K
Sumangkut, Gilang J. Sumangkut, Saudara-2 sepupuku yang berada di Poso, atas dukungan, kasih sayang, perhatian kepada penulis.
8. Papi dan mami Tedjo yang telah bersedia menjadi orangtua pengganti penulis selama di Jogja.
9. Teman-teman satu tim PHK Elektro APTIS : Hernomo, Indra “Tatang, Liong, Sulis “kang mas”, than’x untuk kerjasama, dukungan, ide, saran, bantuan, suka duka dalam pengerjaan tugas akhir ini. I Love you guys
10.Teman-teman Jurusan Teknik Elektro: Pinto adik 23 hariku yang sedikit….?! hehe ^_^, Indra “Klowor” yang jahil, tukang ganggu tapi sangat murah hati, Ronny “Ganyong”, Tonny, Tomo, Bowo, Joko, Butet, Koko, Dody, Andry, dll, yang telah membantu bertukar pikiran juga memberikan dorongan semangat dalam susah dan bahagia.
11.Sahabat-sahabat terbaikku: “Oma” Rossy, “Tante” Ridha, “Adik bungsu” Prima, Annie, atas kebersamaan, perhatian dan dukungan do’anya untuk ”ibu”. Semoga kita tetap bersahabat walopun terpisah antar pulau ^_^
12.Adek-adek terbaikQu yang atas bantuan dan dukungannya selama penyelesaian tugas akhir, Chyntia Carla ”Lala” atas motivasi dan dukungan doanya. U2 untuk pinjaman kamera digital n dukungannya. Manto & Jun’x untuk perhatian dan kasih sayang.
13.Teman-teman kost “Gg.Cabe 68”: Ina ”InuL”atas dukungan doa dan pinjaman printernya, Desti, Zhieyo, Atiek, Betrix, Yusni, Ayu untuk motivasinya. Teman-teman kost “Prima Sari”: Jane “godhe”, inung, Ratna, Helen walo cuman 3 bulan, than’x untuk hari-2 yang menyenangkan n’ dukungan kalian. Bravo!!!
14.Semua Teman-teman Komisi Pemuda dan Komisi Dewasa Muda di GKI “Gejayan” : Willem, k’Dina, Osha, B’Roy, Roy C, Mikha, Awin, Lola, elyn, Edo, k’Rini, Ms.Bayu, dan yang tidak tersebutkan.
15.Teman-teman di “TB Mentari” : Jeng Prapti than’x pinjaman motornya, Novie, Yustin, Edo, Venni, Adri “Kingkong”, dll.
Tugas Akhir ini baru permulaan dan masih perlu banyak pembenahan. Oleh karena itu kritik dan saran yang membangun dari semua pihak diterima penulis dengan senang hati. Harapan penulis semoga Tugas Akhir ini bermanfaat bagi para pembacanya.
Yogyakarta,…..Maret 2007
Penulis
PEMBACA BARCODE 128 DALAM SISTEM IDENTIFIKASI OTOMATIS TIKET PENUMPANG (APTIS)
Yayuk Sulistiowati 015114044 INTISARI
Barcode merupakan salah satu alat bantu identifikasi yang sering tertera dalam berbagai produk, kartu identitas ataupun jenis barang lainnya guna mempermudah proses identifikasi. Walaupun banyak jenis alat bantu yang lain seperti magnetic band dan smart card, tapi barcode tetap dapat bertahan karena memiliki keunggulan tersendiri yang tidak dijumpai pada alat bantu yang lain.
Alat pembaca barcode atau barcode reader dapat dibuat sendiri dengan rangkaian yang relatif sederhana dan harga yang relatif murah. Dengan tampilan pada LCD dan pengolahan data dengan Mikrokontroler AT89S51, karakter yang ada pada barcode dapat dikonversikan dan ditampilkan sehingga orang dapat membacanya. Alat pembaca barcode ini dirancang untuk dapat membaca barcode kode 39 dan menampilkan karakternya pada LCD.
Tugas akhir alat pembaca barcode (barcode reader) telah berhasil dibuat dengan kemampuan pembacaan hingga 11 karakter pada 1 kartu (bekas sim card perdana telepon seluler) dengan tingkat kesalahan yang relatif rendah untuk sebuah prototype (10 %).
DAFTAR ISI
HALAMAN JUDUL DALAM BAHASA INDONESIA ………..…….i
HALAMAN JUDUL DALAM BAHASA INGGRIS………..ii
HALAMAN PERSETUJUAN………...iii
HALAMAN PENGESAHAN………... iv
HALAMAN PERNYATAAN KEASLIAN KARYA……….... v
HALAMAN PERSEMBAHAN……….. vi
KATA PENGANTAR……… vii
DAFTAR ISI………... ix
DAFTAR GAMBAR………...xv
DAFTAR TABEL……….xvii
INTISARI…...xviii
ABSTRACT………... xix
BAB I. Pendahuluan………. 1
1.1 Judul……….. 1
1.2 Latar Belakang Masalah……… 1
1.3 Identifikasi Masalah..………. 1
1.4 Batasan Masalah ……… 2
4.1.1. Rumusan Masalah……… 3
1.5 Tujuan Penelitian….……….. 4
1.6 Manfaat Penelitian ………. 4
1.7 Metodologi Penelitian ………. 4
BAB II. Dasar Teori……….. 5
2.1 Pengertian Barcode………...……… 5
2.1.1 Jenis-jenis Barcode………. 5
A. Code 128……….……… 5
B. Code 39 (3 of 9)………..11
C. Interleaved 2 of 5 (ITF)………...12
D. UPC (Universal Product Code)………...12
2.1.2 Pembaca Barcode………...12
2.2 Sensor Barcode Reader ………..13
2.2.1 Rangkaian Photo Diode………..13
2.2.2 Rangkaian LED Super Bright………15
2.3 Pengkondisi Sinyal………...………...16
2.4. Stepper Motor……….17
2.5 Penggerak Stepper Motor.………..……….19
2.6 Mikrokontroler AT89S51………20
2.6.1 Osilator Mikrokontroler AT89S51……...………...…….….23
BAB III. Perancangan ………..………...24
3.1 Blok Diagram Sistem Identifikasi Tiket Penumpang Otomatis………..24
3.2 Perancangan Perangkat Keras……….…………24
3.3 Tiket Barcode…..……….………....25
3.4 Sensor Barcode Reader……….………..25
3.4.1 LED Super Bright……….…….….……26
3.4.2 Photo Diode ...………... .27
3.5 Pengkondisi Sinyal………...……….29
3.6 Stepper Motor……… ………..……..……...30
3.7 Penggerak Stepper Motor………..……….………30
3.8 Stepping Motor...31
3.9 Mikrokontroler Atmel AT8951..……….32
3.9.1 Pensaklaran (Switching) oleh mikrokontroler AT89S51…………33
3.10 LED Indikator………..…... 34
3.11 Perancangan Software (Perangkat lunak)………..………..34
3.11.1 Algoritma keseluruhan system kerja ……….35
3.11.2 Flow chart progam utama………...36
3.11.3 Flow chart progam Pembacaan barcode 128……….37
BAB IV. Hasil dan Pembahasan……….…….38
4.1 Pengamatan Alat……… ………..………...38
4.1.1 Tiket barcode………...………...39
4.1.2 Proses Pembacaan Barcode ...…..40
4.1.3 Pengiriman data………..42
4.2 Data Pengamatan………..………...43
4.2.1. Data Pengamatan Perangkat Keras………...43
4.2.2. Data Pengamatan Stepping....…..……….. 44
4.3. Kesalahan Pembacaan……….44
BAB V. Kesimpulan dan Saran……….45
5.1 Kesimpulan……….45
5.2 Saran………45
DAFTAR PUSTAKA
Lampiran
DAFTAR GAMBAR
Gambar 2.1 Struktur Barcode 128………. 11
Gambar 2.2 Barcode Jenis code 3 of 9...…..…..………...11
Gambar 2.3 Barcode jenis Interleaved 2 of 5………... 12
Gambar 2.4 Barcode jenis UPC………....…………12
Gambar 2.5 Rangkaian Photodiode pada sensor barcode reader………….….. ...13
Gambar 2.6 Rangkaian Timer 555 Astable (datasheet LM555)…….……….15
Gambar 2.7 Rangkain dasar super bright LED ………….………16
Gambar 2.8. Op-Amp sebagai pembanding (komparator)……….…………16
Gambar 2.9 Struktur dasar Stepper Motorr………...……….17
Gambar 2.10 Gelombang dasar pergerakan pulsa stepper motor…….……….….20
Gambar 2.11 Konfigurasi pin AT89S51...……….………...21
Gambar 3.1 Blok diagram APTIS...….….………24
Gambar 3.2 Blok diagram alat pengidentifikasi tiket penumpang dengan sistem barcode…………...……...25
Gambar 3.3 Perancangan Mekanik Barcode Reader...26
Gambar 3.4 Rangkaian Super Brigth LED ...27
Gambar 3.5 Rangkaian Photodiode...28
Gambar 3.6 Rangkaian pengkondisi sinyal …………...………...29
Gambar 3.7 Diagram blok penggerak stepper motor...……..…30
Gambar 3.8 Diagram blok penggunaan port mikrokontroler AT89S51 pada rancangan barcode reader………...33
Gambar 3.9 Rangkaian pensaklaran oleh mikrokontroler ...34
Gambar 3.10 Indikator LED pada mikrokontroler…………..………...34
Gambar 3.11 Flow Chart program utama...……..………...…………36
Gambar 3.12 Flow chart pembaca barcode 128...……….37
Gambar 4.1 Bebtuk fisik alat dilihat dari atas... 35
Gambar 4.2 Barcode pada tiket penumpang armada APTIS………..36
Gambar 4.3 Peletakan sensor pembaca barcode………...…..…...37
Gambar 4.4 Bentuk gelombang masukan ULN 2803...38
DAFTAR TABEL
Tabel 2.1 Set karakter code 128... ………... .6
Tabel 2.2 Pengaturan Langkah Stepper Motor ………... 18
Tabel 2.3 Fungsi pin pada mikrokontroler AT89S51………... 22
Tabel 3.1 Penggunaan port pada mikrokontroler..………...32
Tabel 4.1 Perubahan keluaran dari sensor...……….…....43
BAB I PENDAHULUAN
1.1 Judul
Pembaca barcode 128 dalam sistem identifikasi otomatis tiket penumpang
I.2 Latar Belakang Masalah
Kualitas pelayanan jasa transportasi saat ini dirasakan masih kurang maksimal, sehingga menjadi perhatian bagi penulis. Hal ini menyebabkan gangguan-gangguan terhadap tata cara pelaksanaan transportasi antar daerah, kesalahan identifikasi penumpang, kesalahan penumpang mengidentifikasi sarana transportasi yang dipakai, dan praktek percaloan, serta hal-hal yang lebih cenderung merugikan pihak pemakai sarana transportasi.
Untuk mengatasi masalah tersebut perlu dibuat suatu alat pengenal, seperti sebuah alat pembaca Barcode 128 pada tiket penumpang. Alat ini akan mengindentifikasi data lengkap penumpang, seperti nama, jenis kelamin, nomor tempat duduk, nama kendaraan, asal, dan tujuan. Alat pembaca ini akan diatur oleh sebuah mikrokontroler Atmel AT89S51. Alat pembaca ini merupakan bagian dari sebuah sistem identifikasi penumpang secara otomatis.
1.3 Identifikasi Masalah
Saat ini penggunaan barcode sebagai media pengenal suatu produk sudah sangat mudah kita jumpai. Di setiap supermarket, perkantoran, bank bahkan diperguruan tinggi penggunaan barcode menjadi hal yang umum. Alat pembaca barcode yang sering digunakan menggunakan metode scanner, atau magnetic seperti pada ATM. Pada penelitian ini, penulis akan membuat pembaca barcode 128 yang menggunakan sistem pemantulan cahaya. Kemudian data yang telah dibaca (data pada tiket) akan disimpan sementara dan diubah ke dalam bentuk ASCII. Setelah semua data telah dibaca dan disimpan sementara di Internal RAM, mikrokontroler akan memberikan tanda (LED indicator) menyala.
1.4 Batasan Masalah
Alat pembaca barcode 128 yang akan dirancang memiliki spesifikasi sebagai berikut :
1. Barcode 128
Berupa garis hitam-putih yang dilewatkan pada photo diode (penangkap cahaya) dan super brigth LED (sumber cahaya) sehingga menghasilkan keluaran berupa pulsa.
2. Barcode Reader (pembaca sandi baris)
Pada alat pembaca barcode menggunakan sebuah sensor optocoupler yang akan digunakan sebagai sensor barcode reader dan sebagai sensor pendeteksi ada tidaknya tiket pada barcode reader.
3. Pengondisi sinyal
Pengondisi sinyal dipakai untuk menguatkan pulsa yang dihasilkan oleh barcode reader sehingga dalam proses pengisian tidak terjadi error.
4. Stepper Motor
Digunakan sebagai penggerak sensor barcode pada saat dilakukan proses pembacaan data pada tiket penumpang.
5. Pengolah data sementara
Pengolah data sementara berfungsi untuk mengubah data dari bentuk pulsa (biner) menjadi bentuk ASCII dan disimpan di Internal-RAM.
1.4.1. Rumusan Masalah
Bagaimana merancang dan mengimpletasikan sistem pengindentifikasi tiket dengan :
1. Penempatan sensor dan sensitifitas sensor sehingga sensor dapat membaca barcode dan mengurangi kesalahan.
2. Perancangan mekanik antara stepper motor dengan sensor barcode sehingga dapat membaca data di tiket penumpang tidak terlalu cepat atau terlalu lambat. 3. Protokol yang digunakan sehingga data tidak hilang (bertabrakan) saat proses
pengindentifikasi berlangsung
1.5 Tujuan Penelitian
Perancangan alat pembaca barcode ini bertujuan untuk membuat perangkat pembaca kode baris untuk mendukung sistem identifikasi tiket penumpang otomatis.
1.6 Manfaat Penelitian
Sistem pembacaan barcode 128 pada tiket penumpang ini memudahkan penumpang untuk mengetahui nomor kursi, nama kendaraan, nomor transaksi. Hal ini juga akan mengurangi terjadinya praktek pencaloan dan pemalsuan tiket.
1.7 Metodologi Penelitian
Untuk dapat merancang dan membuat peralatan ini diperlukan langkah-langkah : 1. Studi literature yang ada serta mempelajari cara kerja dan cara merencanakan
dan membuat peralatan tersebut.
2. Melakukan perhitungan matematis dalam menentukan komponen yang akan digunakan dan membuat rancangan schematic serta diagram alir (flow chart) seluruh proses kerja pengindentifikasi tiket dengan sistem barcode.
3. Pengambilan data dan percobaan-percobaan untuk mengetahui kesalahan-kesalahan yang terjadi dalam proses perancangan.
4. Menganalisa dan membuat laporan dari alat pengindentifikasi tiket penumpang bus dengan sistem barcode.
BAB II
LANDASAN TEORI 2.1 Pengertian Barcode
Barcode pada dasarnya adalah susunan garis vertikal hitam dan putih dengan ketebalan yang berbeda, sangat sederhana tapi juga sangat berguna. Dengan kegunaan untuk menyimpan data-data spesifik dengan mudah dan murah misalnya kode produksi, tanggal kadaluarsa, dan nomor identitas. Walaupun teknologi untuk penyimpanan terus berkembang namun teknologi barcode terus bertahan dan masih memiliki kelebihan-kelebihan tertentu yaitu murah dan mudah. Sebab media yang digunakan adalah kertas dan tinta. Sedangkan untuk membaca barcode ada begitu banyak pilihan di pasaran dengan harga dan bentuk yang bervariasi, bahkan kita dapat membuatnya sendiri.
Jenis barcode sangatlah banyak, mulai dari yang tradisional, yaitu satu dimensi sampai dengan barcode yang multi dimensi.
2.1.1 Jenis – jenis Barcode A. Code 128
Code 128 adalah barcode dengan kerapatan tinggi, mampu mengkodekan seluruh simbol ASCII (128 karakter) dalam luasan yang paling minim dibandingkan dengan barcode jenis lain, hal ini disebabkan code 128 menggunakan 4 ketebalan elemen (bar atau spasi) yang berbeda. Jenis yang lain kebanyakan menggunakan 2 ketebalan elemen yang berbeda. Setiap karakter pada code 128 dikodekan oleh 3 bar dan 3 spasi (atau 6 elemen) dengan ketebalan masing-masing elemen 1 sampai 4 kali
ketebalan minimum (modul). Jika dihitung dengan satuan modul maka tiap karakter code 128 terdiri dari 11 module, kecuali untuk karakter stop yang terdiri dari 4 bar dan 3 spasi (13 modul). Jumlah total modul untuk bar selalu genap sedangkan untuk spasi selalu ganjil, selain itu code 128 memiliki 3 karakter start yang berbeda sehingga, code 128 memiliki 3 sub karakter yang berkesesuaian dengan karakter start. Tabel 2.1 memperlihatkan set karakter code 128
Tabel 2.1 Set karakter Code 128
Bar (B) / Space (S) Pattern Value Code Set A Code Set B Code Set C
B S B S B S
0 SP SP 00 2 1 2 2 2 2
1 ! ! 01 2 2 2 1 2 2
2 “ “ 02 2 2 2 2 2 1
3 # # 03 1 2 1 2 2 3
4 $ $ 04 1 2 1 3 2 2
5 % % 05 1 3 1 2 2 2
6 & & 06 1 2 2 2 1 3
7 ‘ ‘ 07 1 2 2 3 1 2
8 ( ( 08 1 3 2 2 1 2
9 ) ) 09 2 2 1 2 1 3
10 * * 10 2 2 1 3 1 2
11 + + 11 2 3 1 2 1 2
12 , , 12 1 1 2 2 3 2
13 - - 13 1 2 2 1 3 2
14 . . 14 1 2 2 2 3 1
40 H H 40 2 3 1 1 1 3 Tabel 2.1. (Lanjutan) Set karakter code 128
65 SOH a 65 1 2 1 1 2 4
66 STX b 66 1 2 1 4 2 1
Tabel 2.1. (Lanjutan) Set karakter code 128
Tabel 2.1. (Lanjutan) Set karakter code 128
Code 128 memiliki fitur untuk dapat bergeser dari sub set satu ke sub set yang lain dengan menggunakan karakter CODE dan SHIFT, CODE X menyebabkan seluruh
message bergeser menjadi sub set X (misalnya CODE A pada sub set B membuat message bergeser menjadi sub set A), sedangkan SHIFT menyebabkan satu karakter didepannya bergeser sub set (ini hanya berlaku untuk sub set A ke sub set B atau sebaliknya). Struktur barcode code 128 seperti terlihat dibawah ini :
Gambar 2.1 Struktur Barcode 128 B. Code 39 (3 of 9)
Code 39 dapat mengkodekan alphanumeric yaitu angka desimal dan huruf besar serta tambahan karakter spesial - , * $ / % +. Satu karakter dalam code 39 terdiri dari 9 elemen yaitu 5 bar (garis vertikal hitam) dan 4 spasi (garis vertikal putih) yang disusun bergantian antara bar dan spasi. Tiga dari sembilan elemen tersebut memiliki ketebalan lebih tebal dari yang lainnya, oleh karena itu kode ini biasa disebut juga code 3 of 9. Tiga elemen yang lebih tebal tersebut terdiri dari 2 bar dan 1 spasi. Elemen yang lebar mewakili digit biner 1 dan elemen yang sempit mewakili digit biner 0.
Contoh Barcode Code 39 dengan pembacaan CODE 39 diperlihatkan pada gambar 2.2:
CODE
39
C O D E 3 9 Gambar 2 2Barcodejeniscode 39
C. Interleaved 2 of 5 (ITF)
ITF adalah sebuah Barcode yang berbentuk numerik dan memiliki panjang baris yang bervariasi. Interleaved Barcode 2 of 5 dapat dipergunakan untuk aplikasi industri dan laboratorium. Contoh ITF diperlihatkan pada gambar 2.3.
Gambar 2.3. Barcode jenis Interleaved 2 of 5
D. UPC (Universal Product Code)
UPC adalah sebuah barcode yang berbentuk numerik dan memiliki panjang baris yang tetap (fixed). UPC digunakan untuk pelabelan pada produk-produk kecil/eceran (retail product labeling). Simbol ini dibuat untuk kemudahan pemeriksaan keaslian suatu produk. Bilangan-bilangan UPC harus diregistrasikan atau terdaftar di Uniform Code Council. Contoh UPC diperlihatkan pada gambar 2.4.
Gambar 2.4. Barcode jenis UPC
2.1.2 Pembacaan Barcode
Pembacaan barcode jenis code 128 menggunakan sistem pemantulan cahaya. Sumber cahaya menggunakan super brigth LED dan sebagai penerima cahaya adalah photo diode yang dihubungkan ke basis transistor. Super brigth LED memancarkan cahaya sehingga mengenai permukaan barcode. Bila permukaan garis hitam yang
terkena cahaya, maka cahaya akan diserap atau tidak dipantulkan sehingga photo diode tidak aktif dan transistor juga tidak aktif (logika 1). Sedangkan bila garis putih yang terkena cahaya, maka cahaya akan dipantulkan ke photo diode sehingga photo diode akan aktif (logika 0)
Super brigth LED bekerja sebagai pena cahaya yang melakukan proses scanning pada permukaan barcode dan photo transistor sebagai penerima dan penentu logika pada barcode.
2.2. Sensor Barcode Reader
Sensor barcode reader terdiri dari 2 buah device, LED super bright dan photo dioda. LED super bright berfungsi sebagai sumber cahaya (transmiter) dan photo diode sebagai penerima (receiver).
2.2.1 Rangkaian Photo diode
Photo diode dirangkai dengan sebuah transistor agar photo diode dapat difungsikan sebagai saklar seperti halnya phototransistor. Rangkaian photo diode seperti terlihat pada gambar 2.5.
Q1
3
2
1
PHOTODIODE
1
2
VCC
R
Gambar 2.5. Rangkaian photo diode pada sensor Barcode Reader Untuk mengetahui keluaran tegangan dari Q1 pada gambar 2.5, harus didapat
nilai IB. Besar niai IB dapat dihitung dengan rumus :
Cahaya LED super bright yang terpantul dan masuk ke photo diode akan memperkecil nilai tahanan photo diode, sehingga arus yang mengalir ke basis transistor (IB) akan semakin besar, sesuai dengan persamaan (2.1). Keadaan tersebut akan
menyebabkan arus collector (IC) akan besar, sehingga nilai VCE akan semakin kecil,
sesuai dengan persamaan (2.2 dan 2.3).
Sebaliknya, apabila tidak ada cahaya LED super bright (cahaya tidak memantul), maka photo diode tidak aktif (nilai RD2 besar) sehingga arus IB kecil dan
mengakibatkan arus collector (IC) kecil sehingga VCE besar [persamaan (2.2 dan 2.3)].
Dengan menggunakan persamaan (2.1), diperoleh :
Kemudian dengan mengacu pada persamaan (2.2), maka persamaan (2.3) dapat
2.2.2 Rangkaian LED Super Bright
LED super bright dimodulasi oleh sebuah pembangkit (osilator) gelombang kotak. Hal ini dilakukan untuk menambah sensitifitas penerimaan cahaya pada photo diode . Osilator dibangkitkan dengan rangkaian timer 555 astable seperti terlihat pada gambar 2.7. Besarnya nilai frekuensi yang dihasilkan dapat dihitung dengan rumus
[
(
(
))
]
Gambar 2.6. Rangkaian Timer 555 Astable (datasheet LM555)
Untuk dapat mengaktifkan LED super bright , dibutuhkan arus basis (IB). IB
dihasilkan oleh tegangan keluaran osilator saat TH (logika 1) dan LED super bright
(2.7)
akan tidak aktif saat TL (logika 0). Tegangan saat TH dianggap sebagai VCC. Gambar 2.7
memperlihatkan rangkaian dasar dari LED super bright , sedangkan besarnya arus IB
dapat dinyatakan:
Gambar 2.7. Rangkaian dasar LED super bright
(2.8)
2.3 Pengkondisi Sinyal
Pengondisi sinyal digunakan untuk menghasilkan logika dengan level tegangan TTL, yaitu 0 V – 0.8 V untuk logika 0 dan 3 V – 5 V untuk logika 1. Hal ini diperlukan untuk memberi masukan pada mikrokontroler AT89S51 yang harus memiliki logika dengan level tegangan TTL. Pengondisi sinyal yang digunakan adalah rangkaian pembanding menggunakan Op-Amp.
-vcc
Gambar 2.8. Op-Amp sebagai pembanding (komparator)
Vout = -Vsat ≡ +Vcc , Vn > Vp………...…(2.9) Vout = +Vsat≡ -Vee ,Vn < Vp………...….(2.10)
Dalam perancangan ini, Op-Amp digunakan sebagai komparator atau pembanding. Komparator akan membandingkan inverting input (Vn) dan non-inverting input (Vp). Saat nilai Vn lebih besar daripada nilai Vp, maka tegangan keluaran VOUT
akan mendekati nilai tegangan –VCC (VOUT = -VSAT), sedangkan jika tegangan pada Vn
lebih kecil daripada tegangan pada VP maka VOUT akan mendekati nilai tegangan +VCC.
2.4. Stepper Motor
Stepper motor pada dasarnya sama dengan motor-motor listrik pada umumnya, yaitu memiliki bagian yang berputar disebut rotor dan bagian yang tidak berputar disebut stator. Bagian yang berputar (rotor) berupa sebuah magnet dan bagian yang tidak bergerak (stator) berupa kumparan. Kumparan pada stator ini jika dialiri listrik akan membentuk medan magnet.
Gambar 2.9. Struktur dasar stepper motor
Stepper Motor adalah jenis motor elektrik yang dapat dikendalikan posisi sudutnya secara diskret. Posisi sudut yang dibentuk tergantung pada banyaknya langkah (step) yang dikenakan pada stepper motor. Stepper motor mempunyai ketelitian dan ketepatan serta keterulangan yang tinggi, sehingga stepper motor banyak digunakan pada peralatan yang membutuhkan ketepatan (presisi) yang tinggi.
Stepper motor yang digunakan pada barcode reader adalah stepper motor jenis bipolar. Jenis stepper motor bipolar ini terdiri dari empat lilitan yang dialiri arus dengan arah bolak balik. Memiliki empat buah terminal keluaran, yaitu L1, L2, L3, L4 yang juga
kesemua terminal bisa menjadi ground.
Pengaturan stepper motor adalah melalui pengaturan masukan pada lilitan-lilitan motor. Pengaturan ini melalui beberapa pengkodean seperti terlihat pada tabel 2.3
Tabel 2.1. Pengaturan langkah stepper motor
Step L1 L2 L3 L4
1 + -
2 + -
3 - +
4 - +
Saat L1 berlogika 1 (+), artinya switch pada L1 terhubung dan L3 terhubung ke ground,
sehingga arus akan mengalir melalui L1 maka akan timbul medan magnet di L1.
Ketelitian pada stepper motor adalah 3.75º per step. Sudut yang dibentuk antar stator stepper motor adalah 90º 2.5. Penggerak Stepper Motor
Penggerak stepper motor menggunakan rangkaian digital dengan sebuah osilator pembangkit gelombang kotak timer 555 astable seperti terlihat pada gambar 2.6
Pergerakan per langkah stepper motor akan sama dengan nilai frekuensi yang dibangkitkan oleh osilator tersebut. Nilai frekuensi yang dibangkitkan oleh osilator dapat dihitung dengan rumus persamaan (2.7)
Keluaran dari osilator akan menngendalikan IC bidirectional 4-bit shift register yang kemudian dikonversikan untuk menmengendalikan IC penggerak motor stepper unipolar. Keluaran dari osilator juga menmengendalikan IC flip-flop dual ‘D’ tipe positive-edge-triggered yang akan mengendalikan saklar pergerakan motor (CW atau CCW) pada IC bidirectional 4-bit shift register.
Gambar 2.10 menunjukkan gelombang keluaran dari osilator dan keluaran dari IC bidirectional 4-bit shift register. THigh gelombang IC bidirectional 4-bit shift register
sama dengan 1 gelombang penuh keluaran osilator.
Gambar 2.10. Gelombang dasar pergerakan pulsa motor stepper
2. 6. Mikrokontroler AT89S51
Mikrontroler AT89S51 merupakan salah satu keluarga dari MCS-51 keluaran Atmel. Jenis mikrokontroler ini pada prinsipnya dapat digunakan unutuk mengolah data per bit maupun data 8 bit secara bersamaan. Gambar 2.11 menunjukkan susunan kaki dari mikrokontroler AT89S51.
Beberapa fasilitas yang dimiliki oleh mikrokontroler AT89S51 adalah sebagai berikut :
Sebuah Central Processing Unit 8 bit.
Osilator internal dan rangkaian pewaktu.
RAM internal 128 x 8 bit.
Flash memori 4 Kbyte.
Lima buah jalur interupsi (dua buah interupsi eksternal dan tiga buah interupsi
internal).
Empat buah programable port I/O yang masing-masing terdiri dari delapan buah
jalur I/O.
Sebuah serial port dengan kontrol serial full duplex UART.
Kemampuan unutuk melaksanakan operasi aritmatika dan operasi logika.
Kecepatan dalam melaksanakan instruksi per siklus 1,1 mikrodetik pada
frekuensi 11,059 Mhz.
Gambar.2.11 Konfigurasi pin AT89S51
Penjelasan beberapa pin mikrokontroler adalah sebagai berikut :
Port 0 merupakan port paralel 8 bit dua arah. Posisi Low Significant Bit
(LSB) terletak pada pin 39 dan Most Significant Bit (MSB) terletak pada pin 32.
Port 1 merupakan port paralel 8 bit dua arah. Posisi (LSB) terletak pada
pin 1 dan (MSB) terletak pada pin 8.
Port 2 merupakan port paralel 8 bit dua arah. Port ini megirim byte
alamat-alamat bila dilakukan pengaksesan memori eksternal. LSB terletak pada pin 21 dan MSB pada pin 28.
Port 3 merupakan port paralel 8 bit dua arah. Posisi (LSB) terletak pada
pin 10 dan (MSB) terletak pada pin 17. Port ini mempunyai beberapa fungsi khusus yang ditunjukan pada tabel 2.2.
Tabel. 2.2 Fungsi pin pada port 3
Pin-pin pada port 3 Fungsi Pengganti P3.0 RxD (Port input serial)
P3.1 TxD (Port output serial) P3.2 INT0 (Interrupt eksternal 0) P3.3 INT1 (Interrupt eksternal 1) P3.4 T0 (Input Eksternal timer 0) P3.5 T1 (Input Eksternal timer 1)
P3.6 WR (Perintah write pada memori eksternal) P3.7 RD (Perintah read pada memori eksternal)
Dalam perancangan ini, register kontrol yang dipakai antara lain :
¾ IE (Interupt Eneble)
Register IE digunakan untuk mengaktifkan atau menonaktifkan sarana interupsi. IE.0 sampai IE.6 mengatur masing-masing sumber interupsi, sedangkan IE.7 mengatur interupsi secara keseluruhan. Jika IE.7 bernilai 0, maka sistem interupsi akan menjadi non-aktif atau keadaan IE.0 sampai IE.6 tidak diperhatikan.
¾ TMOD (Timer Mode)
Register TMOD digunakan untuk mengatur mode kerja timer 0 dan timer 1. Timer digunakan untuk menentukan besarnya baudrate yang akan digunakan dalam komunikasi serial.
¾ TCON (Timer Control)
Register TCON digunakan untuk memulai atau menghentikan proses pencacah timer, mengatur sinyal interupsi dari INT0 atau INT1, serta memantau apakah ada sinyal yang masuk ke INT0 atau INT1.
¾ SCON (Serial Control)
Register SCON digunakan untuk mengatur perilaku dari UART yang diantaranya adalah memantau proses pengiriman dan penerimaan data seri.
2.6.1. Oscillator Mikrokontroler
Rangkaian osilator adalah rangkaian pembangkit frrekuensi untuk menentukan besarnya waktu untuk tiap siklus pada mikrokontroler. Waktu yang dibutuhkan untuk tiap siklus dapat di cari dengan persamaan :
osc Cycle
f
T = 12 ... (2.11)
BAB III
PERANCANGAN
Perancangan peralatan yang dibuat meliputi penyusunan diagram blok, rancangan perangkat keras, konstruksi peralatan, dan bagan alir program (flow chart).
3.1 Blok Diagram Sistem Identifikasi Tiket penumpang Otomatis (APTIS)
Barcode Generator
Barcode Reader
Pembanding Data
Driver Pintu
Seat Display
Gambar 3.1 Blok Diagram APTIS
Sistem Identifikasi Tiket penumpang Otomatis terdiri dari lima bagian, yaitu Barcode Generator yang berfungsi sebagai pencetak kode baris pada tiket. Barcode Reader berfungsi untuk membaca kode baris pada tiket. Pembanding data digunakan untuk membandingkan kode baris pada tiket dengan data dari database (Barcode Generator). Driver pintu berfungsi sebagai penggerak pintu otomatis, dan Seat Display berfungsi untuk menampilkan nomor kursi.
3.2 Perancangan perangkat keras
Perancangan perangkat keras alat pengindentifikasi tiket penumpang dengan mikrokontroler AT89S51 memiliki 6 bagian , yaitu masukan berupa kartu barcode, barcode reader (pembaca barcode) menggunakan 2 buah sensor. Motor stepper digunakan sebagai penggerak sensor barcode. Pengondisi sinyal berupa rangkaian Op-Amp sebagai pembanding tegangan. Mikrokontroler AT89S51 digunakan sebagai pengambil data dari user dan pengolah data sementara, dan LED indikator sebagai penampil digunakan untuk memberikan tanda kepada user apakah bus yang digunakan benar. Diagram blok sistem pengindentifikasi tiket dapat dilihat pada gambar 3.1:
``
Gambar 3.2. Diagram blok alat pengindentifikasi tiket penumpang dengan sistem barcode
3.3 Tiket Barcode
Sistem masukan berupa kartu/karcis yang sudah terdapat sandi garis (Barcode) berjenis code 128.
3.4 Sensor Barcode Reader
Sensor yang digunakan dalam sistem ini menggunakan sensor optocoupler yang terdiri dari LED super bright dan photo dioda..
Penempatan sensor harus tepat dan diupayakan tidak terlalu banyak sinar yang masuk saat pembacaan barcode dilakukan. Hal ini dimaksudkan untuk menghindari terjadinya error.
Tiket Sensor
Arah gerakan Stepper
Belt
Ruang
Limit
Limit
Gambar 3.3. Perancangan mekanik Barcode reader
3.4.1 LED Super Bright
Sensor barcode reader terdiri dari LED super bright dan photo diode seperti terlihat pada gambar 3.5. Karakteristik dari LED super bright tersebut mirip dengan
LED biasa, hanya saja arus maju maksimum (ID) pada LED super bright lebih besar dari
LED biasa dan intensitas cahaya yang dihasilkannya lebih kuat. Arus maju (ID) berkisar
antara 10 – 20mA, dan tegangan majunya (VD)berkisar antara 1.6 – 2 Volt. Nilai ID dan
VD berdasarkan karakteristik LED pada umumnya, karena data dari LED tidak
diketahui. Pada perancangan digunakan ID = 10mA dan VD = 1.7 Volt dengan VCC = 5
Volt. Untuk membatasi besarnya ID digunakan hambatan (RD)
Untuk mendapatkan nilai hambatan yang diinginkan, sesuai dengan persamaan (2.5), didapat :
Jadi hambatan yang dibutuhkan untuk super bright LED sebesar 330 Ohm.
3.4.2 Frekuensi Pemodulasi
Frekuensi yang dibangkitkan oleh timer 555 asstable merupkaan frekuensi pemodulasi LED super bright. Frekuensi modulasi harus mampu menghasilkan pencahayaan yang cukup pada LED super bright, sehingga kartu barcode mampu memantulkan cahaya. Pada perancangan ini, penulis menggunakan frekuensi 105 kHz,
dengan acuan bahwa frekuensi tersebut sudah mampu menghasilkan pencahayaan yang cukup pada LED super bright. Dengan persamaan (2.7), frekuensi tersebut didapat dengan:
3.4.3 Photo Dioda
Untuk nilai β = 75, VBE = 0.6 (data sheet 2N2222A) nilai R photo diode saat
terkena cahaya = 30 kΩ dan saat tidak terkena cahaya = 50 kΩ. Nilai R photo diode berdasarkan hasil pengukuran dengan kapasitas cahaya pada siang hari di dalam ruangan. Dengan persamaan (2.6), bila nilai VBE tetap, maka nilai VCE tergantung
dengan nilai IBRB. Sedangkan nilai IB pada persamaan (2.1), bila VBE dan VCC tetap,
tergantung dari penjumlahan RD2 dan βR1. Sehingga untuk mendapatkan perubahan
nilai IB yang besar yang berbanding lurus dengan perubahan nilai RD2, dibutuhkan nilai
R1 yang jauh lebih kecil terhadap nilai RD2. Dalam perancangan ini, penulis
(
)
• Nilai VCE saat cahaya tidak memantul
(
)
Keluaran sensor dideteksi oleh mikrokontroler pada pin P3.4 sebagai keadaan logika
‘1’ atau ‘0’.
Keluaran dari kaki collector pada barcode reader difungsikan sebagai masukan non-inverting op-amp, sedangkan masukan inverting menjadi tegangan acuan yang besarnya diatur oleh pembagi tegangan sehingga berada diantara selisih tegangan yang terjadi.
3.5 Pengkondisi Sinyal
Pengkondisi sinyal disini menggunakan rangkaian Op-Amp pembanding tegangan dengan tegangan acuan sebagai pembandingnya.
Gambar.3.6. Rangkaian Pengondisi Sinyal
Kaki kolektor dihubungkan dengan inverting input (VN) op-amp. Masukan noninverting
input (VP) menjadi tegangan acuan yang besarnya diatur dengan variabel resistor
sebesar 20K Ohm. Op-Amp digunakan sebagai komparator, membandingkan VN
(tegangan inverting) dan VP (tegangan non-inverting). Saat tegangan inverting lebih
besar daripada tegangan non-inverting, maka keluaran Op-Amp = 0. dan saat tegangan non-inverting lebih besar dari tegangan inverting, maka keluaran Amp = Vcc Op-Amp yang dipakai adalah seri LM339 yang berisi empat buah komparator. Pada LM 339 –Vcc dihubungkan ke ground sehingga besarnya 0 Volt. Jadi Vout berkisar antara 0-5 Volt.
3.6. Stepper Motor
Stepper motor dalam perancangan ini dipakai untuk menggerakkan sensor pembaca barcode dengan arah gerak horizontal (kiri dan kanan) dengan cara menarik rantai karet yang berada pada roda penyangga sensor barcode. Stepper motor akan mulai bekerja saat sensor barcode mendeteksii ada tidaknya data pada tiket yang akan di akses. Arus yang menggerakkan stepper motor berasal dari keluaran port mikrokontroler, setelah dikuatkan (amplified) oleh penggerak stepper motor.
3.7. Penggerak Stepper Motor
Stepper motor membutuhkan rangkaian penggerak tersendiri agar motor tidak terbebani (arus motor konstan) dan gerakan motor konstan pada saat mikrokontroler melakukan pembacaan. Mikrokontroler hanya melakukan pensaklaran (switching) untuk menentukan arah putaran, mengaktifkan dan memberhentikan putaran motor. Saklar 1 (S0) aktif akan mengerakan motor searah jarum jam (CW) dan saklar 2 aktif (S1) akan mengerakan motor berlawanan arah jarum jam (CCW) dan bila kedua saklar aktif atau tidak aktif, motor akan berhenti.
OSILATOR
Gambar 3.7. Diagram blok penggerak stepper motor a. Osilator
Menggunakan timer 555 astable untuk menghasilkan frekuensi dengan nilai frekuensi yang sama dengan jumlah step per detik.
b. Pensaklaran (Switching)
Digunakan untuk mengendalikan arah putaran motor yang dilakukan oleh mikrokontroler.
c. Konverter
Mengubah pulsa gelombang kotak yang dihasilkan untuk osilator menjadi bentuk gelombang kotak dasar untuk menggerakan driver stepper motor. Pergeseran pulsa keluaran (CW & CCW) dari konverter tergantung dari pensaklaran yang dilakukan oleh mikrokontroler
d. Pegerak (driver) stepper motor
Driver stepper motor adalah IC dengan darlington arus tinggi, penggerak tegangan tinggi. Hal ini disebabkan karena stepper motor membutuhkan tegangan tinggi (12 - 24 V) dan arus yang besar. Menggunakan IC ULN 2804 dan L293D.
3.8. Mikrokontroler Atmel AT89S51
Perancangan ini menggunakan mikrokontroler AT89S51 buatan ATMEL karena mokrokontroler ini mudah untuk diterapkan pada berbagai perancangan alat elektronika. Hal lain yang mendukung adalah port masukan-keluaran yang dapat digunakan adalah 4 buah, dan mudah untuk men-downlood program maupun data.
Mikrokontroler AT89S51 digunakan sebagai pengambil data dari tiket user, mengolah data sementara serta mengeluarkannya ke tampilan. Data yang diambil, dikonversikan menjadi data ASCII yang kemudian di simpan pada IRAM.
Mikrokontroler AT89S51 memiliki 4 port yang dapat dipakai untuk input maupun output. Port yang dipakai untuk peralatan ini dapat dilihat pada tabel 3.1. penggunaan port mikrokontroler juga dapat dijelaskan dengan diagram blok yang dapat dilihat pada gambar 3.8.
Tabel 3.1 Penggunaan port pada mikrokontroler
Port Fungsi Keterangan
P.1 Sensor Barcode Masukan
P2.0 Stepper CW Keluaran
P2.3 Stepper Motor CCW Keluaran
P2.5 Sinkronisasi Keluaran
P2.6-P2.7 Limit Switch CW & CCW Masukan
P3.0 Komunikasi Serial Keluaran
P3.7 Reset Masukan
AT89S51
Sinkronisasi
Limit SwitchCW
Komunikasi Sensor Barcode
LED Stepper MotorCW & Catu Daya
Gambar 3.8. Diagram blok penggunaan port mikrokontroler AT 89S51 3.8.1 Pensaklaran (Switching) oleh Mikrokontroler
Untuk mengendalikan putaran motor (berhenti, CCW, dan CW), mikrokontroler membutuhkan 2 port, yaitu port 2.3 dan port 2.0. Gambar 3.9 memperlihatkan rangkaian pensaklaran yang dilakukan oleh mikrokontroler. Pensaklaran ini menggunakan logika rendah, atau dengan kata lain, salah satu saklar akan aktif bila logika pada salah satu port (port 2.3 atau 2.0) berlogika 0, dan saklar akan tidak aktif bila logika pada port adalah 1. Saat port 2.0 berlogika 0 dan port 2.3 berlogika 1 (saklar 1 aktif, saklar 2 tidak aktif), motor akan bergerak berlawanan arah dengan jarum jam (CCW). Saat logika pada port 2.3 adalah logika 0 dan port 2.0 berlogika 1 (saklar 2 aktif, saklar 1 tidak aktif), motor akan bergerak searah jarum jam (CW). Motor akan berhenti bila port 2.0 dan port 2.3 memiliki logika yang sama (kedua saklar aktif atau kedua saklar tidak aktif)
Saklar 1 (S0)
Gambar 3.9. Rangkaian pensaklaran oleh mikrokontroler 3.9. LED Indikator
Keluaran dari sistem adalah dua buah LED yang berbeda warna. Warna Hijau untuk “YA” (pembacaan data selesai) dan sebaliknya warna merah untuk “TIDAK” (pembacaan data salah atau tidak selesai). Kedua LED dihubungkan langsung pada port mikrokontroler
Gambar 3.10. Iindikator LED pada mikrokontroler
3.10. Perancangan Software (perangkat lunak)
System pembacaan barcode agar dapat bekerja dengan baik perlu adanya perangkat lunak / software yang sesuai. Perancangan software dibuat dengan penyesuaian terhadap rancangan hardware. Hal ini dilakukan karena penyesuaian pada software akan lebih mudah dilakukan daripada penyesuaian terhadap hardware. Software pada Atmel AT89S51 digunakan bahasa pemograman assembly. Untuk
mempermudah dalam pembuatan program maka harus dibuat terlebih dahulu diagram alirnya (flowchart).
3.10.1 Algoritma Keseluruhan Sistem kerja
Secara garis besar, keseluruhan dari sistem kerja barcode reader adalah membedakan ketebalan dari tiap bar atau space dari barcode. Bar atau space tebal dibaca sebagai logika satu dan yang tipis dibaca sebagai logika 0. Sensor pembaca barcode digerakan oleh sebuah motor stepper agar dapat membaca kartua barcode dan dikonversikan menjadi logika digital. Dalam perancangan ini, motor stepper digerakan oleh sebuah penggarak tersendiri, sehingga mikrokontroler hanya mengendalikan kapan saat motor berputar atau berhenti serta mengendalikan arah putarannya. Berikut adalah algoritma dari sistem kerja barcode reader.
• Mulai
• Inisialisasi memori, timer dan port yang akan digunakan
• Menunggu adanya kartu barcode dimasukan
• Mengaktifkan motor stepper untuk menggerakkan sensor pembaca baecode
agar dapat melakukan pembacaan data pada kartu barcode
• Pengecekan apakah posisi sensor barcode berada pada posisi awal atau
tidak.
o Mengerakkan stepper motor berlawanan dengan arah jarum jam (ccw)
hingga sensor pembaca barcode menyentuk limit ccw
o Kembali ke awal program (mulai)
• Mengambil data dari sensor pembaca barcode
• Mengubah data yang telah diambil ke dalam bentuk ASCII
• Mengirim (menampilkan) data yang telah dikonversikan pada sistem
selanjutnya
• Mengaktifkan indikator LED
• Kembali ke program awal (mulai)
3.10.2.Flow Chart Program Utama
Program ini dimulai dari pengaktifan barcode reader pada setiap bus penumpang oleh operator. Kemudian pembacaan data pada barcode dilakukan. Kemudian data yang telah dibaca disimpan di IRAM sebagai tempat data sebelum dibandingkan. Setelah penyimpanan selesai maka mikrokontroler akan mengaktifkan indicator LED sebagai tanda bahwa pembacaan tiket selanjutnya bisa dilakukan.
TUNGGU TIKET DI AKSES
ADA TIKET?
KARAKTER SELESAI DIBACA?
BACA
INDIKATOR LED MENYALA
SIMPAN DATA DI IRAM
SELESAI START
TIDAK
YA YA
TIDAK
Gambar 3.11. Flow Chart Program Utama
3.10.3 Flow Chart Pembacaan Barcode 128
Pada Atmel AT89S51, pembacaan Barcode reader dimulai dari pembacaan apakah ada kartu yang masuk. Saat kartu menutup sensor optocoupler, sensor akan mengirim logika 1 ke Atmel AT89S51 sebagai tanda bahwa ada kartu yang masuk, Stepper Motor akan mulai menggerakkan Barcode dan sersor Barcode reader akan bersiap-siap melakukan pembacaan data. Atmel AT89S51 akan menghentikan pembacaan bila sensor optocoupler mengirimkan logika 0. data yang telah diambil oleh
sensor barcode akan di simpan dalam internal RAM dan diolah menjadi data ASCII. Kemudian mikrokontroler akan melakukan tunda waktu selama 5 detik sebelum melakukan pengaksesan kembali.
START
INISIALISASI ALAMAT ,REGISTER DAN TIMER
ADA MOTOR STEPPER MENGGERAKKAN
SENSOR OPTOCOUPLER (PEMBACA BARCODE)
UBAH DATA MENJADI DATA ASCII
Gambar 3.12. Flowchart Pembacaan Barcode 128
BAB IV
HASIL DAN PEMBAHASAN
Bab ini akan membahas hasil atau informasi dari data yang telah diambil dan pembahasan yang menyatakan bahwa alat yang telah dirancang bekerja dengan baik. Gambar 4.1 memperlihatkan bentuk fisik dari alat yang telah dirancang.
Gambar 4.1 bentuk fisik alat dilihat dari atas
Dari hasil dan pembahasan ini, diharapkan kelemahan dan kekurangan tentang alat yang dirancang ditemukan, sehingga dapat lebih disempurnakan serta dapat dimanfaatkan secara rill.
4.1 Pengamatan Alat
Pengamatan dilakukan terhadap barcode yang tedapat di tiket penumpang bus yang sudah dicetak. Gambar 4.2 menunjukan contoh tiket bus.
2509060128
Jam : 15.00
Tanggal : 25/09/2006 No. Kursi : 28
Tujuan : Yogya - Bali
Bus : 01
Nama : Jimmy G
Gambar 4.2 Barcode pada tiket penumpang armada APTIS
4.1.1. Tiket Barcode
Tiket barcode yang digunakan adalah kertas foto glossy yang dipakai sebagai tempat barcode. Jumlah module pada tiket barcode berjumlah 90 module. Spesifikasi dari tiket barcode dapat dilihat pada gambar 4.3. Batas awal (karakter STAR C) dan batas akhir (karakter STOP) pada kartu digunakan untuk mengetahui kapan barcode mulai dibaca dan kapan pembacaan harus diakhiri.
Gambar 4.3 spesifikasi tiket barcode
CHECK 11 module 5 karakter DATA
5 x 11 module
STOP 13
module
STAR C 11 module
2509060128
4.1.2. Proses Pembacaan Barcode
Pada gambar 4.3. dapat dilihat penempatan sensor barcode pada alat barcode reader yang dibuat.
Pertama-tama, sensor mendeteksi posisi awal. Bila limit CW tidak berlogika 0 (keadaan OFF), maka stepper motor akan menggerakkan sensor keposisi awal ( limit CW berlogika 1 atau keadaan ON). Selanjutnya akan menunggu ada atau tidaknya tiket. Bila tiket terdeteksi, sensor mulai melakukan pembacaan.
Foto diode
Gambar 4.3 peletakan sensor pembaca barcode
Dalam proses pembacaan, mikrokontroler akan membaca data mulai dari karakter STAR C (11 module), dilanjutkan dengan pengecekan 5 karakter DATA barcode (11 module x 5), karakter CHECK (11 module), karakter STOP (13 module).
Setelah pembacaan karakter STOP, sensor barcode terus bergerak hingga posisi akhir (limit CCW berlogika 0 atau keadaan ON) dan langsung kembali keposisi awal.
Dalam proses pembacaan, mikrokontroler hanya menyimpan hasil pembacaan dari karakter DATA. Hasil pembacaan karakter START C, karakter CHECK, karakter STOP tidak disimpan karena tidak diperlukan oleh proses selanjutnya. Sebagai contoh, untuk pembacaan barcode pada tiket gambar 4.4 terlihat data sebagai berikut :
2509060128
Gambar 4.4. Barcode
1. Data : 2509060128, di ubah sesuai dengan set karakter code set C pada tabel 2.1, sehingga menjadi 11 module :
25 = 321122 = 11100101100 09 = 221213 = 11001001000 06 = 122213 = 10011001000 01 = 222122 = 11001101100 28 = 322112 = 11100110100
2. Kemudian 11 module pertama diubah menjadi 2 byte. Begitu juga module-module berikutnya.
Byte 1
Byte 2
1 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0
3. Setelah mikrokontroler selesai mengubah data menjadi 2 byte data tersebut diterjemahkan lagi menjadi data hexadecimal dengan rentang 00 – 99.
4. Setelah mikrokontroler selesai menterjemahkan, maka mikrokontroler akan segera mengirimkan semua data tersebut ke sistem berikutnya. Disini, mikrokontroler tidak perlu mengetahui apakah data yang dibaca benar atau salah. hal tersebut akan dibahas oleh sistem selanjutnya.
Dalam pembacaan karakter ke karakter berikutnya, mikrokontroler menghitung jumlah data apakah sejumlah 55 module. Bila telah membaca 55 module maka mikrokontroler menganggap bahwa semua karakter telah terbaca dan akan mengkonversikan data hasil pembacaan dalam bentuk ASCII sebelum dikirimkan ke mikrokontroler sejawat.
4.1.3 Pengiriman Data
Data yang dikirim mikrokontroler AT89S51 ke mikrokontroler AT89S8252 adalah berupa data heksadesimal yang jumlahnya 10 byte. Ketentuannya adalah byte pertama dan byte kedua menunjukkan tanggal, byte 3 dan byte 4 menunjukkan bulan. Byte 5 dan byte 6 menunjukkan tahun, byte 7 dan byte 8 menunjukkan kode bis, serta byte 9 dan byte 10 menunjukkan nomor kursi. Dengan menggunakan program simulasi instruksi dibawah ini akan menghasilkan keluaran yang bisa diamati. Instruksi:
KIRIMDATA:
CLR P2.5
DJNZ R7,$
MOV A,50H
CLR TI
MOV SBUF,A
JNB TI,$
SETB P2.5
Dengan instruksi tersebut, simulasi menghasilkan gambar 4.5 yang berisi byte – byte data.
Byte 1 dan
2 : Byte 5 dan 6 :
Gambar 4.5 Hasil pengamatan simulasi
4.2 Data Pengamatan
4.2.1 Data Pengamatan Perangkat Keras
¾ Tegangan keluaran dari sensor barcode
Keluaran dari sensor barcode dari hasil pengamatan tidak selalu sama. Hal ini dikarenakan photodiode selain menerima cahaya dari super brigth LED juga mendapatkan cahaya dari luar. Untuk melihat perubahan kondisi tegangan pada sensor, maka dilakukan pengamatan dengan 4 perbedaan itensitas cahaya lingkungan sekitar seperti pada table 4.1.
Byte 3 dan 4 :
Byte 9 dan 10 : Byte 7 dan 8 :
Tabel 4.1 perubahan keluaran dari sensor Kondisi
Lingkungan
Keluaran sensor saat membaca warna putih
Keluaran sensor saat membaca warna hitam
Terang 2,91 volt 1,87 Volt
Agak terang 3,05 volt 1,82 volt
Agak gelap 3,2 volt 1,77 volt
Gelap 3,42 volt 1,6 Volt
Dari hasil yang dapat dilihat pada tabel 4.1, maka diperlukan juga perubahan tegangan referensi untuk setiap kondisi. Perubahan ini didapatkan dengan menyesuaikan tegangan sensor barcode yaitu berada di antara tegangan keluaran saat membaca warna putih dan keluaran saat membaca warna hitam.
4.2.2 Data Pengamatan Stepping Motor
Barcode yang dibaca memiliki 90 module dan lebar setiap module bar/space terkecil sebesar 0,057cm. Dari hasil pengamatan, untuk 90 module (bar+space) stepper motor melakukan stepping sebanyak 230 step, maka setiap module bar/space sharus ditempuh sebanyak 2.5 step. Maka dalam pemogramannya, mikrokontroler mendeteksi lebar barcode dengan range sebagai berikut:
• 1 – 3 step = 1 module (bar/step)
• 4 – 5 step = 2 module (bar/step)
• 6 – 7 step = 3 module (bar/step)
• Di atas 7 step = 4 module (bar/step)
4.3. Kesalahan Pembacaan
Kesalahan pada proses pembacaan dapat disebabkan antara lain oleh:
• Saat mikrokontroler selesai membaca 1 bar atau space dan melakukan proses
looping (mikrokontroler tidak membaca barcode) untuk pembacaan berikutnya, motor stepper tetap berputar sehingga sensor juga akan terus bergerak.
• Sensor barcode kurang sensitif dalam proses pembacaan mendeteksi bar / space.
BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Dari pengamatan terhadap hasil akhir barcode reader diperoleh kesimpulan:
1. Meskipun hasil dari pembacaan barcode reader tidak diketahui benar atau salahnya, tetapi proses pembacaan dan pengiriman data sudah dapat dilakukan.
2. Sistem pada unit pembaca barcode ini memiliki kelemahan pada perangkat keras sistem sensornya. Hal ini dikarenakan kurang mampunya sensor barcode dalam pembacaan kode barcode
5.2. Saran
Alat hasil perancangan ini masih memiliki banyak kekurangan dan keterbatasan pada perangkat keras dan perangkat lunaknya, sehingga penulis mencoba memberikan saran-saran untuk pengembangan lebih lanjut agar lebih baik, yaitu:
1. Untuk pengembangannya alat ini dapat lebih baik lagi jika dapat menampilkan nilai atau karakter dari barcode melalui LCD ataupun monitor.
2. Karena system ini sangat berpengaruh pada kinerja Sistem Identifikasi Tiket Penumpang Otomatis, maka kerjasama antara sub-sistem – sub-sistem harus lebih ditingkatkan dalam segala hal yang menujang keberhasilan. Di waktu yang akan datang akan lebih baik bila pendampingan dilaksanakan sesering mungkin