• Tidak ada hasil yang ditemukan

Perancangan humanoid robot berbasis ATMEGA128 - USD Repository

N/A
N/A
Protected

Academic year: 2019

Membagikan "Perancangan humanoid robot berbasis ATMEGA128 - USD Repository"

Copied!
89
0
0

Teks penuh

(1)

TUGAS AKHIR

PERANCANGAN HUMANOID ROBOT BERBASIS

ATMEGA128

Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik

Program Studi Teknik Elektro

Oleh:

HAYON CHREIZA AFRI DANIS BERNAD SEMOI

NIM. 095114015

JURUSAN TEKNIK ELEKTRO

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

(2)

FINAL PROJECT

HUMANOID ROBOT DESIGN BASED

ATMEGA128

Presented as Partial Fulfillment of the Requirements To Obtain the Sarjana Teknik Degree

In Electrical Engineering Study Program

HAYON CHREIZA AFRI DANIS BERNAD SEMOI

NIM. 095114015

DEPARTMENT OF ELECTRICAL ENGINEERING

FACULTY OF SCIENCE AND TECHNOLOGY

(3)
(4)
(5)
(6)

HALAMAN PERSEMBAHAN

Karya tulis ini kupersembahkan untuk:

Tuhan Yesus GEmbalaku

Bunda Maria dan Para Malaikat Pelindungku

Bapak dan Ibu tercinta, untuk doa serta dukungan moral

maupun materi

Almamaterku Teknik Elektro Universitas Sanata Dharma

“Waktu

akan menjawab semua hasil kerja keras kita

(7)
(8)

INTISARI

Kemajuan teknologi dalam bidang robotika telah memasuki berbagai segi kehidupan manusia mulai dari bidang otomatisasi baik di bidang industri, militer, hiburan maupun dalam bidang medis. Humanoid robot atau robot humanoid merupakan salah satu bentuk implementasi teknologi dalam bidang robotika yang memiliki kemampuan menirukan beberapa kegiatan manusia untuk berjalan dan menggerakan beberapa organ tubuh layaknya manusia.

Perancangan Humanoid Robot berbasis ATmega128 terdiri dari sistem minimum yang berfungsi sebagai pengontrol pergerakan motor servo sebagai aktuator robot dan mengolah data yang dihasilkan sensor gyro sebagai sensor keseimbangan. Sensor keseimbangan dideteksi untuk mendukung gerakan terlentang, duduk, berdiri hingga berjalan.

Perancangan Humanoid Robot berbasis ATmega128 sudah berhasil dibuat dan dapat bekerja dengan baik, dari gerakan terlentang ke gerakan berdiri tingkat keberhasilan adalah 77,77%, dari gerakan berdiri ke gerakan berjalan tingkat keberhasilan adalah 66,67%. Sensor dapat memberikan titik keseimbangan yang diinginkan. Robot mampu melakukan gerakan mulai terlentang, duduk, berdiri dan gerakan berjalan.

(9)

ABSTRACT

An advancement of robotic technology have been come in a variety of life and as of otomation sector like this industry, militer, consolation, and then medical. Humanoid robot or automation humanoid implementation is one from of technological robotics has the ability to mimic some human activities run and move some organs of the body like a human.

The design of Humanoid Robot based ATmega128 consists of minimum system controller that doubles as a movement of the servo motor as actuator robot and manipulate data generated by the sensor gyro sensor as a balance. Balance sensor detected movement to support sleeping, setting, standing and walking.

The design of Humanoid Robot based ATmega128 has been successfully established and can work well, of the movement supine to stand the success rate of movement is 77,77%, of the movement stand to movement running level of success is 66,67%. The sensors can be give a point balance is in want. Robot able to perform a movement started supine, sitting, standing and walking.

(10)
(11)

DAFTAR ISI

HALAMAN JUDUL ... i

HALAMAN PERSETUJUAN ... iii

HALAMAN PENGESAHAN ... iv

LEMBAR KEASLIAN KARYA ... v

HALAMAN PERSEMBAHAN ... vi

LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ... vii

INTISARI ... viii

ABSTRACT ... ix

KATA PENGANTAR ... x

DAFTAR ISI ... xi

DAFTAR GAMBAR ... xv

DAFTAR TABEL ... xvii

BAB I PENDAHULUAN 1.1 Latar Belakang ... 1

1.2 Tujuan dan Manfaat Penelitian ... 2

1.3 Batasan Masalah ... 2

(12)

BAB II DASAR TEORI

2.1 Mikrokontroler AVR ATmega128 ... 4

2.1.1 Arsitektut AVR ATmega128 ... 4

2.1.2 Deskripsi Mikrokontroler ATmega128 ... 5

2.1.3 Organisasi Memori AVR ATmega128 ... 6

2.1.3.1 Memori Program ... 6

2.1.3.2 Memori Data ... 6

2.1.4 Interupsi ... 7

2.1.5 Timer/Counter ... 7

2.1.5.1 Timer/Counter0 ... 7

2.2 Motor Servo ... 10

2.3 Gyro Sensor GS-12 ... 13

2.4 Teori Robot Humanoid ... 13

BAB III PERANCANGAN PENELITIAN 3.1 Proses Kerja dan Mekanisme Robot Humanoid ... 16

3.2 Perancangan Sistem Robot Humanoid ... 18

3.2.1 Perancangan Sistem Mekanik ... 18

3.2.2 Perancangan Sistem Elektronika ... 19

3.2.2.1 Sensor Keseimbangan ... 19

3.2.2.2 Pengontrol ... 20

(13)

3.2.3.1 Algoritma Gerakan Robot ... 23

3.2.3.2 Prosedur Bangun ... 24

3.2.3.3 Prosedur Terlentang ... 25

3.2.3.4 Prosedur Duduk ... 25

3.2.3.5 Prosedur Berdiri ... 28

3.2.3.6 Prosedur Jalan ... 29

3.2.3.7 Prosedur Melangkah Kaki Kanan ... 30

3.2.3.8 Prosedur Melangkah Kaki Kiri ... 30

BAB IV HASIL DAN PEMBAHASAN 4.1 Implementasi Alat ... 32

4.1.1 Hasil Pengamatan Terhadap Sensor Gyro ... 34

4.1.2 Pengujian Gerakan Awal ... 34

4.1.3 Pengujian Gerakan Terlentang Ke Gerakan Duduk ... 35

4.1.4 Pengujian Gerakan Duduk Ke Gerakan Berdiri ... 36

4.1.5 Pengujian Gerakan Terlentang Ke Gerakan Berdiri ... 37

4.1.6 Pengujian Gerakan Berdiri Ke Gerakan Berjalan ... 37

4.2 Pengukuran Motor Servo ... 38

4.2.1 Pengujian Gerak Robot Pada Posisi Terlentang ... 40

4.2.2 Pengujian Gerak Robot Pada Posisi Duduk ... 41

4.2.3 Pengujian Gerak Robot Pada Posisi BerdiriBerdiri ... 43

4.2.4 Pengujian Gerak Robot Melangkah Menggunakan Kaki Kanan .... 44

(14)

4.2.6 Gerakan Berjalan ... 48

4.3 Analisa Program ... 48

BAB V KESIMPULAN DAN SARAN ... 54

5.1 Kesimpulan ... 54

5.2 Saran ... 54

DAFTAR PUSTAKA ... 55

(15)

DAFTAR GAMBAR

Halaman

Gambar 2. 1 Konfigurasi Pin Mikrokontroler ATmega128 ... 5

Gambar 2. 2 Clear Time on Compare Match (CTC) ... 9

Gambar 2. 3 Fast PWM ... 9

Gambar 2. 4 Phase Correct PWM ... 10

Gambar 2. 5 Motor Servo AX-12 ... 11

Gambar 2. 6 Konfigurasi Pin Motor Servo ... 11

Gambar 2. 7 Gyro Sensor GS-12 ... 13

Gambar 2. 8 Support Polygon ... 14

Gambar 2. 9 Support Polygon (a) Double Support Polygon, (b) Double Support Polygon, (c) Single Support Polygon ... 15

Gambar 3. 1 Struktur Robot Humanoid ... 17

Gambar 3. 2 Diagram Blok Sistem ... 17

Gambar 3. 3 Perancangan Mekanik Robot Humanoid ... 18

Gambar 3. 1 Bagan Referensi Sudut Data Penelitian ... 20

Gambar 3. 5 Skematik Rangkaian Pengontrol Mikro ATmega128 ... 21

Gambar 3. 6 Modul ATmega128 ... 21

Gambar 3. 7 Diagram Alir Program Utama ... 24

Gambar 3. 8 Diagram Alir Sub Program Bangun ... 25

Gambar 3. 9 Diagram Alir Sub Program Terlentang ... 26

(16)

Gambar 3. 11 Diagram Alir Sub Program Duduk ... 27

Gambar 3. 12 Bagan Posisi Duduk ... 27

Gambar 3. 13 Diagram Alir Sub Program Berdiri ... 28

Gambar 3. 14 Bagan Posisi Berdiri ... 28

Gambar 3. 15 Diagram Alir Sub Program Jalan ... 29

Gambar 3. 16 Diagram Alir Sub Program Melangkah Kaki Kanan ... 30

Gambar 3. 17 Bagan Pergerakan Melangkah Kaki Kanan ... 30

Gambar 3. 18 Diagram Alir Sub Program Melangkah Kaki Kiri ... 31

Gambar 3. 19 Bagan Pergerakan Melangkah Kaki Kiri ... 31

Gambar 4. 1 Hasil Implementasi ... 32

Gambar 4. 2 Gerakan Terlentang ... 35

Gambar 4. 3 Gerakan Duduk ... 35

Gambar 4. 4 Motor Servo Pada Sudut 0o ... 38

Gambar 4. 5 Motor Servo Pada Sudut 150o ... 38

Gambar 4. 6 Grafik Akurasi dan Resolusi Motor Servo ... 40

Gambar 4. 7 Gerakan terlentang ke Gerakan Duduk ... 42

Gambar 4. 8 Gerak Pada Posisi Berdiri ... 43

Gambar 4. 9 Gerakan Duduk ke Gerakan Berdiri ... 44

Gambar 4. 10 Gerak Pada Posisi Melangkah Menggunakan Kaki Kanan ... 45

Gambar 4. 11 Gerakan Melangkah Kaki Kanan ... 46

Gambar 4. 12 Gerakan Pada Posisi Melangkah Menggunakan Kaki Kiri ... 46

(17)

DAFTAR TABEL

Halaman

Tabel 2. 1 Hubungan Pin dan Interupsi ... 7

Tabel 2. 2 Spesifikasi Dynamixel AX-12 ... 12

Tabel 3. 1 Data Penelitian Awal Sensor ... 19

Tabel 3. 2 Penggunaan Port Pada Mikrokontroler ... 22

Tabel 3. 3 Range Perubahan Sudut ... 25

Tabel 4. 1 Penggunaan Motor Servo ... 33

Tabel 4. 2 Nilai ADC Sensor Gyro ... 34

Tabel 4. 3 Waktu Set-Up Sensor Gyro ... 34

Tabel 4. 4 Hasil Pengujian Gerakan Terlentang ke Gerakan Duduk ... 36

Tabel 4. 5 Hasil Pengujian Gerakan Duduk ke Gerakan Berdiri ... 36

Tabel 4. 6 Hasil Pengujian Gerakan Terlentang ke Gerakan Berdiri ... 37

Tabel 4. 7 Hasil Pengamatan Gerakan Berdiri Ke Gerakan Berjalan Robot ... 38

Tabel 4. 8 Data Pengujian Motor Servo AX-12 ... 39

Tabel 4. 9 Motor Servo Dalam Posisi Terlentang ... 41

Tabel 4. 10 Motor Servo Dalam Posisi Duduk ... 42

Tabel 4. 11 Motor Servo Dalam Posisi Berdiri ... 44

Tabel 4. 12 Data PMW Motor Servo untuk setiap step Berjalan ... 45

(18)

BAB I

PENDAHULUAN

1.1

Latar Belakang

Kemajuan teknologi dalam bidang robotika telah memasuki berbagai segi kehidupan manusia mulai dari bidang otomatisasi industri, militer, hiburan maupun juga dalam bidang medis. Humanoid robot atau robot humanoid merupakan salah satu bentuk implementasi teknologi dalam bidang robotika yang memiliki kemampuan menirukan beberapa kegiatan manusia untuk berjalan dan menggerakan beberapa organ tubuh layaknya manusia.

Humanoid Robot memiliki persendian sama seperti seorang manusia yang disebut sendi gerak. Sendi gerak yaitu “persendian yang terjadi pada tulang satu dengan tulang yang lain tidak dihubungkan dengan jaringan sehingga terjadi gerak bebas” [1]. Sendi pada robot ini dirancang dengan besar derajat kebebasan tertentu sesuai dengan fungsinya.

Humanoid robot ini memiliki sensor keseimbangan yang dapat digunakan sebagai alat keseimbangan robot, sensor ini berfungsi memantau keseimbangan sumbu vertikal atau horisontal pada robot ketika robot berjalan atau bergerak.

Gerakan pada humanoid robot dapat dihasilkan dengan cara mengatur putaran motor servo yang mana berfungsi sebagai sendi pada robot. Sekian banyak motor servo yang digunakan dapat dikendalikan atau dikontrol dengan menggunakan piranti programable controller.

Penelitian tentang robot humanoid ini sangat banyak dilakukan, sebagai buktinya banyak diadakan lomba-lomba untuk tingkat daerah, nasional, hingga tingkat internasional. Yang biasa diadakan yaitu Kontes Robot Seni Indonesia (KRSI) dan Kontes Robot Sepak Bola Indonesia (KRSBI)[2]. Hal ini yang menjadi pemacu penulis untuk mengembangkan robot tersebut.

(19)

1.2

Tujuan dan Manfaat Penelitian

Tujuan penelitian ini adalah membuat humanoid robot dengan kemampuan gerakan selayaknya orang berjalan dan menjaga keseimbangan ketika melakukan gerakan.

Manfaat dari penelitian ini adalah sebagai dasar untuk mengembangkan robot humanoid menjadi robot KRSI maupun KRSBI.

1.3

Batasan Masalah

Dengan melihat latar belakang penulisan penelitian ini dan luasnya objek kajian yang berhubungan dengan ruang lingkup permasalahan, maka perlu adanya batasan-batasan masalah atau kajian dalam penulisan penelitian ini agar tetap fokus dan sesuai dengan apa yang akan tercapai.

Batasan masalah yang akan dibahas sebagai berikut:

a. Perancangan gerak pada humanoid robot untuk menghasilkan gerakan selayaknya orang berjalan dengan cara pengendalian motor servo dan sensor keseimbangan yang digunakan.

b. Perancangan gerak pada humanoid robot dari posisi jalan, berdiri, terlentang, dan duduk.

c. Menggunakan ATmega128 dari keluarga AVR. d. Sensor Keseimbangan (Gyro).

e. 16 buah motor servo.

1.4

Metode Penelitian

Untuk mendapatkan hasil yang diinginkan maka metode penelitian yang digunakan adalah sebagai berikut :

a. Observasi atau Studi Lapangan

Dalam hal ini peneliti melakukan percobaan dan pengamatan langsung terhadap objek yang menjadi bahan penelitian untuk dapat mengumpulkan data-data yang diperlukan guna mendukung analisa dan pembahasan.

b. Studi Wawancara

(20)

pembimbing, maupun dari pihak pendukung dari University Of Tokyo (Daigaku).

c. Studi Kepustakaan,

Dalam hal ini peneliti melakukan pencarian dan pengambilan referensi dari buku-buku dan ditambah dengan literatur-literatur yang berhubungan dengan masalah-masalah penelitian, serta dari jurnal-jurnal ilmiah.

d. Perancangan Subsistem Hardware dan Software

Tahap ini bertujuan untuk mencari robot humanoid yang optimal dari sistem yang akan dibuat dengan mempertimbangkan dari berbagai faktor permasalahan dan kebutuhan yang telah ditentukan. Perancangan hardware

menggunakan sensor keseimbangan yang dapat mendeteksi percepatan sudut, memanfaatkan ADC untuk mengubah sinyal masukan menjadi data digital, menggunakan mikrokontroler yang dapat mengolah data kemudian dapat memberi keluaran data kepada motor servo. Perancangan software dengan menggunakan mikrokontroler, sehingga hasil yang dihasilkan dapat sesuai dengan yang diharapkan.

e. Proses Pengambilan Data

Proses pengambilan data dilakukan dengan cara melihat respon robot humanoid ketika berjalan dan melakukan posisi terlentang, duduk dan berdiri. Motor servo dan sensor diuji secara terpisah dahulu kelayakannya sebelum dipasang ditubuh robot. Hal tersebut dilakukan agar dapat melihar sudut dari motor servo.

f. Analisa dan penyimpulan hasil percobaan.

(21)

BAB II

DASAR TEORI

2.1

Mikrokontroler AVR ATmega128 [3]

AVR (Alf and Vegard’s Risc Processor) merupakan seri mikrokontroler CMOS 8-bit yang diproduksi oleh Atmel berbasis arsitektur RICS (Reduced Intruction Set Computer). Chip AVR yang digunakan untuk tugas akhir ini adalah ATmega128. Hampir semua intruksi dieksekusi dalam satu siklus clock dan mempunyai 32 register general-purpose, timer/counter fleksibel dengan mode compare, interupsi internal dan eksternal, serial UART, Programmable Watchdog time, dan Power Saving mode. AVR juga mempunyai ADC, PWM internal dan In-System Programmable Flash on-chip yang mengijinkan memori untuk diprogram ulang.

2.1.1 Arsitektur AVR ATmega128 [3]

Mikrokontroler ATmega128 memiliki arsitektur sebagai berikut :

a. Saluran IO sebanyak 56 buah, yaitu Port A, Port B, Port C, Port D, Port E,

Port F, Port G.

b. ADC 10 bit sebanyak 8 Saluran

c. 2 buah Timer/Counter 8 bit dan 2 buah Timer/Counter 16 bit

d. 2 buah PWM 8 bit

e. Watchdog Timer dengan osilator internal f. Internal SRAM sebesar 4Kbytes

g. Memori flash sebesar 128Kbytes h. Interupsi Eksternal

i. Port antarmuka SPI j. EEPROM sebesar 4Kbytes

k. Real time counter

l. 2 buah Port USART untuk komunikasi serial m. Enam kanal PWM

(22)

2.1.2 Deskripsi Mikrokontroler ATmega128 [3]

Konfigurasi Pin Mikrokontroler ATMega128 dengan kemasan TQFT dan MLF dapat dilihat pada gamabar 2.1. Untuk memaksimalkan performa dan paralelisme, AVR menggunakan arsitektur Harvard (dengan memori dan bus terpisah untuk program dan data). Ketika sebuah instruksi sedang dikerjakan maka interuksi berikutnya diambil dari memori program.

Gambar 2. 1 Konfigurasi Pin Mikrokontroler ATmega128

Mikrokontroler ATmega128 memiliki konfigurasi pin sebagai berikut: a. VCC, power supply

b. GND, ground

c. PORT A (PA7..PA0), Port I/O 8-bit dua arah dengan resistor internal

pull-up

d. PORT B (PB7..PB0), Port I/O 8-bit dua arah dengan resistor internal

pull-up

e. PORT C (PC7..PC0), Port I/O 8-bit dua arah dengan resistor internal

pull-up

f. PORT D (PD7..PD0), Port I/O 8-bit dua arah dengan resistor internal

(23)

g. PORT E (PE7..PE0), Port I/O 8-bit dua arah dengan resistor internal

k. XTAL1, Input Oscillator

l. XTAL2, Output Oscillator

m. AVCC, pin penyedia tegangan untuk Port F dan ADC n. AREF, pin referensi untuk ADC

o. PEN, pemrograman untuk mengaktifkan pin untuk SPI mode Pemrograman Serial dan secara internal pull high

2.1.3 Organisasi Memori AVR ATmega128 [3]

AVR arsitektur mempunyai dua ruang memori utama yaitu memori data dan memori program.

2.1.3.1 Memori Program

Kode Program disimpan dalam flash memory, yaitu memori jenis non-volantile

yang tidak akan hilang datanya meskipun catu daya dimatikan [7]. Dalam Atmega128 terdapat 128Kbyte On-Chip di dalam sistem Memory Flash Reprogrammable untuk menyimpan program. Untuk keamanan perangkat lunak, flash memori dibagi menjadi dua bagian, yaitu boot program dan bagian aplikasi program.[3]

2.1.3.2 Memori Data

Memori data adalah memori RAM (Random Access Memory) yang digunakan untuk keperluan program. Memori data terbagi menjadi 4 bagian yaitu : 32 General Puphose Register, Yang mana General Puphose Register adalah register khusus yang bertugas untuk membantu eksekusi program oleh ALU (Arithmatich Logic Unit).

(24)

2.1.4 Interupsi [3]

Interupsi adalah suatu kondisi dimana mikrokontroler akan berhenti sementara dari program utama untuk melayani instruksi-instruksi pada interupsi kemudian kembali mengerjakan interupsi program utama setelah instruksi-instruksi pada interupsi selesai dikerjakan.

Tabel 2. 1 Hubungan Pin dan Interupsi

Jenis Interupt Konfigurasi Pin

INT0 PD0

timer/counter 8 bit dan dua buah timer/counter 16 bit. Keempat modul ini dapat diatur dalam mode yang berbeda-beda secara individu dan tidak saling mempengaruhi satu sama lain. Selain itu semua timer/counter juga dapat difungsikan sebagai sumber interupsi.

2.1.5.1

Timer/Counter

0

[3]

Timer/counter0 merupakan modul timer/counter 8 bit dengan fitur sebagai berikut:

a. Timer/counter 1 kanal

b. Auto reload yaitu timer akan dinolkan kembali saat match compare

c. Dapat menghasilkan pulsa PWM (pulse with modulation) dengan glitch free

(25)

e. Prescaler 10-bit untuk timer

f. Membangkitkan interupsi saat timer overflow atau compare match interrupt

Perhitungan Timer Overflow sebagai pembangkit PWM ditunjukkan pada persamaan 2.1 dan 2.2 berikut [4]:

(2.1)

(2.2)

Berikut merupakan mode-mode operasi timer:

a. Mode Normal, timer digunakan untuk menghitung saja, membuat delay, dan menghitung selang waktu.

b. Clear Time on Compare Match (CTC), register counter (TCNT0) akan mencacah naik kemudian di-reset atau kemabali menjadi 0x00 pada saat nilai TCNT0 sama dengan OCR0. Sebelumnya OCR diset dulu, karena

timer 0 dan 2 maksimumnya 255, maka range OCR 0-255.

c. Fast PWM, untuk mode ini hampir sama dengan mode phase correct

PWM, hanya perbedaannya adalah register counter TCNT0 mencacah naik saja dan tidak pernah mencacah turun seperti terlihat pada Gambar 2.3. d. Phase Correct PWM, digunakan untuk menghasilkan sinyal PWM dimana

(26)

Gambar 2. 2 Clear Time on Compare Match (CTC)

(27)

2.2

Motor Servo [4]

Motor servo biasanya digunakan untuk robot berkaki, lengan robot atau sebagai aktuator pada mobil robot. Motor servo adalah sebuah motor dengan umpan balik tertutup dimana posisi motor akan diinformasikan kembali ke rangkain kontrol yang ada di dalam motor servo. Motor servo sendiri terdiri dari sebuah motor DC, beberapa gear, sebuah potensiometer, sebuah output shaft dan sebuah rangkaian kontrol elektronik.

Ada dua jenis motor servo yaitu:[5]

1. Motor servo standard, yaitu mampu bergerak CW (clockwise) dan CCW (counter clockwise) dengan sudut operasi tertentu, misalnya 60o,90o atau 180o. 2. Motor servo continious, motor servo yang mampu bergerak CW dan CCW

(28)

Gambar 2. 5 Motor Servo AX-12

Motor servo dikemas dalam bentuk kotak segiempat seperti ditunjukkan pada Gambar 2. 5, terdiri dari tiga kabel konektor yaitu power (Vdd), control (I/O pin) dan

ground (Vss) seperti ditunjukkan pada Gambar 2.6. Gear motor servo ada yang terbuat dari plastik, metal atau titanium. Di dalam motor servo terdapat potemsiometer yang digunakan sebagai sensor posisi. Potensiometer tersebut dihubungkan dengan output shaft untuk mengetahui posisi aktual shaft. Ketika motor dc berputar maka output shaft

juga berputar dan sekaligus memutar potensiometer. Rangkain kontrol dapat membaca kondisi potensiometer tersebut untuk mengetahui posisi aktual shaft. Jika posisinya sesuai dengan yang diinginkan, maka motor dc akan berhenti.

Gambar 2. 6 Konfigurasi Pin Motor Servo

Dynamixel AX-12 merupakan motor servo serial yang digunakan dalam melakukan perancangan robot bilateral. Dynamixel AX-12 merupakan hal produksi dari ROBOTIS, yaitu sebuah perusahaan yang mengkhususkan diri dalam pengembangan robot humanoid. D ynamixel-12 memiliki kemampuan untuk mendeteksi kondisi dari motor itu sendiri karena memiliki kemampuan untuk mendeteksi kondisi dari motor itu sendiri.

(29)

Tabel 2. 2 Spesifikasi Dynamixel AX-12

Keterangan AX-12

Berat (gram) 55

Ratio Gear 1/254

Tegangan Masukan (V) 7 10

Maks Tahanan Torsi (kgf.cm) 12 16.5

Detik/600 0.269 0.196

Resolusi 0,3 derajat

Rentang Sudut Operasi 300 derajat, berputar kontinyu

Temperatur -5 ~ +85℃℃

Sinyal Perintah Paket dalam bentuk digital

Protocol

Komunikasi serial Half Duplex Asynchronous (8 bit,1 stop, no parity)

Koneksi TTL Multi Drop

ID 254 ID (0~253)

Komunikasi 7343bps ~ 1 Mbps

Feedback

(30)

2.3

Gyro Sensor GS-12

[6]

Gyro Sensor GS-12 merupakan salah satu aplikasi sensor gyroscope.

Gyroscope merupakan salah satu alat navigasi dari banyak alat bantu lain seperti kompas dan GPS. Gyroscope merupakan suatu modul sensor kecepatan sudut yang memiliki keluaran yang peka terhadap kecepatan sudut dari arah sumbu X yang nantinya akan menjadi sudut phi (roll), dan dari sumbu Y nantinya menjadi sudut theta

(pitch).

Gambar 2. 7 Gyro Sensor GS-12 Spesifikasi sensor Gyro GS-12:

a. Tegangan kerja 5VDC

b. Output yang proporsional terhadap kecepatan sudut c. Respon sensor pada sumbu X dan Y

2.4

Teori Robot Humanoid[8][9][10]

(31)

Faktor penting dalam merancang robot humanoid adalah faktor keseimbangan. Secara sederhana kestabilan dapat dicapai dengan menyeimbangkan semua gaya-gaya yang bekerja (membuat menjadi nol). Titik pada posisi jumlah semua gaya-gaya yang bekerja menjadi nol dapat disebut titik keseimbangan atau center of gravity. Keseimbangan dapat dicapai dengan merancang postur stabil dari setiap gerakan atau

manover robot humanoid. Kestabilan yang paling banyak dipengaruhi robot adalah bagian kaki. Salah satu teknik yang baik dari beraneka ragam teknik untuk membuat robot seimbang ketika berjalan adalah teknik support polygon. Teknik Support polygon

ialah daerah berbentuk segi banyak yang merupakan daerah di antara kedua kaki dengan bantuan garis lurus yang ditarik dari siku luar masing-masing kaki. Prinsip kerjanya adalah menempatkan proyeksi vertikal dari titik keseimbangan pada robot humanoid untuk selalu berada di dalam support polygon seperti yang ditunjukkan Gambar 2.8.

Gambar 2. 8 Support Polygon

Terdapat dua macam support polygon yang dapat terbentuk pada robot humanoid, yaitu:

a. Double Support Polygon

Double Support Polygon adalah kondisi kedua kaki bertumpu atau kondisi pada saat robot bertumpu pada satu kaki-nya, tetapi permukaan kaki-nya tidak harus menempel penuh pada dasar. Double Support Polygon dapat dilihat pada Gambar 2.9a dan 2.9b.

b. Single Support Polygon

(32)
(33)

BAB III

PERANCANGAN PENELITIAN

Dalam bab III ini akan dibahas mengenai perancangan perangkat keras dan perancangan perangkat lunak. Pembahasan ini meliputi :

a. Proses kerja dan mekanisme robot humanoid b. Perancangan mekanik

c. Perancangan perangkat keras d. Perancangan perangkat lunak

3.1

Proses Kerja dan Mekanisme Robot Humanoid

Pada tugas akhir ini, akan dibuat sebuah robot humanoid yang bertujuan untuk mengetahui unjuk kerja robot humanoid yang meliputi gerakan selayaknya orang berjalan dan menggerakkan organ tubuh lain selayaknya manusia serta menjaga keseimbangan ketika melakukan gerakan. Sistem mekanik robot humanoid ini dirancang agar dapat menyerupai struktur tubuh manusia dengan 10 sendi seperti yang ditunjukan pada Gambar 3.1 dengan keterangan sebagai berikut :

1 Sendi pangkal betis roll 6 Sendi pinggul 2 Sendi pangkal betis pitch 7 Sendi perut

3 Sendi Lutut 8 Sendi badan

4 Sendi pangkal paha pitch 9 Sendi pundak pitch

(34)

Gambar 3. 1 Struktur Robot Humanoid

Sistem elektronik robot humanoid untuk menggerakkan sendi-sendi robot yang berupa motor servo dan mendeteksi jatuhnya robot menggunakan sensor DT-Sense Yaw Gyroscope (keseimbangan). Keseluruhan proses ini dikendalikan sebuah pengontrol mikro ATMEGA128. Diagram blok sistem elektronika pada robot ini dapat dilihat pada Gambar 3.2.

Gambar 3. 2 Diagram Blok Sistem

(35)

mendeteksi keadaan atau posisi dari robot tersebut dan mengirimkan data serial ke pengolah atau pengontrol berupa data-data keadaan yang direpresentasikan oleh sensor keseimbangan. Pengolah mikro ATmega128 mengambil data-data dari sensor keseimbangan kemudian digunakan untuk dapat menentukan arah gerak robot. Sistem gerak pada badan robot digerakkan oleh motor servo yang dikontrol oleh mikro ATmega128 berupa posisi dan kecepatan setiap servo.

3.2

Perancangan Sistem Robot Humanoid

Perancangan robot humanoid ini dibagi menjadi 3 (tiga) bagian yaitu perancangan sistem mekanik, elektronika, dan perangkat lunak (pemrograman).

3.2.1

Perancangan Sistem Mekanik

Struktur robot humanoid dirancang agar sesuai dengan bentuk tubuh manusia. Rangka yang digunakan terbuat dari bahan, alumunium dan akrilik. Bahan alumunium digunakan untuk menyambung sendi-sendi robot dan bahan akrilik untuk badan robot.

Robot ini memiliki tinggi maksimal 48,8 cm.Penampang kaki dengan panjang 12 cm dan lebar 7,5 cm. memiliki rentang tangan 57 cm, rentang kaki 48 cm.

(36)

3.2.2

Perancangan Sistem Elektonika

Sistem elektronika pada robot humanoid ini terbagi atas 2 (dua) bagian yaitu sensor keseimbangan dan pengontrol.

3.2.2.1

Sensor Keseimbangan

Sensor keseimbagan yang digunakan adalah Gyro Sensor GS-12 dalam Tugas Akhir ini digunakan untuk memberikan informasi kemiringan 2 sumbu (x dan y) yang terjadi pada robot berupa nilai ADC. Kemiringan tersebut digunakan untuk mengetahui robot terjatuh atau tidak. Sensor membutuhkan catu daya sebesar 5 volt yang diambil dari keluaran tegangan pengontrol mikro dan memberikan keluaran sensor berupa tegangan dengan range 0,23 sampai 2,23 volt seperti pada Tabel 3.1 data percobaan awal sensor. Peletakkan sensor ini berada pada titik keseimbangan robot yang diasumsikan berada di perut dengan posisi seperti pada Gambar 3.4 (a).

Tabel 3. 1 Data Penelitian Awal Sensor

Sudut ( ) Tegangan (V) Sudut ( ) Tegangan (V)

(37)

Gambar 3. 4 Bagan Referensi Sudut Data Penelitian: Pada Sudut (a) 0o, (b) 90o, (c) 180o, (d) 300o

3.2.2.2

Pengontrol

(38)

Gambar 3. 5 Skematik Rangkaian Pengontrol Mikro ATmega128

(39)

Tabel 3. 2 Penggunaan Port Pada Mikrokontroler

Fungsi PORT Mikro Keterangan Singkatan

INPUT PORT A.0 – A.2 Masukkan nilai ADC dari

(40)

3.2.3

Perancangan Sistem Perangkat Lunak

ATmega128 mengatur pergerakan-pergerakan pada robot dengan memberikan perintah berupa posisi servo dan kecepatan servo yang dikehendaki. Pergerakan pada robot humanoid ini semuanya diatur secara program. Robot humanoid ini memiliki 3 gerakan yaitu berdiri, persiapan berjalan dan bangkit berdiri. Gerakan-gerakan tersebut diperoleh dengan cara mengatur pergerakan dari 16 buah servo pada robot.

ATmega128 juga selalu membaca nilai ADC untuk mengetahui kemiringan pada robot. Jika robot pada posisi jatuh maka ATmega akan memberika perintah untuk bangkit berdiri. Algoritma-algoritma program pada pengontrrol ATmega128 yaitu:

3.2.3.1

Algoritma Gerakan Robot

Gambar 3.7 menunjukkan program utama proses kerja mikrokontroler secara keseluruhan. Proses diawali dengan inisialisasi port pada mikrokontroler lalu proses pengaturan posisi robot dalam keadaan berdiri, pada posisi ini motor servo diatur pada posisi sudut putar yang berbeda-beda. Kemudian dilanjutkan proses pembacaan sensor keseimbangan. Setelah pembacaan sensor keseimbangan, maka mikrokontroler mulai menjalankan intruksi untuk menggerakkan motor servo. Pengaturan sudut putar servo tergantung dari sensor keseimbangan. Ketika data sensor keseimbangan tidak sama dengan posisi berdiri maka posisi robot dikatakan jatuh. Sehingga mikrokontroler akan memberikan intruksi untuk bangun. Setelah proses bangun sensor keseimbangan akan memberikan data kepada mikrokontroler posisi robot dalam keadaan berdir.

(41)

Gambar 3. 7 Diagram Alir Program Utama

3.2.3.2

Prosedur Bangun

(42)

Gambar 3. 8 Diagram Alir Sub Program Bangun

3.2.3.3

Prosedur Terlentang

Pada prosedur terlentang posisi yang didapat oleh setiap sendi berbeda-beda yaitu, sendi perut pada posisi turun pada sudut 0o, sendi paha pitch baik kanan dan kiri pada posisi turun pada sudut yang sama yaitu 0o, sendi lutut baik kanan dan kiri pada posisi nilai tengah yaitu pada sudut 90o, dan sendi betis pitch baik kanan dan kiri pada posisi turun yaitu pada sudut yang sama 30o. Agar lebih jelas untuk kedudukan posisi dan range sudut setiap posisi dapat dilihat pada Tabel 3.3 dan Gambar 3.9 serta Gambar 3.10

Tabel 3. 3 Range Perubahan Sudut Posisi Sudut (o)

Naik 100-180

Nilai Tengah 90

(43)

Gambar 3. 9 Diagram Alir Sub Program Terlentang

Gambar 3. 10 Bagan Posisi Terlentang

3.2.3.4

Prosedur Duduk

(44)

Gambar 3. 11 Diagram Alir Sub Program Duduk

(45)

3.2.3.5

Prosedur Berdiri

Prosedur ini merupakan salah satu prosedur yang terpenting, karena posisi berdiri merupakan posisi ideal untuk memberi perintah guna melakukan gerakan berjalan. Posisi ideal berdiri yang diharapkan seperti Gambar 3.14 dan subrutin program untuk posisi berdiri seperti pada Gambar 3.13, dimana kondisi setiap sendi pada posisi nilai tengah atau dalam sudut 90o. Dan hanya sendi lutu yang dalam posisi naik atau dalam sudut 120o.

Gambar 3. 13 Diagram Alir Sub Program Berdiri

(46)

3.2.3.6

Prosedur Jalan

Ketika prosedur berdiri telah selesai dilakukan maka akan masuk ke prosedur terakhir yaitu prosedur melangkah. Pada prosedur ini data yang diberikan sensor keseimbangan sama dengan posisi berdiri maka robot akan melakukan proses angkat kaki kakanan setelah proses tersebut selesai dilanjutkan proses angkat kaki kiri. Proses angkat kaki kanan dan kiri dilakukan sebanyak lima (5) kali atau melakukan proses melangkah sebanyak 5 kali. Setelah proses melangkah sebanyak 5 kali telah selesai program akan berakhir seperti pada Gambar 3.12

(47)

3.2.3.7

Prosedur Melangkah Kaki Kanan

Pada prosedur ini terjadi perubahan sudut dari dari dua sendi yaitu sudut pada paha kanan dan lutut kanan seperti pada Gambar 3.13 dan Gambar 3.14. Perubahan sudut pada paha kanan terjadi dalam range sudut dari 0o sampai 30o, sedangkan pada lutut dalam

range 0o sampai dengan 40o. Perubahan sudut pada betis kanan terjadi pada range 95o sampai dengan 130o pada posisi naik seperti pada Gambar 3.17.

Gambar 3. 16 Diagram Alir Sub Program Melangkah Kaki Kanan

Gambar 3. 17 Bagan Pergerakan Melangkah Kaki Kanan

3.2.3.8

Prosedur Melangkah Kaki Kiri

(48)

0o sampai dengan 40o. Perubahan sudut pada betis kiri terjadi pada range 95o sampai dengan 130o pada posisi naik seperti pada Gambar 3.19.

Gambar 3. 18 Diagram Alir Sub Program Melangkah Kaki Kiri

(49)

BAB IV

HASIL DAN PEMBAHASAN

Bab ini berisi gambar fisik hardware yang dibuat, hasil pengujian motor servo, pengujian sensor keseimbangan, dan pembahasan tentang program untuk masing-masing gerakan. Data yang akan dibahas terdiri dari data utama dan data pendukung. Data utama merupakan data-data yang menunjukkan lamanya waktu pergerakan setiap pola gerakan. Pengujian posisi robot melakukan rotasi pada area yang sudah ditentukan. Data pendukung merupakan nilai parameter setiap blok dari diagram blok. Pengujian berupa pengukuran terhadap perangkat keras.

4.1

Implementasi Alat

Gambar 4. 1 Hasil Implementasi

(50)

mengganti struktur robot yang lebih kokoh dan presisi, peneliti menggunakan bodykit humanoid premium sebagai body.

Jumlah motor servo yang digunakan pada implementasi ini berjumlah 18 buah motor servo berbeda dengan perancangan yang menggunakan 16 motor servo, motor servo yang digunakan meliputi M1-M18 dengan keterangan seperti pada tabel 4.1. Perubahan atau penambahan motor servo ini dilakukan untuk mendukung pergerakan robot dan memaksimalkan kinerja dari struktur body itu sendiri. Penambahan ini dilakukan pada bagian lengan dan pergelangan untuk mendukung gerakan ketika duduk dan berjalan.

Dari hasil implementasi seperti pada gambar 4.1 dapat dilihat bahwa susunan motor servo yang terlihat dari tampak samping kanan adalah M1, M3, M5, M7, M9, M15, M17 sesuai dengan tabel 4.1.

Tabel 4. 1 Penggunaan Motor Servo

Motor Servo Keterangan

M1 Pergelangan kaki kanan roll

M2 Pergelangan kaki kiri roll

M3 Pergelangan kaki kanan pitch

M4 Pergelangan kaki kiri pitch

M5 Betis kaki kanan

(51)

4.1.1

Hasil Pengamatan Terhadap Sensor Gyro

Data dari tabel 4.2 didapat dengan cara, melihat nilai keluaran sensor gyro berupa data ADC yang dapat dilihat dari software ROBOPLUS, dari software tersebut peneliti dapat secara mudah memisalkan posisi atau letak sensor pada saat di tubuh robot, pada saat berdiri, terlentang dan berjalan. Dari pemisalan tersebut didapatkan data ADC sensor mengunakan software ROBOPLUS seperti pada tabel 4.2.

Tabel 4. 2 Nilai ADC Sensor Gyro

Kegiatan Nilai ADC

Terlentang 311

Berjalan 313

Dari hasil pengamatan dan pemisalan posisi robot di dapatkan data ADC sensor seperti pada tabel 4.2 untuk dua buah posisi yaitu posisi terlentang dan berjalan. Dari data ADC tersebut akan memberikan informasi ke controller untuk melakukan gerakan tertentu ketika didapatkan data seperti pada tabel 4.2.

4.1.2

Pengujian Gerakan Awal

Pada pengujian ini, gerakan awal atau mula-mula adalah pada posisi berdiri. Posisi berdiri merupakan posisi terbaik ketika ingin melakukan sesuatu, dalam posisi berdiri robot dapat melakukan gerakan seperti duduk, dan terlentang.

Tabel 4. 3 Waktu Set-Up Sensor Gyro

Percobaan ke- Waktu (detik)

(52)

Pada pengujian ini, diperlukan waktu untuk menstabilkan atau set-up kondisi sensor

gyro agar data ADC yang dibaca akurat setelah power robot di-on-kan. Waktu yang diperlukan agar sensor stabil dan dapat melakukan gerakan yang benar seperti pada tabel 4.3.

Dari data tabel 4.3 didapatkan waktu rata-rata untuk set-up sensor gyro agar robot dapat stabil mendapatkan data seperti pada tabel 4.1 adalah 15,11. Sebelum waktu rata-rata tersebut tercapai maka robot akan melakukakan gerakan terlentang dan berdiri berulang kali hingga waktu rata-rata tersebut telah tercapai.

4.1.3

Pengujian Gerakan Terlentang Ke Gerakan Duduk

Pengujian ini dilakukan untuk membuktikan bahwa robot dapat melakukan gerakan dalam dua kondisi yaitu kondisi terlentang dan duduk sebelum melakukan proses berjalan. Pada gerakan terlentang, robot harus dalam posisi terlentang ini dikarenakan pada posisi terlentang robot dapat melakukan gerakan duduk dan meminimalisasi adanya beban berlebih ketika melakukan gerakan. Posisi terlentang yang dimaksud seperti pada gambar 4.3.

Gambar 4. 2 Gerakan Terlentang Gambar 4. 3 Gerakan Duduk

Pada pengujian gerakan terlentang ke gerakan duduk, ketika robot dalam kondisi

(53)

Tabel 4. 4 Hasil Pengujian Gerakan Terlentang ke Gerakan Duduk

Percobaan ke- Waktu (detik) Kondisi

1 2 Berhasil

4.1.4

Pengujian Gerakan Duduk Ke Gerakan Berdiri

Pengujian gerakan duduk ke gerakan berdiri dilakukan agar mengetahui berapa tingkat keberhasilan robot dalam melakukan gerakan duuk ke gerakan berdiri. Pengujian dilakukan dengan cara mengamati dan mencatat waktu yang dibutuhkan untuk melakukan gerakan ini seperti pada tabel 4.5.

Tabel 4. 5 Hasil Pengujian Gerakan Duduk ke Gerakan Berdiri

Percobaan ke- Waktu (detik) Kondisi

1 5 Gagal

Pada pengujian gerakan duduk seperti gambar 4.3 ke gerakan berdiri seperti pada gambar 4.1, memerlukan waktu rata-rata 6,89 detik untuk bisa berdiri. Dari data pengujian pada tabel 4.5 dapat dilihat persentase keberhasilan robot dari gerakan duduk ke gerakan berdiri dengan melakukan 9 kali percobaan secara terus menerus baik pada saat set-up

(54)

4.1.5

Pengujian Gerakan Terlentang Ke Gerakan Berdiri

Pengujian ini dilakukan agar dapat melihat tingkat keberhasilan ketika robot melakukan gerakan terlentang, duduk dan berdiri secara besamaan dengan catatan waktu yang ditempuh agar robot dapat berdiri sendiri seperti pada tabel 4.6.

Tabel 4. 6 Hasil Pengujian Gerakan Terlentang ke Gerakan Berdiri

Percobaan ke- Waktu (detik) Kondisi

1 10 Berhasil terlentang, duduk dan berdiri secara langsung dengan kondisi robot sedang melakukan set-up maupun setalah melakukan set-up yaitu 13,78 detik. Dari 9 kali percobaan, dengan media dasar untuk robot berupa meja kayu robot mengalami kegagalan sebanyak 2 kali, sehingga didapat persentase keberhasilan robot pada saat melakukan gerakan telentang, duduk dan berdiri adalah 77,78%.

4.1.6

Pengujian Gerakan Berdiri Ke Gerakan Berjalan

Pengujian ini dilakukan untuk mengetahui persentase keadaan robot apakah dapat berjalan atau tidak, dari gerakan beriri ke gerakan berjalan. Percobaan ini dilakukan dengan cara meguji robot dengan posisi awal berdiri dan melihat respon apa robot berhasil melakukan gerakan berjalan atau tidak dan mencatat waktu yang diperlukan.

(55)

persentase keberhasilan robot dalam melakukan gerakan berdiri ke gerakan berjalan dalam 9 kali percobaan adalah 66,67%.

Pada pengujian gerakan berjalan ini, kondisi kedua kaki bertumpu atau pada kondisi pada saat robot bertumpu pada satu kaki-nya tetapi permukaan kakinya tidak harus menempel penuh pada dasar. Hal tersebut membuktikan bahwa teori yang digunakan adalah Double Support Polygon seperti pada gambar 2.11(a dan b) telah berhasil dilakukan.

Tabel 4. 7 Hasil Pengamatan Gerakan Berdiri Ke Gerakan Berjalan Robot

Percobaan ke- Waktu (detik) Kondisi

1 6 Gagal

4.2

Pengukuran Motor Servo

Pengujian dan pengambilan data pada motor servo yang digunakan sebagai aktuator robot humanoid. Pengujian dilakukan dengan memberika tegangan masukan pada motor servo sebesar 9V dan masukkan berupa PWM sebagai sinyal pengontrol sudut putaran motor yang berasal dari CM-5 yang berisi pengendali berbasis Atmega128. Servo hanya bisa menerima paket data dengan sistem komunikasi serial Half Duplex. Data paket PWM yang dikirim berisikan ID untuk setiap motor servo, Length, Data. Data untuk setiap sudut putar dari 0-300 derajat berbeda-beda seperti pada tabel 4.4.

(56)

Tabel 4. 8 Data Pengujian Motor Servo AX-12

No Data PWM Sudut Putaran (Terukur

dalam sudut (◦))

(57)

y = 0,293x - 0,5684

0 200 400 600 800 1000 1200

SUDUT

SUDUT

Linear (SUDUT) Gambar 4. 6 Grafik Akurasi dan Resolusi Motor Servo

Dari data pengujian motor servo pada tabel 4.8 didapatkan hasil seperti pada gambar 4.6, dari gambar tersebut membuktikan bahwa resolusi untuk motor servo yang digunakan adalah 0,293o. Dari hasil pengujian didaptkan hasil resolusi untuk motor servo 0,293o dan dari datasheet motor servo resolusi yang digunakan adalah 0,3o, dengan demikian didapatkan error sebesar 2,39%.

4.2.1

Pengujian Gerak Robot Pada Posisi Terlentang

Pada posisi terlentang seperti pada gambar 4.2, motor servo dalam keadaan on

posisi yang diinginkan oleh peneliti seperti pada gambar tersebut dan sesuai dengan perancangan. Dimana keadaan motor servo M1-M18 seperti pada tabel 4.9.

(58)

Tabel 4. 9 Motor Servo Dalam Posisi Terlentang

Servo

Paket Data PWM

Percobaan Ke- dalam bentuk Sudut (o)

Range

4.2.2

Pengujian Gerak Robot Pada Posisi Duduk

Pada posisi terlentang seperti pada gambar 4.3, motor servo dalam keadaan on

posisi yang diinginkan oleh peneliti seperti pada gambar tersebut. Dimana keadaan motor servo M1-18 seperti pada tabel 4.10.

Dari tabel 4.10 dapat dilihat bahwa perancangan dengan inplementasi tidak sesuai, karena ada perubahan fungsi motor M15 dan M16 serta ada penambahan motor M17-M18. Motor servo tersebut berfungsi untuk menggerakkan lengan dan pergelangan tangan pada robot, guna mendukung kegiatan duduk hingga berdiri dan membantu keseimbangan robot pada saat ingin berdiri.

(59)

percobaan untuk mengetahui tingkat keberhasilan kerja gerakan duduk dengan cara, memberikan perintah untuk melakukan gerakan duduk dari gerakan terlentang hasil percobaan tersebut dapat dilihat pada tabel 4.3.

Tabel 4. 10 Motor Servo Dalam Posisi Duduk

Servo

Paket Data PWM

Percobaan Ke- dalam bentuk Sudut (o)

Range

Dalam melakukan gerakan duduk didapatkan data seperti pada tabel 4.10, dari tabel tersebut dapat diketahui dalam melakukan gerakan terjadi error rata-rata dalam pergerakan sudut sebesar 0,283%. Perubahan yang terjadi dapat dilihat pada gambar 4.7.

(60)

4.2.3

Pengujian Gerak Robot Pada Posisi Berdiri

Pada posisi berdiri seperti pada gambar 4.8, seluruh motor servo megalami perubahan mulai dari M1-M18. Perubahan data untuk setiap motor dapat dilihat seperti pada tabel 4.11.

Gambar 4. 8 Gerak Pada Posisi Berdiri

Pada gerakan berdiri robot dipaksa untuk seimbang, robot dipaksa untuk tetap seimbang karena pada posisi berdirilah posisi yang paling ideal untuk melakukan gerakan berjalan. Agar robot tetap seimbang ketika dalam melakukan gerakan berdiri dan posisi berdiri maka setiap motor servo harus menerima data sepeti pada tabel 4.11. Setelah peneliti yakin data untuk setiap motor servo seperti pada tabel 4.10 adalah posisi yang ideal, maka peneliti melakukan uji gerakan dengan cara mengabungkan gerakan duduk ke gerakan berdiri. Setelah selesai melakukan gerakan duduk ke gerakan berdiri dan didapatkan hasil seperti pada tabel 4.5 didapatkan persentase keberhasilan 66,667%, untuk lebih memastikan keberhasilannya dilakukan uji coba kedua dengan melakukan gerakan terlentang ke gerakan berdiri. Dalam uji coba tersebut robot akan melakukan beberapa gerakan secara langsung seperti gerakan terlentang ke duduk, dilanjutkan gerakan duduk ke gerakan berdiri dan didapatkan hasil seperti pada tabel 4.6.

(61)

Tabel 4. 11 Motor Servo Dalam Posisi Berdiri

Servo

Paket Data PWM

Percobaan Ke- dalam bentuk Sudut (o)

Range

Gambar 4. 9 Gerakan Duduk ke Gerakan Berdiri

4.2.4

Pengujian Gerak Robot Melangkah Menggunakan Kaki Kanan

(62)

Gambar 4. 10 Gerak Pada Posisi Melangkah Menggunakan Kaki Kanan Tabel 4. 12 Data PMW Motor Servo untuk setiap step Berjalan

Servo Data PWM Motor

(63)

tidak mudah terjatuh dan agar sensor gyro dapt tetap dalam posisi membaca kondisi berdiri, jika sensor gyro tidak membaca robot dalam kondisi berdiri maka akan secara sepihak memberikan data ke controller dan controller memeberikan perintah berdiri. Peneliti dapat memberikan pernyataan tersebut karena dalam pengamatan, robot melakukan apa yang telah peneliti tuliskan.

Data PWM step 1 Data PWM step 7

Gambar 4. 11 Gerakan Melangkah Kaki Kanan

4.2.5

Pengujian Gerak Robot Melangkah Menggunakan Kaki Kiri

Pada pengujian gerakan ini, robot melangkahkan kaki kiri dan kaki yang menjadi tumpuan agar proses ini berhasil yaitu kaki kanan. Hasil dari proses melangkah menggunakan kaki kiri dapat dilihat pada gambar 4.12 dan seluruh motor servo mengalami perubahan mulai dari M1-M18 seperti pada tabel 4.13.

(64)

Tabel 4. 13 Motor Servo Dalam Posisi Melangkah Menggunakan Kaki Kiri

Pada gambar 4.12 tangan melakukan gerakan ini dilakukan agar robot mendapatkan keseimbangan ketika melakukan proses berjalan. Pergerakan tangan dapat dilihat dari tabel 4.13 pada M15-M18, pergerakan tangan yang dilakukan adalah gerakan maju dan mundur, atas dan ke bawah gerakan yang dilakukan dapat dilihat pada gambar 4.13. Gerakan tangan kanan dan kiri diperlukan untuk membantu keseimbangan robot pada saat kaki kiri yang melangkah tangan kiri akan sedikit digerakan mundur dan sedikit ke atas, tangan kanan akan bergerak ke depan dan sedikit ke bawah. Hal ini dilakukan agar robot tidak mudah terjatuh dan agar sensor gyro dapat tetap dalam posisi membaca kondisi berdiri, jika sensor

(65)

Data PWM step 1 Data PWM step 7 Gambar 4. 13 Gerakan Melangkah Kaki Kiri

4.2.6

Gerakan Berjalan

Pada gerakan berjalan, robot mulai melangkah menggunakan kaki kanan terlebih dahulu dan kaki kiri digunakan sebagai tumpuan agar bisa mengerakkan kaki kanan. Setelah selesai menggerakkan kaki kanan maka secara otomatis berat tubuh langsung mengarah ke kaki kanan dan kaki kiri sedikit dinaikan atau diangkat agar sekarang kaki kanan dapat menjadi tumpuan untuk menggerakkan kaki kiri.

Untuk menjaga keseimbangan robot pada saat berjalan digunakan metode double support polygon dari metode tersebut dapat dillihat pada kinerja robot pada saat berjalan. Dalam menjaga keseimbangan pada saat berjalan ini robot memanfaatkan sensor keseimbangan dengan nilai-nilai ADC seperti pada tabel 4.12, tabel ini menjelaskan pada saat berdiri dan untuk menjaga keseimbangan nilai ADC harus pada nilai 313 jika tidak, maka semua kegiatan akan di delay dan berpindah ke posisi berdiri. Hal tersebut dilakukan agar pada saat berdiri dijadikan patokan atau acuan untuk melakukan langkah selanjutnya.

4.3

Analisa Program

Dalam melakukan kegiatan ini, peneliti membuat program dengan menggunakan 2 buah software yaitu software RoboPlus dan AVR. Software RoboPlus digunakan untuk membantu peneliti menentukan pergerakan motor servo dan melihat kinerja dari sensor

(66)

dan pola gerakan setiap robot selain melakukan pegamatan terhadap gerakan tubuh manusia yang di selaraskan dengan gerakan robot.

Setelah mengetahui gerakan dan kinerja sensor selanjutnya masuk ke penggunaan AVR sebagai software untuk membuat program gerakan dan komunikasi antara servo dan

controller mengunakan bahasa C. Dalam pemrograman ini langkah-langkah yang harus dilakukan yaitu menentukan PORT yang digunakan oleh aktuator dan sensor dari

controller, untuk mengetahui PORT yang digunakan peneliti mendapatkan informasi posisi dan PORT apa saja yang digunakan dari RoboPlus. Setelah mengetahui PORT apa saja yang digunakan oleh aktuator dan sensor, peneliti mulai membuat header untuk controller

yang digunakan, header ini selanjutnya dimasukkan kedalam library agar dapat digunakan sebagai header. Program untuk controller ini beriskan list seperti berikut.

void buzzInit()

Dari potongan program diatas merupakan potongan program untuk pengendalian

buzzer pada controller waktu yang digunakan untuk menghidupkan buzzer tersebut adalah 1 ms, dan proses menghidupkan buzzer ini akan terjadi secara berulang-ulang ketika

controller sedang on, melakukan download, perpindahan mode dan pada saat mematikan

(67)

void ledInit()

Potongan program diatas merupakan potongan program untuk mengontrol led, led ini digunakan sebagai indikator untuk mengetahui mode-mode yang sedang berjalan dan untuk mengetahui proses downloading dan komunikasi serial yang apa sedang dilakukan atau tidak, pengendalian led ini dilakukan pada PORTC.

Setelah program untuk controller selasai, langkah selanjutnya adalah membuat data pada controller yang berisikan data-data array untuk melakukan gerakan terlentang, duduk, berdiri dan berjalan. Data array yang digunakan seperti pada potongan listing program berikut dibawah ini.

RIGHT_FRONT[7][18]=

(68)

{235,788,279,744,462,561,358,666,495,504,345,679,247,778,643,379,495,504}

Potongan listring program diatas merupakan salah satu contoh array yang berisi data motor servo untuk suatu gerakan, pada gambar 4.15 merupakan potongan listing untuk gerakan melangkah kaki kanan ini disimpan pada program KontrolBioloid.h. Pengiriman data akan dilakukan secara terus menerus dan sesuai dengan address dan ID motor itu sendiri secara berurutan mulai dari M1 hingga M18.

Array melangkah kaki kanan merupakan data hasil pecobaan dan pengamatan yang telah dilakukan oleh peneliti terdiri dari 7 baris yang berisi paket data untuk 18 motor servo yang terdiri dari M1 hingga M18. Pada baris pertama berisi paket data yang bertujuan agar tubuh robot sebelah kanan mendapatkan beban lebih banyak dibandingkan tubuh robot sebelah kiri. Pada baris kedua, paket data tersebut bertujuan untuk mengerakkan kedua tangan robot tangan kanan ke belakang dan tangan kiri kedepan. Pada baris ketiga, membuat tubuh robot sebelah kiri lebih berat di bandingkan sebelah kanan. Pada baris ke empat, mulai mengangkat kaki sedikit keatas sehingga membentuk pola

support polygon. Baris ke lima, mendukung dan membantu menyeimbangkan robot. Pada baris ke enam, mendaratkan kaki kanan. Dan pada baris terakhir, memposisikan tubuh robot seperti pada gambar 4.11.

Dalam melakukan setiap gerakan dibutuhkan array yang berisi paket data mulai dari M1 hingga M18, dan data yang tersedia pada array tersebut didapatkan dari hasil pengamatan dan percobaan yang telah dilakukan. Setiap 1 buah array berisi perintah untuk melakukan kegiatan atau gerakan tersendir, jadi setiap array yang tersedia pada list program pada lampiran memiliki tujuan atau hasil akhir yang berbeda-beda pula.

Setelah proses pemasukan data untuk setiap gerakan selesai, langkah selanjutnya adalah membuat program utama yang berisikan perintah dan fungsi untuk melakukan suatu gerakan. Berikut potongan listing program yang digunakan untuk fungsi sensor gyro. void SVC_IN()

{

(69)

char SVC[2]= menentukan gerakan ketika data ADC kurang dari 311 maka controller akan memberikan perintah untuk berdiri. Perintah berdiri tersebut terdiri dari perintah untuk kembali terlentang dilanjutkan perintah untuk gerakan duduk, lalu perintah untuk gerakan berdiri itu sendiri.

bioloid.setNextPose(RIGHT_FRONT,bioloid.getNextPose(RIGHT_FRONT) - rstep);

bioloid.setNextPose(LEFT_FRONT,bioloid.getNextPose(LEFT_FRONT) - lstep);

bioloid.setNextPose(RIGHT_REAR,bioloid.getNextPose(RIGHT_REAR) + rstep);

(70)

Potongan listing program diatas merupakan, potongan program untuk memanggil

array yang diletakkan pada program controller. Dalam proses pemanggilan ini, peneliti memanfaatkan library yang ada pada controller yang berisi pengaturan untuk program

Load untuk bioloid.loadPose. Dari library tersebut peneliti menambahkan perintah untuk lakukan gerakan setting untuk posisi gerakan berikutnya dengan nama bioloid.setNextPose yang berdisi perintah pengendalian dan pemanggilan array, data array tersebut selanjutnya akan dikirim ke setiap motor servo sesuai ID yang telah di tentukan. ID motor servo tersebut langsung di ambil dari library dari controller yang berisikan perintah untuk pengiriman data ke setiap ID motor servo secara berurutan. Program untuk biolodi.nextPose berisi perintah pengiriman pengiriman data ke setiap ID nomor servo, data tersebut berupa posisi dan data tersebut dapat dipanggil langsung lewat array yang telah disimpan pada controller, proses pemanggilan untuk motor servo seperti pada potongan program dibawah ini. Dan proses dibawah ini disimpan pada program KontroBioloid.h.

(71)

BAB V

KESIMPULAN DAN SARAN

5.1

Kesimpulan

Dari hasil pengujian dan pengambilan data pada sistem robot humanoid dapat diambil kesimpulan :

1. Empat pola gerakan berhasil dilakukan, dari gerakan terlentang ke gerakan berdiri tingkat keberhasilan adalah 77,77%, dari gerakan berdiri ke gerakan berjalan tingkat keberhasilan adalah 66,67%.

2. Robot dapat melakukan gerakan selayaknya orang berjalan dengan menggerakan kaki dan tangan.

5.2

Saran

Saran-saran bagi pengembang robot ini selanjutnya adalah:

1. Dalam melakukan gerakan berjalan media atau alas terkadang harus diperhitungkan agar, robot dapat melakukan gerakan di alas kasar maupun licin.

2. Dalam melakukan gerakan sebaiknya tangan ikut digerakan, agar dapat menjadi penyeimbang ketika melakukan gerakan.

(72)

DAFTAR PUSTAKA

[1]

http://soerya.surabaya.go.id/AuP/e-DU.KONTEN/edukasi.net/SMP/Biologi/Sistem.Gerak.Manusia/materi03.html, diakses 12 September 2012.

[2] http://ftp.ccc.de/congress/21c3/papers/178%20Humanoid%20Robots.pdf, diakses 12 September 2012.

[3] www.atmel.com/Images/doc2467.pdf, diakses 12 September 2012.

[4] www.crustcrawler.com/products/bioloid/docs/AX-12.pdf, diakses 12 September 2012.

[5] Andrianto Heri, 2008, Pemrograman Mikrokontroler AVR ATMEGA16 Menggunakan Bahasa C pada CodeVision AVR, INFORMATIKA, Bandung. [6] http://innovativeelectronics.com/innovative_electronics/download_files/manual/Ma

nual_DT-Sense_Yaw_Gyroscope.pdf, diakses 12 September 2012. [7] Agus Bejo, 2008, C dan AVR Rahasia Kemudahan Bahasa C dalam

Mikrokontroler ATMEGA8535, 1st end, GRAHA ILMU, Yogyakarta.

[8] Erick V. Cuevas, Daniel Zaldivar, Raul Rojas, Bipedal Robot Description, 2005. [9] Kenji Kaneko, et.al,2002, Design of Prototype Humanoid Robotics Platform for

HRP”Proceeding of the 2002 IEEE/RSJ, Intl. Conference on Intelligent Robots and Systems EPFL, Lausanne, Switzerland.

(73)
(74)
(75)

counter = 0;

bioloid.loadPose(plantLeft);

bioloid.readPose();

bioloid.interpolateSetup(500);

while(bioloid.interpolating > 0)

{

bioloid.playSeq(forward);

(76)

if(bioloid.interpolating == 0){

if((rstep != 0) || (lstep != 0)){ // tidak melakuakan kegiatan jika stop

if(walkMode == 0){

bioloid.loadPose(walk0);

bioloid.setNextPose(RIGHT_FRONT,bioloid.getNextPose(RIGHT_FRONT) - rstep);

bioloid.setNextPose(LEFT_FRONT,bioloid.getNextPose(LEFT_FRONT) - lstep);

bioloid.setNextPose(RIGHT_REAR,bioloid.getNextPose(RIGHT_REAR) + rstep);

bioloid.setNextPose(LEFT_REAR,bioloid.getNextPose(LEFT_REAR) + lstep);

walkMode = 1;

bioloid.interpolateSetup(75);

}else if(walkMode == 1){

bioloid.loadPose(walkend);

bioloid.setNextPose(RIGHT_FRONT,bioloid.getCurPose(RIGHT_FRONT));

bioloid.setNextPose(LEFT_FRONT,bioloid.getCurPose(LEFT_FRONT));

bioloid.setNextPose(RIGHT_REAR,bioloid.getCurPose(RIGHT_REAR));

bioloid.setNextPose(LEFT_REAR,bioloid.getCurPose(LEFT_REAR));

walkMode = 2;

bioloid.interpolateSetup(30);

}else if(walkMode == 2){

bioloid.loadPose(walk1);

bioloid.setNextPose(RIGHT_FRONT,bioloid.getNextPose(RIGHT_FRONT) + rstep);

bioloid.setNextPose(LEFT_FRONT,bioloid.getNextPose(LEFT_FRONT) + lstep);

bioloid.setNextPose(RIGHT_REAR,bioloid.getNextPose(RIGHT_REAR) - rstep);

bioloid.setNextPose(LEFT_REAR,bioloid.getNextPose(LEFT_REAR) - lstep);

walkMode = 3;

bioloid.interpolateSetup(75);

}else{

bioloid.loadPose(walkend);

bioloid.setNextPose(RIGHT_FRONT,bioloid.getCurPose(RIGHT_FRONT));

bioloid.setNextPose(LEFT_FRONT,bioloid.getCurPose(LEFT_FRONT));

bioloid.setNextPose(RIGHT_REAR,bioloid.getCurPose(RIGHT_REAR));

bioloid.setNextPose(LEFT_REAR,bioloid.getCurPose(LEFT_REAR));

walkMode = 0;

(77)

bioloid.setNextPose(LEFT_FRONT,bioloid.getCurPose(LEFT_FRONT));

bioloid.setNextPose(RIGHT_REAR,bioloid.getCurPose(RIGHT_REAR));

bioloid.setNextPose(LEFT_REAR,bioloid.getCurPose(LEFT_REAR));

bioloid.interpolateSetup(30);

while((servox == 0) && (servoy == 0))

{

(78)

{

Turn_Move = 2; //ke kiri

}

else if(servox_goal < (servox + 20))

{

bioloid.setNextPose(LEFT_FRONT,bioloid.getCurPose(LEFT_FRONT));

bioloid.setNextPose(RIGHT_REAR,bioloid.getCurPose(RIGHT_REAR));

bioloid.setNextPose(LEFT_REAR,bioloid.getCurPose(LEFT_REAR));

(79)

}

bioloid.setNextPose(RIGHT_FRONT,bioloid.getCurPose(RIGHT_FRONT));

bioloid.setNextPose(LEFT_FRONT,bioloid.getCurPose(LEFT_FRONT));

bioloid.setNextPose(RIGHT_REAR,bioloid.getCurPose(RIGHT_REAR));

bioloid.setNextPose(LEFT_REAR,bioloid.getCurPose(LEFT_REAR));

(80)
(81)

{

Destination_Pos[21] = bioloid.getCurPose (Lft3) - (Turn_Pos+20);

Destination_Pos[22] = bioloid.getCurPose(Rft3);

Destination_Pos[21] = bioloid.getCurPose(Lft1) + (Turn_Pos+20);

Destination_Pos[22] = bioloid.getCurPose(Rft1) - 222;

}

else if(n==3 || n==4 || n==5)

{

Destination_Pos[5] = bioloid.getCurPose(Lft2) + Turn_Pos;

Destination_Pos[22] = bioloid.getCurPose(Rft2);

}

}

(82)

};

if(n > (Step_Number[Behaviour]-1)) n = 0;

Last_Behaviour = Behaviour;

dxl_initialize( 0, DEFAULT_BAUDNUM ); // Not using device index

sei(); // Interrupt Enable

}

void init()

{

initializeCommunications();

(83)

buzzInit();

// ledOn(LED_BAT); //Power On

(84)

}

//PORTC = LED_TxD|LED_RxD|LED_AUX|LED_MANAGE|LED_PROGRAM|LED_PLAY;

(85)

// Print communication result

printf("COMM_TXFAIL: Failed transmit instruction packet!\n");

break;

case COMM_TXERROR:

printf("COMM_TXERROR: Incorrect instruction packet!\n");

break;

case COMM_RXFAIL:

printf("COMM_RXFAIL: Failed get status packet from device!\n");

break;

case COMM_RXWAITING:

printf("COMM_RXWAITING: Now recieving status packet!\n");

break;

case COMM_RXTIMEOUT:

printf("COMM_RXTIMEOUT: There is no status packet!\n");

break;

case COMM_RXCORRUPT:

printf("COMM_RXCORRUPT: Incorrect status packet!\n");

break;

default:

printf("This is unknown error code!\n");

break;

}

}

// Print error bit of status packet

void PrintErrorCode()

(86)
(87)
(88)
(89)

{204,757,279,744,462,561,358,666,503,555,337,682,267,807,625,343,533,544}

void SendMovement(eeprom int Position[], int Time)

{

unsigned char Pin;

char Text[33];

for(Pin=0;Pin<32;Pin++)

{

sprintf(Text,"#%d P%d T%d \r", Pin, Position[Pin], Time);

SendUSART1(Text);

Current_Pos[Pin] = Position[Pin];

}

delay_ms(Time);

}

void GoServoPosition(int ServoChannel, int ServoPosition, int ServoTime)

{

char Text[33];

sprintf(Text,"#%d P%d T%d \r", ServoChannel, ServoPosition, ServoTime);

SendUSART1(Text);

Gambar

Gambar 2. 1 Konfigurasi Pin Mikrokontroler ATmega128
Tabel 2. 1 Hubungan Pin dan Interupsi
Gambar 2. 2 Clear Time on Compare Match (CTC)
Gambar 2. 4 Phase Correct PWM
+7

Referensi

Dokumen terkait

Yang terlarang ialah mengadopsi undang-undang mereka yang bertentangan dengan agama dan akidah kita, lalu kita menjauh dari ajaran syariat suci dan agama lurus yang telah Allâh Azza

Mulai dari penyusunan proposal sampai selesai penyusunan Skripsi, Penulis menyusun sendiri Skripsi ini (tidak dibuatkan oleh siapapun) 2. Penulis tidak melakukan

Naskah ini memiliki kekuatan yang tersimpan dan penting, yaitu—setidaknya—dalam tiga hal: (a) Isi dari naskah, yaitu pesan-pesan akhlak yang ditujukan kepada para santri

Hasil penelitian menunjukkan bahwa perbedaan proporsi memberikan pengaruh yang nyata terhadap karakteristik fisikokimia (kadar air, volume spesifik, daya patah, dan warna)

BANK berhak dengan ketentuan dan syarat-syarat yang dianggap baik oleh BANK untuk menjual dan/atau mengalihkan sebagian atau seluruh hak tagih BANK, baik pokok maupun bunga,

dengan pipa Ø 1”.. Tangki septik yang baru sebelum digunakan sebaiknya diisi dengan air cukup seember saja yang kotor berwarna hitam, sudah mengandung

Perbedaannya terletak pada judul yang akan diteliti dimana penelitian yang dilakukan oleh Jamieson &amp; Mc Sherry melihat persepsi perawat tentang spiritual secara umum

cronbach pada pembiayaan mikro 0,833 dan pada perkembangan usaha nasabah nilai alpha cronbach 0,963, maka seluruh variabel dinyatakan reliabel dan handal.