3.4 Perancangan Perangkat Lunak Robot
Perangkat lunak yang dikembangkan dalam membangun sebuah robot IUV terbagi menjadi dua, yaitu program mikrokontroler dan program kendali berbasis GUI
Graphical User Interface.
3.4.1 Perancangan Program Mikrokontroler
Program mikrokontroler adalah program yang ditanamkan ke dalam memori program Flash Memory. Program dibuat dengan menggunakan bahasa assembly A51, yaitu
bahasa mesin untuk mikrokontroler MCS-51. Program ini digunakan untuk mengatur pembacaan input dari perangkat kontrol dan pengendalian pergerakkan robot serta
komunikasi dengan perangkat kontrol. Berikut adalah penjelasan dari masing-masing proses pada program mikrokontroler.
A, key
A=’F’
MOV P1,05H
END
Yes
A=’B’
MOV P1,0A0H A=’R’
MOV P1,60H
No No
Yes Yes
A=’L’
MOV P1,90H
No Yes
CJNE A, Key START
SERIAL_RECEIVE
No
Gambar 3.20 Flowchart Pembacaan Input Penunjuk Rutin Gerak Horizontal
Universitas Sumatera Utara
Pembacaan input read data dari perangkat kontrol dilakukan dengan proses scaning code nilai variabel key dari output program komputer yang diterima oleh
mikrokontroler secara serial melalui register buffer yang kemudian di-copy ke dalam Akumulator. Nilai yang telah tersimpan pada akumulator akan dicek dengan rutin
percabangan untuk menentukan perintah atau proses selanjutnya. Jika nilai A=’F’ ‘F’= kode ASCII karakter F sebagai konstanta pembanding maka akan dilakukan
proses eksekusi rutin Forward robot bergerak maju. Namun, Jika nilai A yang dibandingkan tidak sama dengan salah satu konstanta pembanding ‘F’= forward,
’B’= back, ‘R’= right, atau ‘L’= left maka proses akan berpindah pada proses decision yang berikutnya hingga diperoleh nilai A=konstanta. Demikian juga halnya
dengan proses pembacaan dan rutin gerak vertikal gambar 3.21. Masing-masing konstanta ‘U’, ‘D’, ‘N’, ‘M’ mewakili penunjuk rutin Up, Down, Normal posisi
kamera normal, Manipulator posisi kamera mengarah pada manipulator.
A, key
A=’U’
MOV P1,05H
END
Yes
A=’D’
MOV P1,0AH
No Yes
CJNE A, key
No
START
SERIAL_RECEIVE
Gambar 3.21 Flowchart Pembacaan Input Penunjuk Rutin Gerakan Vertikal
Universitas Sumatera Utara
Proses komunikasi dengan perangkat kontrol dilakukan secara serial, berikut adalah flowchart proses komunikasi serial asinkron mikrokontroler Gambar 3.22.
END START
A, SBUF SERIAL_RECEIVE
Mov A,SBUF Clr RI
SERIAL_PORT_INIT
Gambar 3.22 Flowchart Komunikasi Serial
Pada flowchart di atas dapat dilihat bahwa pertama kali akan dieksekusi rutin Initserial untuk menginisialisasi komunikasi serial, proses inisialisasi ini meliputi
penentuan mode komunikasi serial yang digunakan, mode timer, dan penentuan baudrate komunikasi asinkron. kemudian untuk menerima data dari perangkat
kontrol maka dieksekusi rutin SerialReceive, rutin SerialReceive akan menampung data pada register SBUF, apabila register SBUF sudah terisi penuh 8 bit maka RI akan
bernilai satu high, kemudian data pada register SBUF di-copy mov ke register A. Data ini dapat diproses atau dibaca sebagai input perangkat kontrol. Untuk menerima
data selanjutnya RI harus di-nol-kan Clr= Clear terlebih dahulu.
Universitas Sumatera Utara
3.4.2 Perancangan Program Kendali Berbasis GUI Graphical User Interface