Pemrograman Wifly dengan BASCOM

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.

FLOWCHART WIFLY

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.

6

Gambar 2. Diagram System Wifly

7

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. 😀

Leave a comment