PUJI WAHYONO
NRP. 710 303 0017
Dosen Pembimbing
ii
ABSTRACT
iii
Pengantar
Penyusun
iv
UCAPAN TERIMA KASIH
v
13. Seluruh pihak yang tak dapat kami sebutkan satu persatu terima
kasih atas bantuannya dalam penyelesaian Tugas Akhir ini.
vi
DAFTAR ISI
Halaman judul ................................................................................... i
Lembar pengesahan........................................................................... ii
Abstrak ............................................................................................ iii
Abstract ............................................................................................ iv
Kata pengantar .................................................................................. v
Ucapan terima kasih.......................................................................... vi
Daftar isi........................................................................................... viii
Daftar gambar ................................................................................... x
Daftar tabel........................................................................................ xi
BAB I PENDAHULUAN
1.1 Latar belakang............................................................................ 1
1.2 Tujuan umu ................................................................................ 2
1.3 Tujuan khusus ............................................................................ 2
1.4 Permasalahan ............................................................................. 2
1.5 Perumusan masalah .................................................................... 2
1.6 Batasan ....................................................................................... 2
1.7 Metodologi ................................................................................. 3
1.8 Sistematika penulisan................................................................. 3
vii
2.3.10 Struktur Interupsi ............................................................ 25
2.4 Timer / Counter.......................................................................... 26
2.5 Keypad ....................................................................................... 31
2.6 LCD ......................................................................................... 32
BAB V PENUTUP
5.1 Kesimpulan ................................................................................ 55
5.2 Saran – saran .............................................................................. 55
viii
Daftar Riwayat Hidup
DAFTAR GAMBAR
ix
DAFTAR TABEL
x
1
BAB I
PENDAHULUAN
1
Takashi Yagi, Industrial Robot: An International Journal. Volume 29 Number 6 2002 pp.
495-499
2
http://www.utm.ac.my/sistemrobotic
3
Gde Brata Indrawan “Robot Pembersih kaca gedung dengan perangkat kamera”, PA
PENS-ITS, Agustus 2004
2
kecil, maka dengan alasan tersebut dalam proyek akhir ini saya ingin
mengaplikasikan teknologi robot guna membantu kepentingan manusia
khususnya yang berhubungan dengan ketinggian yaitu dengan membuat
robot pemanjat tiang.
1.2.1 Tujuan Umum
Tujuan umum dari proyek akhir ini adalah untuk melengkapi
kurikulum studi pada Politeknik Elektronika Negeri Surabaya Institut
Teknologi Sepuluh Nopember Surabaya.
1.2.2 Tujuan Khusus
Mengaplikasikan teknologi robot guna membantu kepentingan
manusia khususnya yang berhubungan dengan ketinggian yaitu dengan
membuat robot pemanjat tiang. Robot pemanjat tiang ini mampu
memanjat tiang yang tinggi, Selain tidak membutuhkan media lain untuk
memanjat seperti tali dan lainnya robot pemanjat tiang ini dapat
memanjat tiang dengan diameter bervariasi dan bergerak secara otomatis
sampai ketinggian tertentu sesuai keinginan kita dan dapat dikontrol dari
bawah melalui joystick, aksi apa yang harus dilakukan robot ini.
1.3 Permasalahan
Robot pemanjat tiang yang dibuat ini harus mampu melakukan
tugas pemanjatan dengan baik. Selain itu robot dapat diopersikan
dengan dua mode operasi yaitu secara otomatis dan secara manual.
Dimana pemilihan mode operasi dapat dilakukan pada saat start maupun
pada saat robot sudah berjalan. Guna menunjang kemudahan dan
kelancaran robot saat melakukan pemanjatan, mekanik robot harus di
desain dengan se- efektif mungkin.
1.5 Batasan
3
Pembahasan pada Proyek akhir ini difokuskan pada perancangan
rangkaian sistem minimum mikrokontroller, interface dengan LCD,
Keypad dan rangkaian kendali robot dengan menggunakan
joystick.Permasalahan dibatasi hanya pada pembuatan perangkat keras
dan perangkat lunak yang memberikan data masukan bagi proses
pengontrolan robot. Dengan batasan masalah:
1. Membuat perangkat lunak yang dapat memberikan data
masukan untuk proses pengontrolan robot.
2. Kondisi awal start robot sudah berada pada tiang
3. Robot hanya melakukan pemanjatan tiang
4. Kondisi tiang dalam keadaan berdiri tegak lurus dan
dengan diameter antara 10 cm – 30cm
6. Tidak ada halangan (obstacle) yang menutupi obyek(tiang)
dan permukaan tiang rata.
1.4 METODOLOGI
Untuk mencapai penyelesaian proyek akhir, langkah yang akan
dilakukan adalah:
1. Melakukan studi literatur yaitu mempelajari literatur yang
berhubungan dengan perangkat lunak yang akan digunakan dan
juga mikrokontroller. Software yang digunakan adalah bahasa
Assembly
2. Melakukan perancangan perangkat lunak yaitu merancang
software yang akan di terapkan didalam sistem robot. Dan
interface dengan beberapa device, LCD, Keypad dan joystick
3. Melakukan integrasi dan pegujian sistem yaitu menghubungkan
antara perangkat lunak yang telah dibuat dengan perangkat
keras kemudian dilakukan pengujian pada keseluruhan system
agar diketahui kinerjanya.
4. Melakukan evaluasi dan presentasi hasil yaitu melakukan
evaluasi cara kerja dari sistem yang telah dibuat untuk
mengetahui aspek-aspek yang mempengaruhinya, seperti :
keberhasilan melakukan pemanjatan, pengujian data dan
ketepatan dengan kontrol robot.
5. Melakukan penyusunan buku tugas akhir yaitu melakukan
penulisan laporan lengkap dan detail tentang tugas akhir.
BAB II
TEORI PENUNJANG
4
Agvianto Eko Putra, BELAJAR MIKROKONTROLER AT89C51/52/55, Hal 2
6
5
http://www.issi.com
7
a. Pin 1-8 (Port 1) merupakan port paralel 8 bit dua arah (bi-
directional) yang dapat digunakan untuk berbagai keperluan
(general purpose).
b. Pin 9 ( reset ) adalah masukan reset (active high). Pulsa transisi
dari rendah ke tinggi akan mereset 8951. Pin ini dihubungkan
dengan rangkaian power on reset.
c. Pin 10-17 (Port3) adalah port paralel 8 bit dua arah yang
memiliki fungsi pengganti. Fungsi pengganti meliputi TxD
(Transmit Data), RxD (Receive Data), Int 0 (Interupt 0), Int 1
(Inteerup 1), T0 (Timer 0), T1 (Timer 1),WR (Write), dan RD
(read). Bila fungsi pengganti tidak dipakai, pin-pin ini dapat
digunakan sebagai port parallel 8 bit serba guna.
d. Pin 18 (XTAL 1) adalah pin masukan ke rangkaian osilator
internal. Sebuah isolator kristal atau sumber osilator luar dapat
digunakan.
e. Pin 19 (XTAL 2) adalah pin keluaran ke rangakaian osilator
internal. Pin ini dipakai bila menggunakan osilator kristal.
f. Pin 20 (Ground) dihubungkan ke Vcc atau ground.
g. Pin 21 sampai 28 (Port 2) adalah port paralel 2 (P2) selebar 8
bit dua arah (bidirectional). Port 2 ini mengirimkan byte alamat
bila dilakukan pengaksesan memori external.
h. Pin 29 adalah pin PSEN (Program Store Enable) yang
merupakan signal pengontrol yang membolehkan program
memori external masuk kedalam bus selama proses pemberian/
pengambilan instruksi ( fetching ).
i. Pin 30 adalah pin ALE (address latch Enable) yang digunakan
untuk menahan alamat memori eksternal selama pelaksanaan
instruksi.
j. Pin 31 (EA). Bila pin ini diberi logika tinggi (H),
mikrokontroler akan melaksanakan instruksi dari
ROM/EPROM ketika isi program counter kurang dari 4096.
Bila diberi logika low (L), mikrokontroller akan melaksanakan
seluruh instruksi dari memori luar program.
k. Pin 32-39 (Port 0) merupakan port parallel 8 bit open drain dua
arah. Bila digunakan untuk mengakses memori luar, port ini
akan memultipleks alamat memori dengan data.
l. Pin 40 (Vcc) dihubungkan ke Vcc (+5 Volt).
6
http://www.issi.com
4
http://www.issi.com
9
Seperti yang terlihat pada gambar 2.3, setiap interupsi diberi lokasi
tersendiri pada Program Memori (ketentuan tersebut dikenal sebagai
vektor interupsi). Interupsi yang dilakukan menyebabkan CPU
melompat ke alamat interupsi yang berisi sebuah rutin khusus dan
kemudian mengeksekusinya.
Jika program interupsi cukup pendek, maka program tersebut dapat
dimulai pada alamat vektor interupsi yang ditentukan. Bila program
interupsi cukup panjang, maka instruksi ‘Jump’ dapat digunakan pada
alamat vektor interupsi tersebut, untuk melompat menuju lokasi awal
dimana program interupsi dibuat. Kapasitas 4K (atau 8K, atau 16K) dari
Program Memori dapat difungsikan sebagai on-chip ROM (internal)
atau sebagai ROM eksternal. Pemilihan ROM internal atau eksternal
pada saat pembacaan oleh mikrokontroler, dilakukan dengan
mengkondisikan pin EA (External Access) pada kondisi high/ low (EA
= high, untuk ROM internal; EA = low, untuk ROM eksternal).
Transfer data di dalam SFR dan Internal RAM dapat dilakukan tanpa
melalui Akumulator, untuk Upper 128 hanya dapat ditransfer melalui
indirect addressing, sedangkan untuk transfer data melalui SFR
hanya dapat dilakukan dengan direct addressing. Perhatikan bahwa
pada semua piranti MCS-51, stack yang berada di dalam memory
bergerak dari bawah ke atas. Instruksi PUSH mula-mula akan
menginkremen nilai dari SP (Stack Pointer), kemudian akan
mengkopi isi data ke dalam stack. Instruksi PUSH dan POP hanya
digunakan dengan direct addressing untuk mengidentifikasi byte
yang disimpan ataupun dikeluarkan. Namun demikian stack itu
sendiri dapat diakses menggunakan indirect addressing dengan
perantaraan register SP. Hal ini berarti stack dapat sampai pada
Upper 128 jika dibutuhkan, namun tidak dapat masuk ke dalam
daerah SFR.
Pada piranti yang tidak menggunakan Upper 128, bila SP
menunjuk pada daerah Upper 128, maka data yang diberi operasi PUSH
akan hilang begitu saja, sedangkan data yang dikenakan operasi POP
akan tidak terdeteksi. Instruksi-instruksi Data Transfer meliputi sebuah
perintah MOV 16 bit yang dapat digunakan untuk menginisialisasi Data
21
Pinter (DPTR) untuk memeriksa tabel-tabel pada Program Memori, atau
untuk akses 16 bit pada external Data Memory.
b. External RAM
Tabel di bawah akan menunjukkan daftar dari instruksi-instruksi Data
Transfer untuk mengakses external Data Memory. Pada
instruksiinstruksi ini hanya digunakan mode Indirect addressing :
c. Look-up Tables
Tabel di bawah menunjukkan dua buah instruksi yang dapat
memeriksa tabel pada Program Memori. Instruksi ini hanya dapat
22
mengakses Program Memori. Jika tabel akan mengakses Program
Memori eksternal, maka sinyal yang akan dikirim adalah PSEN.
SETB C C=1 1
CPL C C=.NOT.C 1
b. Instruksi JC / JNC
Instruksi JC (Jump on Carry) dan instruksi JNC (jump on no Carry)
adalah instruksi jump bersyarat yang memantau nilai bit Carry di dalam
Program Status Word (PSW).
Pada tabel hanya terdapat perintah “JMP addr”, padahal secara fakta
terdapat tiga buah perintah lain, yakni : SJMP, LJMP dan AJMP,
dimana memiliki perbedaan pada format dan alamat tujuan.
JMP adalah mnemonic umum yang biasa digunakan pada
program, user biasanya tidak peduli lagi dengan
bagaimana suatu perintah Jump itu dikodekan.
Perintah SJMP mengkodekan alamat tujuan sebagai
relative offset, seperti yang telah dijelaskan di atas.
Instruksi ini memiliki lebar 2 byte, berisi opcode dan
byte relative offset. Perintah ini memiliki batas range
dari -128 sampai 128 byte dihitung dari perintah SJMP
itu dieksekusi.
Perintah LJMP mengkodekan alamat tujuan sebagai
sebuah konstanta 16 bit. Instruksi ini terdiri atas 3 byte,
26
berisi opcode dari instruksi serta dua byte alamat. Alamat
tujuan dapat diletakkan di mana saja di dalam Program
Memori yang 64 KB tersebut.
Perintah AJMP mengkodekan alamat tujuan sebagai
konstanta 11 bit. Instruksi ini terdiri atas 2 byte, yang
berisi opcode, dimana opcode itu sendiri berisi 3 bit yang
merupakan bagian dari konstanta yang 11 bit itu, serta 1
byte alamat. Saat instruksi ini dieksekusi, 11 bit ini akan
menggantikan 11 bit terendah dari PC, sedangkan 5 bit
Teratas dari PC tetap pada tempatnya. Sehingga alamat
tujuan paling tidak adalah masuk dalam range 2K dari
instruksi AJMP.
Keterangan:
30
¾ GATE Gate control set. Timer/Counter “x” akan
aktif jika pin
¾ “INTx” high dan kondisi pin “TRx” sedang set.
¾ Gate control clear. Timer”x” akan aktif jika
“TRx” set
¾ C / T Timer/Counter Selector. Clear untuk mode
Timer ( input dari internal clock ) dan set untuk
mode Counter (input dari pin “Tx” )
¾ M1 Bit untuk memilih mode timer/counter
¾ M0 Bit untuk memilih mode timer/counter
¾ x = 0 atau 1.
Mode 0
Pada mode ini timer bekerja sebagai timer 13 bit yang terdiri
dari counter 8-bit dengan pembagi 32 (pembagi 5 bit). Gambar
menunjukkan diagram timer yang bekerja pada mode 0. Setelah
perhitungan selesai, mikrokontroler akan mengeset Timer Interrupt
Flag (TF1). Dengan membuat GATE = 1, timer dapat dikontrol oleh
input dari luar (INT1), untuk fasilitas pengukuran lebar pulsa. Register
13 bit yang digunakan terdiri dari 8 bit dari TH1 dan 5 bit bawah dari
TL1 ( bit 6,7,8 tidak digunakan ).Mengeset TR1 tidak akan menghapus
isi register. Operasi pada mode 0 untuk Timer 0 dan Timer 1 adalah
sama.
31
Mode 3
Dalam operasi mode 3 Timer 1 akan berhenti, hitungan yang
sedang berjalan dipegang. Efeknya sama seperti mengatur TR1 = 0.
Timer 0 dalam mode 3 membuat TL0 dan TH0 sebagai dua counter
terpisah. TL0 menggunakan kontrol bit timer 0 yaitu C/T, GATE, TR0,
32
INT 0, dan TF0. TH0 berfungsi hanya sebagai timer dan
mengambil alih penggunaan TR1 dan TF1 dari Timer1 dan sekarang
TH0 mengontrol interupsi Timer 1.
Mode 3 diperlukan untuk aplikasi yang membutuhkan
ekstra Timer/Counter 8 bit. Dengan timer 0 dalam mode 3,
mikrokontroler 8051 seperti memiliki 3 T/C. Saat Timer 0 dalam mode
3, Timer 1 dapat dihidupkan atau dimatikan, atau dapat digunakan oleh
port serial sebagai pembangkit baud rate dalam aplikasi komunikasi
serial
2.9 KEYPAD
Keypad merupakan piranti untuk meng-input-kan data kepada
mikrokontroler yang terdiri dari rangkaian beberapa push button. Pada
proyek akhir ini memanfaatkan key pad yang terdiri dari 5 push button.
Meskipun jumlah tombolnya hanya 5 tetapi key pad ini dapat diatur
melalui program sehingga dapat berfungsi dengan baik. Dalam hal ini
memerlukan abjad sebanyak 23, angka sebanyak 10, dan beberapa
instruksi untuk input data. Oleh karena itu diperlukan pengaturan fungsi
melalui scaning program.
.
2.10 LCD
Lcd merupakan perangkat elektronik yang terbuat dari crystal cair,
yang digunakan untuk menampilkan karakter atau bilangan sebagai
informasi dari kerja dari suatu sistem berbasis mikrokontroller. Setiap
lcd sudah dilengkapi IC driver yang berfungsi sebagai kontrollnya.
Salah satu tipe lcd yang banyak digunakan adalah LCD tipe M1632.
yaitu LCD yang mempunyai 2 baris tampilan dan setiap baris dapat
menampilkan hingga 16 kolom karakter.Setiap baris dan kolom
mempunyai alamat sendiri-sendiri. LCD tipe M1632mempunyai alamat
80h sampai 8fh untuk baris pertama dan untuk baris kedua C0h sampai
Cfh.
Pengiriman data ke LCD ini ada dua macam yaitu data sebagai
instruksi dan data sebagai karakter yang akan ditampilkan dilayar.
Keduanya dibedakan oleh sebuah kaki yang diberi nama RS (Register
Select) dimana jika berlogika 1 (high), maka data yang diterima oleh
LCD adalah data untuk menampilkan karaker sedangkan jika berligika 0
(low), maka data yang diterima oleh LCD adalah data instruksi bagi
LCD tersebut. Instruksi diperlukan yaitu untuk inisialisasi LCD,
meletakkan cursor pada garis, menghapus layer dan sebagainya sesuai
dengan data sheet LCD tersebut
35
BAB III
PERENCANAAN DAN PEMBUATAN PERANGKAT LUNAK
3.1. UMUM
Perancangan sistem ini merupakan tahap awal dari pembuatan
sebuah software. Sebelum merancang perangkat lunak, yang perlu
diketahui adalah susunan dari sistem itu sendiri (blok diagram sistem).
Seperti yang tampak pada gambar 3.1 dapat diketahui bahwa
keseluruhan dari sistem menggunakan sebuah sistem kontrol /
mikrokontroller, penampil LCD, input keypad, switch, push button, dan
joystick serta output pada motor dc serta motor stepper.
Sistem dirancang dengan menentukan terlebih dahulu sistem
kontroller yang dipakai, perencanaan port yang digunakan sebagai
masukan dan keluaran, selanjutnya dilakukan pembuatan program utama
dan subrutin-subrutinnya.
3.2.5 Subrutin-subrutin.
Diantara subrutin-subrutin yang ada yang perlu menjadi perhatian
adalah subrutin inisialisasi, subrutin pengambilan data keypad, subruttin
untuk menampilkan data di LCD, subrutin untuk mengatur driver
masing – masing motor. Dan dari semua sub rutin tadi di integrasikan
dalam suatu sitem yang terpadu.
3.2.5.1 Inisialisasi.
Pada inisialisasi ini, program akan menginisialisasikan register yang
digunakan, termasuk inisialisasi LCD.
40
Huruf atau angka yang akan ditampilkan dikirim ke LCD dalam
bentuk kode ASCII, kode ini diterima dan diolah oleh mikrokontroler
didalam LCD menjadi ‘titik-titik’ LCD yang terbaca sebagai huruf atau
angka. Dengan demikian tugas mikrokontroler pemakai tampilan LCD
hanyalah mengirimkan kode-kode ASCII untuk ditampilkan.
Pada subroutine inisialisasi ini dilakukan inisialisasi terhadap
kontrol-kontrol peripheral-peripheral penunjang yaitu LCD. Karena
keypad masuk pada P1 yang telah disatukan menurut hardware maka
tidak diperlukan lagi inisialisasi terhadap keypad
3.3 ALGORITMA
Berikut adalah algoritma dan flowcart dari sistem secara
keseluruhan
3.4 Flowchart
Didalam penyusunan program, untuk memudahkan didalam
pembuatannya, maka perlu untuk membuat Flowchart sebagai acuan
42
penyusunan program yang ada. Berikut flowchart untuk perangkat lunak
sistem ini. Pada gambar flowchart dibawah adalah flowchart dari
gerakan robot saat melakukan pemanjatan (Up), saat robot kembali
turun (Down) dan flowchart dari gerakan robot secara keseluruhan.
START
KK BAW AH CLO SE
NO
KK BAW AH CLO SE
YES
C E K IN T E R U P T
START
KK ATAS CLO SE
NO
KK ATAS CLO SE ?
YES
C E K IN T E R U P T
P IL IH M O D E
NO
A U TO = T R U E?
YES
IN P U T S E T P O IN T
A = S E T P O IN T ( S IM P A N S E T P O IN T
DI REG A )
BACA
YES IN S T R U K S I
S E T P O IN T = 0 ? J O Y S T IC K
NO
YES
S E T P O IN T = A ?
ROBOT
UP
NO
ROBOT
D E C S E T P O IN T DOW N
( S E T P IO N T - 1)
IN C S E T P O IN T
C E K IN T
YES
JA LA N K A N
Gambar IN T3.4 Flowchart
= TR UE ? robotPpemanjat
E R IN T A H pemanjat tiang
IN T E R U P T
Algoritma yang digunakan pada robot pemanjat tiang ini secara
NO
keseluruhan adalah seperti ditunjukkan pada flowchart diatas. Kita
END
harus menentukan dulu mode operasi yang akan kita lakukan pada saat
awal menjalankan robot. Dimana mode opersi yang dapat dilakukan
adalah mode otomatis dan mode manual. Setelah kita memberikan
pilihanmode yang dapat kita inputkan melalui keypad maka robot sudah
dapat kita jalankan dengan control joystick jika mode yang kita pilih
44
adalah manual. Atau kita akan memasukkan setting ketinggian yang
akan dicapai dan robot akan bekerja secara otomatis jika mode yang kita
pilih adalh mode otomatis.
BAB IV
PENGUJIAN DAN ANALISA
org 00h
sjmp start
start:
Mov P1,#00001111B ; LED P1.4 s/d P1.7 ;nyala
call Delay ; panggil sub routine Delay
Mov P1,#11110000B ; LED P1.0 s/d P1.3 ;nyala
call Delay ; panggil sub routine Delay
Jmp start ; Lompat ke alamat dg label start
;-------------------
; sub routine delay
;-------------------
Delay: Mov R0,#6 ; Isi Register R0 dengan 6
Delay1: Mov R1,#00h ; Isi Register R1 dengan FF (hex)
Delay2: Mov R3,#00h
djnz R3, $ ; kurangi sampai R3 = 0
djnz R1, delay2 ;Kurangi R1 dengan 1, bila tidak ;sama
dengan 0 maka ke Dealay2
djnz R0, delay1; Kurangi R0 dengan 1, bila tidak ;sama
dengan 0 maka ke Delay1
ret Gambar
; Kembali4.2 Listingsetelah
ke alamat pengujian minimum
perintah system
'call Delay'
Berdasarkan program diatas, dapat dilihat bahwa program tersebut
End
bertujuan untuk menyalakan LED pada port 1 sebagai flip-flop yang
terbagi menjadi dua yaitu nibble tinggi dan nibble rendah. Dan setelah
dilakukan pengujian pada sistem mikrokontroller 89S51, maka pada
LED akan menyala bergantian seperti flip-flop, mula-mula LED pada
p1.0 s/d p1.3 akan menyala beberapa saat kemudian mati diikuti dengan
LED yang menyala pada p1.4 s/d p1.7 untuk beberapa saat dan kembali
lagi (loop) seperti langkah awal unuk seterusnya, penggantian nyala
LED tersebut terus terjadi sebelum power di off kan atau di reset dan
dimasukan program yang lain. Hasil dari pengujian program diatas pada
minimum sistem ditunjukkan pada gambar dibawah ini:
4. 2 Pengujian Keypad
Dalam pengujian keypad ini, dicoba menjalankan program
dengan melalui software pada macro assembler mcs – 51, dan ternyata
program tersebut tidak terdapat error. Adapun programnya seperti pada
gambar 4.2
4. 3 Pengujian LCD
LCD yang digunakan sebagai monitor harus mampu mengirimkan
pesan – pesan tertentu kepada user. LCD yang dipakai bertipe M1632
yang mempu menampilkan 16 kolom dan 2 baris karakter. Untuk
melakukan pengujian LCD program harus didownload ke
mikrokontroller. Setelah program pengujian LCD di Download ke
mikrokontroller 89s51, mula - mula program akan mengeksekusi
program sub routine inisialisasi LCD agar dapat menampilkan data.
Setelah proses pembacaan inisialisasi LCD, barulah LCD tersebut
menampilkan data pesan sesuai dengan yang diinputkan, selain itu
eksekusi program sub routine yang lain yang terpanggil dalam program
tetap dilakukan untuk penyempurnaan tampilan.
ORG 0H
Start: mov R1,#030h
;==INISIALISASI LCD-----------
call write_inst
call write_inst
call write_inst
mov r1,#38h
acall write_inst
mov R1,#0Ch
call write_inst
mov R1,#06h
acall write_inst
mov R1,#01h
acall write_inst
mov dptr,#pesan1
acall write_data
sjmp $
FINAL PROJECT
ELKA TAHUN ‘06
Gambar 4.7 Hasil yang ditampilkan pada LCD
Jika arah putaran motor sudah dapat bekerja sesuai dengan tabel
diatas maka suda dapat dikatakan bahwa driver bekerja dengan baik dan
sudah siap untuk mendukung sistem dari robot pemanjat tiang ini.
1 13.5 cm
2 27 cm
3 40.5 cm
4 54 cm
5 67.5 cm
Tabel 4.4 Hasil pengujian robot pada dua diameter tiang berbeda
Memanjat Turun
54
Diameter Diameter Diameter Diameter
Step 10 cm 15 cm 10 cm 15 cm
1 O O O O
2 O O O O
3 O O O O
4 O O O O
5 O O X O
6 X O X O
7 X O X X
8 X O X X
9 X X X X
10 X X X X
Ket : X = Gagal
O = Berhasil
Sesuai hasil pengujian diatas robot dapat bekerja dengan baik pada
tiang dengan diameter 15 cm, karena pada diameter ini jangkauan
lengan robot dapat tepat mencengkeram ditengah-tengah sehingga
mengurangi kemungkinan robot terjatuh. Pada saat turun robot lebih
cepat dibanding pada saat naik hal ini dikarenakan adanya gaya grafitasi
yang akan membantu mengurangi beban putar motor penggerak bodi.
Pemasangan roll pada boda yang kurang tepan mempengaruhi gerak
robot sehingga akan menimbulkan selip pada poros motor.
BAB V
PENUTUP
55
Pada bab ini akan dibahas mengenai hasil dan kelemahan dari robot
yang telah dibuat. Setelah melakuakan perencanaan, pembuatan dan
simulasi hingga pengujian sistem secara keseluruhan maka dapat
diambil kesimpulan dan saran-saran sebagai berikut.
5.1 KESIMPULAN
Setelah melakukan perencanaan dan pembuatan sistem kemudian
dilakukan pengujian dan analisanya, maka dapat diambil beberapa
kesimpulan sebagai berikut :
DAFTAR PUSTAKA
57
1. D. Sharon dan J.harstein,“Robot dan otomasi industri”, PT.
Elex Media Komputindo, Jakarta, 2003
2. Gde Brata Indrawan,” robot pembersih kaca gedung dengan
perangkat kamera”, PA PENS-ITS, Agustus 2004
3. http:// www.ibis.com
4. http:// www.utm .ac.my/sistemrobotik
5. Rezia Molfino, “Roboclimber the 3 ton spider”, Research
paper, Automatic control Department at the Instituto de
Automatica Industrial (IAI-CSIC) of Madrid, Spain,2004
6. Suhata,ST. “pengontrollan peralatan elektronik melalui
Komputer”, Elex Media Komputindo, Jakarta, 2005
7. Takashi Yagi, Industrial Robot: An International Journal.
Volume 29 Number 6 2002 pp. 495-499
Gambar Robot pada saat start untuk mulai melakukan pemanjatan (kaki
atas membuka)
;ALHAMDULILLAH..................
;DENGAN RAHMAT 4JJI AKHIRNYA TERSELESAIKAN JUGA
;PROGRAM DARI ROBOT PEMANJAT TIANG INI.
;TERDIRI ATAS : - PROGRAM UTAMA
; - SCANING KEYPAD & DISPLAY LCD
; - MENGONTROL 3 BUAH DRIVER MOTOR
PENGGERAK ROBOT
; - PERINTAH JOYSTICK
; - SETTING KETINGGIAN
;ROBOT PEMANJAT TIANG INI DAPAT DIOPERASIKAN
DALAM 2 MODE:
;#1. MODE AUTOMATIS = harus melakukan setting point mel. keypad
;#2. MODE MANUAL = Robot dicontroll mel. joystick
; "pada saat robot berjalan dalam
;mode OTOMATIS dapat dinterupt melljoystic u/ diubah ke mode
MANUAL
; dan dapat dikembalikan ke mode OTOMARIS lagi"
; CREATED BY ION
; EEPIS - ITS , 24-07-2006
;*********************************************
ORG 00H
SJMP mulai
;============< PENGALAMATAN >=================
NAIK BIT P3.7 ; DIHUBUNGKAN JOYSTICK
TURUN BIT P3.6
MNLKAN BIT P3.5
OTOKAN BIT P3.4
SWC_BA BIT P3.0 ; SWITCH PADA BODY
ATAS
SWC_BB BIT P3.1 ; SWITCH PADA
BODY BAWAH
PUSH_KA BIT P2.0 ; PUSH BUTTON PADA
KAKI ATAS
PUSH_KB BIT P3.3 ; PUSH BUTTON PADA
KAKI BAWAH
61
MTRB BIT P2.7 ; MOTOR BAWAH AGR AKTIF
HARUS SELALU CLEAR
MTRBP BIT P2.6 ;SETB = TUTUP, CLR=
OPEN
MTRT BIT P2.5 ; MOTOR TENGAH AGR AKTIF
HARUS SELALU CLEAR
MTRTPBIT P2.4 ; SET = BODY1, CLR = BODY 2
MTRA BIT P2.3 ; MOTOR ATAS AGR
AKTIF HARUS SELALU CLEAR
MTRAP BIT P2.2 ;SETB = TUTUP, CLR=
OPEN
;-----------------------------------------
buffkey equ 30h ; ram internal u/ menyimpan hasil scankey
lcd_rs bit p3.2 ;4
lcd_en bit p2.1
datatinggi equ 31h ; penyimpan hasil setting point
puluhan equ 23h ; Digit Pertama sbg puluhan
satuan equ 27h ;Digit kedua sbg satuan
baris1 bit p1.1
baris2 bit p1.6
baris3 bit p1.5
baris4 bit p1.3
kolom1 bit p1.2
kolom2 bit p1.0
kolom3 bit p1.4
keyport equ p1
keydata equ 77h
;===========< START ROBOT >=================
STARTROB:
CLR MTRBP ; SET POWER RELAY
CLR MTRAP
CALL DELMOT ; DISESUAIKAN
CLR MTRA
CLR MTRB
CALL DELMOT
CALL DELMOT
CALL DELMOT
CALL DELMOT
MOV P0,#0FFH ;STOP OPEN
CALL DELMOT
62
;"SEMUA KAKI MENUTUP, ROBOT SIAP"
ROBOTSIAP: CLR MTRBP
CLR MTRAP
SETB MTRA
SETB MTRB
CALL DELMOT
JNB PUSH_KB,OFF1 ;p3.3
SJMP ROBOTSIAP
OFF1: SETB MTRAP
SETB MTRBP
CALL DELMOT
;===========================================
;"SUB PROGRAM PROSES PEMILIHAN MODE OPERASI"
;===========================================
;=====< INIT. LCD 4 BIT MODE >===============
mulai:
mov r6,#25 ;on delay
on_del: lcall ldelay
djnz r6,on_del
;===========================================
call delay
mov a,#33h
call tulis_inst
mov a,#32h
call tulis_inst
mov a,#2fh
call tulis_inst
mov a,#0ch
call tulis_inst
mov a,#06h
call tulis_inst
mov a,#06h
call tulis_inst
;======< MAIN PROGRAM LCD & KEYPAD >======
;-----------------------------------------
mov r0,#32h ;alamat 32 - 46 diisi 00, u/data step
loop: mov @r0,#00h
inc r0
cjne r0,#4ah,loop
awal:
63
mov dptr,#judul1 ; pertama adalah tampilan judul
lcall tampilan_judul ;
call ldelay
call ldelay
call ldelay
mov dptr,#judul2
lcall tampilan_judul
call ldelay
call ldelay
call ldelay
mov dptr,#judul3
lcall tampilan_judul
tunggu:
lcall scankey
mov a,buffkey
cjne a,#0fh,tunggu ;tekan enter (#) untuk melakukan
pemilihan mode operasi
;=========< PILIH MODE OPERASI >===============
keylagi:
menu1: lcall menu_1 ;menampilkan pilihanmode operasi
lcall scankey ;mendeteksi penekanan keypad (buffkey)
mov a,buffkey
;-----------------------------------------------
proses:
;==========< MODE OTOMATIS >====================
PROSESOTO:
cjne a,#1,JALANMNL
lcall menu_0 ;tampil AUTOMATIS
lcall scankey ;mendeteksi penekanan keypad
(buffkey)
mov a,buffkey
cjne a,#0fh,cancl ;stlh penekanan enter
lcall TINGGI ;menentukan tampilan yg sesuai berikutnya
JALANOTO:
call menu_3 ;tampilan jalankan robot
lcall scankey ;mendeteksi penekanan keypad (buffkey)
mov a,buffkey
CJNE A,#0FH,CANCL
CALL OTOMATIS
;==== OTOMATIS ======
64
; ROBOT UP----------------
OTOMATIS:
MOV R5,DATATINGGI
OTO:CALL NAIK1STEP
CALL JOYS
DJNZ R5,OTO
CALL JOYS
; SJMP OTO
; ROBOT DOWN---------------
OTOMAT2:
MOV R5,DATATINGGI
MANU: CALL TURUN1STEP
CALL JOYS
DJNZ R5,MANU
SJMP PROSES
;----------------------------------------------
cancl:
cjne a,#0ch,proses ;mendeteksi penekanan tombol cancel(=0ch)
sjmp keylagi
stop:
ljmp robotsiap
;============< MODE MANUAL
>==========================
JALANMNL:
cjne a,#2,proses
call menu_2 ;tampil manual mode
lcall scankey ;mendeteksi penekanan keypad
(buffkey)
mov a,buffkey
cjne a,#0fh,cancl ;mendeteksi penekanan tombol enter(=0fh)
MANUAL:
CALL JOYS
SJMP MANUAL
;-----------------------------------------------------
;=== < PROSES JALAN ROBOT > ===========
;----------------------------------
JOYS:
JNB MNLKAN,MANUALMD
SJMP KEMBL_OTO
MANUALMD:
65
JB NAIK,MUDUN
CALL NAIK1STEP
JMP JOYS
MUDUN:
JB TURUN,KEMBL_OTO
CALL TURUN1STEP
JMP JOYS
KEMBL_OTO:
JB OTOKAN,STPMNL
RET
STPMNL:
SJMP JOYS
inputdata:
mov @r0,buffkey ; data scan sbagai address r0
mov a,r7
cjne r7,#8bh,digit2 ;digit1
mov a,buffkey ;puluhan
mov b,#10d
mul ab
mov puluhan,a
digit2:
cjne r7,#8ch,digit3
mov a,buffkey
mov satuan,a
72
digit3:
cjne r7,#8dh,bisa_lanjut ; digit2
mov r7,#8bh ; 8c = posisi input step digit1
bisa_lanjut:
call tampiltgg1 ;tampil setting digit 1.
inc r7
inc r0
cjne r7,#8dh,loncat2
mov r7,#8bh ;all 8b= 8c
loncat2:
call ldelay
call ldelay
call ldelay
call ldelay
call ldelay
call ldelay
jmp teskey0
;==============================================
jalankan_alat:
lcall menu_3
detekkey:
lcall scankey
mov a,buffkey
cjne a,#0fh,tdk_jalankan
ljmp jalankanalat
tdk_jalankan:
cjne a,#0ch,detekkey
ljmp selesai_jalankanalat
;
jalankanalat:
mov dptr,#MENUPROSS
mov r3,#16
mov a,#80h
call tulis_inst
selesai_jalankanalat:
ret
;=======< TAMPIL SETTING >============
tampilan_setting:
mov dptr,#setstep
tampilsdt_2:
73
mov r3,#16
mov a,#80h ; line 1 lcd
call tulis_inst
tulis12:
clr a
movc a,@a+dptr
inc dptr
call tulis_data
call ldelay
djnz r3,tulis12
;
mov r3,#16
mov a,#0c0h
call tulis_inst
tulis13:
clr a
movc a,@a+dptr
inc dptr
call tulis_data
call ldelay
djnz r3,tulis13
ret
tampiltgg1:
mov a,r7 ;r7=8eh atw 8ch
call tulis_inst
clr a
mov a,buffkey
call keytoascii
call tulis_data
call ldelay
ret
;---------------------------------------
;=========< UBAH KE ASCII >=============
;---------------------------------------
keytoascii:
anl a,#00001111b
mov dptr,#keyascii
movc a,@a+dptr
mov datatinggi,a
mov @r0,datatinggi
74
ret
konversi_keydata:
anl a,#00001111b
mov dptr,#keyascii
movc a,@a+dptr
mov datatinggi,a
ret
;--------------------------------
;=========< TAMPIL DI LCD >======
;--------------------------------
keyascii:
db '0123456789abcdef'
PILIH:
DB 'PILIH MODE: '
db '1 AUTO; 2 MANUAL'
db ' *(can) #(enter)'
setstep:
db 'SETT STEP= STP'
db ' *(can) #(enter)'
modeno1:
db ' AUTO MODE '
db ' *(can) #(enter)'
modeno2:
db ' MANUAL MODE '
db ' *(can) #(enter)'
modeno3:
db ' JALANKAN ROBOT '
db ' *(can) #(enter)'
MENUPROSS:
db '****PROSES******'
db '================'
judul1:
db ' BISMILLAH... '
db ' TA ELKA 2006 '
judul2:
DB 'ROBOT PEMANJAT '
DB ' TIANG '
judul3:
DB ' BY: '
75
DB 'PUJI W & INDRA A'
END
76
Data Pribadi
Alamat : Ds Pucangombo RT 08 RW XII,
Tegalombo, Pacitan 63582.
HP : +62 856 481 888 12
Email : ion.only@yahoo.com
Motto : ION “Imtech Optimize Number one”
Insya4JJI
Riwayat pendidikan
2003-2006 : Politeknik Elektronika Negeri Surabaya-ITS(PENS-ITS),
Jurusan teknik Elektronika.
2002-2003 : Pendidikan Informatika dan Komputer Terapan – ITS
(PIKTI-ITS).
1999-2002 : SMUN 2 Ponorogo
1996-1999 : SLTPN 1 Tegalombo, Pacitan.
1990-1996 : SD Pucangombo IV, Pacitan.