Sesuai janji pada post sebelumnya post kali ini adalah tentang source code Wifly dengan BASCOM . Sebelumnya bagi yang belum tahu konfigurasi wifly, router dan referee boxnya bisa lihat disini. Bagi yang sudah langsung saja, tetapi sebelum memprogram ada baiknya membuat flowchart dahulu seperti pada Gambar 1.
Gambar 1. Flowchart Filter Data Wifly
Berikut ini adalah source code program Wifly dengan BASCOM.
===============================================================
$regfile = “m8def.dat”
$crystal = 8000000
$baud = 9600
On Urxc Rex
Dim Data_in(115) As Byte , X As Byte , Data_header As Byte , Nomor As Byte
Config Portb.0 = Output
Config Portb.1 = Output
Config Portb.2 = Output
Config Portb.3 = Output
Config Portb.4 = Output
Dim Nomor_tim As Byte
Nomor_tim = 1
Dim Warna_tim As Byte
Warna_tim = 0 ‘0 = biru | 1 = cyan
Enable Urxc
Enable Interrupts
Portb.0 = 1 : Portb.1 = 1 : Portb.2 = 1
Portb.3 = 1 : Portb.4 = 1
Main:
Do
Loop
End
Rex:
Data_header = Inkey()
If Data_init = 82 Then
For X = 1 To 115
Data_in(x) = Waitkey()
If X = 9 Then
If Data_in(x) = 1 Then
Portb.0 = 0 : Portb.2 = 0 : Portb.1 = 1 ‘ready
Elseif Data_in(x) = 2 Then
Portb.0 = 0 : Portb.2 = 1 : Portb.1 = 1 ‘set
Elseif Data_in(x) = 3 Then
Portb.0 = 1 : Portb.2 = 0 : Portb.1 = 1 ‘play
Elseif Data_in(x) = 4 Then
Portb.0 = 1 : Portb.2 = 1 : Portb.1 = 0 ‘finish
Elseif Data_in(x) = 0 Then
Portb.0 = 1 : Portb.2 = 0 : Portb.1 = 0 ‘init
End If
End If
If X = 20 Or X = 68 Then
If Data_in(x) = Nomor_tim Then
If Data_in(x + 1) = 0 Then
Warna_tim = 0 ‘cyan
Elseif Data_in(x + 1) = 1 Then
Warna_tim = 1 ‘biru
End If
If Data_in(x + 2) = 0 Then
Portb.3 = 0 ‘gawang biru
Elseif Data_in(x + 2) = 1 Then
Portb.3 = 1 ‘gawang kuning
End If
End If
End If
If X = 11 Then
If Data_in(x) = Warna_tim Then
Portb.4 = 1 ‘ kick off
Elseif Data_in(x) <> Warna_tim Then
Portb.4 = 0 ‘ not kick off
End If
End If
End If
NextX
Return
===============================================================
Catatan: Program diatas merupakan program untuk atmega8. Nantinya output dari atmega 8 ini akan dikoneksikan ke controller utama robot humanoid soccer menggunakan kombinasi binari dari keluaran portnya. Sebagai contoh pada state PLAY maka kombinasi binarinya adalah 101, maka robot akan mulai mencari bola.
Untuk desain board pcbnya dibutuhkan komponen berikut:
– Regulator 3,3V KA78R33
– AT MEGA 8
– Crystal 8 MHz
– Capasitor 22pF
– Resistor 4k7 (Untuk pullup reset atmega8)
Untuk diagram sistem dan penampakan board pcbnya bisa lihat pada Gambar 2 dan Gambar 3 berikut.
Gambar 2. Diagram System Wifly
Gambar 3. Board AT Mega 8 sebagai interface wifly
Sekian dulu post kali ini, mohon saran dan kritiknya..
Sekedar informasi, pemrograman wifly arduino akan dibahas pada post selanjutnya. 😀