V22222222222222222222222222222222222222222222222
http://microrobotics.blogspot.com
Gambar hanya ilustrasi
MUDAH KOK DIBUAT SENDIRI
Moh.Ibnu Malik,ST Naufal Micro & Robotics Email : mailto:
[email protected]
Disclaimer : Dilarang memperbanyak atau mengedarkan Special Report ini tanpa seijin penulis. Customer Name : All Right Reserved © 2010
ABSTRAKSI
Bidang robot kini sedang berkembang di Indonesia. Hal ini tidak lepas dengan adanya kegiatan / perlombaan robot yang diadakan ditanah air seperti KRCI ( Kontes Robot Cerdas Indonesia ) maupun GALELOBOT ( Lomba Line Follower Robot ITB ). Kegiatan-kegiatan diatas mendorong berkembangnya dunia per-robotan ditanah air terutama dikalangan mahasiswa maupun umum. Hal lain yang turut membantu mengembangkan dunia robot adalah terbitnya beberapa buku tentang robot itu sendiri walaupun jumlahnya masih sangat kurang. Dalam rangka ikut mengembangkan robot, terutama jenis mobile robot, maka penulis memberanikan diri untuk membuat special report ini yang berkaitan dengan mobile robot. Penulis akan membuat sebuah mobile robot yang dikontrol oleh PC ( Personal Computer ). Bentuk kontrolnya adalah berjalan maju, berjalan mundur, belok kiri dan belok kanan. Untuk menjalankan mobil robot itu, cukup dengan klik pada mouse di layar komputer. Mobile robotnya sendiri akan dikontrol menggunakan mikrokontroler dari jenis PIC16F84/A. Sedangkan hubungan antara mobile robot
dan komputer akan
menggunakan sistem wireless yang sederhana yang diambil dari mobil remote anak-anak. Adapun software di Komputer ( PC ) sebagai pengendali mobil robot, akan menggunakan bahasa pemrograman Delphi. ( Kata kunci : mikrokontroller, wireless )
BAB I PENDAHULUAN
1.1
Latar Belakang Masalah Dalam rangka ikut memasyarakatkan dunia per-robotan ditanah air, maka penulis
memberanikan diri untuk membuat special repor dengan tema mobil robot. Penulis berharap bahwa nantinya tulisan ini akan ikut memberikan kontribusi bagi perkembangan dunia robot di tanah air secara umum dan dapat dijadikan referensi untuk pembuatan / perbaikan mobil robot nantinya. Beberapa jenis mobil robot telah dibuat oleh banyak mahasiswa seperti Line Follower Robot maupun Battle Mobil Robot. Untuk penulisan special report ini, penulis mencoba untuk membuat jenis mobil robot yang lain. Mobil Robot yang akan dirancang oleh penulis adalah jenis mobil robot yang dapat dikontrol ( dikendalikan ) menggunakan Komputer ( PC ). Kontrol meliputi gerakan maju, mundur, belok kiri dan belok kanan. Untuk berhubungan antara Komputer ( PC ) dengan Mobil Robot ini, akan digunakan sistim wireless dari remote control mainan anak-anak. Oleh karena itu jarak jangkau mobil robot ini juga sama dengan jarak jangkau mainan anak-anak.
1.2
Tujuan Penulisan Special Report Tujuan penulisan special report ini adalah untuk membuat Mobil Robot yang
pergerakannya dapat dikendalikan menggunakan komputer ( PC ) . Hubungan antara
mobil robot dengan komputer akan menggunakan sistem wireless ( tanpa kabel ) sederhana. Penggunaan sistem wireless sederhana bertujuan agar pergerakan mobile robot lebih bebas, bila dibandingkan dengan sistem tethered ( sistem dimana hubungan mobile robot dengan komputer menggunakan kabel panjang ).
1.3
Pembatasan Masalah Karena keterbatasan kemampuan penulis, maka dalam penulisan special report
ini penulis melakukan pembatasan-pembatasan sebagai berikut. 1. Menggunakan sistem mikrokontroler sebagai kendali mobil robot. Jenis mikrokontroler yang akan dipilih adalah mikrokontroler PIC16F84/A yang berkurann cukup kecil. 2. Software pada Komputer ( PC ) akan menggunakan program Delphi dengan antarmuka yang sederhana. 3. Sistem wireless akan menggunakan ( diambilkan ) dari sistem mainan mobil wireless ( mainan mobil remote control ). 4. Kontrol mobile robot yang akan diaplikasikan adalah bergerak ke depan, mundur kebelakang, belok kiri dan belok kanan.
1.3
Sistematika Pembahasan Pembahasan buku special report ini terdiri dari lima bab dan tersusun sebagai berikut.
BAB I : Berisi penjelasan yang menerangkan mengenai latar belakang masalah, tujuan special report, pembatasan masalah dan sistematika pembahasan. BAB II : Bab ini membahas tentang teori-teori pendukung yang berhubungan dengan komponen yang akan digunakan dalam perancangan. BAB III : Bab ini merupakan pembahasan tentang proses perancangan dan realisasi sistim mobil robot terkontrol komputer.. BAB IV : Berisi tentang penjelasan hasil pengujian dari alat yang dibuat. BAB V : Bab Penutup yang berisi kesimpulan dari keseluruhan pembahasan dan saran-saran.
BAB II TEORI DASAR
Pada special report ini akan menggunakan mikrokontroler PIC16F84/A sebagai kontrol utama. Pemilihan jenis mikrokontroler yang lain sebenarnya tidak menjadi masalah, namun karena mikrokontroler ini memiliki dimensi yang cukup kecil dan kemudahan dalam proses pengisian ( download ) program sehingga terpilih untuk menjadi kontrol utama pada proyek ini. Untuk sistem penggerak mobil robot akan digunakan motor dengan jenis motor servo. Pemilihan jenis ini tentu dengan pertimbangan tertentu yaitu cukup mudah di hubungkan dengan sistem mikrokontroler. Sudah terdapat sistem gear pada motor servo sehingga tidak diperlukan lagi pembuatan gear eksternal.
2.1
Mikrokontroler PIC16F84/A Mikrokontroler PIC16F84/A merupakan mikrokontroler buatan Microchip Inc yang
berbasis di Amerika Serikat. Saat ini jenis mikrokotroler ini sangat digemari para hobbies elektronik di negeri Paman Sam dan di Jepang. Mikrokontroler ini walapun dengan ukuran yang cukup kecil, namun dapat dikatakan cukup lengkap. Hal ini dapat dilihat pada gambar berikut. Pada mikrokontroler ini didalam chip-nya sudah terkandung unsur-unsur pembentuk suatu sistem komputer yaitu CPU ( Central Processing Unit ), ROM ( Read Only Memory ), RAM ( Random Access Memory ) dan I/O ( Input/Output ).
CPU ROM/Flash RAM I/O
Gambar 1 Bagian penyusun sistem mikrokontroler
Adapun kegunaan dari masing-masing penyusun sistem komputer tersebut adalah sebagai berikut.
a. CPU ( Central Processing Unit ) CPU merupakan pengontrol utama pada mikrokontroler. CPU ini mampu menangani data dengan lebar 8-bit. CPU ini akan membaca program yang tersimpan dalam ROM/Flash dan akan melaksanakannya. b. ROM/Flash Memory ROM merupakan singkatan dari Read Only Memory yaitu berarti bahwa memori tersebut hanya dibaca isinya. ROM/Flash dipergunakan untuk menyimpan program/instruksi untuk mikrokontroler. Setelah diisikan ke dalam ROM/Flash, maka isinya tidak akan terhapus walaupun catu daya dihilangkan. c. RAM RAM merupakan Random Access Memory yaitu suatu memori yang dapat dibaca secara acak ( random ). Selain itu sifat RAM adalah bahwa isinya akan terhapus
bila catu daya kepadanya dihilangkan. RAM dipakai untuk menyimpan data yang sifatnya sementara ( temporary ). d. I/O I/O merupakan singkatan dari Input/Ouput. Dengan adanya I/O tersebut, maka mikrokontroler dapat berhubungan dengan alat luar. Port I/O tersebut dapat dihubungkan dengan LED, Saklar, LCD, motor servo dll.
2.2
Kelengkapan Mikrokontroler PIC16F84/A Mikrokontroler PIC16F84/A ini memang tidaklah yang paling lengkap dari
jajaran produk Microchip Inc, namun produk ini adalah produk yang paling digemari untuk mempelajari mikrokontroler PICmicro tersebut. Sebenarnya produk Mikrokontroler dari keluarga PICmicro ini sangatlah banyak, sehingga malah menjadikan bingung untuk memilihnya. Namun demikian kita dapat mencoba salah satu dari keluarga mikrokontroler PIC tersebut. Pada mikrokontroler PIC16F84/A ini terdapat beragam kelengkapan sebagai berikut.
a. Hanya memerlukan 35 instruksi b. Semua instruksi berukuran 14-bit c. Data berukuran 8-bit d. Memori program berukuran 1024 x 14 pada Flash memori e. 68 x 8 Register kegunaan umum ( SRAM= Statik RAM ) f. 15 Register Kegunaan khusus
g. Data memori berukutan 64 x 8 pada EEPROM h. Delapan tingkat stack perangkat keras i.
Empat sumber sela ( interupsi ).
j.
Memiliki 13 buah I/O yang terbagi menjadi Port A dan Port B
k. Dapat langsung men-drive LED l.
Terdapat timer 8-bit dengan pembagi 8-bit
m. Dapat memakai beberapa jenis osilator ( RC, Resonator, Kristal ) n. Berukuran fisik hanya 18 pena
2.3 Susunan Pin ( Pena ) Mikrokontroler PIC16F84/A Dimensi fisik mikrokontroler PIC16F84/A adalah cukup kecil. Ia hanya menggunakan total 18 pin ( pena ) sehingga mirip dengan IC digital pada umumnya. Orang awam mungkin tidak menyangka bahwa ia merupakan sebuah komputer didalam chip. Dengan ukuran fisik yang kecil tersebut, menjadikan mikrokontroler ini dapat ditanamkan sebagai kontroler untuk peralatan apa saja walaupun peralatan tersebut menggunakan sumber daya dari baterai. Adapun pin-pin mikrokontroler ini yang total berjumlah 18 buah susunannya dapat dilihat pada gambar berikut ini.
Gambar 2 Susunan pena mikrokontroler PIC16F84/A
Berikut ini adalah penjelasan dari pena-pena pada mikrokontroler PIC16F84/A.
Tabel 1 Susunan Pena Mikrokontroler PIC16F84/A Nama Pena
No Pena
Keterangan
Vdd
14
Sumber daya Positif (+2 ~ +6Volt )
Vss
5
Ground
OSC1/CLKIN
16
Masukan untuk detak
OSC2/CLKOUT
15
Output detak
MCLR
4
Master Clear (Reset ) ( aktif rendah )
RA4/TOCKI
3
Port A bit 4 / Masukan untuk Timer
RA0
17
Port A bit 0
RA1
18
Port A bit 1
RA2
1
Port A bit 2
RA3
2
Port A bit 3
RB0/INT
6
Port B bit 0 / Masukan sela
RB1
7
Port B bit 1
RB2
8
Port B bit 2
RB3
9
Port B bit 3
RB4
10
Port B bit 4
RB5
11
Port B bit 5
RB6
12
Port B bit 6
RB7
13
Port B bit 7
Mikrokontroler PIC16F84/A merupakan mikrokontroler yang menggunakan arsitektur Harvard. Hal ini mengakibatkan dibuatnya pemisahan antara bus data dengan bus alamat. Keuntungan arsitektur ini adalah dapat digunakan suatu kata panjang ( long word ) tunggal untuk perintah yang membutuhkan hanya satu lokasi pada program memori. berikut ini.
Arsitektur Harvard secara umum dapat digambarkan seperti pada gambar
Program Memory
CPU
Data Memory
Gambar 3 Arsitektur Harvard padaPIC16F84
2.4 Fitur Mikrokontroler PIC16F84/A Mikrokontroler PIC16F84/A ini dapat bekerja dengan beragam jenis osilator. Secara umum sebuah
mikrokontroler “kuno” selalu menggunakan osilator yang
dibangkitkan oleh sebuah kristal. Namun pada PIC16F84/A ini kita dapat menggunakan beragam jenis osilator seperti kristal, resonator sampai ke R-C osilator untuk pemakaian sederhana.
2.4.1 Osilator Osilator merupakan komponen yang sangat penting bagi sebuah mikrokontroler. Jika suatu mikrokontroler tidak diberikan osilator ( detak / clock ) maka dapat dipastikan bahwa mikrokontroler tersebut tidak akan bekerja.
Hal ini dikarenakan osilator
memberikan detak untuk proses internal pada mikrokontroler itu sendiri. Secara umum agar rangkaian osilator dapat bekerja dengan baik, maka kita harus memberikan tambahan komponen yang berupa kristal ( XTAL ) dan 2 buah kapasitor.
Nah untungnya pada mikrokontroler ini dapat dipakai 4 jenis osilator. Hal ini akan memudahkan dalam pemberian osilator tersebut. Adapun jenis Osilator yang dapat dipakai pada mikrokontroler PIC16F84 adalah : a. Osilator RC Osilator ini dibuat dengan menggunakan gabungan suatu Resistor-Capasitor. Osilator ini merupakan osilator paling murah yang dapat dipakai. Jika rangkaian mikrokontroler tidak memerlukan pewaktuan yang presisi, maka dapat menggunakan jenis osilator ini.
Gambar 4 Osilator RC
b. Osilator Kristal Apabila mikrokontroler dipakai dengan asumsi ada perhitungan waktu yang presisi, misalnya ada penggunaan fungsi timer sehingga diharapkan dapat
menghasilkan perhitungan waktu yang presisi, maka untuk itu dapat dipergunakan jenis osilator yang menggunakan kristal / resonator.
Gambar 5 Osilator Kristal ( XTAL ) c. Detak Luar Selain menggunakan kedua jenis osilator diatas ( RC maupun Kristal/Resonator ), maka masih ada lagi cara untuk memberikan detak ( clock ) kepada mikrokontroler PIC16F84, yaitu dengan memberikan detak luar melalui pena OSC1.
Gambar 6 Detak Luar
2.4.2 Arithmetic and Logic Unit ( ALU ) Pada CPU mikrokontroler PIC16F84/A terkandung suatu ALU ( Arithmetic and Logic Unit ) yang mampu menangani data dengan lebar 8-bit.
ALU ini mampu
melaksanakan operasi penjumlahan, pengurangan, pergeseran dan operasi logika. Kecuali disebutkan lain, semua operasi memakai sistem komplemen dua. Pada pelaksanaan kerja suatu instruksi yang menggunakan 2 operand, maka biasanya salah satu operand adalah Register W ( Working Register ). Sedangkan operand yang lain adalah register File atau suatu konstanta.
2.4.3 Reset Reset adalah suatu kondisi dimana mikrokontroler berada pada kondisi awal kerja ( default ). Pada kondisi ini, semua register akan berisi dengan nilai defaultnya. Sebagai contoh Pencacah Program ( PC =
Program Counter ) akan berisi 000H yang
menunjukkan lokasi awal program yang harus dijalankan. Yang perlu diketahui adalah bahwa pada mikrokontroler PIC16F84 dikenal beberapa jenis reset yaitu a.
Power On Reset ( POR ) Adalah merupakan reset yang terjadi jika mikrokontroler pertama kali kita hidupkan ( Power On ). Pada saat ini maka PC = 000H. Untuk melakukannya
cukup dengan menghubungkan pena MCLR ( Master Clear ) ke Vdd melalui resistor 10K. b. MCLR Reset selama operasi normal Yaitu suatu kejadian reset dimana CPU sedang bekerja secara normal, tibatiba pena MCLR dibuat rendah, maka akan terjadi reset ini. c.
MCLR Reset selama sleep Pada saat masuk kedalam mode sleep, maka daya yang digunakan akan berkurang, hal ini sangat berarti pada alat yang didayai baterai. Pada saat sleep ini, ia dapat diaktifkan lagi dengan memberikan sinyal rendah pada pena MCLR.
d. Reset Time Out Adalah perhitungan yang telah selesai dari watchdog timer selama operasi normal. e.
Reset Time Out dari Watchdog Timer selama prosesor dalam mode sleep
2.4.4 Memori Pada Mikrokontroler PIC16F84/A Program untuk mikrokontroler ini disimpan dalam suatu Flash memory yang berukuran 1024 x 14. Flash memori ini dapat dihapus tulis beberapa ribu kali tanpa mengalami kerusakan, sehingga cocok untuk dipakai dalam proses pengembangan alat. Pencacah program ( PC = Program Counter ) pada mikrokontroler ini memiliki lebar 13-bit dan mampu mengalamati hingga 8K x 14 ruang program memori. Namun
hanya permulaan 1K ( 1024 ) x 14 saya yang diwujudkan yaitu dari alamat 0000H sampai 03FFH. Vektor reset memiliki alamat 0000H yang berarti bahwa pada saat terjadi reset, maka PC tersebut akan berisi alamat 0000H. Sementara vektor sela adalah 0004H yang berarti bahwa bila terjadi sela ( sela diaktifkan ), maka PC akan menuju alamat 0004H. Peta program memori dapat dilihat pada gambar berikut.
Gambar 7 Peta program memori dan stack
2.4.5 Organisasi Register File Register adalah suatu lokasi memori yang bertanggung-jawab terhadap suatu alat dalam mikrokontroler. Untuk mengatur alat pada mikrokontroler tersebut dilakukan dengan mengatur register yang berpadanan dengan alat tersebut. Sebagai contoh untuk mengatur bit-bit mana yang sebagai masukan atau keluaran pada Port A dilakukan dnegan mengatur register TRISA. Untuk mengatur bit-bit mana segabagi masukan atau keluaran pada port B dilakukan dengan mengatur isi register TRISB. Register file diorganisasikan sebagai 128 x 8. Register ini dapat diakses baik secara langsung maupun tidak langsung melalui register SFR ( File Select Register ). Pada mikrokontroler ini register dimuatkan pada 2 halaman ( 2 bank ) yaitu bank 0 dan bank 1. Pemilihan bank tersebut dilakukan dengan mengatur bit RP0 ( bit ke-5 pada register STATUS ). Bila RP0 = 0 maka terpilih bank 0, bila RP0 = 1 maka terpilih bank 1. Berikut adalah gambar Peta register file.
Gambar 8 Peta register File
Dua belas lokasi pertama adalah digunakan untuk memetakan register fungsi khusus. Sedangkan lokasi selanjutnya ( 0CH sampai 4FH ) merupakan register kegunaan umum yang diwujudkan sebagai statik RAM.
2.4.6 Port Mikrokontroler Mikrokontroler PIC16F84/A memiliki 2 buah port yang diberi nama Port A dan Port B. Port A berukuran 5 bit ( RA0 ~ RA4 ) sementara Port B berukuran 8 bit ( RB0 ~ RB7 ). Ada beberapa port yang memiliki fungsi khusus yang dimultiplek dengan fungsi umumnya. Yaitu RA4 juga merupakan masukan detak luar untuk menuju ke Timer/Counter. Kemudian RB0 juga memiliki fungsi khusus sebagai masukan Interupt (
sela ). Selain itu pena RB6 dan RB7 juga merupakan masukan untuk proses download program pada saat mikrokontroler diprogram.
2.5 Motor Servo Jenis Continous Pada special report ini yang akan membuat mobile robot yang dikontrol komputer, akan menggunakan motor servo sebagai penggerak utama. Pemilihan ini didasari atas beragam alasan sebagai berikut. a. Berukuran cukup kompak b. Antarmuka sangat sederhana c. Memiliki daya torsi yang cukup untuk menggerakkan mobil robot
Motor servo sendiri dibuat menggunakan sebuah motor dc yang telah dilengkapi dengan sistem kontrol. Selain itu pada motor servo juga terdapat sistem gear. Kegunaan sistem gear ini adalah agar putaran motor dc menjadi turun dan juga agar torsi putaran menjadi lebih kuat. Apabila kita menggunakan motor dc saja, maka putaran motor dc tersebut tidak akan cukup kuat untuk menggerakkan mobil robot. Hal ini dikarenakan pada motor dc tersebut tidak ada sistim gear. Sehingga akibatnya adalah putaran yang terlalu cepat ( RPM tinggi ) namun torsi ( torque ) yang rendah. Pada motor servo sudah terdapat sistim gear yang akan menurunkan putaran motor dc penyusun motor servo sehingga didapat putaran yang rendah, namun didapat
torsi yang tinggi. Hal ini menyadikannya mampu untuk menggerakkan mobil robot tersebut. Motor servo sendiri ada 2 jenis yaitu motor servo standar yang putarannya terbatas, dan motor servo continous yang putarannya 360 derajat. Untuk mobil robot ini maka harus dipakai servo jenis continous. Pada badan motor servo biasanya ada tulisannya apakah “standard” atau “continous”.
Gambar 9 Contoh sebuah Motor Servo
Motor servo ini dikontrol hanya menggunakan 1 bit saja dengan sistem memberikan pulsa dengan lebar tertentu. Lebar pulsa adalah antara 1 sampai 2 ms.
2.5 Opto Couler PC 817 Opto Coupler adalah sebuah alat cukup kecil yang didalamnya terdapat sebuah LED dan Phototransistor. Antara LED dan phototransistor tersebut tidak disambungkan secara elektris ( terisolasi ). Oleh karena itu dia juga sering disebut Opto Isolator. Kegunaan opto coupler ini adalah sebagai saklar elektronis. Cara nya dengan jalan menyalakan LED yang ada didalam badan Opto Coupler. Hal ini akan membuat keluaran opto coupler menjadi ber-impedansi rendah.
Gambar 10 Opto couopler PC-817
Gambar 11. Opto Coupler PC-817 Sharp
BAB III PERANCANGAN SISTEM DAN REALISASI
Pada tugas akhir ini melibatkan bidang perancangan perangkat keras dan perangkat lunak. Hal ini tidak lain karena dipakainya sistim berbasis mikrokontroler. Perancangan perangkat keras didasarkan pada peralatan yang akan dipergunakan untuk mewujudkan alat tersebut. Adapun alat-alat tersebut meliputi motor servo continous dan pemancar dan penerima radio untuk kendali mobil robot.
3.1
Perancangan Perangkat Keras ( Hardware ) Pada bagian ini akan dibahas mengenai perangkat keras yang dipakai dalam
special report ini. Pembicaraan akan meliputi sistim mikrokontroler yang digunakan, sistim tambahan yang digunakan dan sistim penggerak yang digunakan.
3.1.1 Sistim Mikrokontroler PIC16F84/A Agar dapat berfungsi, mikrokontroler PIC16F84/A perlu diberi tambahan partpart lain. Part atau komponen tersebut meliputi sumber daya listrik dan sistim pembangkit pulsa ( Clock Generator ). Secara umum sistim mikrokontroler memerlukan tegangan listrik sebesar +5 Volt agar dapat bekerja secara normal. Walaupun ada jenis mikrokontroler yang dapat bekerja pada tegangan kerja dibawah dan diatas tegangan yang umum tersebut. Untuk menghasilkan tegangan listrik sebesar +5 Volt saat ini sangat mudah, yaitu hanya dengan menggunakan IC penghasil tegangan 5 Volt seperti LM7805 yang mampu
menghasilkan tegangan output sebesar 5 Volt ter-regulasi dari tegangan masukan sekitar 9 sampai 12 Volt dan arus yang dapat di-handle sampai 1A. Agar dapat berjalan dengan baik, maka rangkaian internal di dalam mikrokontroler harus diserempakkan kerjanya. Untuk itu diperlukan sumber detak ( clock Generator ). Untungnya pada mikrokontroler PIC16F84/A ini kita hanya perlu menambahkan alat-alat pasif seperti kristal atau resonator agar clock generator tersebut dapat berfungsi. Berikut akan dijelaskan lebih detail tentang sistim minimum mikrokontroler PIC16F84/A.
Pada sistim ini, sebuah resonator sebesar 4 MHz akan ditambahkan
sebagai penghasil detak ( clock ). Pemakaian Kristal ( XTAL ) juga akan memberikan fungsi yang sama. Untuk sumber daya akan digunakan sebuah baterai 9 Volt yang nantinya akan dirubah sesuai tegangan kerja mikrokontroler. Tegangan 9 V tersebut akan dirubah sehingga menjadi + 5 Volt yang cocok untuk mikrokontroler PIC16F84/A.
Gambar 12 Sistim mikrokontroler PIC16F84
Gambar diatas
adalah merupakan sistim mikrokontroler PIC16F84/A.
Pada gambar tersebut terdapat sebuah sumber daya sebesar +5 Volt , sebuah Resonator 4 Mhz sebagai sumber detak, sebuah resistor 10K Ohm yang dihubungkan antara pena MCLR dengan +5 Volt dan sebuah saklar sebagai saklar RESET. Resistor 10K Ohm tersebut memang diperlukan agar pena MCLR berlogika tinggi sehingga mikrokontroler akan bekerja, jika pena MCLR berlogika rendah, maka mikrokontroler akan direset.
Resonator bersama-sama dengan rangkaian didalam mikrokontroler akan berlaku sebagai pembangkit detak ( clock generator ) bagi mikrokontroler. Sebagaimana diketahui bahwa mikrokontroler PIC16F84/A dapat dioperasikan dari beberapa jenis clock osilator, diantaranya adalah RC osilator, Kristal / Resonator dan Kristal kecepatan tinggi. Rangkaian sederhana diatas akan menjamin mikrokontroler PIC16F84/A dapat bekerja dengan baik walaupun dengan komponen pendukung yang paling minim. Adapun untuk menghasilkan tegangan kerja bagi mikrokontroler, dapat dipergunakan rangkaian sederhana yang menggunakan IC yang dirancang untuk menghasilkan tegangan keluaran tertentu seperi pada gambar dibawah ini.
+9V
7805
+5V 10u 16V
Gambar 13 Penghasil 5 Volt untuk mikrokontroler
Rangkaian diatas merupakan rangkaian yang akan menurunkan tegangan 9 Volt
dari baterai menjadi tegangan 5 Volt. Kapasitor digunakan untuk lebih
meratakan tegangan keluaran dari IC 7805.
3.1.2 Men-download Program ke Mikrokontroler Agar dapat bekerja sebuah sistem mikrokontroler memerlukan beberapa syarat yang harus dipenuhi. Apabila salah satu saja syarat tersebut tidak dipenuhi, maka sistem mikrokontroler tersebut tidak akan bekerja. Adapun syarat agar sistim mikrokontroler dapat bekerja adalah sebagai berikut. a.Tersedianya catu daya pada mikrokontroler tersebut ( Catu Daya ) b. Tersedianya sumber detak pada mikrokontroler tersebut ( Clock ) c. Tersedianya program pada mikrokontroler tersebut ( Firmware )
Syarat pertama ( a ) dan kedua ( b ) adalah mudah dilaksanakan dan sudah tersedia pada rangkaian minimum mikrokontroler. Sedangkan untuk syarat yang ketiga ( c ) kita harus memiliki suatu alat yang dinamakan programmer/downloader. Mikrokontroler PIC16F84/A dijual oleh produsennya dalam keadaaan kosong ( tanpa ada firmware = program ) didalamnya.
Oleh karena itu harus kita sendiri yang mengisi
program pada mikrokontroler tersebut. Pada mikrokontroler PIC16F84/A, alat untuk memprogram / mendownload firmware pada mikrokontroler tersebut sangat mudah didapat . Microchip sendiri selaku pembuat mikrokontroler PIC16F84/A juga menyediakan alat tersebut yang diberi nama PicStart Plus. Sementara ini kita dapat memprogram / mendownload firmware dengan menggunakan alat yang bernama DT-HiQ PIC ICSP Programmer.
Gambar 14 Contoh Downloader PIC16F84
Untuk melakukan pengisian program kepada mikrokontroler “kosong” dapat dilakukan dengan rangkaian downloader diatas ditambah dengan software yang sesuai seperti software ICProg bawaan dari alat tersebut.
Gambar 15 Software Pengisi mikrokontroler PIC16F84
Adapun urutan kerja untuk mengisi mikrokontroler PIC16F84 adalah sebagai berikut. 1. Pertama adalah kita menuliskan kode program menggunakan pengolah kata ( notepad ) maupun program editor teks yang lain. File yang dituliskan kemudian disimpan dan diberi ektensi *.asm. 2. File tersebut kemudian dikompilasi menggunakan MPASMwin sehingga dihasilkan file baru dengan ektensi *.hex. 3. File *.hex tersebut baru kemudian dimasukkan ke dalam mikrokontroler dengan program ICprog diatas.
Adapun cara setting sebelum menggunakan software ICprog adalah sebagi berikut ini :
a. Pilihlah menu “Settinga” kemudian pilih “Hardware” pilih jenis programmer sebagai “AN589Programmer” b. Pilih Port sebagai “Port1” ( default ) atau disesuaikan dengan kondisi komputer anda. c. Atur I/O Delay sesuai dengan kecepatan komputer anda. Sebagai contoh untuk komputer Pentium III 700 MHz delay diatur ke 10. Anda dapat berekperimen jika kecepatan komputer anda beda. Semakin cepat komputer anda, semakin besar nilai delay yang harus diberikan.
Gambar 16 Setting software ICprog sebelum digunakan
d. Pilih menu “Setting” kemudian pilih “Option” pilih “Misc” dan pilih ( centang ) “Enable NT/2000/XP Driver” jika anda menggunakan Windows XP.
Gambar 17 Setting Driver untuk Windows XP
e. Pilih jenis mikrokontroler yang akan dipakai yaitu PIC16F84/A.
Adapun cara memprogram mikrokontroler dengan menggunakan software ICprog adalah sebagai berikut. a. Pastikan setting diatas sudah dikerjakan b. Klik “open file” dan ambilan file yang akan didownload ke mikrokontroler ( *.hex )
c. Pilh jenis osilator. Jika anda menggunakan kristal maka pilih : ”HS” d. Selanjutnya pilih ( centang ) : PWRT ( Power On Timer ).
Gambar 18 Cara memprogram Mikrokontroler e. Terakhir tekan tombol “Program All”. Nah proses pemrograman akan segera dimulai. Pastikan hardware DT-HiQ ICSP Programmer sudah dipasang pada parallel port komputer anda dan terminal ICSP telah dipasang pada terminal ICSP pada Board Mikrokontroler.
3.1.2 Perancangan Mobile Robot Terkontrol PC Maksud dari Special Report membuat Mobil Robot Terkontrol PC adalah kita memiliki sebuah mobil Robot yang dikendalikan menggunakan PC ( Personal Computer ). Sistem kendali menggunakan komputer yang sederhana adalah menggunakan sistem tethered dimana antara komputer dan mobil robot dihubungkan dengan kabel panjang. Kabel dihubungkan dengan komputer pada port paralelnya, sementara ini pada sisi mobil robot kabel dihubungkan dengan suatu port kontrol pada mobil robot tersebut. Sistem ini lebih sederhana namun memiliki kekurangan yaitu kerumitan kabel saat mobil robot berjalan. Oleh karena itu, penulis akan membuat sistem dimana kabel panjang akan diganti dengan sistem pemancar dan penerima radio yang sering terpasang pada mainan mobil remote. Kenapa menggunakan sistim wireless pada mobil mainan, tidak lain adalah kaena mudah dicari dan harganya relative murah. Pada mobil remote biasanya terdapat 4 buah tombol navigasi yaitu maju kedepan, mundur ke belakang, belok kiri dan belok kanan. Demikian juga dengan special report ini akan dibatasi kemampuan navigasi mobil robot adalah : a. Berjalan maju ke depan ( Forward ) b. Berjalan mundur kebelakang ( Backward ) c. Berbelok ke kiri ( turn to left ) d. Berbelok ke kanan ( turn to right )
Sistem hubungan antara Komputer dan Mobil Robot akan menjadi seperti gambar berikut ini.
LPT PC Pemancar Gambar 19 Hubungan Komputer dan Pemancar Radio
Komputer dan Pemancar Radio akan dihubungkan melalui parallel port. Pemilihan parallel port adalah didasari sistem pemrogramannya relatif lebih mudah bila dibandingkan dengan menggunakan serial port. Akan diperlukan total 5 buah jalur kabel antara komputer dengan pemancar radio tersebut. Sementara itu pada sisi mobil robot akan dihubungkan penerima radio dengan sistem mikrokontroler yang mengatur mobile robot seperti terlihat pada gambar berikut ini.
Peneri ma Radio
Mobil Robot
Gambar 20 Sistem pada Mobile Robot
Output dari penerima radio akan dihubungkan dengan sistem mikrokontroler. Dalam hal ini mikrokontroler akan bertugas untuk men-dekode data yang dikirim dari komputer melalui pemancar radio. Sehingga jika pada komputer ditekan tombol agar mobil robot maju, maka sinyal yang diterima penerima radio akan diolah mikrokontroler agar menggerakkan motor servo agar mobil robot dapat maju kedepan.
3.2 Perancangan Perangkat Keras Pemancar Untuk membuat special report ini akan digunakan beberapa program, yaitu program pada mikrokontroler dan program pada komputer ( PC ). Pada mikrokontroler tentu akan dibuat program ( firmware ) yang menggunakan program assembler untuk mikrokontroler PIC16F84/A.
Sedangkan pada sisi komputer akan dibuat program
menggunakan bahasa Delphi untuk akses parallel port.
Sebelum kita membuat perangkat lunak dari Delphi yang akan digunakan untuk mengendalikan mobil robot, maka kita perlu meninjau rankaian yang akan dipakai untuk menghubungkan antara parallel port komputer dengan pemancar. Berikut akan diberikan rangkaian lengkapnya.
+5 V +5 V
DB-9
10K
D0 ( 2 )
1
D1 ( 3 )
3
D2 ( 4 )
5
D3 ( 5 )
13
GND ( 18..25 )
2 4
220
74LS07 6
7
PC-817 12
1
Ke tombol Pemancar
+5 V 10K
220
PC-817
4
Ke tombol Pemancar
Gambar 21 Rangkaian Antarmuka Paralel Port
Pada gambar diatas dapat dijelaskan sebagai berikut. Bagian paling kiri adalah terminal DB-9 yang nantinya akan dihubungkan dengan parallel port. Dari parallel port tersebut r dihubungkan dengan sebuah buffer 74LS07 melalui kabel sepanjang kira-kira 0,5 meter atau sesuai kebutuhan.
Keluaran dari buffer ada 4 buah yang masing-masing nantinya akan dihubungkan dengan optocoupler PC-817. Sehingga total diperlukan total 4 buah optocoupler ( pada gambar diatas hanya digambarkan 2 buah saja ). Keluaran dari opto coupler tersebut langsung disambungkan dengan solderan pada switch ( tombol ) pada pcb pemancara remote. Hal ini berfungsi sebagai pengaktif tombol jika opto coupler aktif. Adapun cara kerja secara keseluruhan adalah sebagai berikut.. Sebagai contoh menu pada komputer yaitu untuk membuat mobil robot maju ke depan diaktifkan, maka pena 2 pada DB-9 ( D0 = Data 0 ) akan menjadi tinggi sehingga masukan buffer ( pena 1 IC 74LS07 ) akan juga berlogika tinggi. Sebagai akibatnya output buffer tersebut ( pena 2 ) akan menjadi tinggi sebagai akibat adanya resistor pull up 10K. Karena berlogika tinggi ( ada tegangan +5 Volt ) maka hal ini akan menyebabkan led pada opto coupler 1 akan aktif ( on ). Hal inilah yang menyebabkan keluaran opto coupler 1 menjadi berimpedansi rendah ( short circuit ) sehingga tombol pada pcb pemancar remote tersebut aktif dan mengirimkan sinyal ke penerima remote.
3.3 Perancangan Perangkat Lunak ( Software ) di Komputer Untuk membuat antarmuka pada komputer, maka digunakan software Delphi. Penggunaan software Delphi adalah untuk memudahkan membuat program antarmuka yang dijalankan di komputer. Software yang lain tentu juga dapat digunakan. Antarmuka akan dibuat cukup sederhana saja. Yaitu adanya pemilihan ke-empat navigasi mobil robot yaitu : maju, mundur, belok kiri, belok kanan.
BAB IV PENGUJIAN ALAT DAN PENGAMATAN
Pada bab ini akan membahas mengenai pengujian alat dan pengamatan terhadap unjuk kerja alat yang telah dibuat. Pengujian dan pengamatan akan dilakukan untuk sistem mikrokontroler, sistem remote control ( wireless ) dan sistem penggerak ( motor servo system ).
4.1
Pengujian Sistim Mikrokontroler Dalam rangka pengujian keseluruhan rangkaian dalam special report ini, maka
pengujian akan dilaksanakan bagian demi bagian. Pengujian seperti ini sangat penting agar jika alat tidak berfungsi dengan baik, maka dapat diketahui modul alat mana yang bermasalah. Pada rangkaian
Mobil Robot terkontrol PC ini, maka pengujian akan
dilakukan terhadap modul / sistem sebagai berikut. a. Sistem mikrokontroler b. Sistem Remote control c. Sistem motor servo continous d. Sistem antarmuka dengan Komputer ( PC )
Untuk pengujian pada sistem mikrokontroler dapat dilakukan dengan metode yang relatif sederhana. Yang pasti adalah kita mengisikan program kedalam sistim mikrokontroler dan melihat kinerja mikrokontroler tersebut setelah program dimasukkan.
Sebagai contoh kita akan memasang 2 buah led kepada sistem mikrokontroler tersebut, namun hanya 1 led saja yang akan dibuat menyala. Untuk melakukan hal tersebut, kita harus melakukan beberapa langkah. Langkah pertama adalah kita menghubungkan 2 led tersebut ke sistem mikrokontroler katakanlah led dihubungkan dengan RB0 dan RB1.
220 RB0 LED1 220 RB1 LED2
Gambar 22 Rangkaian Uji Sistem Mikrokontroler
Langkah selanjutnya adalah menyiapkan program yang akan dimasukkan kedalam mikrokontroler. Pertama kita harus menuliskan program ( dalam bahasa assembly ) pada notepad bawaan Windows. Adapun penggunaan notepad memang tidak diharuskan, yang pasti adalah editor teks ASCII.
Gambar 23 Tampilan program Notepad
Program dituliskan pada notepad. Adapun program untuk menguji mikrokontroler seperti pada contoh diatas adalah sebagai berikut. ;Program Uji processor 16f84 TRISB equ 86h PORTB equ 06h STATUS equ 03h Rp0 equ 5
Org 0h Init bsf STATUS,Rp0 movlw b’00000000’ movwf TRISB ; PORTB sebagai output bcf STATUS,Rp0
bcf PORTB,0 bcf PORTB,1
; RB0 dibuat rendah ( led1 mati ) ; RB1 dibuat rendah ( led2 mati )
bsf PORTB,1
; LED2 nyala
nyala waste goto waste end
Setelah program ini dituliskan kedalam notepad, maka simpan file tersebut dengan memberi ektensi .asm. Sebagai contoh file disimpan dengan nama uji.asm. Langkah selanjutnya adalah meng-kompilasi program assembly tersebut agar dapat diketahui/dimengerti sistem mikrokontroler. Untuk melakukan hal ini dilakukan dengan menggunakan program MPASMWin.
Gambar 24 Program MPASMWin untuk kompilasi program
Untuk melakukan proses kompilasi dilakukan dengan cara mencari file assembly yang telah dibuat yaitu uji.asm dengan cara menekan tombol “Browse” pada MPASMWin. Setelah file tersebut ketemu dilanjutkan dengan menekan tombol “Assemble”. Maka secara otomatis akan dihasilkan file baru dengan nama uji.hex. File inilah yang akan dimasukkan kedalam sistem mikrokontroler. Hasil dari proses kompilasi menggunakan MPASMWin adalah dihasilkannya file baru dengan ektensi *.hex. Itu apabila proses kompilasi berhasil dengan baik. Namun jika proses kompilasi gagal, maka akan dihasilkan file baru bernama *.err ( error file ). Error file ini dapat dibuka dengan notepad juga. Lihatlah isi error file tersebut dan betulkan kesalahan pada file *.asm-nya. Setelah itu lakukan kompilasi ulang lagi sampai berhasil didapatkan file *.hex. Setelah
itu
lakukan
langkah
untuk
mendownload
program
kedalam
mikrokontroler seperti telah dijelaskan di atas. Nah proses men-download tentunya menggunakan software yang disertakan pada alat programmer . Setelah proses download selesai maka kinerja mikrokontroler dapat dilihat. Jika hanya LED1 saja yang menyala sementara LED2 mati, maka dapat dikatakan bahwa sistem mikrokontroler telah bekerja dengan baik.
4.2
Pengujian Rangkaian Remote Control Setelah sistem mikrokontoler bekerja dengan baik, maka proses pengujian
dilanjutkan dengan menguji sistem remote control.
Pada special report ini akan
digunakan rangkaian remote control yang sudah jadi yang sering dipergunakan pada remote control mobil mainan anak-anak.
Pada remote control ini terdapat 2 buah PCB yaitu sebuah sebagai pengirim ( transmitter ) dan sebuah lagi sebagai penerima ( receiver ). Mereka bekerja pada gelombang radio pada frekuensi sekitar 27MHz ~ 49 MHz. Jarak jangkau yang dapat dicapai maksimal sekitar 5 – 7 meter tergantung kondisi antenna.. Pada PCB pengirim terdapat 4 buah saklar. Saklar-saklar ini digunakan agar mobil bisa maju, mundur, belok kiri dan belok kanan. Juga terdapat sebuah antena agar gelobang radio dapat dikirimkan secara lebih baik. Pada PCB penerima terdapat 4 buah output. Keempat output ini bersifat aktif High ( tinggi ) artinya jika sedang aktif, maka tegangan akan mendetekati 5 Volt. Sementara jika tidak aktif, tegangan menjadi 0 volt. Untuk menguji sistem remote control ini, maka diperlukan antarmuka berupa optocoupler PC-817 pada masing-masing output sebelum dihubungkan dengan port mikrokontroler. Adapun hubungannya adalah sebagai berikut ini.
maju
PC-817 RA0
mundur RA1 Receiver Remote Control
Mikrokontroler PIC16F84
Belok kiri
RA2
Belok kanan
RA3
Gambar 25 Hubungan Receiver Remote Control degan Mikrokontroler
Adapun gambar untuk tiap PC-817 secara lengkap adalah sebagai berikut.
Ke keluaran receiver remote
+5V 1
220
PC-817
10K 4
2
Ke port mikrokontroler
3
Gambar 26 Hubungan lengkap optocoupler PC-817 sebagai antarmuka
Untuk melakukan pengujian ini, maka diperlukan sebuah voltmeter. Rangkaian sistem mikrokontroler dihubungkan dengan sistem receiver remote control dengan antarmuka PC-817. Jadi secara total diperlukan 4 buah PC-817 karena ada 4 kanal dari receiver remote control. Pada pengujian ini chip mikrokontroler tidak perlu dipasang terlebih dahulu. Pengecekan dilakukan dengan mengukur tegangan pada port-port mikrokontroler ( dalam hal ini yang diukur adalah pada soket mikrokontroler ). Hubungkan voltmeter atau multimeter yang diset ke voltmeter pada skala maksimal 20 volt. Hubungkan kabel hitam ( negatif ) ke terminal ground pada alat. Sementara itu kabel merah ( positif ) dihubungkan dengan soket IC mikrokontroler pada kaki RA0.
Lakukan pengujian sebagai berikut. Bacaan awal pada mikrokontroler harus menunjukkan angka sekitar 5 Volt ( logika high ). Hal ini adalah dikarenakan dipasangnya pull up resistor 10K pada kaki 4 PC-817. Setelah itu tekanlah sebuah tombol pada transmitter ( pengirim ) remote-control. Salah satu tombol jika ditekan, harus dapat membuat tegangan pada RA0 turun menjadi 0 Volt. Hal ini karena jika salah satu tombol aktif, maka akan disalurkan tegangan sekitar +5 volt ke resistor 220 ohm pada pena 1 PC817. Selanjutnya hal ini akan membuat LED pada PC-817 menjadi menyala dan mengaktifkan phototransistor. Aktifnya phototransistor akan menyebabkan pena 4 PC817 menjadi berlogika rendah. ( 0 Volt ). Demikian pengecekan dilakukan kepada ke 4 kanal, yaitu dilakukan pengukuran tegangan pada RA0, RA1, RA2 dan RA3. Jika keempat-empatnya logika dapat berubah dari tinggi ke rendah jika ada tombol yang ditekan, maka berarti alat bekerja dengan baik.
4.3
Pengujian Motor Servo Continous Untuk melakukan pengujian motor servo ini, dilakukan dengan cara mengisikan
program terlebih dahulu kepada mikrokontroler. Program tersebut adalah program untuk mengaktifkan motor servo. Seperti diketahui bahwa motor servo diaktifkan dengan memberikan sinyal PWM ( Pulse Width Modulation ) dengan lebar pulsa tertentu. Sinyal inilah yang akan memberitahukan motor servo harus berputar CW ( Clock Wise = searah jarum jam ) atau CCW ( Counter Clock Wise = berlawanan arah jarum jam ). Program yang harus dimasukkan kedalam mikrokontroler adalah sebagai berikut.
;Program MOBIL ROBOT TERKONTROL PC ;Sensor dari Penerima Radio Control di hubungkan dengan ; ; RA0 = maju ; RA1 = mundur ; RA2 = belok kiri ; RA3 = belokk kanan ; ; Servo dihubungkan ke RB0 dan RB1 ; ;-------------------------------------------------------------------------------------processor 16f84 STATUS equ 0x03 RP0 equ 5 PORTA equ 0x05 TRISA equ 0x85 PORTB equ 0x06 TRISB equ 0x86 PDel0 equ 0x0c ; alamat awal ram PDel1 equ 0x0d PDel2 equ 0x0e PDel3 equ 0x0f PDel4 equ 0x10 Ulang equ 0x11 ; servo time PDel5 equ 0x12 PDel6 equ 0x13 PDel7 equ 0x14 PDel8 equ 0x15 org 0x00 init bsf STATUS,RP0 ; ke halaman (bank) 1 movlw b'00000000' ; isi W reg dengan 0H movwf TRISB ; copy isi W ke TRISB ; portb sebagai keluaran(output) movlw b'11111' movwf TRISA bcf STATUS,RP0 bcf PORTB,0 bcf PORTB,1
; isi W dengan 11111B ; copy isi W ke TRISA portA ; kembali ke halaman (bank)0 ; porta sebagai masukan(input) ; init servo off ; init servo off
cek_maju btfsc PORTA,0 goto cek_mundur goto jalan_maju cek_mundur btfsc PORTA,1 goto cek_belok_kiri goto jalan_mundur cek_belok_kiri btfsc PORTA,2 goto cek_belok_kanan goto belok_kiri cek_belok_kanan btfsc PORTA,3 goto cek_maju goto belok_kanan
;-----------------------------------------------------------belok_kanan bsf PORTB,0 ; aktifkan servo1 call Delay2ms bcf PORTB,0 call Delay18ms bcf PORTB,1 ; matikan servo 2 goto cek_maju belok_kiri bcf PORTB,0 ;matikan servo1; bsf PORTB,1 ;aktifkan servo2 call Delay1ms bcf PORTB,1 call Delay18ms; goto cek_maju
jalan_maju bsf PORTB,0 ; aktifkan servo1 call Delay2ms bcf PORTB,0 call Delay18ms bsf PORTB,1 ;aktifkan servo2 call Delay1ms bcf PORTB,1 call Delay18ms; goto cek_maju jalan_mundur bsf PORTB,0 call Delay1ms bcf PORTB,0 call Delay18ms bsf PORTB,1 call Delay2ms bcf PORTB,1 call Delay18ms goto cek_maju
;------------------------------------------------------------; Delay 500us = 0.5ms ;------------------------------------------------------------PDelay movlw .123 ; 1 set number of repetitions movwf PDel8 ; 1 | PLooip0 clrwdt ; 1 clear watchdog decfsz PDel8, 1 ; 1 + (1) is the time over? goto PLooip0 ; 2 no, loop PDlL1 goto PDlL2 ; 2 cycles delay PDlL2 clrwdt ; 1 cycle delay return ; 2+2 Done ;------------------------------------------------------------;------------------------------------------------------------Delay1ms ; Delay 1ms ;------------------------------------------------------------movlw .248 ; 1 set number of repetitions movwf PDel0 ; 1 | PLoop0 clrwdt ; 1 clear watchdog decfsz PDel0, 1 ; 1 + (1) is the time over? goto PLoop0 ; 2 no, loop PDelL1 goto PDelL2 ; 2 cycles delay
PDelL2 clrwdt ; 1 cycle delay return ; 2+2 Done ;-------------------------------------------------------------
;------------------------------------------------------------Delay1k5 ; delay 1.5ms ;------------------------------------------------------------movlw .249 ; 1 set number of repetitions movwf PDel3 ; 1 | PLoopx0 clrwdt ; 1 clear watchdog PDelLLL1 goto PDelLLL2 ; 2 cycles delay PDelLLL2 decfsz PDel3, 1 ; 1 + (1) is the time over? goto PLoopx0 ; 2 no, loop clrwdt ; 1 cycle delay return ; 2+2 Done ;-------------------------------------------------------------
;------------------------------------------------------------Delay2ms ; Delay 2ms ;------------------------------------------------------------movlw .249 ; 1 set number of repetitions movwf PDel4 ; 1 | PLoopy0 clrwdt ; 1 clear watchdog PDelLLLL1 goto PDelLLLL2 ; 2 cycles delay PDelLLLL2 goto PDelLLLL3 ; 2 cycles delay PDelLLLL3 decfsz PDel4, 1 ; 1 + (1) is the time over? goto PLoopy0 ; 2 no, loop PDelLLLL4 goto PDelLLLL5 ; 2 cycles delay PDelLLLL5 clrwdt ; 1 cycle delay return ; 2+2 Done ;-------------------------------------------------------------
;------------------------------------------------------------Delay18ms ; Delay 18ms ;------------------------------------------------------------movlw .26 ; 1 set number of repetitions (B) movwf PDel1 ; 1 | PLoop1 movlw .172 ; 1 set number of repetitions (A) movwf PDel2 ; 1 | PLoop2 clrwdt ; 1 clear watchdog
decfsz PDel2, 1 ; 1 + (1) is the time over? (A) goto PLoop2 ; 2 no, loop decfsz PDel1, 1 ; 1 + (1) is the time over? (B) goto PLoop1 ; 2 no, loop PDelLLx1 goto PDelLLx2 ; 2 cycles delay PDelLLx2 clrwdt ; 1 cycle delay return ; 2+2 Done ;-------------------------------------------------------------
;------------------------------------------------------------; Code generated by PDEL ver 1.0 on 8/5/06 at 9:10:18 PM ; Description: Waits 1000000 cycles ;------------------------------------------------------------Delay1s movlw .14 ; 1 set number of repetitions (C) movwf PDel5 ; 1 | PLop0 movlw .72 ; 1 set number of repetitions (B) movwf PDel6 ; 1 | PLop1 movlw .247 ; 1 set number of repetitions (A) movwf PDel7 ; 1 | PLop2 clrwdt ; 1 clear watchdog decfsz PDel7, 1 ; 1 + (1) is the time over? (A) goto PLop2 ; 2 no, loop decfsz PDel6, 1 ; 1 + (1) is the time over? (B) goto PLop1 ; 2 no, loop decfsz PDel5, 1 ; 1 + (1) is the time over? (C) goto PLop0 ; 2 no, loop PDelLc1 goto PDelL2 ; 2 cycles delay PDelLc2 clrwdt ; 1 cycle delay return ; 2+2 Done ;------------------------------------------------------------end
Setelah mikrokontroler berisi program diatas, maka pengujian dapat segera dilakukan sebagai berikut. Takan tombol pada transmitter remote satu demi satu. Maka pada saat tombol “Maju” ditekan servo kiri dan kanan akan berputar maju. Jika ditekan tombol “Mundur” maka servo kiri dan kanan akan berputar mundur.
Saat tombol “Belok kiri” ditekan maka servo kiri diam dan servo kanan akan berputar maju. Sementara jika tombol “Belok kanan” ditekan maka sevo kiri berputar maju sementara servo kanan diam. Apabila kinerja robot telah menunjukkan hal demikian, maka dapat dipastikan sistem mikrokontroler telah bekerja dengan benar.
4.3.1 Pengujian Antarmuka dengan Komputer Pengujian terakhir adalah pengujian alat antarmuka transmitter remote yang dihubungkan dengan komputer ( PC ). Cara pengujian sebenarnya sama dengan pengujian diatas, hanya kali ini kita mengujinya dengan menggunakan mouse pada komputer. Pertama yang harus dilakukan adalah mengaktifkan alat antarmuka transmitter remote control dengan menghubungkan ke parallel port pada komputer. Beri catu daya pada alat tersebut. Setelah itu buka program pada komputer dan lakukan pengujian menggunakan mouse komputer. Beri tanda centang pada pilihan “Maju” maka robot harus bergerak maju. Beri tanda centang pada pilihan “Mundur” maka robot hraus bergerak mundur. Demikian pula untuk belok kiri maupun belok kanan. Jika hal demikian telah terjadi, maka alat dapat dikatakan telah bekerja dengan baik.
Gambar 27. Antarmuka di Komputer
BAB V KESIMPULAN DAN SARAN
5.1
Kesimpulan Dari hasil perancangan dan realisasi perangkat keras dan perangkat lunak serta
pengujian secara keseluruhan terhadap special report yakni Mobil Robot Terkontrol PC dapat diambil beberapa kesimpulan sebagai berikut.
a. Pada perancangan saat ini menggunakan 4 buah jalur kendali yang digunakan untuk navigasi bagi mobil robot. Masing-masing adalah untuk bergerak ke depan ( maju ), bergerak ke belakang ( mundur ), belok kiri dan belok kanan. b. Pemancar dan penerima wireless yang dipakai adalah menggunakan pemancar dan penerima pada mobil mainan remote control. Jarak kontrol yang didapat tidak dapat terlalu jauh. Mobil robot dapat dikendalikan sampai maksimal kirakira 5 ~ 7 meter. c. Sistem kendali memiliki prioritas, sehingga jika diaktifkan tombol maju dan mundur secara bersamaan, maka hanya satu tombol saja yang akan dijalankan ( yaitu tombol yang memiliki prioritas lebih tinggi ).
1.2 Saran Berdasarkan pengamatan terhadap hasil pembuatan special report ini, maka dapat diberikan saran-saran sebagai berikut.
1. Dapat menggunakan pemancar dan penerima yang memiliki daya output yang lebih besar, sehingga daya kendali robot akan menjadi semakin jauh. 2. Dapat menggunakan kit-kit pemancar wireless proffesional agar didapat kinerja alat yang semakin baik.
LAMPIRAN 1
;Program MOBIL ROBOT TERKONTROL ; ;Sensor dari Penerima Radio Control di hubungkan dengan ; ; RA0 = maju ; RA1 = mundur ; RA2 = belok kiri ; RA3 = belokk kanan ; ; Servo dihubungkan ke RB0 dan RB1 ; ;----------------------------------------------------------------------------------------------------processor 16f84 STATUS RP0 PORTA TRISA PORTB TRISB
equ 0x03 equ 5 equ 0x05 equ 0x85 equ 0x06 equ 0x86
PDel0 PDel1 PDel2 PDel3 PDel4 Ulang PDel5 PDel6 PDel7 PDel8
equ 0x0c ; alamat awal ram equ 0x0d equ 0x0e equ 0x0f equ 0x10 equ 0x11 ; servo time equ 0x12 equ 0x13 equ 0x14 equ 0x15 org 0x00
init bsf STATUS,RP0 ; ke halaman (bank) 1 movlw b'00000000' ; isi W reg dengan 0H movwf TRISB ; copy isi W ke TRISB ; portb sebagai keluaran(output) movlw b'11111' movwf TRISA
; isi W dengan 11111B ; copy isi W ke TRISA portA
bcf STATUS,RP0 bcf PORTB,0 bcf PORTB,1
; kembali ke halaman (bank)0 ; porta sebagai masukan(input) ; init servo off ; init servo off
cek_maju btfsc PORTA,0 goto cek_mundur goto jalan_maju cek_mundur btfsc PORTA,1 goto cek_belok_kiri goto jalan_mundur cek_belok_kiri btfsc PORTA,2 goto cek_belok_kanan goto belok_kiri cek_belok_kanan btfsc PORTA,3 goto cek_maju goto belok_kanan
;-----------------------------------------------------------belok_kanan bsf PORTB,0 ; aktifkan servo1 call Delay2ms bcf PORTB,0 call Delay18ms bcf PORTB,1 ; matikan servo 2 goto cek_maju belok_kiri bcf PORTB,0 bsf PORTB,1 call Delay1ms bcf PORTB,1
;matikan servo1; ;aktifkan servo2
call Delay18ms; goto cek_maju
jalan_maju bsf PORTB,0 ; aktifkan servo1 call Delay2ms bcf PORTB,0 call Delay18ms bsf PORTB,1 ;aktifkan servo2 call Delay1ms bcf PORTB,1 call Delay18ms; goto cek_maju jalan_mundur bsf PORTB,0 call Delay1ms bcf PORTB,0 call Delay18ms bsf PORTB,1 call Delay2ms bcf PORTB,1 call Delay18ms goto cek_maju
;------------------------------------------------------------; Delay 500us = 0.5ms ;------------------------------------------------------------PDelay movlw .123 ; 1 set number of repetitions movwf PDel8 ; 1 | PLooip0 clrwdt ; 1 clear watchdog decfsz PDel8, 1 ; 1 + (1) is the time over? goto PLooip0 ; 2 no, loop PDlL1 goto PDlL2 ; 2 cycles delay PDlL2 clrwdt ; 1 cycle delay return ; 2+2 Done ;------------------------------------------------------------;------------------------------------------------------------Delay1ms ; Delay 1ms ;------------------------------------------------------------movlw .248 ; 1 set number of repetitions
movwf PDel0 ; 1 | PLoop0 clrwdt ; 1 clear watchdog decfsz PDel0, 1 ; 1 + (1) is the time over? goto PLoop0 ; 2 no, loop PDelL1 goto PDelL2 ; 2 cycles delay PDelL2 clrwdt ; 1 cycle delay return ; 2+2 Done ;-------------------------------------------------------------
;------------------------------------------------------------Delay1k5 ; delay 1.5ms ;------------------------------------------------------------movlw .249 ; 1 set number of repetitions movwf PDel3 ; 1 | PLoopx0 clrwdt ; 1 clear watchdog PDelLLL1 goto PDelLLL2 ; 2 cycles delay PDelLLL2 decfsz PDel3, 1 ; 1 + (1) is the time over? goto PLoopx0 ; 2 no, loop clrwdt ; 1 cycle delay return ; 2+2 Done ;-------------------------------------------------------------
;------------------------------------------------------------Delay2ms ; Delay 2ms ;------------------------------------------------------------movlw .249 ; 1 set number of repetitions movwf PDel4 ; 1 | PLoopy0 clrwdt ; 1 clear watchdog PDelLLLL1 goto PDelLLLL2 ; 2 cycles delay PDelLLLL2 goto PDelLLLL3 ; 2 cycles delay PDelLLLL3 decfsz PDel4, 1 ; 1 + (1) is the time over? goto PLoopy0 ; 2 no, loop PDelLLLL4 goto PDelLLLL5 ; 2 cycles delay PDelLLLL5 clrwdt ; 1 cycle delay return ; 2+2 Done ;-------------------------------------------------------------
;------------------------------------------------------------Delay18ms ; Delay 18ms ;-------------------------------------------------------------
movlw .26 ; 1 set number of repetitions (B) movwf PDel1 ; 1 | PLoop1 movlw .172 ; 1 set number of repetitions (A) movwf PDel2 ; 1 | PLoop2 clrwdt ; 1 clear watchdog decfsz PDel2, 1 ; 1 + (1) is the time over? (A) goto PLoop2 ; 2 no, loop decfsz PDel1, 1 ; 1 + (1) is the time over? (B) goto PLoop1 ; 2 no, loop PDelLLx1 goto PDelLLx2 ; 2 cycles delay PDelLLx2 clrwdt ; 1 cycle delay return ; 2+2 Done ;-------------------------------------------------------------
;------------------------------------------------------------; kode penghasil delay 1 second ( 1 detik ) ; ;------------------------------------------------------------Delay1s movlw .14 ; 1 set number of repetitions (C) movwf PDel5 ; 1 | PLop0 movlw .72 ; 1 set number of repetitions (B) movwf PDel6 ; 1 | PLop1 movlw .247 ; 1 set number of repetitions (A) movwf PDel7 ; 1 | PLop2 clrwdt ; 1 clear watchdog decfsz PDel7, 1 ; 1 + (1) is the time over? (A) goto PLop2 ; 2 no, loop decfsz PDel6, 1 ; 1 + (1) is the time over? (B) goto PLop1 ; 2 no, loop decfsz PDel5, 1 ; 1 + (1) is the time over? (C) goto PLop0 ; 2 no, loop PDelLc1 goto PDelL2 ; 2 cycles delay PDelLc2 clrwdt ; 1 cycle delay return ; 2+2 Done ;-------------------------------------------------------------
end
LAMPIRAN 2 ( FILE HEX UNTUK DIMASUKKAN KE MIKROKONTROLER PIC16F84/A )
:100000008316003086001F3085008312061086108C :1000100005180B28202885180E28292805191128CD :100020001A2885190828142806144A200610542076 :1000300086100828061086143A20861054200828B6 :1000400006144A200610542086143A2086105420A4 :10005000082806143A200610542086144A208610D8 :10006000542008287B3095006400950B34283828EC :1000700064000800F8308C0064008C0B3C28402899 :1000800064000800F9308F00640046288F0B442874 :1000900064000800F930900064004E284F28900B4F :1000A0004C285228640008001A308D00AC308E00B5 :1000B00064008E0B58288D0B56285E2864000800BB :1000C0000E30920048309300F73094006400940B97 :1000D0006628930B6428920B62284028640008006D :00000001FF
LAMPIRAN 3 SOFTWARE DELPHI
unit Robot; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) CheckBox1: TCheckBox; CheckBox2: TCheckBox; CheckBox3: TCheckBox; CheckBox4: TCheckBox; procedure CheckBox1Click(Sender: TObject); procedure CheckBox2Click(Sender: TObject); procedure CheckBox3Click(Sender: TObject); procedure CheckBox4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} function Inp32(Alamat:word):byte; stdcall; external 'inpout32.dll'; function Out32(Alamat:word ;Data : byte) :byte; stdcall;external 'inpout32.dll' ;
procedure TForm1.CheckBox1Click(Sender: TObject);
var tmp : byte; begin tmp := Inp32($378); if checkbox1.checked then Out32($378,tmp or $1) else Out32($378,tmp and $fe); end; procedure TForm1.CheckBox2Click(Sender: TObject); var tmp : byte; begin tmp:= Inp32($378); if checkbox2.checked then Out32($378,tmp or $2) else Out32($378,tmp and $fd); end; procedure TForm1.CheckBox3Click(Sender: TObject); var tmp : byte; begin tmp := Inp32($378); if checkbox3.checked then Out32($378,tmp or $4) else Out32($378,tmp and $fb); end; procedure TForm1.CheckBox4Click(Sender: TObject); var tmp:byte; begin tmp := Inp32($378); if checkbox4.checked then Out32($378,tmp or $8) else Out32($378,tmp and $f7); end; end.
LAMPIRAN 4 FOTO-FOTO
Foto “PCB Pemancar”. Terlihat 4 buah tombol untuk navigasi mobil mainan yaitu maju, mundur, belok kiri dan belok kanan. Apabila ada salah satu tombol yang ditekan, maka lampu LED akan menyala.
Foto “ Antarmuka Port Paralel” Pada bagian kiri atas adalah terminal untuk menghubungkan ke parallel port. Sementara pada bagian kiri bawah terdapat rangkaian regulator 5 Volt yang menggunakan 7805. Sementara pada bagian kanan terlihat 4 buah opto coupler PC-817 dimana outputnya dihubungkan dengan 4 buah tombol pada “PCB Pemancar”.
Foto “ Rangkaian Lengkap” Bagian pemancar yang antarmuka Paralel Port.
telah dihubungkan dengan
Foto Mobil Robot dari Samping
Foto Mobil Robot dari Bawah
Rangkaian “Receiver” yang terpasang dibadan robot
LAMPIRAN 5 RANGKAIAN MOBIL ROBOT +5V
Dari Pemancar PC-817
1
220
10K 4
+5V 2
3
+5V
Dari Pemancar PC-817
1
220
+6V
RA0 RB0
10K 4
RA1
SERVO
+5V 2
3
RA2 +6V RB1 +5V
Dari Pemancar 220
RA3
PC-817
1
10K 4
+5V 2
3
PIC16F84/A
+5V
Dari Pemancar 1
220
PC-817
10K 4
+5V 2
3
SERVO
File ini merupakan iklan dari file sesungguhnya. Adanya halaman yang dikosongkan memang disengaja. Jika anda tertarik dengan special report ini, anda dapat membelinya melalui :
Naufal Micro & Robotics Email :
[email protected] HP/SMS : 081 293 295 12 Harga Rp.50.000,Transfer ke Rekening Bank Mandiri cabang Cikarang A.n Moh.Ibnu Malik No.Rek : 156 – 000 – 01 – 8944 – 1