• Tidak ada hasil yang ditemukan

Simulasi Pengaturan Lampu Lalu Lintas Otomatis Menggunakan Kamera Berdasarkan Distribusi Kepadatan.

N/A
N/A
Protected

Academic year: 2017

Membagikan "Simulasi Pengaturan Lampu Lalu Lintas Otomatis Menggunakan Kamera Berdasarkan Distribusi Kepadatan."

Copied!
63
0
0

Teks penuh

(1)

Simulasi Pengaturan Lampu Lalu Lintas Otomatis Menggunakan Kamera Berdasarkan Distribusi Kepadatan

Yusriadi/ 0322093

Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha Jalan Prof. Drg. Suria Sumantri 65

Bandung 40164, Indonesia

Email: saint_2k6@yahoo.com

ABSTRAK

Kemacetan lalu lintas pada persimpangan jalan disebabkan pengaturan lampu lalu lintas yang kurang baik di kota-kota besar, menjadi masalah dalam kelancaran transportasi. Kerugian yang disebabkan oleh kemacetan lalu lintas tidak sedikit antara lain : waktu produktif menjadi hilang, bahan bakar terbuang secara percuma, bertambahnya polusi udara, sehingga mempengaruhi kesehatan maupun psikologis manusia.

Dalam tugas akhir ini dibuat simulasi pengaturan lampu lalu lintas otomatis menggunakan kamera berdasarkan distribusi kepadatan. Kamera berfungsi sebagai sensor untuk memantau jumlah kendaraan atau kepadatan (K) yang mengantri di lampu merah. PC berfungsi untuk mengolah data dengan bahasa pemrograman microsoft visual basic 6.0. Data dari PC dikirimkan ke mikrokontroler yang dihubungkan melalui serial port, mikrokontroller mengatur lama penyalaan lampu hijau.

Hasil pengujian simulasi yang dilakukan dalam tugas akhir ini menunjukkan bahwa sistem dapat bekerja menentukan lama penyalaan lampu hijau berdasarkan distribusi kepadatan. Apabila K < 30 % lama penyalaan lampu hijau 3 detik, K >= 30 % dan K < 60 % lama penyalaan lampu hijau 6 detik, K >= 60 % lama penyalaan lampu hijau 9 detik sesuai dengan rancangan.

(2)

Automatic Traffic Light Simulation Using A Camera Based On Density Distribution

Yusriadi/ 0322093

Electrical Engineering, Technic Faculty, Christian Maranatha University Prof. Drg. Suria Sumantri 65 Street, Bandung 40164, Indonesia

Email: saint_2k6@yahoo.com

ABSTRACT

Intersections traffic jams that caused by the unorganized traffic lights in big cities, has become an issue in traffic smoothness flow. The disadvantages caused by traffics jams, such as losing productivity, wasted petrol, increase pollutions, hint affecting human’s health and human’s psychology.

In this final assessment, automatic traffic lights simulation using a camera based on density distribution is discussed. The camera is acted a sensor to monitor the amount of vehicles or density (K) stops at the red light. PC is used to process the data using a microsoft visual basic 6.0 program. The data from PC is then sent to micro-controller that has been connected through serial port, micro-controller used to turn the green light on.

The simulation test result which has done in this final assessment showed that the system could work to determine how long the green light is on based on the density distribution. If K < 30% the green light is on for 3 seconds, K >= 30% and K < 60% the green light is on for 6 seconds, K >= 60% the green light is on for 9 seconds, depending on the arrangement.

(3)

DAFTAR ISI

LEMBAR PENGESAHAN SURAT PERNYATAAN

ABSTRAK... ... i

ABSTRACT... ii

Kata Pengantar ... iii

DAFTAR ISI... v

DAFTAR TABEL... ix

DAFTAR GAMBAR ... x

BAB I PENDAHULUAN ... 1

I.1 Latar Belakang... 1

I.2 Identifikasi Masalah... 2

I.3 Tujuan ... 2

I.4 Pembatasan Masalah... 2

I.5 Sistematika Pembahasan... 2

BAB II DASAR TEORI ... 4

II.1 Sejarah Sistem Pengatur Lampu Lalu Lintas ... 4

II.1.1 Fase pada Sistem Pengatur Lalu Lintas... 4

II.1.2 Aspek Sinyal... 5

II.2 Perhitungan Kepadatan... 5

II.3 Mikrokontroler AVR ATMega8535... 6

II.3.1 Arsitektur ATMega8535 ... 7

II.3.2 Konfigurasi pin ATMega8535 ... 9

II.4 Code Vision AVR 1.25.3 Professional... 10

II.5 Sistem Warna ... 12

II.5.1 Red Green Blue (RGB)... 12

II.6 Konversi ke 'Citra Biner' ... 13

(4)

II.8 Microsoft Visual Basic 6.0 ... 15

II.8.1 Project ... 16

II.8.2 Form ... 17

II.8.3 Toolbox ... 17

II.8.4 Properties ... 17

BAB III PERANCANGAN DAN REALISASI ... 18

III.1 Perangkat Keras ... 18

III.1.1 Maket ... 19

III.1.2 Mikrokontroler ... 19

III.1.3 Kamera ... 21

III.1.4 Personal Computer (PC)... 22

III.1.5 Serial Port ... 22

III.2 Perangkat Lunak... 22

III.2.1 Program Mikrokontroller ... 22

III.2.2 Perancangan Alur Pada Tiap Jalur ... 23

III.2.3 Konfigurasi Code Vision AVR ... 26

III.2.3.1 Konfigurasi Chip... 26

III.2.3.2 Konfigurasi Port... 27

III.2.3.2.1 Konfigurasi Port A... 27

III.2.3.2.2 Konfigurasi Port B... 28

III.2.3.3 Konfigurasi USART ... 29

III.2.4 Program Visual Basic... 30

III.3 Komunikasi Serial... 35

BAB IV DATA PENGAMATAN DAN ANALISA ... 37

IV.1 Pengujian Perangkat Keras ... 37

IV.1.1 Pengujian Pada Mikrokontroler ... 37

IV.1.2 Pengujian Pada Kamera ... 38

IV.2 Pengujian Perangkat Lunak ... 38

(5)

BAB V KESIMPULAN DAN SARAN... 43

V.1 Kesimpulan ... 43

V.2 Saran...43

(6)

LAMPIRAN LAMPIRAN A

Program pada Mikrokontroler...A-1 Program pada Microsoft Visual Basic 6.0... A-10 LAMPIRAN B

Foto Alat... B-1 LAMPIRAN C

Datasheet ATMega8535... C-1 Datasheet MAX232... C-8 LAMPIRAN D

DOKUMENTASI... D-1 LAMPIRAN E

(7)

DAFTAR TABEL

Tabel II.1 Konfigurasi pin dan nama sinyal konektor serial DB-9... 14

Tabel II.2 Pengaruh baudrate dengan Panjang Kabel untuk interface RS232 ... 15

Tabel III.1 Port Mikrokontroler Yang Digunakan ... 20

Tabel III.2 Timing Diagram Pengatur Nyala Lampu Lalu Lintas ... 26

Tabel IV.1 Pengujian Mikrokontroler... 37

Tabel IV.2 Hasil pengujian 1 ... 39

Tabel IV.3 Hasil pengujian 2 ... 40

Tabel IV.4 Hasil pengujian 3 ... 40

Tabel IV.5 Hasil pengujian 4 ... 41

Tabel IV.6 Hasil pengujian 5 ... 41

(8)

DAFTAR GAMBAR

Gambar II.1 Blok Diagram Fungsional ATMega8535 ... 8

Gambar II.2 Konfigurasi Pin ATMega8535 ... 9

Gambar II.3 Code Vision AVR 1.25.3 Professional... 10

Gambar II.4 Dialog Box Untuk Membuat Project Baru ... 10

Gambar II.5 Blok Penginisialisasian Program ... 11

Gambar II.6 Bagian Penulisan Program... 12

Gambar II.7 Sistem warna RGB ... 13

Gambar II.8 Frame Data pada Komunikasi Serial Asynchronous ... 14

Gambar II.9 Konektor Serial DB-9... 14

Gambar II.10 Tampilan dasar VB 6.0... 16

Gambar III.1 Blok Diagram Sistem ... 18

Gambar III.2 Maket Lalu Lintas ... 19

Gambar III.3 Skematik Rangkaian... 20

Gambar III.4 Simulasi arah kendaraan dari jalur1 ... 23

Gambar III.5 Simulasi arah kendaraan dari jalur2 ... 23

Gambar III.6 Simulasi arah kendaraan dari jalur3 ... 24

Gambar III.7 Simulasi arah kendaraan dari jalur4 ... 24

Gambar III.8 Diagram Alir pada Mikrokontroller ... 25

Gambar III.9 konfigurasi Chip... 27

Gambar III.10 Konfigurasi Port A ... 28

Gambar III.11 Konfigurasi Port B ... 29

Gambar III.12 Konfigurasi USART... 30

Gambar III.13 Diagram Alir Sistem ... 31

Gambar III.14 Diagram Alir RGB to Binary ... 33

Gambar III.15 Diagram Alir Hitung Kepadatan ... 34

Gambar III.16 Icon Microsoft Comm Control 6.0 pada Form1 ... 35

Gambar III.17 Tampilan Perangkat Lunak Pada Visual Basic ... 36

Gambar IV.1 Maket Persimpangan Jalan Raya ... 38

(9)

Gambar IV.3 Pengujian 1... .39

Gambar IV.4 Pengujian 2... 40

Gambar IV.5 Pengujian 3... 40

Gambar IV.6 Pengujian 4... 41

Gambar IV.7 Pengujian 5... 41

Gambar IV.8 Pengujian 6... 42

(10)

LAMPIRAN A

Listing Program

Program

pada

Mikrokontroler

A-1

(11)

Lampiran

Listing Program pada Mikrokontroler

/*****************************************************

#define FRAMING_ERROR (1<<FE) #define PARITY_ERROR (1<<UPE) #define DATA_OVERRUN (1<<OVR)

#define DATA_REGISTER_EMPTY (1<<UDRE) #define RX_COMPLETE (1<<RXC)

// USART Receiver buffer #define RX_BUFFER_SIZE 8 char rx_buffer[RX_BUFFER_SIZE];

#if RX_BUFFER_SIZE<256

unsigned char rx_wr_index,rx_rd_index,rx_counter; #else

unsigned int rx_wr_index,rx_rd_index,rx_counter; #endif

// This flag is set on USART Receiver buffer overflow bit rx_buffer_overflow;

(12)

Lampiran

interrupt [USART_RXC] void usart_rx_isr(void) {

char status,data; status=UCSRA; data=UDR;

if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)

{

rx_buffer[rx_wr_index]=data;

if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0; if (++rx_counter == RX_BUFFER_SIZE)

(13)
(14)

Lampiran

putsf("MENYALA SEMUA"); PORTA = 0xFF;

// Get a character from the USART Receiver buffer #define _ALTERNATE_GETCHAR_

(15)

Lampiran

// USART Transmitter buffer #define TX_BUFFER_SIZE 8 char tx_buffer[TX_BUFFER_SIZE];

#if TX_BUFFER_SIZE<256

unsigned char tx_wr_index,tx_rd_index,tx_counter; #else

unsigned int tx_wr_index,tx_rd_index,tx_counter; #endif

// USART Transmitter interrupt service routine interrupt [USART_TXC] void usart_tx_isr(void) {

if (tx_counter) {

--tx_counter;

UDR=tx_buffer[tx_rd_index];

if (++tx_rd_index == TX_BUFFER_SIZE) tx_rd_index=0; };

}

#ifndef _DEBUG_TERMINAL_IO_

// Write a character to the USART Transmitter buffer #define _ALTERNATE_PUTCHAR_

#pragma used+ void putchar(char c) {

while (tx_counter == TX_BUFFER_SIZE); #asm("cli")

if (tx_counter || ((UCSRA & DATA_REGISTER_EMPTY)==0)) {

tx_buffer[tx_wr_index]=c;

if (++tx_wr_index == TX_BUFFER_SIZE) tx_wr_index=0; ++tx_counter;

(16)

Lampiran

// Declare your global variables here

void main(void) {

// Declare your local variables here

// Input/Output Ports initialization // Port A initialization

// Func7=In Func6=In Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out

// State7=T State6=T State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTA=0x00;

DDRA=0xFF;

// Port B initialization

// Func7=In Func6=In Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out

// State7=T State6=T State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTB=0x00;

DDRB=0xFF;

// Port C initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00;

DDRC=0x00;

// Port D initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x00;

DDRD=0x00;

// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=FFh // OC0 output: Disconnected TCCR0=0x00;

TCNT0=0x00; OCR0=0x00;

(17)

Lampiran

// Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off

// Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00;

// Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0x00;

TCCR2=0x00; TCNT2=0x00; OCR2=0x00;

// External Interrupt(s) initialization // INT0: Off

// INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00;

// USART initialization

// Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On

(18)

Lampiran

UCSRB=0xD8; UCSRC=0x86; UBRRH=0x00; UBRRL=0x47;

// Analog Comparator initialization // Analog Comparator: Off

// Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80;

SFIOR=0x00;

(19)
(20)

Lampiran

Listing Program pada Mikrosoft Visual Basic 6.0

Option Explicit

Dim P1, P2, P3, P4 As Integer

Dim i, j, warna, r, G, b, X, luas, lebar As Integer Dim buffx, buffy As Integer

Dim ZZ As Long

Dim x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, y11, y12, y13, y14, y15, y16 As Integer

Private Sub cmdjlr1_Click() If cmdjlr1.Tag = "0" Then cmdjlr1.Tag = "1"

cmdjlr1.Caption = "RST Jalur1" Else

cmdjlr1.Tag = "0"

cmdjlr1.Caption = "Set Jalur1" End If

End Sub

Private Sub cmdjlr2_Click() If cmdjlr2.Tag = "0" Then cmdjlr2.Tag = "1"

cmdjlr2.Caption = "RST Jalur2" Else

cmdjlr2.Tag = "0"

cmdjlr2.Caption = "Set Jalur2" End If

End Sub

Private Sub cmdjlr3_Click() If cmdjlr3.Tag = "0" Then cmdjlr3.Tag = "1"

cmdjlr3.Caption = "RST Jalur3" Else

cmdjlr3.Tag = "0"

cmdjlr3.Caption = "Set Jalur3" End If

End Sub

Private Sub cmdjlr4_Click() If cmdjlr4.Tag = "0" Then cmdjlr4.Tag = "1"

(21)

Lampiran

Else

cmdjlr4.Tag = "0"

cmdjlr4.Caption = "Set Jalur4" End If

End Sub

Private Sub Command1_Click()

'=================== JALUR 1 =================== Dot(1).X = Text1.Text

Dot(1).Y = Text2.Text Dot(2).X = Text3.Text Dot(2).Y = Text4.Text

Dim panjang As Integer Dim lebar As Integer

Dim hitam, putih As Integer

hitam = 0 putih = 0

Text17.Text = ""

panjang = Abs(Dot(1).X - Dot(2).X) lebar = Abs(Dot(1).Y - Dot(2).Y)

(22)

Lampiran

Text17.Text = (putih / (hitam + putih)) * 100 If Val(Text17.Text) < 30 Then

Text22.Text = "3 Detik"

ElseIf Val(Text17.Text) >= 30 And Val(Text17.Text) < 60 Then Text22.Text = "6 detik"

ElseIf Val(Text17.Text) >= 60 Then Text22.Text = "9 detik"

End If

'=================== JALUR 2 =================== Dot(1).X = Text5.Text

Dot(1).Y = Text6.Text Dot(2).X = Text7.Text Dot(2).Y = Text8.Text

hitam = 0 putih = 0

Text18.Text = ""

panjang = Abs(Dot(1).X - Dot(2).X) lebar = Abs(Dot(1).Y - Dot(2).Y)

(23)

Lampiran

Text23.Text = "3 Detik"

ElseIf Val(Text18.Text) >= 30 And Val(Text18.Text) < 60 Then Text23.Text = "6 detik"

ElseIf Val(Text18.Text) >= 60 Then Text23.Text = "9 detik"

End If

'=================== JALUR 3 =================== Dot(1).X = Text9.Text

Dot(1).Y = Text10.Text Dot(2).X = Text11.Text Dot(2).Y = Text12.Text

hitam = 0 putih = 0

Text19.Text = ""

panjang = Abs(Dot(1).X - Dot(2).X) lebar = Abs(Dot(1).Y - Dot(2).Y)

For i = Dot(1).X To Dot(2).X If Val(Text19.Text) < 30 Then

Text24.Text = "3 Detik"

(24)

Lampiran

Text24.Text = "6 detik"

ElseIf Val(Text19.Text) >= 60 Then Text24.Text = "9 detik"

End If

'=================== JALUR 4 =================== Dot(1).X = Text13.Text

Dot(1).Y = Text14.Text Dot(2).X = Text15.Text Dot(2).Y = Text16.Text

hitam = 0 putih = 0

Text20.Text = ""

panjang = Abs(Dot(1).X - Dot(2).X) lebar = Abs(Dot(1).Y - Dot(2).Y)

For i = Dot(1).X To Dot(2).X If Val(Text20.Text) < 30 Then

Text25.Text = "3 Detik"

ElseIf Val(Text20.Text) >= 30 And Val(Text20.Text) < 60 Then Text25.Text = "6 detik"

(25)

Lampiran

Text25.Text = "9 detik" End If

End Sub

Private Sub Command2_Click() Call TWAIN_LogFile(1) Call TWAIN_SetHideUI(1) Call TWAIN_SetIndicators(0)

If TWAIN_OpenSource("USB PC Camera (SN9C102P)") <> 0 Then Call TWAIN_SetPixelType(2)

Call TWAIN_SetXferCount(1) Call TWAIN_SetAutoScan(0) ' If you can't use Me.hwnd, pass 0:

Call TWAIN_AcquireToFilename(Me.hwnd, "C:\image.bmp") End If

If TWAIN_LastErrorCode() <> 0 Then

Call TWAIN_ReportLastError("Unable to scan.") End If

Image1.Picture = LoadPicture("c:\image.bmp") Picture1.Picture = Image1.Picture

End Sub

Private Sub Command5_Click() 'JALUR 1

P1 = Val(Text17.Text)

If P1 < 30 Then

MSComm1.Output = "Z" 'AKTIFKAN PILIHAN MODE 1 While MSComm1.InBufferCount = 0

Text21.Text = " " Wend

Text21.Text = MSComm1.Input For ZZ = 1 To 1000000: Next ZZ MSComm1.Output = "A"

While MSComm1.InBufferCount = 0 Text21.Text = " "

Wend

Text21.Text = MSComm1.Input For ZZ = 1 To 1000000: Next ZZ

ElseIf (P1 > 30) And (P1 < 60) Then MSComm1.Output = "B"

While MSComm1.InBufferCount = 0 Text21.Text = " "

Wend

(26)

Lampiran

ElseIf P1 > 60 Then MSComm1.Output = "C"

While MSComm1.InBufferCount = 0 Text21.Text = " "

Wend

Text21.Text = MSComm1.Input For ZZ = 1 To 1000000: Next ZZ End If

'JALUR 2

P2 = Val(Text18.Text)

If P2 < 30 Then

MSComm1.Output = "Z" 'AKTIFKAN PILIHAN MODE 1 While MSComm1.InBufferCount = 0

Text21.Text = " " Wend

Text21.Text = MSComm1.Input For ZZ = 1 To 1000000: Next ZZ MSComm1.Output = "D"

While MSComm1.InBufferCount = 0 Text21.Text = " "

Wend

Text21.Text = MSComm1.Input For ZZ = 1 To 1000000: Next ZZ

ElseIf (P2 > 30) And (P2 < 60) Then MSComm1.Output = "E"

While MSComm1.InBufferCount = 0 Text21.Text = " "

Wend

Text21.Text = MSComm1.Input For ZZ = 1 To 1000000: Next ZZ

ElseIf P2 > 60 Then MSComm1.Output = "F"

While MSComm1.InBufferCount = 0 Text21.Text = " "

Wend

Text21.Text = MSComm1.Input For ZZ = 1 To 1000000: Next ZZ End If

'JALUR 3

(27)

Lampiran

MSComm1.Output = "Z" 'AKTIFKAN PILIHAN MODE 1 While MSComm1.InBufferCount = 0

Text21.Text = " " Wend

Text21.Text = MSComm1.Input For ZZ = 1 To 1000000: Next ZZ MSComm1.Output = "G"

While MSComm1.InBufferCount = 0 Text21.Text = " "

Wend

Text21.Text = MSComm1.Input For ZZ = 1 To 1000000: Next ZZ

ElseIf (P3 > 30) And (P3 < 60) Then MSComm1.Output = "H"

While MSComm1.InBufferCount = 0 Text21.Text = " "

Wend

Text21.Text = MSComm1.Input For ZZ = 1 To 1000000: Next ZZ

ElseIf P3 > 60 Then MSComm1.Output = "I"

While MSComm1.InBufferCount = 0 Text21.Text = " "

Wend

Text21.Text = MSComm1.Input For ZZ = 1 To 1000000: Next ZZ End If

'JALUR 4

P4 = Val(Text20.Text)

If P4 < 30 Then

MSComm1.Output = "J"

While MSComm1.InBufferCount = 0 Text21.Text = " "

Wend

Text21.Text = MSComm1.Input For ZZ = 1 To 1000000: Next ZZ

ElseIf (P4 > 30) And (P4 < 60) Then

MSComm1.Output = "Z" 'AKTIFKAN PILIHAN MODE 1 While MSComm1.InBufferCount = 0

Text21.Text = " " Wend

(28)

Lampiran

For ZZ = 1 To 1000000: Next ZZ

MSComm1.Output = "K"

While MSComm1.InBufferCount = 0 Text21.Text = " "

Wend

Text21.Text = MSComm1.Input For ZZ = 1 To 1000000: Next ZZ

ElseIf P4 > 60 Then

MSComm1.Output = "Z" 'AKTIFKAN PILIHAN MODE 1 While MSComm1.InBufferCount = 0

Text21.Text = " " Wend

Text21.Text = MSComm1.Input For ZZ = 1 To 1000000: Next ZZ MSComm1.Output = "L"

While MSComm1.InBufferCount = 0 Text21.Text = " "

Wend

Text21.Text = MSComm1.Input For ZZ = 1 To 1000000: Next ZZ End If

End Sub

Private Sub Form_Load() MSComm1.CommPort = 1

MSComm1.Settings = "9600,N,8,1" MSComm1.InputLen = 0

MSComm1.PortOpen = True End Sub

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

Call MouseDown buffx = X buffy = Y

Picture1.CurrentX = buffx Picture1.CurrentY = buffy

'jalur satu

If cmdjlr1.Tag = "2" Then x2 = buffx

y2 = buffy

(29)

Lampiran

Text4.Text = y2

cmdjlr1.Caption = "Set Jalur1" x3 = x2

y3 = y1 x4 = x1 y4 = y2 End If

If cmdjlr1.Tag = "1" Then x1 = buffx

If cmdjlr2.Tag = "2" Then x6 = buffx

y6 = buffy

cmdjlr2.Tag = "0" Text7.Text = x6 Text8.Text = y6

cmdjlr2.Caption = "Set Jalur2" x7 = x6

y7 = y5 x8 = x5 y8 = y6 End If

If cmdjlr2.Tag = "1" Then x5 = buffx

If cmdjlr3.Tag = "2" Then x10 = buffx

y10 = buffy cmdjlr3.Tag = "0" Text11.Text = x10 Text12.Text = y10

(30)

Lampiran

y11 = y9 x12 = x9 y12 = y10 End If

If cmdjlr3.Tag = "1" Then x9 = buffx

If cmdjlr4.Tag = "2" Then x14 = buffx

y14 = buffy cmdjlr4.Tag = "0" Text15.Text = x14 Text16.Text = y14

cmdjlr4.Caption = "Set Jalur4" x15 = x14

y15 = y13 x16 = x13 y16 = y14 End If

If cmdjlr4.Tag = "1" Then x13 = buffx

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Dim buffx As Integer, buffy As Integer

If writelet = True Then

(31)

Lampiran

Label1.Caption = buffx Label2.Caption = buffy

End If End Sub

Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

writelet = False End Sub

Private Sub Command3_Click() End

End Sub

Private Sub Timer1_Timer() Call Command2_Click End Sub

Private Sub Timer2_Timer() Call Command1_Click End Sub

(32)

Lampiran

Modules :

1. EZTwain.bas 2. Module.bas

Public Type Node X As Integer Y As Integer End Type

Public Dot(1 To 2) As Node

Public writelet As Boolean Public Sub MouseDown()

(33)

LAMPIRAN B

(34)

Lampiran

Gambar B.1 Maket Tampak Atas

(35)

Lampiran

(36)

LAMPIRAN C

Datasheet

ATMega8535

C-1

(37)
(38)
(39)
(40)
(41)
(42)
(43)
(44)
(45)
(46)
(47)

LAMPIRAN D

(48)

PENGUJIAN 1

PENGUJIAN 2

PENGUJIAN 3

PENGUJIAN 4

(49)

PENGUJIAN 6

PENGUJIAN 7

PENGUJIAN 8

(50)

PENGUJIAN 10

PENGUJIAN 11

PENGUJIAN 12

(51)

PENGUJIAN 14

PENGUJIAN 15

PENGUJIAN 16

(52)

PENGUJIAN 18

PENGUJIAN 19

PENGUJIAN 20

(53)

PENGUJIAN 22

PENGUJIAN 23

PENGUJIAN 24

(54)

PENGUJIAN 26

(55)

LAMPIRAN E

EZTwain Pro User Guide

E-1

(56)
(57)

TW AI N _ LogFile

void TWAIN_LogFile(int fLog);

EZTw ain can w rit e a quit e det ailed log of it s act iv it y , including ev ery TWAI N call it m ak es and t he result . Log out put goes t o c:\ e z t w a in .log. You can use TWAI N_Set LogFolder t o dir ect t he log file t o anot her dir ect or y.

TWAI N_LogFile( 0) close log file and t urn off logging

TWAI N_LogFile( 1) open log file ( if not already ) and st art logging.

I f logging is already t urned on, TWAI N_LogFile( 1) flushes t he logfile t o disk so pr ior out put w on’t be lost in a subsequent cr ash.

TW AI N _ Se t H ide UI / TW AI N _ Ge t H ide UI void TWAIN_SetHideUI(int fHide);

int TWAIN_GetHideUI(void);

These funct ions cont r ol t he 'hide sour ce user int er face' flag. This flag is t he basic acquisit ion param et ers y our self – see Negot iat ing Scanning

Par am et er s . See also: HasCont r ollableUI

TW AI N _ Se t I n dica t or s

int TWAIN_SetIndicators(BOOL bVisible)

Tell t he source t o show ( hide) progress indicat ors during acquisit ion.

TW AI N _ Ope n Sou r ce

int TWAIN_OpenSource(LPCSTR pzName); Opens t he Sour ce w it h t he given nam e.

int TWAIN_SetPixelType(int nPixType);

Try t o set t he current pix el t y pe for acquisit ion.

The sour ce m ay select t his pixel t ype, but don't assum e it w ill. This funct ion should be used in place of t he older

(58)

TW AI N _ Se t X fe r Cou n t

int TWAIN_SetXferCount(int nXfers);

Tell t he Source t he num ber of im ages t he applicat ion w ill accept . nXfer s = - 1 m eans any num ber ( t he default , w hen a device is opened.) Ret ur ns: 1 for success, 0 for failur e.

TW AI N _ Se t Au t oSca n

int TWAIN_SetAutoScan(int fYes);

( Tr y t o) t urn on/ off scan- ahead ( CAP_AUTOSCAN) . Ret urns TRUE( 1) if successful, FALSE( 0) ot her w ise.

This is an opt ional feat ur e suppor t ed by som e ADF scanner s. When enabled, t he scanner w ill scan pages before t hey are request ed, buffering t hem in t he scanner or host PC. When disabled, t he scanner w ill not feed and scan a page unt il t he applicat ion asks for it . Used t o achieve m axim um t hr oughput on ADF scanner s. N ot e : A few high- speed scanner s ( e.g. Kodak i200) have t his capabilit y per m anent ly on – such scanners alway s scan all pages in t he feeder once t hey st ar t .

TW AI N _ Acqu ir e ToFile n a m e

int TWAIN_AcquireToFilename(HWND hwndApp, LPCSTR pszFile); Acquire an im age and sav e it t o a file. I f t he filenam e cont ains a st andar d

ErrCode = TWAIN_AcquireToFilename(0, “”);

TW AI N _ La st Er r or Code

int TWAIN_LastErrorCode(void);

Ret ur n t he m ost r ecent EZTw ain error code, one of t he EZTEC_ codes – See t he EZTw ain declarat ion file for your program m ing language, or refer t o ezt w ain.h.

TW AI N _ Re por t La st Er r or

void TWAIN_ReportLastError(LPCSTR pzMsg);

Lik e TWAI N_ErrorBox , but if som e det ails are av ailable fr om TWAI N about t he last failure, t hey are included in t he m essage box . This funct ion uses

(59)

BAB I

PENDAHULUAN

Bab ini membahas mengenai latar belakang, identifikasi masalah, tujuan, pembatasan masalah, dan sistematika pembahasan Tugas Akhir.

I.1 Latar Belakang

Kemacetan lalu lintas di kota-kota besar, merupakan masalah dalam kelancaran transportasi. Kerugian yang disebabkan oleh kemacetan lalu lintas tidak sedikit antara lain : waktu produktif menjadi hilang, bahan bakar terbuang secara percuma, bertambahnya polusi udara, sehingga mempengaruhi kesehatan maupun psikologis manusia. Terutama pada persimpangan jalan sering kali terjadi kemacetan, kekacauan dan kecelakaan lalu lintas yang disebabkan pengaturan lampu lalu lintas yang tidak baik. Hal ini disebabkan karena antrian kendaraan pada suatu persimpangan dapat berpengaruh terhadap persimpangan lain yang ada disekitarnya.

Penentuan lamanya lampu lalu lintas di suatu tempat pada umumnya berdasarkan metode survei dan studi kelayakan. Seiring dengan berjalannya waktu dan semakin meningkatnya jumlah kendaraan di jalan raya, hasil survei tersebut sudah tidak cocok untuk diterapkan lagi. Untuk mengatasi hal ini dibutuhkan pengaturan lampu lalu lintas yang dapat disesuaikan berdasarkan distribusi kepadatan.

Dengan menggunakan kamera dapat dipantau jumlah kendaraan yang mengantri di lampu merah, di setiap persimpangan jalan melalui pengolahan citra sehingga dapat ditentukan jalur mana yang lebih padat. Berdasarkan hasil pantauan ini, dapat diatur lama penyalaan lampu lalu lintas.

(60)

Bab I Pendahuluan 2

I.2 Identifikasi Masalah

Bagaimana mengatur lampu lalu lintas otomatis menggunakan kamera berdasarkan distribusi kepadatan ?

I.3 Tujuan

Tujuan Tugas Akhir ini adalah membuat simulasi pengaturan lampu lalu lintas otomatis berdasarkan distribusi kepadatan.

I.4 Pembatasan Masalah

Pembatasan masalah dalam Tugas Akhir ini sebagai berikut:

1. Kamera mendeteksi jumlah kendaraan yang berada di dalam area yang telah ditentukan.

2. Jalan dalam keadaan normal, misal : tidak ada kecelakaan. 3. Letak kamera berada diatas maket.

4. Kamera yang di gunakan hanya satu buah, yaitu webcam. 5. Luas maket (60 X 60) cm 2.

6. Jarak antara kamera dengan maket telah ditentukan terlebih dahulu. 7. Citra mobil tampak atas berwarna putih setelah dikonversi ke citra biner. 8. Kepadatan daerah tengah persimpangan jalan pada maket diabaikan.

I.5 Sistematika Pembahasan

Sistematika pembahasan Tugas Akhir ini disusun menjadi lima bab, yaitu sebagai berikut :

• Bab I : Pendahuluan

Bab ini membahas tentang latar belakang, identifikasi masalah, tujuan, pembatasan masalah, serta sistematika pembahasan.

• Bab II : Dasar Teori

(61)

Bab I Pendahuluan 3

• Bab III : Perancangan dan Realisasi

Bab ini membahas tentang perancangan dan realisasi rangkaian lampu lalu lintas, mikrokontroler dan pembuatan perangkat lunak tampilan data dengan Visual Basic 6.0.

• Bab IV : Data Pengamatan dan Analisa

Bab ini membahas pengamatan, pengujian, dan analisa data dari perangkat keras dan perangkat lunak yang telah dirancang dan direalisasikan.

• Bab V : Kesimpulan dan Saran

(62)

BAB V

KESIMPULAN DAN SARAN

V.1 Kesimpulan

Berdasarkan hasil pengujian pada Tugas Akhir ini maka dapat disimpulkan beberapa hal sebagai berikut:

1. Sistem yang dirancang dan direalisasi berupa simulasi pengaturan lampu lalu lintas otomatis menggunakan kamera berdasarkan distribusi kepadatan berhasil direalisasikan.

2. Pengujian yang dilakukan sebanyak 33 kali dalam kondisi cahaya yang cukup menunjukkan tingkat keberhasilan 100 %, sesuai dengan rancangan yaitu apabila K < 30 % lama penyalaan lampu hijau 3 detik, K >= 30 % dan K < 60 % lama penyalaan lampu hijau 6 detik, K >= 60 % lama penyalaan lampu hijau 9 detik.

V.2 Saran

Setelah mengevaluasi Tugas Akhir ini, penulis berharap Tugas Akhir ini dapat dikembangkan lebih lanjut dengan beberapa saran sebagai berikut:

1. Untuk mendapatkan hasil gambar yang lebih baik untuk diolah, sebaiknya dilakukan proses normalisasi intensitas dari gambar yang ditangkap melalui kamera.

2. Jika akan diimplementasikan pada keadaan sebenarnya, perlu dipertimbangkan dalam pemasangan jarak antara kamera, komputer dan mikro (misal digunakan W-LAN).

(63)

DAFTAR PUSTAKA

1. Achmad Basuki, Jozua F.Palandi, Fatchurrochman, Pengolahan Citra Digital Menggunakan Visual Basic, Graha Ilmu, Yogyakarta, 2005.

2. Retna Prasetia, Catur Edi Widodo, Teori dan Praktek Interfacing Port Paralel dan Port Serial Komputer dengan Visual Basic 6.0, Andi, Yogyakarta, 2004.

3. Tamin, Ofyar Z, Perencanaan & Pemodelan Transportasi : contoh soal dan aplikasi, Edisi kesatu, ITB, Bandung, 2003.

4. Triyana Ika, Proyek Akhir D3, Sistem Kontrol Lampu Lalu Lintas Otomatis Dengan Menggunakan Kamera Berdasarkan Distribusi Kepadatan, Jurusan Teknik Elektronika, PENS, 2007.

5. Wardhana, Lingga, Belajar Sendiri Mikrokontroler AVR seri ATMega 8535, Edisi pertama, Andi, Yogyakarta, 2006.

6. http://www.taltech.com/TALtech_web/resources/index.html, 23 November 2007.

7. http://datasheets.maxim-ic.com/en/ds/MAX220-MAX249.pdf, 25 Oktober 2007.

8. http://www.atmel.com/dyn/resources/prod_documents/doc25025.pdf 25 Oktober 2007.

Gambar

Gambar B.1 Maket Tampak Atas
Gambar B.3 Gambar Keseluruhan

Referensi

Dokumen terkait

[r]

Informasi yang diberikan dirancang hanya sebagai panduan untuk penanganan, penggunaan, pemrosesan, penyimpanan, pengangkutan, pembuangan, dan pelepasan secara aman dan tidak

Yang menjadi pusat adalh bar di tengah dengan nuansa ruang yan semi klasik menyesuaiakna langgam massa kolonila yang ditempati ruang kelompok kegiatan ini.di dominasi

Dengan demikian, sanksi bagi pelaku tindak pidana perdagangan menurut hukum pidana Islam tidak hanya terbatas pada sanksi yang terkandung dalam Pasal 2 Undang-Undang Nomor 21

Jika permohonan informasi diterima, maka dalam surat pemberitahuan juga dicantumkan materi informasi yang diberikan, format informasi, apakah dalam bentuk softcopy atau

(2) Untuk melindungi hak setiap orang/ Badan sebagaimana dimaksud pada ayat (1) Pemerintah Daerah melakukan penertiban penggunaan jalur lalu lintas, trotoar dan bahu

Menimbang, bahwa Majelis Hakim Tingkat Banding setelah membaca, meneliti dan mempelajari dengan seksama berkas perkara dan surat-surat yang berhubungan dengan perkara ini,

Berdasarkan leori-teori barn maka yang dapat dianggap sebagai renang dasar adalah gaya riman dan gaya punggung. Selain dari itu .apabila renang gaya rimau dan gaya punggung