PROFIL PENULIS
Meirani Fitria
Lahir di Bandung tanggal 1 Mei 1986. Menamatkan TK di Teratai Mekar (1992), menamatkan pendidikan SD di SDN Banjarsari V Bandung (1998), menamatkan pendidikan SLTP di SLTP Angkasa Lanud Husein Sastranegara Bandung (2001), menamatkan pendidikan SLTA di SMU Angkasa Lanud Husein Sastranegara Bandung (2004), dan melanjutkan studi S1 pada Jurusan Teknik Komputer di Universitas Komputer Indonesia (2005). Mengerjakan Tugas Akhir dengan judul Perancangan Prototype Robot Humanoid mulai September 2010- Februari 2011. Aktif sebagai asisten dosen pada Lab. Fisika Dasar I dan Fisika Dasar II Universitas Komputer Indonesia. Bidang robotika adalah hal yang baru bagi saya, memberi banyak ilmu dan pengalaman selama keikutsertaan menjadi bagian dari tim robotika UNIKOM.
e-mail : m3y_za@yahoo.co.id
Alamat : Jl.Gg. Cicendo No.5/5 B RT 03/02 Bandung 40117
ix
ABSTRAK
Berdasarkan jenisnya robot terbagi menjadi enam jenis yaitu mobile robot atau robot bergerak, robot manipulator tangan, robot humanoid, robot berkaki, flying robot atau robot terbang, dan under water robot atau robot dalam air. Disetiap jenisnya robot mempunyai fungsi yang berbeda-beda karena bentuk dari masing-masing robot tidak sama. Humanoid robot merupakan robot yang memiliki kemampuan bergerak maju yang menyerupai manusia dan memiliki pergerakan yang lebih kompleks.
Dilihat dari jenis robot tersebut, maka robot berkaki yang sudah ada di Unikom, hanya memiliki enam dan empat kaki dengan gerak motor DC. Untuk mengembangkan robot ini maka dirancang robot berkaki dua atau disebut juga dengan humanoid robot yang memiliki tiga derajat kebebasan. Yang dimaksud dengan tiga deajat kebebasan adalah pergerakan dari satu posisi ke posisi lain, misalnya memiliki sumbu x, y, z. Penggerak utama robot ini adalah menggunakan motor servo, hal ini bertujuan untuk memberikan kemudahan dalam pengaturan pergerakan kaki.
Berdasarkan uji coba dan analisis yang dilakukan telah berhasil dibuat prototype robot berkaki dua yang mampu bergerak maju. Dalam pergerakan maju lurus dalam jarak 40 cm memiliki rata-rata tingkat keberhasilan 91.27%, dengan error jalan melenceng yang didapat adalah 4.7 cmterdapat pada kaki kanan.
x
ABSTRACT
Based on the type of robot is divided into six types of mobile robots or mobile robots, robotic manipulator arms, humanoid robots, legged robots, flying robots or flying robots, and under water robot or robots in the water. Each type of robot has a different function because the shape of each robot is not the same. Humanoid robots are robots that have the ability to move forward that resemble human beings and have a more complex movements.
Viewed from the types of robots, the legged robot that is already in hemistry, have only six and four feet with the motion of a DC motor. To develop the robot is then designed a two-legged robot or a humanoid robot known as having three degrees of freedom. What is meant by three deajat freedom is the movement from one position to another, for example, has the axis x, y, z. Prime mover of this robot is to use servo motors, it aims to facilitate the movement of the feet setting.
Based on testing and analysis has successfully created a prototype biped robot that can move forward. In a straight forward movement within a range of 40 cm has an average success rate of 91.27%, with off road Found error was 4.7 cm, found on the right foot in time of 21:36 seconds.
1
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Dari berbagai bentuk robot berkaki yang telah ada di UNIKOM, penulis mencoba mengembangkan salah satunya robot berkaki dengan dua kaki atau disebut juga dengan humanoid robot. Gerak humanoid robot ini membutuhkan sistem keseimbangan yang baik karena pada saat satu kaki mengangkat maka kaki yang satunya harus dapat menyeimbangkan. Jadi dibutuhkan algoritma gerak yang baik.
Satu kaki pada humanoid robot ini menggunakan tiga DOF (Degree of Freedom) yaitu merupakan robot dua kaki dimana robot ini dapat naik, turun, dan miring. DOF ini juga digunakan untuk keseimbangan dari naik, turun, dan miring.
Penggerak utama akan menggunakan motor servo, hal ini berujuan untuk memberikan kemudahan dalam pengaturan pergerakan kaki. Pemilihan menggunakan banyaknya servo ditentukan oleh DOF yang akan dipakai.
Hal tersebut yang mendasari penulis untuk menyusun tugas akhir yang bertujuan untuk merancang atau membangun humanoid robot yang dapat bergerak maju.
1.2 Maksud dan Tujuan
Maksud dan tujuan dari penelitian ini adalah:
1. Penelitian ini bertujuan untuk membuat robot berkaki dengan tiga derajat kebebasan.
2. Menganalisis pergerakan kaki maju.
2 1.3 Batasan Masalah
Pada perancangan dan pengendalian pergerakan robot berkaki ini atau disebut juga dengan humanoid robot dibatasi oleh beberapa ketentuan, yakni :
1. Pergerakan robot berkaki 2 (dua) ini menggunakan 8 (delapan) servo, masing-masing kaki memiliki empat buah motor servo.
2. Pencapaian dasar yang diinginkan adalah robot mampu bergerak maju. 3. Aktuator yang digunakan adalah motor servo standar dengan kecepatan
0.20sec/ 60o (4.8V) sampai dengan 0.17sec/ 60o (6V), dengan torque 10 kg/ cm (4.8V) sampai dengan 12 kg/ cm (6V).
1.4 Metodologi Penelitian
Metodologi penelitian yang penulis lakukan adalah eksperimental dengan tahapan sebagai berikut:
1. Studi literature dan studi lapangan
Merupakan suatu metode pengumpulan data dengan cara membaca atau mempelajari buku-buku yang berhubungan dengan masalah yang menjadi topik dalam skripsi.
2. Perancangan
Yaitu mengaplikasikan teori yang didapat dari study pustaka dan dari hasil bimbingan, sehingga tersusun suatu perancangan sistem untuk bagian perangkat keras dan perangkat lunak.
3. Analisis dan Pengujian
3 1.5 Sistematika Penulisan
Adapun sistematika penulisan pada tugas akhir ini adalah: BAB I. PENDAHULUAN
Dalam bab ini membahas mengenai latar belakang, maksud dan tujuan penulisan, batasan masalah, metoda penulisan dan sistematika penulisan.
BAB II. LANDASAN TEORI
Dalam bab ini membahas tentang teori-teori dasar yang behubungan dengan perancangan serta alasan-alasan pemilihan komponen pembangun robot.
BAB III. PERANCANGAN SISTEM
Dalam bab ini membahas tentang perancangan dan pengendalian pergerakan robot berkaki 2 (dua) dengan menggunakan 8 (delapan) servo.
BAB IV. UJI COBA DAN ANALISIS SISTEM
Dalam bab ini membahas tentang cara kerja robot, menganalisis pergerakan robot.
BAB V. SIMPULAN DAN SARAN
Dalam bab ini berisi simpulan dan saran yang didapat selama penelitian.
4
BAB II
LANDASAN TEORI
Berdasarkan jenisnya robot terbagi menjadi enam yaitu :
1. Robot Mobil (Bergerak) yang bisa berpindah tempat.
Robot Mobil atau Mobile Robot yang terdapat pada Gambar 2.1 adalah konstruksi robot yang ciri khasnya adalah mempunyai aktuator berupa roda untuk menggerakkan keseluruhan badan robot tersebut, sehingga robot tersebut dapat melakukan perpindahan posisi dari satu titik ke titik yang lain. Robot mobil ini sangat disukai bagi orang yang mulai mempelajari robot. Hal ini karena membuat robot mobil tidak memerlukan kerja fisik yang berat. Untuk dapat membuat sebuah robot mobile minimal diperlukan pengetahuan tentang mikrokontroler dan sensor-sensor elektro [4]. Contoh robot mobil bergerak sebagai berikut :
Gambar 2.1 Contoh Robot mobil bergerak 2. Robot Manipulator ( tangan )
5 Gambar 2.2 Contoh Robot Manipulator Tangan
3. Robot Humanoid
Pada Gambar 2.3 yaitu robot yang miliki kemampuan menyerupai manusia, baik fungsi maupun cara bertindak, contoh robot ini adalah Ashimo yang dikembangkan oleh Honda [4]. Contoh Robot Humanoid sebagai berikut :
Gambar 2.3 Contoh Robot Humanoid 4. Robot Berkaki
6
Gambar 2.4 Contoh Robot Berkaki
5. Flying Robot (Robot Terbang)
Pada Gambar 2.5 yaitu robot yang mampu terbang, robot ini menyerupai pesawat model yang deprogram khusus untuk memonitor keadaan di tanah dari atas, dan juga untuk meneruskan komunikasi [4]. Contoh Flying Robot (Robot Terbang) sebagai berikut :
Gambar 2.5 Contoh Flying Robot(Robot Terbang)
6. Under Water Robot (Robot dalam air)
7
Gambar 2.6 Contoh Under Water Robot (Robot dalam air)
Dalam bab ini akan dijelaskan mengenai teori-teori penunjang untuk perancangan robot berkaki baik teori perangkat keras maupun perangkat lunak yang akan digunakan, sebagai berikut:
2.1 PERANGKAT KERAS ( hardware ) 2.1.1. Mikrokontroler Scenix SX28AC/DP
Mikrokontroler menjadi sangat penting sebagai pengambil keputusan. Pergerakan robot diatur oleh mikrokontroler berdasarkan hasil pemindahan tempat robot berada yang dilakukan oleh sensor-sensor. Mikrokontroler yang digunakan pada robot ini adalah Scenix SX28AC/DP dengan modul pengendali Basic Stamp.
Beberapa alasan utama pemilihan mikrokontroler Scenix SX28AC/DP: 1. Bahasa pemrograman yang sederhana membuat pengembangan menjadi
lebih cepat.
2. Kecepatan tinggi dengan frekuensi clock 50 MHz. 3. Mampu mengeksekusi 10000 instruksi/detik.
8 7. Rentang tegangan (Vcc) yang digunakan antara 3.0 – 5.5 volt tetapi
umumnya menggunakan level tegangan 5 volt.
8. Suplai arus yang melewati Vcc maksimal sebesar 130 mA. Fitur-fitur lain yang dimiliki Scenix SX28AC/DP adalah: 1. 13.3 ns untuk satu siklus instruksi
2. Merupakan mikrokontroler RISC, sehingga memiliki 43 single-word instruksi dasar.
3. 8-bit Real Time Clock/Counter (RTCC) dengan 8-bit prescaler terprogram.
4. Komparator analog yang terdapat pada port B (RB0 out, RB1 IN-, dan RB2 IN+).
5. Watchdog Timer dengan isolator internal yang mempunyai frekuensi antara 31,25 kHz sampai 4 MHz.
6. Kemasan fisik 28 pin DIP (Dual Inline Package).
Gambar 2.7 Diagram blok SX28AC/DP
9 pengaksesan data dari memori program. Keuntungan dari arsitektur ini adalah transfer instruksi fetch dan memori dapat di overlap dengan sebuah multi-stage pipeline (fetch, decode, execute dan write back), yang berarti instruksi selanjutnya dapat di-fetch dari memori program ketika instruksi sekarang sedang dieksekusi menggunakan data dari memori data [2].
2.1.2. Deskripsi pin-pin SX28AC/DP
Pada SX28AC/DP memiliki port untuk input/output sensor-sensor dan aktuator sebanyak 20 pin, yang terdiri dari 4 pin sebagai port A, 8 pin sebagai port B, dan 8 pin sebagai port C. Khusus untuk port A (pin 6, 7, 8, dan 9) digunakan sebagai port I/O jalur pemrograman mikrokontroler. Pin 6 dan pin 7 secara berturut-turut berfungsi sebagai jalur data serial, dan input clock serial. Pin 8 dan pin 9 berfungsi sebagai pin reset atau pin Vpp pada saat mode pemrograman. Komunikasi serial atau USB dapat digunakan untuk mengisikan program ke mikrokontroler [8].
1
Gambar 2.8 Konfigurasi pin SX28AC/DP
10
Tabel 2.1.Deskripsi pin SX28AC/DP No.
Pin Nama
Tipe
Pin Level Input Fungsi
1 RTCC I ST Input to Real-Time Clock/Counter
2 Vdd P - Tegangan sumber 5 volt
3 n.c. No connection
4 Vss P - Ground
5 .c. No connection
6 RA0 I/O TTL/CMOS
Pin I/O dua arah;
Symmetrical source/sink capability
7 RA1 I/O TTL/CMOS
Pin I/O dua arah;
Symmetrical source/sink capability
8 RA2 I/O TTL/CMOS Pin I/O dua arah;
Symmetrical source/sink capability
9 RA3 I/O TTL/CMOS Pin I/O dua arah;
Symmetrical source/sink capability
10 RB0 I/O TTL/CMOS/ST
Pin I/O dua arah; comparator output; MIWU/Interrupt input
11 RB1 I/O TTL/CMOS/ST Pin I/O dua arah; comparator negative
input; MIWU/Interrupt input
12 RB2 I/O TTL/CMOS/ST Pin I/O dua arah;
comparator positive input; MIWU/Interrupt input
13 RB3 I/O TTL/CMOS/ST Pin I/O dua arah; MIWU/Interrupt input
14 RB4 I/O TTL/CMOS/ST Pin I/O dua arah; MIWU/Interrupt input
15 RB5 I/O TTL/CMOS/ST Pin I/O dua arah; MIWU/Interrupt input
16 RB6 I/O TTL/CMOS/ST Pin I/O dua arah; MIWU/Interrupt input
17 RB7 I/O TTL/CMOS/ST Pin I/O dua arah; MIWU/Interrupt input
18 RC0 I/O TTL/CMOS/ST Pin I/O dua arah
11
20 RC2 I/O TTL/CMOS/ST Pin I/O dua arah
21 RC3 I/O TTL/CMOS/ST Pin I/O dua arah
22 RC4 I/O TTL/CMOS/ST Pin I/O dua arah
23 RC5 I/O TTL/CMOS/ST Pin I/O dua arah
24 RC6 I/O TTL/CMOS/ST Pin I/O dua arah
25 RC7 I/O TTL/CMOS/ST Pin I/O dua arah
26 OSC2 O CMOS Output osilator kristal – dalam mode R/C
27 OSC1 I ST Input osilator kristal – input sumber clock
eksternal
28 MCLR I ST Master Clear reset input – active low
Catatan: I = Input, O = Output, I/O = Input/Output, P = Power, TTL = TTL input,
CMOS = CMOS input, ST = Schmitt Trigger input, MIWU = Multi-Input Wakeup input
2.1.3. Organisasi memori
Memori pada SX28AC/DP terbagi menjadi dua blok memori, yaitu memori program dan memori data. Ukuran memori program adalah 2k word dengan lebar 12-bit word yang merupakan memori bersifat Erasable Electrical Programmable Read Only Memory (EEPROM). Sedangkan ukuran memori data sebesar 136 bytes pada RAM, dikelompokkan menjadi 8 bank dari 16 register dan 8 register not bank. Keduanya bisa dialamati baik secara langsung maupun tidak langsung menggunakan file select register (FSR). Special-function register dipetakan ke dalam memori data [8].
2.1.4 Modul Penggerak
12 2.1.4.1. Motor Servo Standard
Sebuah motor servo standard adalah alat yang dapat mengendalikan posisi, dapat membelokkan dan menjaga suatu posisi berdasar penerimaan pada suatu signal elektronik itu. Karena motor DC servo merupakan alat untuk mengubah energi listrik menjadi energi mekanik, maka magnit permanent motor DC servolah yang mengubah energi listrik ke dalam energi mekanik melalui interaksi dari dua medan magnit. Salah satu medan dihasilkan oleh magnit permanent dan yang satunya dihasilkan oleh arus yang mengalir dalam kumparan motor. Resultan dari dua medan magnit tersebut menghasilkan torsi yang membangkitkan putaran motor tersebut. Saat motor berputar, arus pada kumparan motor menghasilkan torsi yang nilainya konstan [9].
Motor servo merupakan sebuah motor dc kecil yang diberi sistem gear, rangkaian kontrol dan potensiometer sehingga dia dapat
menempatkan ”horn” yang dikehendaki bisa dipertanahankan.
Fungsi potensiometer adalah untuk menentukan batas sudut dari putaran servo. Sedangkan sudut dari sumbu motor servo diatur berdasarkan lebar pulsa yang dikirim melalui kaki sinyal dari kabel motor.
Gambar 2.9 menunjukkan bagian-bagian dari sebuah motor servo standard. Adapun bagian-bagian tersebut adalah sebagai berikut:
1) Konektor yang digunakan untuk menghubungkan motor servo kepada suatu sumber (Vdd dan Vss) dan suatu sumber signal I/O yang diletakkan pada BASIC Stamp.
2) Kabel menghubungkan Vdd, Vss dan garis signal dari konektor ke dalam motor servo itu.
13 4) Cassing berisi bagian untuk mengendalikan kerja motor servo yang pada dasarnya berupa motor DC dan gear. Bagian ini bekerja untuk menerima instruksi dari BASIC Stamp dan mengkonversinya ke dalam sebuah pulsa untuk menentukan arah/posisi servo.
( 1) Konektor ( 2) Kabel ( 3) Tuas ( 4) Cassing
Gambar 2.9 Servo Standar
Pada umumnya standard servo mempunyai 3 warna kabel, yaitu: 1. warna merah menandakan positif
2. warna coklat menandakan negatif 3. warna orange menandakan inputan data
2.1.5. Catu daya
Setiap rangkaian elektronik didesain untuk beroperasi pada tegangan tertentu dalam keadaan konstan. Regulator tegangan menyediakan output tegangan dc yang konstan dan secara terus menerus menahan tegangan output pada nilai yang diinginkan. Regulator ini hanya dapat bekerja jika tegangan input (Vin) lebih besar daripada tegangan output (Vout). Biasanya perbedaan tegangan input dengan output yang direkomendasikan tertera pada datasheet komponen tersebut.
14 ini dibuat terpisah agar pada saat motor servo mengambil arus yang besar, sehingga sumber arus yang dipergunakan oleh mikrokontroler tidak berkurang [5].
Gambar 2.10 Rangkaian Regulator
2.2 PERANGKAT LUNAK (Software)
Perangkat lunak merupakan faktor penentu paling akhir dalam tahap perancangan robot. Perangkat lunak ini berupa algoritma gerak dan tugas robot dalam bentuk listing program yang ditanamkan ke dalam mikrokontroler. Program dapat bermacam-macam bentuk versi dan bahasa pemrogramannya, sesuai dengan spesifikasi dari mikrokontroler yang digunakan [8].
2.2.1 Mikrokontroler SX28AC/DP
Mikrokontroler SX28AC/DP adalah jenis mikrokontroler yang didalamnya sudah terdapat interpreter chip. Di dalam interpreter chip sudah terdapat program kecil yang berfungsi untuk menginterpretasikan program yang ditulis di dalam Basic Stamp Editor. Bahasa pemrograman yang digunakan untuk mengisikan program ke dalam mikrokontroler ini adalah Bahasa PBasic, yang bahasa pemrogramannya hampir sama dengan bahasa Basic [8].
2.2.2. Ringkasan Instruksi
15 Berikut ini beberapa instruksi-instruksi dasar yang dapat digunakan pada mikrokontroler basic stamp dengan type BS2SX [8].
Tabel 2.2. Beberapa instruksi dasar BS2SX
Instruksi Keterangan
DO…LOOP Perulangan
GOSUB Memanggil prosedur
IF…THEN Percabangan
SELECT…CASE Pencabangan
FOR..NEXT Perulangan
HIGH Menset pin I/O menjadi 1
LOW Menset pin I/O menjadi 0
PAUSE Delay atau waktu tunda
PWM Konversi suatu nilai digital ke keluaran analog lewat pulse-width modulasi
COUNT Menghitung jumlah pulsa (0-1-0 atau 1-0-1)
PULSOUT Membangkitkan pulsa
PULSIN Menerima/membaca pulsa yang diterima GOTO Menuju/loncat ke alamat memori tertentu
2.2.3. Editor Basic Stamp
16
Gambar 2.11 Tampilan Program Basic Stamp Editor
Dari jendela editor basic stamp di atas terdapat beberapa bagian, diantaranya menu dan toolbar yang digunakan untuk melakukan operasi file seperti New, Open, Save, serta pengeditan listing program yang sedang dirancang. Gambar 2.12 merupakan bagian menu dan toolbar pada editor basic stamp.
Gambar 2.12 Tampilan Menu/ToolBar Editor Basic Stamp
17
Gambar 2.13 Contoh tampilan tab editor dengan 4 file terbuka
Gambar 2.14 berikut memperlihatkan editor/lembar kerja dari editor Basic Stamp. Disinilah tempat penulisan listing program yang akan dibuat. Adapun warna-warna tulisan seperti yang terlihat dibawah tidak diwarnai secara manual, melainkan secara otomatis akan dilakukan oleh software sesuai dengan ketentuan penulisan listing program.
Gambar 2.14 Contoh editor Basic Stamp
2.2.4. Cara Pembuatan program
18 yang akan kita gunakan pada toolbar, seperti yang terlihat pada gambar 2. berikut :
Gambar 2.15 Icon type Basic Stamp dan versi bahasa PBASIC
Gambar 2.16 Tampilan jenis Basic Stamp dan versi bahasa PBASIC pada editor
Setelah menentukan tipe/jenis Basic Stamp dan versi bahasa PBASIC yang akan digunakan, dilanjutkan dengan penulisan listing program. Ketentuan penulisan Listing program tergolong cukup mudah dan dapat diselesaikan dalam waktu yang relatif singkat, karena menggunakan bahasa pemrograman tingkat tinggi yakni PBASIC yang bahasa pemrogramannya hampir sama dengan BASIC. Dalam penulisan Listing program dapat ditambahkan komentar yang dapat membantu proses pengeditan jika terjadi kesalahan dengan algoritma program yang dibuat. Gambar 2.17 berikut ini contoh tampilan editor basic stamp yang berisi potongan program lengkap dengan deklarasi variabel dan komentar [8].
19 Gambar 2.17 Contoh tampilan editor Basic Stamp yang berisi potongan
program
Dalam perancangan perangkat lunak, ada beberapa instruksi-instruksi umum yang sering digunakan, seperti perulangan, percabangan dan rutin/prosedur. Berikut ini ditunjukkan cara-cara penggunaan instruksi-instruksi umum pada mikrokontroler basic stamp.
1. Perulangan
Ada beberapa cara perulangan yang dapat digunakan pada mikrokontroler Basic Stamp, diantaranya :
FOR…NEXT (perulangan yang dibatasi)
Contoh :
FOR i = 1 to 150 awal perulangan Pulsout 1, 1000
20 DO…LOOP (perulangan secara terus menerus)
Contoh :
DO awal perulangan Pulsout 1, 1000
Pulsout 2, 2000 isi perulangan Pause 20
LOOP akhir perulangan
Perulangan DO…LOOP ini selain dapat digunakan untuk perulangan
tanpa batas dapat juga digunakan pada perulangan yang dibatasi. Untuk jumlah perulangan yang dibatasi tinggal menambahkan UNTIL dengan
syarat perulangan pada instruksi DO…LOOP. Contohnya :
DO awal perulangan Pulsout 1, 1000
Pulsout 1, 700 isi perulangan Pause 20
n = n + 1
LOOP UNTIL n = 5 akhir perulangan 2. Percabangan
Instruksi percabangan yang dapat digunakan pada mikrokontroler Basic Stamp ada beberapa jenis, diantaranya :
IF…THEN
Syntax : IF Condition THEN Statement(s)
ELSEIF Condition(s) THEN Statement(s)
ELSE
Statement(s) ENDIF
21 GOSUB belok2
LOOP UNTIL IRkanan=0 ELSEIF IRkiri=1 AND IRkanan=0 THEN
DO
GOSUB belok1 LOOP UNTIL IRkiri=i0 ELSE IRkiri=1 AND IRkanan=1 THEN
DO
GOSUB mundur
LOOP UNTIL IRkiri=0 OR IRkanan=0 ENDIF
SELECT…CASE
Syntax : SELECT Expression CASE Condition(s) Statement(s) CASE ELSE Statement(s) ENDSELECT Contoh : SELECT ruang
CASE 1 derajat=15 derajatmax=35 CASE ELSE derajat=12 derajatmax=33 ENDSELECT
22 3. Rutin/Prosedur
Prosedur merupakan sekumpulan instruksi yang karena berbagai pertimbangan dipisahkan dari program utama. Bagian-bagian di program utama akan memanggil prosedur, jadi mikrokontroler sementara akan meninggalkan aliran program utama untuk mengerjakan instruksi-instruksi dalam prosedur. Setelah selesai mengerjakan prosedur, maka mikrokontroler akan kembali ke aliran program utama.
Contoh :
Prosedur :
maju: nama prosedur
pulsout 3,700
pulsout 4,1000 isi prosedur pause 20
return keluar dari prosedur dan kembali ke baris instruksi setelah pemanggilan prosedur
Pemanggilan prosedur
……….. baris instruksi lainnya
………..
GOSUB maju baris instruksi pemanggilan prosedur
……….
4. Pengaksesan port I/O
Jumlah port I/O yang dapat digunakan pada mikrokontroler Basic Stamp berjumlah 16 buah, dimulai dari port 0 sampai port 15 yang masing-masing port dapat difungsikan sebagai input maupun output. Dalam pengaksesan (mengeset atau membaca) port I/O dapat langsung disebutkan/dituliskan nomor port I/O yang akan di akses.
Contoh :
23 2.3 Cara Memprogram Mengendalikan Servo
Sebuah motor servo dikendalikan oleh signal yang sangat tinggi. Signal pulsa tunda dikirimkan pada tiap-tiap 20 ms. Signal berlangsung selama 1 ms sampai 2 ms. Perintah PULSOUT dapat digunakan untuk mengirimkan sebuah pulsa dengan menggunakan BASIC Stamp pada pin I/O. Di bawah ini sintaksis perintah untuk PULSOUT:
PULSOUT Pin, Duration (PULSOUT Pin, Jangka waktu)
Mikrokontroler mengirimkan data berupa pulsa, yaitu data berupa perubahan HIGH dan LOW dengan jeda waktu pada sebuah pin, pin merupakan sesuatu yang dinamakan oleh BASIC Stamp sebagai I/O untuk mengirimkan dan menerima signal. Dengan mengirimkan pulsa antara 1ms ke 2ms 1/1000 sampai 2/1000 satuan detik untuk mengendalikan motor servo dengan manual.
Contoh program menggunakan perintah PULSOUT untuk mengirim pulsa
yang menginstruksikan posisi motor servo. FOR…NEXT pengulangan digunakan
untuk mengirim sebuah pulsa, sehingga menyebabkan motor servo untuk tetap menjaga suatu posisi dalam waktu tertentu.
Servotest.Bs akan membuat servo mulai pada jam 10:00 dan menjaga posisi itu sekitar tiga detik. Kemudian, program akan pindah menggerakkan motor servo searah jarum jam menuju jam 14:00 dan menjaga posisi itu sekitar tiga detik. Setelah itu, motor servo akan menjaga posisi pusat pada jam 12:00 sekitar tiga detik.
24 Untuk melakukan hal tersebut dapat menggunakan sebuah Servo Standard. Merek motor servo yang memiliki kekuatan berputar hanya pada jam 11:00 kemudian jam 13:00, atau mungkin untuk jam 9:00 dan kemudian 15:00. Ataupun bisa berputar kebalikan arah dan mulai searah jarum jam dengan sebelumnya berlawanan arah jarum jam. Tetapi jika servo dinilai untuk penggunaan dengan sebuah baterei 9 V, gerakan tuas motor servo mudah untuk diamati dan konsisten.
' {$STAMP BS2} ' {$PBASIC 2.5} counter VAR Word
Jam 10:00
FOR counter = 1 TO 150 PULSOUT 2, 1800 PAUSE 20
NEXT Jam 14:00
FOR counter = 1 TO 150 PULSOUT 2, 1000 PAUSE 20
NEXT Jam 12:00
FOR counter = 1 TO 150
PULSOUT 2, 1585
PAUSE 20 NEXT END
25 FOR counter = 1 TO 150
PULSOUT 2, 1000 PAUSE 20
NEXT
PULSOUT 2, 1800 (mengirimkan suatu pulsa yang berlangsung 1800 x 2µs. Menjadi 3600 µs atau 3,6 ms)
Gambar 2.19 Pemilihan diagram waktu untuk 3.6 ms pulsa. Tiap-Tiap 20 ms servo memasuk posisi jam 10:00
Gambar 2.19 disebut sebuah diagram pemilihan waktu. Itu menunjukkan suatu gambaran pulsa yang tinggi dan rendah dan berapa lama servo berlangsung. Pemilihan waktu pada diagram tidak menunjukkan banyaknya pulsa yang dikirimkan, tetapi itu memberi informasi tentang berapa lama pulsa yang tinggi dan rendah berlangsung. Masing-masing pulsa cukup untuk 2.0 ms dan dipisahkan oleh 20 ms waktu tunda jika sedang signal rendah.
FOR…NEXT pengulangan yang kedua mengirim 150 pulsa, tetapi waktu
ini, masing-masing pulsa hanya berlangsung 1.0 ms. Ini akan menginstruksikan motor servo untuk membelokkan ke jam 14:00 dan akan menjaga posisi sekitar 2.40 detik.
FOR COUNTER = 1 TO 150 PULSOUT 2, 1000
26 PULSOUT 2, 1000 (PULSOUT 2, 1000 mengirimkan suatu pulsa yang berlangsung 1000 x 2µs. Menjadi 2000 µs atau 2 ms)
Gambar 2.20 Pemilihan diagram waktu untuk 2.0 m pulsa. Tiap-Tiap 20 ms Servo masuk posisi jam 14:00
FOR…NEXT pengulangan terakhir mengirim 150 pulsa, masing-masing yang terakhir 1.5 ms. Ini instruksikan servo untuk pergi ke posisi pusatnya (jam 12:00) untuk sekitar 3.23 detik.
FOR counter = 1 TO 150 PULSOUT 2, 1580
PAUSE 20 NEXT
PULSOUT 2, 1580 (PULSOUT 2, 1580 mengirimkan suatu pulsa yang berlangsung 1580 x 2µs. Menjadi 3160 µs atau 3.16 ms)
Gambar 2.21 menunjukkan pemilihan diagram waktu untuk pulsa ini. Dengan waktu tunda/waktu yang rendah masih 20 ms dan lama pulsa dikirim sekarang 1.5 ms.
27 Pemilihan waktu dapat dilakukan juga dengan cara Matematis. Jika ingin mengkonversi waktu dari seperseribu detik untuk sebuah jangka waktu yang didapat menggunakan untuk PULSOUT, menggunakan persamaan ini:
Duration = number of ms x 1800 ……….(2.1) (Jangka waktu = jumlah m x 1800)
Sebagai contoh, jika tidak diketahui bahwa PULSOUT untuk 1.5 ms adalah 1000, dapat dikalkulasi sebagai berikut:
Duration = 1.5 x 1000 = 1500
Dapat juga menghitung jangka waktu dari perintah PULSOUT dengan menggunakan persamaan ini:
number of ms =durationms
500 ………...(2.2)
Sebagai contoh, lihat perintah PULSOUT 2, 1580, untuk mengerjakan pulsa itu yang terakhir adalah sebagai berikut:
number of ms ms 500 1580
= 3.16 ms
Putaran akan menyesuaikan posisi dan pegangan waktu masing-masing
pengulangan FOR…NEXT. Pengulangan adalah apa yang dikendalikan dan
28 modifikasi semua FOR...NEXT pengulangan sedemikian sehingga servo melaksanakan sebanyak program yang asli:
FOR counter = 1 to 500
2.4. Matrik
2.4.1. Pengenalan Matrik
Notasi suatu matrik berukuran n x m ditulis dengan huruf besar dan dicetak tebal,misalnya An×m. Huruf n menyatakan jumlah baris, dan huruf m jumlah kolom. Matrik terdiri dari elemen-elemen matrik yang dinyatakan dengan huruf kecil diikuti angka-angka indeks, misalnya aij , dimana i menunjukan posisi baris ke-i dan j menentukan posisi kolom ke-j.
...(2.3)
Contoh 1: Matrik A2×3
dimana masing-masing elemennya adalah a11 = 3, a12 = 8, a13 = 5, a21 = 6,
a22 = 4, dan a23 = 7.
Contoh 2: Matrik B3×2
29 2.4.2. Jenis-jenis matrik
Berdasarkan ordonya terdapat matrik sebagai berikut:
1) Matrik Bujursangkar
Matrik bujursangkar adalah matrik yang jumlah baris dan jumlah kolomnya sama.
Contoh 4: Matrik bujursangkar berukuran 3x3 atau sering juga disebut matrik bujursangkar orde 3
2) Matrik Simetrik
Matrik simetrik adalah matrik bujursangkar yang elemen-elemen matrik A bernilai sama dengan matrik transpose-nya (At).
Contoh 5: Matrik simetrik
3) Matrik Diagonal
Matrik diagonal adalah matrik bujursangkar yang seluruh elemen-nya bernilai 0 (nol), kecuali elemen-elemen diagonalnya.
30 4) Matrik Diagonal Dominan
Matrik diagonal dominan adalah matrik bujursangkar yang memenuhi dimana i=1,2,3,..n.
Coba perhatikan matrik-matrik berikut ini
Pada elemen diagonal aii matrik A, |7| > |2| + |0|, lalu |5| > |3| +
|−1|, dan |−6| > |5| + |0|. Maka matrik A disebut matrik diagonal dominan. Sekarang perhatikan elemen diagonal matrik B, |6| < |4| +
|−3|, |−2| < |4| + |0|, dan |1| < |−3| + |0|. Dengan demikian, matrik B bukan matrik diagonal dominan.
5) Matrik Identitas
Matrik identitas adalah matrik bujursangkar yang semua elemen-nya bernilai 0 (nol), kecuali elemen-elemen diagonal yang seluruhnya bernilai 1.
Contoh 7: Matrik identitas orde 3
...(2.4)
6) Matrik Upper-triangular
Matrik upper-tringular adalah matrik bujursangkar yang seluruh elemen dibawah elemen diagonal bernilai 0 (nol).
31 7) Matrik Lower-triangular
Matrik lower-tringular adalah matrik bujursangkar yang seluruh elemen diatas elemen diagonal bernilai 0 (nol).
Contoh 9: Matrik lower-triangular
8) Matrik Tridiagonal
Matrik tridiagonal adalah matrik bujursangkar yang seluruh elemen bukan 0 (nol) berada disekitar elemen diagonal, sementara elemen lainnya bernilai 0 (nol).
Contoh 10: Matrik tridiagonal
9) Transpose Matrik
Operasi transpose terhadap suatu matrik akan menukar posisi kolom menjadi posisi baris demikian pula sebaliknya. Notasi matrik tranpose adalah AT atau At.
32 2.4.3. Operasi Matrik dan Sifat-sifatnya
1. Penjumlahan dan Pengurangan Dua Matrik
Pengertian penjumlahan matrik: jika A + C = D, maka elemen-elemen D diperoleh dari penjumlahan elemen-elemen A dan C yang seletak, yaitu: dij = aij + cij untuk elemen D pada baris ke-i dan kolom ke-j. Akibatnya matrik A da C dapat dijumlahkan apabila kedua matrik memiliki ordo yang sama.
Dijumlahkan dengan matrik A2×3, lalu hasilnya (misalnya) dinamakan matrik D2×3
Tanpa mempedulikan nilai elemen-elemen masing-masing matrik, operasi penjumlahan antara matrik A2×3 dan C2×3, bisa juga dinyatakan dalam indeks masing-masing dari kedua matrik tersebut, yaitu:
33 Sifat-sifat penjumlahan matrik:
a. A + B = B + A (hukum komutatif untuk penjumlahan)
Pengertian pengurangan matrik: jika A - B = C, maka elemen-elemen C diperoleh dari pengurangan elemen-elemen A dan B yang seletak, yaitu : cij = aij + bij atau pengurangan matrik ini dapat dipandang sebagai
2. Perkalian Matrik Dengan bilangan Real (Skalar)
Matrik A dikalaikan dengan suatu bilangan real k maka kA diperoleh dari hasil kali setiap elemen A dengan k.
Contoh: P = hingga dapat dilakukan operasi hitung berikut; maka berlaku sifat-sifat perkalian matrik dengan skalar:
34 didefinisikan tapi AmxnBnxp tidak dapat didefinisikan.
= mxp
AB
...(2.6)
Perhatikan bahwa hasil matrik AB berordo mxp.
Elemen-elemen AB diperoleh dari hasil kali setiap baris pada matrik A dengan setiap kolom pada matrik B, kemudian dijumlahkan pada satu elemen.
Untuk lebih jelasnya berikut contoh-contohnya: Perkalian matrik 1xp dengan matrik px1:
B =
6 8 7
dan C Perkalian matrik px1 dengan matrik 1xp:
A =
35 Perkalian matrik mxn dengan matrik nxp:
A =
Perhatikan hal-hal berikut:
1) Pada umumnya AB BA (tidak komutatif)
Sifat-sifat perkalian matriks dengan matriks: 1. A(BC) = (AB)C
2.5 Transformasi Matrik
Untuk memindahkan suatu titik atau bangun pada sebuah bidang dapat dikerjakan dengan transformasi. Transformasi T pada suatu bidang memetakan
tiap titik P pada bidang menjadi P’ pada bidang itu pula. Titik P’ disebut
bayangan atau peta titik P. Adapun transformasi-transformasi dasar pada dua dimensi adalah:
1) Transalasi (pergeseran)
36 3) Skala (perubahan skala ukuran)
4) Refleksi (pencerminan) terhadap sumbu x atau sumbu y 5) Shear (skala proporsional) terhadap sumbu x atau sumbu y
Salah satu perbedaan transformasi dasar pada ruang tiga dimensi dengan ruang dua dimensi adalah membedakan rotasi terhadap masing-masing sumbu.
Matrik transformasi adalah matrik yang membuat sebuah obyek mengalami perubahan baik berupa perubahan posisi, maupun perubahan ukuran. Matrik transformasi 2D dinyatakan dalam ukuran 3x3, dimana kolom ke-3 digunakan untuk menyediakan tempat untuk proses translasi.
...(2.7)
2.6. Invers Matrik Ordo 3x3
Misalkan matriks A adalah matriks persegi berodo 3 yang berbentuk
A =
Berdasarkan kaidah Sarrus, nilai determinan matriks A ditentukan oleh :
Det A =
aei bfg cdh
ceg afh bdi
Penyelesaian Sistem Persamaan Liniear Tiga Variabel (Aturan Cramer)
37
BAB III
PERANCANGAN SISTEM
Setelah mengetahui yang menjadi kebutuhan dalam membangun sebuah robot, perlu dijelaskan lebih lanjut mengenai komponen-komponen pembangun robot.
3.1. PERANGKAT KERAS (Hardware)
Secara umum diagram blok dari sistem kendali robot berkakiyang dibangun adalah sebagai berikut :
SERVO 1
SERVO 2
SERVO 3
SERVO 4
SERVO 5
SERVO 6
SERVO 7
SERVO 8 MIKROKONTROLER
SX28AC/DP
Gambar 3.1 Diagram blok Sistem kendali
Dari blok diagram diatas dapat dijelaskan sebagai berikut :
Dari Gambar 3.1 dapat dilihat bahwa mikrokontroler mengontrol gerakan pada semua motor servo yang digunakan/terpasang pada sistem robot berkaki dua. Dari mikrokontroler dapat memutuskan untuk melakukan gerakan sesuai dengan program yang telah ditentukan.
38 sebuah pin, pin merupakan sesuatu yang dinamakan oleh BASIC Stamp sebagai I/O untuk mengirimkan dan menerima signal. Dengan mengirimkan pulsa antara 1ms ke 2ms 1/1000 sampai 2/1000 suatu detik/second untuk mengendalikan servo motor dengan manual [1].
3.1.1. Mikrokontroler Scenix SX28AC/DP
Pemilihan mikrokontroler ini didasarkan pada kecepatan eksekusi yang cepat, port I/O yang mencukupi dan kemudahan dalam pemrogramannya sehingga waktu pengembangan menjadi lebih cepat karena menggunakan bahasa tingkat tinggi. Konsekuensinya akan mengkonsumsi banyak instruksi assembler yang akan mengurangi kapasitas memori dan kecepatan eksekusi data [8].
Tabel berikut menunjukkan penggunaan pin-pin pada mikrokontroler Scenix SX28AC/DP:
Tabel 3.1 Pin-pin I/O yang digunakan pada SX28AC/DP Nama
Port
No. Pin
No. Pin I/O
Nama
Pin Fungsi Keterangan
PORT A
6 - RA0 I/O Data serial 7 - RA1 I/O Input clock serial 8 - RA2 I/O Komunikasi Serial 9 - RA3 I/O Komunikasi Serial
PORT B
10 0 RB0 I/O Servo 0
11 1 RB1 I Servo 1
12 2 RB2 I Servo 2
13 3 RB3 I Servo 3
14 4 RB4 I/O Servo 4
15 5 RB5 I Servo 5
16 6 RB6 O Servo 6
17 7 RB7 O Servo7
39 komunikasi serial (untuk mengisikan program melalui port A) dan sebagai port I/O pada port B dan C. Selain pin-pin di atas, terdapat pin yang berfungsi sebagai Vcc, ground, osilator, RTCC dan MCLR seperti terlihat pada gambar berikut :
40 3.1.2. Osilator
Osilator berfungsi untuk membangkitkan clock pada mikrokontroler. Pengaktifan sumber clock dapat dilakukan dengan menambahkan rangkaian pasif saja. Mikrokontroler Scenix SX28AC/DP memberi empat pilihan mode osilator eksternal, diantaranya: osilator berbasis kristal/resonator (XT), kristal daya rendah (LP), kristal/resonator kecepatan tinggi (HS), dan resistor-kapasitor (RC) baik internal maupun eksternal. Osilator eksternal yang digunakan adalah keramik resonator dengan mode HS karena mode ini untuk kategori osilator yang bekerja diatas frekuensi 4 kHz.
Jenis kapasitor yang digunakan adalah non-polar yang terbuat dari bahan keramik dan sangat cocok untuk aplikasi rangkaian pada frekuensi tinggi. Kapasitor 5 pF berfungsi untuk menstabilkan osilasi dan tahan terhadap gangguan noise [6].
50 MHz
OSC2 OSC1
5pF 26
27
SX28AC/DP
Gambar 3.3 Rangkaian osilator
3.1.3. Modul Penggerak
3.1.3.1 Motor Servo Standard
Untuk mempermudah membedakan motor servo yang satu dengan lainnya maka setiap motor servo telah ditentukan menggunakan satu pin dalam mikrokontrolernya. Yaitu sebagai berikut:
PIN 1 : kaki kiri tengah
PIN 2 : kaki kanan atas
PIN 3 : kaki kanan bawah bagian depan
41
PIN 5 : kaki kanan bawah bagian belakang
PIN 6 : kaki kiri bawah bagian belakang
PIN 14 : kaki kanan tengah
PIN 15 : kaki kiri atas
Berikut adalah gambar robot dilihat dari dua dimensi :
Gambar 3.4 Robot dua dimensi tampak depan
Gambar 3.5 Robot dua dimensi tampak samping kiri
Dalam pergerakan kaki robot, dengan ukuran kaki 25 cm ini ada tiga arah yang digunakan yaitu arah horizontal, vertikal, dan diagonal.
42 vektor F maka koordinat resultannya, dari transformasi matrik yang disebut fundamental rotation matrix [3]. Di dalam sebuah area R3 terdapat tiga kemungkinan pada sumbu seperti pada gambar berikut:
f , m3 3
f , m1 1
f , m2 2
0 ~1
0 ~3
0 ~2
Gambar 3.6 Arah rotasi dalam tiga dimensi
Seperti yang sudah diilustrasikan pada gambar di atas yang dianggap akan merotasikan sebuah koordinat pada frame M kira-kira menjadi sumbu f1 pada koordinat tetap F. Anggap jumlah dari rotasi yang akan diukur di dalam aturan arah ke kanan.
f m
3
3
f , m1 1
f m
2 2
p
q
43 Selanjutnya R1() menjadi resultan koordinat dari hasil transformasi matriks dimana menggambarkan pergerakan koordinat M terhadap sebuah koordinat tetap F. Transformasi ini bersesuian dengan rotasi sumbu x, y, dan z dengan sudut adalah:
Setelah merotasikan kira-kira f1 dalam suatu ukuran pergerakannaya maka f1 menjadi m1. Subtitusikan nilainya ke dalam persamaan 3.1 dan panggil kembali urutan (f1, f2, f3) dan (m1, m2, m3) dimana kesemuanya itu adalah orthonormal set yang akan mengikuti aturan rotasi matrik dasar.
R1() = vektor-vektor tersebut. Ketika vektor-vektor tersebut tidak normal dalam satuan panjangnya. Maka perkalian product akan sama dengan natara vektor tesebut. Berdasarkan gambar III.10 ini merupakan pembuktian dari sudt f2 yang menghasilakan sudut baru seperti ditunjukkan dari f3 ke m3. Konsekuensinya diagonal elemen-elemen tersebut berada dalam matrik 2x2 sama dengan ke cos . Dengan tujuan untuk mempresentasikan diagonal dari
44 untuk penjumlahan cos maka umumnya dari first fundamental rotation matrix direduksi menjadi: maka kira-kira kedua dan ketiga selanjutnya seperti berkut:
Arah rotasi dalam tuas kaki robot pada saat naik-turun adalah sebagai berikut:
100
45 3.1.5. Catu Daya
Catu daya adalah faktor pendukung yang sangat penting, karena mikrokontroler, sensor-sensor dan aktuator dapat bekerja karena adanya tegangan. Power supply yang dibutuhkan sebanyak dua buah, pertama untuk mencatu mikrokontroler dan tegangan maksimun sebesar 6 volt untuk mencatu kendali motor servo. Pemisahan tegangan ini dimaksudkan agar tegangan yang masuk ke mikrokontroler tidak terganggu oleh tegangan dari motor servo.
Tegangan yang digunakan berasal dari power supply. Karena arus yang diperlukan untuk motor servo sangat besar, sehingga arus yang digunakan mikrokontroler tidak berkurang. Maka dibuat juga sebuah regulator yang digunakan untuk motor servo terpisah dari yang digunakan oleh mikrokontroler dimana kedua regulator tersebut terhubung secara paralel dengan catu daya dari luar [6].
(a) (b)
Gambar 3.9 (a) IC Regulator LM323; (b) kapasitor polar
46
Gambar 3.10 Regulator 5V DC untuk motor servo
Gambar 3.10 merupakan regulator yang digunakan untuk mencatu tegangan motor servo. IC LM323 sebagai regulator tegangan positif akan menghasilkan tegangan output sebesar 5 Vdc yang merupakan hasil regulasi dari tegangan input 9 Vdc, kapasitor yang digunakan sebanyak dua buah. Hal ini dilakukan untuk mendapatkan arus yang lebih kuat lagi, karena arus yang dibutuhkan oleh motor servo sangat besar apalagi ketika melakukan switching putaran dari arah maju ke arah mundur atau sebaliknya [5].
3.2. PERANGKAT LUNAK (Software) 3.2.1 Algoritma Dasar
47 3.2.1.1. Maju
Gerakan kaki robot dengan arah horizontal, vertikal, dan diagonal yaitu: gerakan maju. Gerakan satu kali kaki robot maju dilakukan secara bergantian antara kaki kiri dan kaki kanan dimana satu kaki masing-masing terdiri dari empat servo. Kecepatan pergerakan antar kaki robot sama tetapi yang membedakan adalah durasi tiap motor servo pada tiap-tiap kaki. Untuk dapat menggerakkan kaki robot dengan gerakan satu kali maju lurus, pada mikrokontroler diberikan algoritma sebagai berikut :
Kaki kiribawahbelakang = miring ke kanan Kaki kananbawahbelakang = miring ke kiri Kaki kiriatas = naik Kaki kiritengah = naik
Kaki kiriatas = turun Kaki kiritengah = turun Kaki kiribawahdepan = nilaitengah Kaki kananbawahbelakang = nilaitengah Kaki kiribawahbelakang = nilaitengah
RETURN MULAI
Kaki kananbawahbelakang = miring ke kanan Kaki kiribawahbelakang = miring ke kiri Kaki kananatas = naik Kaki kanantengah = naik
Kaki kananatas = turun Kaki kanantengah = turun Kaki kiribawahbelakang = nilaitengah Kaki kananbawahbelakang = nilaitengah
Servo 6 (servo kaki kiribawahbelakang arah diagonal) = miring
Servo 5 (servo kaki kananbawahbelakang arah diagonal) = miring Servo 15 (servo kaki kiriatas arah vertikal ) = naik Servo 1 (servo kaki kiritengah arah vertikal) = naik
Servo 15 (servo kaki kiriatas arah horizontal) = turun Servo 1 (servo kaki kiritengah arah horizontal) = turun Servo 4 (servo kaki kiribawahdepan arah nol) =nilaitengah
Servo 5 (servo kaki kananbawahbelakang arah nol) =nilaitengah Servo 6 (servo kaki kiribawahbelakang arah nol) =nilaitengah
Servo 5 (servo kaki kananbawahbelakang arah diagonal) = miring
Servo 2 (servo kaki kananatas arah diagonal) = miring Servo 2 (servo kaki kananatas arah diagonal) = miring Servo 14 (servo kaki kanantengah arah verrtikal) = naik
Servo 2 (servo kaki kananatas arah horizontal) = turun
Servo 14 (servo kaki kanantengah arah horizontal) = turun Servo 6 (servo kaki kiribawahbelakang arah nol) = nilaitengah Servo 5 (servo kaki kananbawahbelakang arah nol) = nilaitengah
48 Putaran pada masing-masing motor servo berbeda yang disesuaikan dengan kebutuhan. Ini dimaksudkan agar kecepatan dapat diatur sesuai dengan kebutuhan, yakni antara 0.20s-0.17s. Kecepatan maksimum pada motor sebanding dengan nilai kecepatan 60o/s yang kita masukan dalam instruksi PULSOUT.
3.2.2. Algoritma Gerak Robot
49
MULAI
AWAL
KAKIKIRI
KAKIKANAN INISIALISASI INPUT DATA
KAKIKIRI1
I < = 2
Y
T
END
MEMULAI PROGRAM
MEMANGGIL PROSEDUR AWAL
MEMANGGIL PROSEDUR KAKIKIRI
MEMANGGIL PROSEDUR KAKIKANAN
MEMANGGIL PROSEDUR KAKIKIRI1
50 3.2.3. Prosedur Tegak Lurus
Kaki kananatas = nilaitengah
RETURN MULAI
Kaki kiriatas = nilaitengah
Kaki kanantengah= nilaitengah
Kaki kiritengah = nilaitengah
Kaki kananbawahdepan = nilaitengah
Kaki kiribawahdepan = nilaitengah
Kaki kananbawahbelakang = nilaitengah
Kaki kiribawahbelakang = nilaitengah
Servo 2 (servo kananatas ) = nilaitengah
Servo 15 (servo kiriatas ) = nilaitengah
Servo 14 (servo kananatas ) =nilaitengah
Servo 2 (servo kananatas ) = nilaitengah
Servo 3 (servo kananbawahdepan ) = nilaitengah
Servo 4 (servo kiribawahdepan ) = nilaitengah
Servo 5 (servo kananbawahbelakang ) = nilaitengah
Servo 6 (servo kiribawahbelakang ) = nilaitengah
51
BAB IV
UJI COBA DAN ANALISIS SISTEM
Analisis pada robot ini dilakukan dengan tujuan untuk mengetahui apakah algoritma yang telah dirancang dapat berfungsi/bekerja dengan baik sesuai dengan yang diharapkan. Pengujian dan analisis perangkat keras yang dilakukan pada bagian motor servo yang digunakan dalam sistem robot.
4.1 Motor Servo Standard
Sebuah motor servo dikendalikan oleh signal yang sangat tinggi berupa pulsa dengan waktu tunda yang menggunakan units in Duration BS2sx adalah 0.8 µs. Dengan perintah PULSOUT dapat digunakan untuk mengirimkan sebuah pulsa dengan menggunakan BASIC Stamp pada pin I/O. Di bawah ini sintaksis perintah untuk PULSOUT:
PULSOUT Pin, Duration (PULSOUT Pin, Jangka waktu)
Keterangan :
PULSOUT : menghasilkan pulsa pada Pin selama Duration yang akan menjadi input sensor.
Pin : sebuah variabel/konstanta/ekspresi (0-15) yang menetapkan pin I/O yang digunakan. Pin ini akan diset untuk mode output.
Duration : sebuah variabel/konstanta/ekspresi (0-65535) menetapkan lamanya waktu pulsa yang dihasilkan.
Pemilihan waktu dapat dilakukan juga dengan cara Matematis. Jika ingin mengkonversi waktu dari seperseribu detik untuk sebuah jangka waktu yang didapat menggunakan PULSOUT, dengan persamaan berikut:
52 (Jangka waktu = jumlah m x 1250)
Sebagai contoh, jika tidak diketahui bahwa PULSOUT untuk 0.8 µs adalah 1000, dapat dikalkulasi sebagai berikut, dimana 0.8 µs merupakan signal yang sangat tinggi berupa pulsa dengan waktu tunda yang menggunakan units in Duration BS2sx.
Duration = 0.8 x 1250 = 1000
Dapat juga menghitung jangka waktu perintah PULSOUT dengan menggunakan persamaan ini:
number of ms =durationms
1250 ...(4.2)
Sebagai contoh, lihat perintah PULSOUT 3,1000, untuk mengerjakan pulsa itu yang terakhir adalah sebagai berikut:
number of ms = 1250 1000
ms
= 0,8 ms
4.1.1. Cara kerja Pergerakan Kaki Tegak Lurus
1. Servo pada kaki kanan atas diberi nilai tengah servo yaitu pulsout, 1585
2. Servo pada kaki kiri atas diberi nilai tengah servo yaitu pulsout, 2200 3. Servo pada kaki kanan tengah diberi nilai tengah servo yaitu
pulsout, 1300
53 5. Servo pada kaki kanan bawah depan diberi nilai tengah servo yaitu
pulsout, 1140
6. Servo pada kaki kiri bawah depan diberi nilai tengah servo yaitu pulsout, 2200
7. Servo pada kaki kanan bawah belakang diberi nilai tengah servo yaitu pulsout, 1700
8. Servo pada kaki kiri bawah belakang diberi nilai tengah servo yaitu pulsout, 1500
4.1.2. Cara kerja Pergerakan Kaki Maju lurus
Lintasan yang digunakan dalam analisis ini adalah panjang 40 cm, lebar 18.5 cm, Robot begerak maju lurus dalam lintasan, berikut cara kerja robot maju lurus :
1. Servo pada kaki kiri bawah belakang diberi pulsout, 675 agar servo bergerak miring ke kanan
2. Servo pada kaki kanan bawah belakang diberi pulsout, 2070 agar servo bergerak miring ke kiri
3. Servo pada kaki kiri atas diberi pulsout, 2695 agar servo bergerak naik 4. Servo pada kaki kiri tengah diberi pulsout, 2086 agar servo begerak
naik
5. Servo pada kaki kiri atas diberi pulsout, 2690 agar servo bergerak turun 6. Servo pada kaki kiri tengah diberi pulsout, 1430 agar servo bergerak
turun
7. Servo pada kaki kiri bawah depan diberi pulsout, 2175 agar servo berada di posisi tengah nilai servo
8. Servo pada kaki kanan bawah belakang diberi pulsout, 1700 agar servo berada di posisi tengah nilai servo
9. Servo pada kaki kiri bawah belakang diberi pulsout, 1600 agar servo berada di posisi tengah nilai servo
54 11. Servo pada kaki kiri bawah belakang diberi pulsout, 1310 agar servo
bergerak miring ke kiri
12. Servo pada kaki kanan atas diberi pulsout, 1000 agar servo bergerak naik
13. Servo pada kaki kanan tengah diberi pulsout, 2150 agar servo begerak naik
14. Servo pada kaki kanan atas diberi pulsout, 1400 agar servo bergerak turun
15. Servo pada kaki kanan tengah diberi pulsout, 2400 agar servo bergerak turun
16. Servo pada kaki kiri bawah belakang diberi pulsout, 1600 agar servo berada di posisi tengah nilai servo
17. Servo pada kaki kanan bawah belakang diberi pulsout, 1700 agar servo berada di posisi tengah nilai servo
Adapun cara kerja dari keseluruhan robot berkaki dua atau humanoid robot ini yaitu :
1. Start robot mulai begerak dalam lintasan yang telah ditentukan 2. Inisialisasi input data yang akan digunakan.
3. Memanggil prosedur awal yaitu prosedur yang memberikan posisi awal servo.
4. Memanggil prosedur kakikiri pada program yang telah dibuat 5. Memanggil prosedur kakikanan pada program yang telah dibuat 6. Memanggil prosedur kakikiri1 pada program yang telah dibuat
7. Pergerakan kaki kanan dan kiri dilakukan berulang sampai lintasan akhir 40 cm.
55 Gambar 4.1. Skema pergerakan robot maju lurus dalam jarak 40 cm
Keterangan :
1. Awal : batas awal robot begerak 2. θ : perubahan sudut (°) 3. kakikanan : posisi kaki kanan robot 4. kakikiri : posisi kaki kiri robot 5. akhir : batas akhir robot bergerak
Dari persamaan berikut
y x
tan , dapat digunakan untuk mencari nilai sudut jalan melenceng dan error dari kaki robot masing-masing, dimana
x = jarak melenceng (cm)
y = jarak relatif posisi perpindahan kaki (cm)
56 Berikut adalah hasil dari percobaan maju lurus robot berkaki dua :
Tabel 4.1. Percobaan ke-1 maju lurus Maju Lurus
Percobaan
Maju1
Arah Kiri (cm) Arah Kanan (cm) Error (cm) Arah θ (°)
1 0 0 0 0
2 0 0 0 0
3 - 1.5 1.5 2
4 0 0 0 0
5 0 0 0 0
6 0 0 0 0
7 0 0 0 0
8 0 0 0 0
9 - 0.5 0.5 4
10 - 0.5 0.5 5
Total 0 2.5 2.5 11
Jika dihitung dalam derajat maka, diketahui error : 1. = arah kiri + arah kanan
= 1.5 cm
14 tan x
14 5 . 1 tan
107 . 0 tan
θ = 2° (error percobaan tiga) 2. = arah kiri + arah kanan
= 0.5 cm
57 20
5 . 0 tan
025 . 0 tan
θ = 4° (error percobaan ke sembilan) 3. = arah kiri + arah kanan
= 0.5 cm
18 tan x
18 5 . 0 tan
027 . 0 tan
θ = 5° (error percobaan ke sepuluh)
Tabel 4.2. Percobaan ke-1 Jalan melenceng Jalan melenceng1
Percobaan Arah Kiri (cm) Arah Kanan (cm) Arah θ (°)
1 0 0 0
2 0 0 0
3 - 1.5 2
4 0 0 0
5 0 0 0
6 0 0 0
7 0 0 0
8 0 0 0
9 - 0.5 4
10 - 0.5 5
58 Jika dihitung dalam derajat maka, diketahui jalan melenceng1 : 1. xkanan = 1.5 cm 2. Jalan melenceng1
59
Tabel 4.3. Percobaan ke-2 maju lurus Maju Lurus
Percobaan
Maju2
Arah Kiri (cm) Arah Kanan (cm) Error (cm) Arah θ (°)
1 - 1.2 1.2 9
2 0 0 0 0
3 0 0 0 0
4 0 0 0 0
5 0 0 0 0
6 0 0 0 0
7 1.4 - 1.4 8
8 0.5 - 0.5 3
9 - 1 1 6
10 0 0 0 0
Total 1.9 2.2 4.1 26
Jika dihitung dalam derajat maka, diketahui error : 1. = arah kiri + arah kanan
= 1.2 cm
24 tan x
24 2 . 1 tan
05 . 0 tan
θ = 9° (error percobaan ke satu) 2. = arah kiri + arah kanan
= 1.4 cm
60 30
4 . 1 tan
046 . 0 tan
θ = 8° (error percobaan ke tujuh) 3. = arah kiri + arah kanan
= 0.5 cm
32 tan x
32 5 . 0 tan
015 . 0 tan
θ = 3° (error percobaan ke delapan) 4. = arah kiri + arah kanan
= 1 cm
27 tan x
27 1 tan
037 . 0 tan
61
Tabel 4.4. Percobaan ke-2 Jalan melenceng
62
2. Jalan melenceng2 Kaki kiri = 1.9 cm Kaki kanan = 2.2 cm
Dari hasil tabel 4.1, tabel 4.2, tabel 4.3, dan tabel 4.4 maka didapat perhitungan persentase error sebagai berikut:
Rata-rata dari kedua percobaan jalur melenceng diatas didapat
∑ kakikiri = 0 cm + 1.9 cm
= 1.9 cm
64
BAB V
SIMPULAN DAN SARAN
5.1 Simpulan
Berdasarkan uji coba dan analisis sistem yang telah dilaksanakan, maka dapat diperoleh beberapa simpulan, diantaranya :
1. Telah berhasil dibuat prototype robot berkaki dua atau humanoid robot yang mampu bergerak maju, akan tetapi belum memiliki keseimbangan gerak.
2. Robot berjalan menggunakan tali sebagai bantuannya.
3. Robot dapat bergerak maju lurus dalam jarak 40 cm dan lebar 18.5 cm dengan tingkat error 8.25%.
4. Tingkat keberhasilan maju lurus dalam jarak 40 cm adalah 91.27%. 5. Tingkat error jalan melenceng yang didapat adalah 4.7 cm yang terdapat
pada kaki kanan.
5.2 Saran
Hasil penelitian ini masih jauh dari kesempurnaan dan memiliki banyak kekurangan, karena itu perlu dilakukan studi lebih lanjut dalam proses perancangan untuk menghasilkan robot berkaki dua atau humanoid robot yang handal. Adapun saran-saran dari penulis yang dapat dijadikan sebagai bahan pertimbangan dalam penelitian robot berkaki dua lebih lanjut adalah :
1. Perbaikan bentuk mekanik dan sistem kesetimbangan.
2. Karena jenis servo yang digunakan memiliki kekurangan, maka pengaturan saat pemberian pulsa saat servo bergerak harus diperhatikan. 3. Penambahan sensor-sensor perlu dilakukan untuk menghasilkan robot
viii
DAFTAR LAMPIRAN
Lampiran A : Listing Program
Program Tegak lurus ... 66 Program Motor Servo Standard ... 67 Lampiran B : Skematik Rangkaian
v
DAFTAR GAMBAR
Gambar 2.1. Robot Mobil bergerak ... 4
Gambar 2.2. Robot Manipulator tangan ... 5
Gambar 2.3. Robot Humanoid ... 5
Gambar 2.4. Robot Berkaki ... 6
Gambar 2.5. Flying Robot (Robot Terbang) ... 6
Gambar 2.6. Under Water Robot (Robot dalam air) ... 7
Gambar 2.7. Diagram Blok SX28AC/DP ... 8
Gambar 2.8. Konfigurasi Pin SX28AC/DP ... 9
Gambar 2.9. Servo Standard ... 13
Gambar 2.10. Rangkaian Regulator ... 14
Gambar 2.11. Tampilan program Basic Stamp Editor ... 16
Gambar 2.12. Tampilan menu/Toolbar Basic Stamp Editor ... 16
Gambar 2.13. Contoh tampilan tab editor dengan 4 file terbuka ... 17
Gambar 2.14. Contoh Basic Stamp Editor ... 17
Gambar 2.15. Icon Type Basic Stamp dengan versi bahasa PBASIC ... 18
Gambar 2.16. Tampilan jenis Basic Stamp dan versi bahasa PBASIC pada editor... 18
Gambar 2.17. Contoh tampilan Basic Stamp editor yang berisi potongan program... 19
Gambar 2.18. Tuas servo (kiri) menunjuk jam 10:00 ,(tengah) jam 14:00, (kanan) jam 12:00 ... 23
Gambar 2.19. Pemilihan diagram waktu untuk 3.6 ms pulsa. Tiap-Tiap 20 ms servo memasuk posisi jam 10:00 ... 25
Gambar 2.20. Pemilihan diagram waktu untuk 2.0 m pulsa. Tiap-Tiap 20 ms Servo masuk posisi jam 14:00 ... 26
Gambar 2.21. Pemilihan diagram waktu untuk 3.16 m pulsa Tiap-Tiap 20 ms tuas servo ada pada posisi jam 12:00 ... 26
Gambar 3.1 Diagram blok sistem kendali ... 37
Gambar 3.2 Alokasi fungsi pin mikrokontroler ... 39
vi
Gambar 3.4 Robot dua dimensi tampak depan ... 41
Gambar 3.5 Robot dua dimensi tampak samping kiri ... 41
Gambar 3.6 Arah rotasi dalam tiga dimensi ... 42
Gambar 3.7 Rotasi M terhadap f1dari sudut ... 42
Gambar 3.8 Tuas kaki robot saat naik-turun ... 44
Gambar 3.9 (a) IC Regulator; (b) kapasitor polar ... 45
Gambar 3.10 Regulator 5V DC untuk motor servo ... 46
Gambar 3.11 Diagram alir gerak maju ... 47
Gambar 3.12 Diagram alir gerakan robot ... 49
Gambar 3.13 Diagram alir tegak lurus ... 50
iii
DAFTAR LAMPIRAN... viii
ABSTRAK ... ix
2.1.1 Mikrokontroler Scenic SX28AC/DP ... 7
2.1.2 Deskripsi pin-pin SX28AC/DP ... 9
2.1.3 Organisasi Memori ... 11
2.1.4 Modul Penggerak ... 11
2.1.4.1 Motor Servo Standard ... 12
2.1.5 Catu Daya ... 13
2.2 PERANGKAT LUNAK (software) ... 14
2.2.1 Mikrokontroler Scenic SX28AC/DP ... 14
2.2.2 Ringkasan Instruksi ... 14
2.2.3 Editor Basic Stamp ... 15
2.2.4 Cara Pembuatan Program ... 17
2.3 Cara Memprogram Mengendalikan Servo ... 23
2.4 Matrik ... 28
2.4.1 Pengenalan Matrik ... 28
2.4.2 Jenis-jenis Matrik... 29
2.4.3 Operasi Matrik dan Sifat-sifatnya ... 32
2.5 Transformasi Matrik ... 35
2.6 Invers Matrik Ordo 3x3 ... 36
BAB III. PERANCANGAN SISTEM ... 37
3.1 PERANGKAT KERAS (hardware) ... 37
3.1.1 Mikrokontroler Scenic SX28AC/DP ... 38
3.1.2 Osilator ... 40
3.1.3 Modul penggerak ... 40
3.1.3.1 Motor Servo Standard ... 41
3.1.4 Penggunaan Matrik Dalam Perancangan Kerangka Kaki Robot .. 41
3.1.5 Catu Daya ... 45
3.2 PERANGKAT LUNAK (software) ... 46
iv
3.2.1.1 Maju ... 47
3.2.2 Algoritma Gerak robot ... 48
3.2.3 Prosedure Tegak Lurus ... 50
BAB IV. UJI COBA DAN ANALISIS SISTEM ... 51
4.1 Motor Servo Standard ... 51
4.1.1 Cara Pergerakan Kaki Tegak Lurus ... 52
4.1.2 Cara Pergerakan Kaki Maju Lurus ... 53
BAB V. SIMPULAN DAN SARAN ... 64
5.1 Simpulan ... 64
5.2 Saran ... 64
65
DAFTAR PUSTAKA
[1]. Anita Desiani & Muhammad Arhami. (2006). Konsep Kecerdasan Buatan. Yogyakarta: Andi Offset.
[2]. Endra Pitowarno. (2006). ROBOTIKA : Desain, Kontrol, dan Kecerdasan Buatan. Yogyakarta : Andi Offset.
[3]. http://p4tkmatematika.org/downloads/sma/Matriks.pdf. Diakses pada tanggal 12 Juni 2010.
[4]. http://newstekno.blogspot.com/2009/02/beberapa-jenis-robot.html. Diakses pada tanggal 7 Juli 2010
[5]. Ibram. (2005). Prinsip Kerja Catu Daya Linier. Diakses pada tanggal 12 juni 2010 dari http://www.electroniclab.com/index.php?action=html&fid=37. [6]. Malvino. (2001). Prinsip – Prinsip Elektronik, Edisi kedua. Jakarta: PT.
Erlangga.
[7]. Moh. Ibnu Malik, ST. (2006). Pengantar Membuat Robot. Yogyakarta : Gava Media.
[8]. Schilling Robert J. (1990). Fundamental Of Robotic Analysis dan Control. Englewood Cliffs. Prentice Hall.
i
KATA PENGANTAR
Assalam’mualaikum Wr.Wb
Puji syukur penulis panjatkan atas ke hadirat Allah SWT yang telah memberikan rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan tugas
akhir dengan judul “Perancangan Prototype Robot Humanoid” yang merupakan salah satu syarat meraih gelar Strata Satu pada Jurusan Sistem Komputer Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia.
Penulis menyadari dengan segala kekurangan yang Penulis miliki, laporan ini masih jauh dari sempurna. Selama mengerjakan tugas akhir ini Penulis banyak mendapatkan bantuan dari berbagai pihak yang sangat besar jasanya kepada Penulis sehingga Penulis dapat menyelesaikan tepat pada waktunya. Untuk itu Penulis ingin mengucapkan terima kasih kepada:
1. Kedua orang tua, bapak dan ibu tercinta yang telah banyak berkorban dalam membesarkan saya, dan tak henti-hentinya memberikan perhatian, nasehat, serta motivasi selama studi. Semoga Allah memberikan mereka kebahagiaan kepada mereka dunia dan akhirat, Amiiin.
2. Bapak Wendi Zarman, M.Si, selaku Ketua Jurusan Teknik Komputer Universitas Komputer Indonesia
3. Bapak Usep Mohamad Ishaq, M.Si, selaku Pembimbing I yang telah banyak memberikan arahan, saran dan bimbingan kepada saya.
4. Bapak Agus Mulyana, M.T, selaku Pembimbing II yang telah banyak memberikan arahan dan bimbingan kepada saya.
5. Bapak Ir. Syahrul, M.T, selaku dosen Wali yang selalu memperhatikan dan memberikan arahan kepada saya selama menempuh studi.
6. Bapak Yusrila Y. Kerlooza, M.T, selaku ketua Divisi Robotika yang telah memberikan saran selama mengerjakan tugas akhir ini.
7. Bapak Taufik Nuzwir Nizar, S.Kom, selaku wakil ketua Divisi Robotika yang telah memberikan ilmunya.
8. Uni dan adikku, Herlin Oktiviani dan Zahira Septianisa….makasih yah doanya adik dan kakakku tersayang.
ii
10.Bapak dan Ibu Dosen serta Seluruh Staff Administrasi di Jurusan Teknik Komputer Universitas Komputer Indonesia, yang telah banyak memberikan ilmu, wawasan, motivasi serta bimbingan dan bantuan kepada saya.
11.Teman-teman 05 TK-1 and 05 TK-2 Devidly, Widy, Agung, Mega, Trisna, Aris, Audia, Rendra, Rizky semuanya deh makasih dukungannya.
12.Teman-teman Robotika tim inti dan eksternal Wahyu Eko Prasetyo, Rodi, Ridyan, Adi, Irwan, Sopiah, Rizal, Herry, Didit, Ken…makasih yah.
Akhir Kata Penulis ucapkan terima kasih kepada semua yang telah berjasa memberi semangat dan motifasi saat mengerjakan tugas akhir ini. Mudah-mudahan tugas akhir ini dapat bermanfaat khususnya bagi mahasiswa dan mahasiswi yang belajar dibidang Robotika.
Wassalam’mualaikum Wr.Wb
Bandung, Februari 2011