Anda di halaman 1dari 91

OPTIMALISASI MOTOR SERVO PADA KASUS ROBOT BERKAKI 6 BERBASIS ATMEGA32A SKRIPSI

Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Sistem Komputer

Oleh : Agung Permana Putra 7101080003

PROGRAM STUDI SISTEM KOMPUTER FAKULTAS ILMU KOMPUTER UNIVERSITAS BUNG KARNO JAKARTA 2012

SKRIPSI OPTIMALISASI MOTOR SERVO PADA KASUS ROBOT BERKAKI 6 BERBASIS ATMEGA32A

Oleh : Agung Permana Putra 7101080003

Telah Disetujui Oleh : Pembimbing I Pembimbing II

B. Gunawan Sudarsono, S.Kom., M.Kom. Tanggal : ..

Boy Firmansyah, M.Kom Tanggal : .

Mengetahui Ketua Program Studi

B. Gunawan Sudarsono, S.Kom Tanggal : ..

SKRIPSI OPTIMALISASI MOTOR SERVO PADA KASUS ROBOT BERKAKI 6 BERBASIS ATMEGA32A
Oleh : Agung Permana Putra 7101080003

Telah dipertahankan di depan Panitia Penguji Pada tanggal 04 Oktober 2012 Dan dinyatakan memenuhi syarat

Susunan Panitia Penguji Nama Lengkap Penguji I Penguji II Penguji III B. Gunawan Sudarsono, S.Kom., M.Kom Dede Zairohendra, ST., M.Kom Yap Wie Tjhe, ST., M.Kom Tanda Tangan ____________ ____________ ____________

Jakarta, 04 Oktober 2012 Fakultas Ilmu Komputer Universitas Bung Karno Dekan

Mustamar, M.Sc

PERNYATAAN
Saya menyatakan bahwa Skripsi yang berjudul OPTIMALISASI MOTOR SERVO PADA KASUS ROBOT BERKAKI 6 BERBASIS ATMEGA32A, sepenuhnya karya saya sendiri. Tidak ada bagian di dalamnya yang merupakan plagiat dari karya orang lain dan saya tidak melakukan penjiplakan atau pengutipan dengan cara-cara yang tidak sesuai dengan etika keilmuan yang berlaku dalam masyarakat keilmuan. Atas pernyataan ini, saya siap menanggung resiko / sanksi yang dijatuhkan kepada saya, atau ada klaim dari pihak lain terhadap keaslian karya saya ini.

Jakarta, 4 Oktober 2012

Agung Permana Putra

ABSTRAK
Komponen robot bisa dibilang bukan barang murah, salah satu robot berkaki dengan penggunaan motor servo di setiap sudut kaki untuk menyerupai gerakan sempurna tentu akan membutuhkan biaya yang sangat besar, maka dari itu perlu adanya optimalisasi pada penggunaan motor servo agar biaya yang di keluarkan tidak besar. Penelitian dengan melakukan observasi, studi pustaka dan melalui percobaan dengan membuat alat berupa robot berkak 6 berbasiskan mikrokontroler atmega32a. Pengujian robot berkaki 6 dilakukan dengan 10 kali pengujian menjalankan robot pada bidang datar sepanjang 1 meter.

Kata kunci : Robot berkaki, Optimalisasi, Motor servo, Mikrokontroler, ATmega32a.

KATA PENGANTAR
Puji syukur Alhamdulilah, penulis panjatkan kehadirat Allah SWT., yang telah melimpahkan rahmat dan karunia-Nya, sehingga pada akhirnya penulis dapat menyelesaikan penelitian dengan baik. Dimana penelitian ini penulis sajikan dalam bentuk buku yang sederhana. Adapun judul penulisan pada penelitian yang penulis ambil adalah sebagai berikut : OPTIMALISASI MOTOR SERVO PADA KASUS ROBOT BERKAKI 6 BERBASIS ATMEGA32A. Tujuan penulisan penelitian ini dibuat sebagai salah satu syarat kelulusan program sarjana strata satu (S1) Jurusan Sistem Komputer Fakultas Ilmu Komputer. Sebagai bahan diambil berdasarkan hasil penelitian, observasi dan beberapa sumber literature yang mendukung penulisan ini. Penulis menyadari bahwa tanpa bimbingan dan dorongan dari semua pihak, maka penulisan pada penelitian ini tidak akan lancar. Oleh karena itu pada kesempatan ini, izinkanlah penulis menyampaikan terima kasih kepada : 1. Bapak Mustamar, MSc., selaku Dekan Fakultas Ilmu Komputer Universitas Bung Karno. 2. Bapak B. Gunawan Sudarsono, M.Kom., selaku Ketua Program Studi Sistem Komputer Fakultas Ilmu Komputer Universitas Bung Karno. 3. Bapak B. Gunawan Sudarsono, M.Kom., selaku Dosen Pembimbing I. 4. Bapak Boy Firmansyah, M.Kom., selaku Dosen Pembimbing II. 5. Staff / karyawan / dosen dilingkungan Fakultas Ilmu Komputer Universitas Bung Karno. 6. Orang tua tercinta yang telah memberikan dukungan moral maupun spiritual. 7. Rekan-rekan mahasiswa Jurusan Sistem Komputer angkatan 2008. Serta semua pihak yang terlalu banyak untuk disebut satu persatu sehingga terwujudnya penulisan ini. Penulis menyadari bahwa penulisan pada penelitian ini masih jauh sekali dari sempurna, untuk itu penulis mohon kritik dan saran yang bersifat membangun demi kesempurnaan penulisan dimasa yang akan datang.

Akhir kata semoga penelitian ini dapat berguna bagi penulis khususnya dan bagi para pembaca yang berminat pada umumnya.

Jakarta, 04 Oktober 2012

Agung Permana Putra Penulis

DAFTAR ISI
Abstrak . i Kata Pengantar . ii Daftar Isi ... iv Daftar Tabel .. vii Daftar Gambar . viii Daftar Lampiran ... x

BAB 1

PENDAHULUAN
1.1 1.2 1.3 1.4 Latar Belakang .......................................................................... 15 Perumusan Masalah .................................................................. 16 Pembatasan Masalah ................................................................. 16 Tujuan dan Manfaat Penelitian ................................................. 17 1.4.1 Tujuan Penelitian .......................................................... 17 1.4.2 Manfaat Penelitian ........................................................ 17 1.5 1.6 1.7 Metode Penelitian ..................................................................... 17 Sistematika Penulisan ............................................................... 18 Jadwal Kegitan .......................................................................... 20

BAB 2

LANDASAN TEORI
2.1 Pengertian Robot ...................................................................... 21 2.1.1 Robot Berkaki 6 ............................................................ 23 2.2 Pengertian Mikrokontroler........................................................ 23 2.2.1 Arsitektur Mikrokontroler ATMega32A ...................... 25 2.2.2 Diagram Pin dan Diagram Blok Mikrokontroler .......... 26 2.2.3 Fungsi Alternatif Port ................................................... 29 2.3 Timer/Counter pada Mikrokontroler AVR ............................... 30 2.3.1 Perbedaan timer 8 bit dan 16 bit ................................... 31 2.3.2 Timer1 16-bit ................................................................ 31 2.4 Modul Mikrokontroler DT-AVR Low Cost Micro System ...... 36

2.4.1 Spesifikasi Hardware .................................................... 37 2.4.2 Tata Letak dan Konfigurasi Jumper ............................. 37 2.5 2.6 Pengertian Motor Servo ............................................................ 41 Dasar Bahasa C ......................................................................... 43 2.6.1. Format Penulisan .......................................................... 43 2.6.2. Tipe Data Dasar ............................................................ 44 2.6.3. Aturan pendefinisian variabel ....................................... 45 2.6.4. Operator ........................................................................ 46 2.6.5. Preprocessor .................................................................. 48

BAB 3

PERANCANGAN ROBOT BERKAKI 6


3.1 3.2 Flowchart Tahapan Perancangan ............................................. 52 Perancangan Sketsa .................................................................. 52 3.2.1 Posisi komponen robot pada sketsa .............................. 53 3.3 3.4 Persiapan Alat dan Bahan Penelitian ........................................ 55 Perancangan Hardware ............................................................. 55 3.4.1 Desain Robot yang akan dibuat .................................... 56 3.4.2 Rangkaian Sistem Minimum ATMega32A .................. 61 3.5 3.6 3.7 3.8 Use Case Diagram Sistem Komunikasi Komputer dan Robot . 61 Tahap Pembuatan Proyek Dengan Atmel Studio ..................... 62 Perancangan Bahasa C .............................................................. 66 Kompilasi dan download program ke mikrokontroler.............. 68

BAB 4

HASIL DAN PEMBAHASAN


4.1 4.2 4.3 4.4 4.5 Pengukuran Pada Catu Daya .................................................... 70 Pengujian Pada Motor Servo .................................................... 71 Pembuatan body robot .............................................................. 73 Mekanik Robot ......................................................................... 76 Sistem Pergerakan Robot .......................................................... 77

4.4.1 Algoritma pergerakan robot .......................................... 77 4.6 Parameter Keberhasilan Sistem ................................................ 80

BAB 5

KESIMPULAN DAN SARAN


5.1 5.2 Kesimpulan ............................................................................... 82 Saran ......................................................................................... 82

DAFTAR PUSTAKA ........................................................................................... 84 DAFTAR RIWAYAT HIDUP ............................... Error! Bookmark not defined. LAMPIRAN ..... 71

DAFTAR TABEL
Hal. Tabel 1.0 Jadwal Kegiatan ... 5 Tabel 1.1 Konfigurasi Pin . 12 Tabel 1.2 Fungsi Alternatif Port A ... 14 Tabel 1.3 Fungsi Alternatif Port B 14 Tabel 1.4 Fungsi Alternatif Port C 15 Tabel 1.5 Fungsi Alternatif Port D ... 15 Tabel 1.6 Konfigurasi sumber clock atau detak pada TCCR1B ... 18 Tabel 1.7 Serial Computer 23 Tabel 1.8 Konfigurasi J6, J7, dan J8 . 24 Tabel 1.9 Konfigurasi J8 ... 24 Tabel 2.0 Konfigurasi J6, J7, dan J8 . 25 Tabel 2.1 Alokasi PORT A, PORT B, PORT C, dan PORT D 25 Tabel 2.2 Alokasi Pin J14 . 26 Tabel 2.3 Alokasi J16 ISP HEADER ... 26 Tabel 2.4 Konfigurasi J4 dan J5 ... 26 Tabel 2.5 Ukuran Memori Tipe Data 30 Tabel 2.6 Ukuran Memori Tipe Int ... 31 Tabel 2.7 Operator aritmatika ... 32 Tabel 2.8 Operator penugasan 32 Tabel 2.9 Operator relasional 33 Tabel 3.0 Operator bit ... 33 Tabel 3.1 Operator logika . 34 Tabel 3.2 Nama nama komponen pada sketsa robot ..39 Tabel 3.3 Hasil pengukuran lebar pulsa 57 Tabel 3.4 Pengaturan pulsa pada bahasa c 64 Tabel 3.5 Pengujian robot . 65

DAFTAR GAMBAR
Hal. Gambar 1.0 Mikrokontroler ATMega32A . 10 Gambar 1.1 Konfigurasi kaki IC mikrokontroler ATMega32a ... 11 Gambar 1.2 Diagram Blok Mikrokontroler ATMega32a .. 13 Gambar 1.3 Diagram blok TIMERn (n diganti dengan 1) . 17 Gambar 1.4 Register TCCR1B ... 18 Gambar 1.5 Register TIMSK . 20 Gambar 1.6 Register SREG 20 Gambar 1.7 Register TIFR . 21 Gambar 1.8 DT-AVR Low Cost Micro System . 21 Gambar 1.9 Tata Letak dan Konfiguras Jumper 23 Gambar 2.0 Motor Servo 28 Gambar 2.1 Nilai Pulsa untuk menggerakan motor servo ..28 Gambar 2.2 Flowchart tahapan penelitian .. 37 Gambar 2.3 Sketsa Robot Berkaki . 38 Gambar 2.4 Posisi dan nama komponen Robot berkaki 39 Gambar 2.5 Tancangan sistem kerja robot berkaki 40 Gambar 2.6 Tampak Atas ... 41 Gambar 2.7 Tampak Samping ... 42 Gambar 2.8 Tampak Depan ....43 Gambar 2.9 Ukuran 45 Gambar 3.0 ATMega32A dengan Modul DT-AVR LCMS ...44 Gambar 3.1 Sistem komunikasi komputer dengan robot ... 46 Gambar 3.2 Diagram aktifitas coding & debuging 46 Gambar 3.3 Shortcut Atmel Studio 6.0 .. 47 Gambar 3.4 Splash screen .. 47 Gambar 3.5 Window startup .. 48 Gambar 3.6 New Project 48 Gambar 3.7 Device selection ..49 Gambar 3.8 Editing program .. 49 Gambar 3.9 Flowchart perancangan bahasa C ... 50 Gambar 4.0 Diagram aktifitas proses kompilasi dan downloading ... 52 Gambar 4.1 Device Programing . 53

Gambar 4.2 Rangkaian adaptor 5 volt .... 54 Gambar 4.3 Hasil pengukuran adaptor dengan voltmeter .. 54 Gambar 4.4 Putaran motor servo parallax standar . 55 Gambar 4.5 Hasil pemotongan plat aluminium ..58 Gambar 4.6 Bagian badan robot dari plat aluminium 59 Gambar 4.7 Hasil perakitan badan robot berkaki 6 dan 3 motor servo . 59 Gambar 4.8 Hasil akhir pembuatan robot .. 60 Gambar 4.9 Mekanik robot 61 Gambar 5.0 Flowchart algoritma pergerakan robot ... 62 Gambar 5.1 Proses pergerakan 1 63 Gambar 5.2 Proses pergerakan 2 63 Gambar 5.3 Tata letak motor servo 64

DAFTAR LAMPIRAN
1. Sketsa Robot Berkaki 6 ... L1 2. Sketsa Robot Berkaki 6 ... L2 3. Photo Robot Berkaki 6 .L3 4. Listing Program ... L4

BIAYA PENGADAAN BARANG


No. 1 2 3 4 NAMA BARANG DT-AVR LCMS Servo Parallax @3 Plat Aluminium 2m baud Jumlah : HARGA (Rp.) 170.000 525.000 20.000 10.000 725.000

BAB 1 PENDAHULUAN
1.1 Latar Belakang Perkembangan dunia robot di Indonesia sudah sangat pesat. Terbukti banyaknya kontes-kontes robot yang diselenggarakan dan dari jumlah pesertanya pun semakin meningkat dari tahun ke tahun. KRCI (Kontes Robot Cerdas Indonesia) adalah kontes yang diadakan setiap satu tahun sekali dan bersekala nasional yang diikuti oleh Perguruan Tinggi seluruh Indonesia. Kontes robot semacam inilah yang akan melahirkan teknologi baru dan juga memacu kreatifitas anak bangsa untuk mengembangkan dunia robotika. Robot berkaki adalah salah satu kategori yang dilombakan dalam KRCI. Robot ini kebanyakan menggunakan motor servo sebagai penggeraknya. Disetiap kaki robot ini minimal menggunakan 2 buah motor servo untuk gerakan mengangkat kaki dan gerakan maju-mundur. Robot berkaki 6 akan menggunakan minimal 12 motor servo dan robot berkaki 8

akan menggunakan minimal 16 buah motor servo sebagai penggerak kakinya. Banyaknya pemakaian motor servo ini akan memperbesar biaya pembelian alat dan bahan pada pembuatan robot, maka harus ada nya Optimalisasi Motor Servo Pada Kasus Robot Berkaki 6 Berbasis ATMega32A. Dengan mengoptimalisasi motor servo pada robot berkaki akan memperkecil biaya pembelian alat dan bahan pada pembuatan robot. 1.2 Perumusan Masalah Ditinjau dari latar belakang dan berdasarkan masalah di atas maka dapat dirumuskan : 1. Bagaimana algoritma program yang tepat agar robot dapat berjalan dengan mengoptimalisasi motor servo. 2. Bagaimanakah membuat rancangan hardware robot berkaki 6. 3. Bagaimana mengkombinasi 3 motor servo agar menjadi gerakan. 1.3 Pembatasan Masalah Penelitian ini dibatasi pada perancangan robot berkaki menggunakan mikrokontroler karena mikrokontroler ini lebih sederhana, sehingga dapat disatukan dengan badan robot berkaki. Mikrokontroler ini juga memiliki kemampuan untuk mengendalikan motor servo. Mikrokontroler yang digunakan adalah ATMega32A. Robot digerakan oleh 3 buah motor servo standar yang merupakan motor dengan desain sistem umpan balik. Motor servo diatur atau dikontrol

menggunakan

pengaturan

pulsa,

dengan

menggunakan

rangkaian

mikrokontroler akan dapat dengan mudah mengontrol servo. Desain robot berkaki enam ini di setiap kedua kakinya menggunakan satu motor servo, yang dapat berjalan dengan stabil dan bisa menopang badan robot sehingga dapat melakukan gerakan seimbang. Bahasa pemrograman yang dipakai adalah bahasa C sehingga dapat mengatur dengan mudah motor servo agar gerakan robot berkaki sesuai dengan keinginan. 1.4 Tujuan dan Manfaat Penelitian 1.4.1 Tujuan Penelitian Penelitian dilakukan bertujuan untuk membuat sebuah robot berkaki menggunakan motor servo standar. 1. Merancang dan membuat robot berkaki 6 dengan penggerak 3 buah motor servo menggunakan mikrokontroler ATMega32A. 2. Mempelajari mikrokontroler ATMega32A untuk menggerakan 3 buah motor servo. 1.4.2 Manfaat Penelitian 1. Kemampuan fleksibilitas dari perancangan sistem yang dapat di aplikasikan pada sistem kendali yang nyata. 2. Sumber inspirasi bagi masyarakat umum dengan pembuatan robot dengan biaya rendah. 1.5 Metode Penelitian Metode penelitian terdapat beberapa tahapan yaitu :

1. Observasi Yaitu pengumpulan data dengan cara observasi terhadap beberapa robot berkaki pada kontes robot KRCI di media masa/internet.

2. Landasan Teori Merupakan sebuah metode pengumpulan data yang dilakukan dengan mengambil data atau keterangan dari buku literature yang sesuai pembahasan penelitian agar dapat dijadikan sebagai sumber data. 3. Praktikum Yaitu melakukan praktek yang meliputi perakitan robot, penulisan bahasa C dan Pengujian robot berkaki 6. 1.6 Sistematika Penulisan Adapun sistematika penulisan penelitian ini adalah : BAB 1 PENDAHULUAN Berisi pembahasan masalah umum yang berhubungan dengan penyusunan yang meliputi Latar belakang, Identifikasi masalah, Batasan masalah, Perumusan masalah, Tujuan penelitian, Kegunaan hasil penelitian, dan Metode penelitian. BAB 2 LANDASAN TEORI Menjelaskan tentang teori pendukung dari beberapa perangkat yang akan digunakan pada penelitian. BAB 3 PERANCANGAN

Bab ini berisi tentang perancangan sebuah sistem yang meliputi pembuatan Sketsa robot, Perancangan Hardware, Perancangan Bahasa C, dan Perancangan Sistem dengan Use Case.

BAB 4 PENGUJIAN DAN HASIL Pada bab ini berisi pengujian catu daya, pengujian motor servo, pengujian bahasa C, dan pengujian robot. BAB 5 KESIMPULAN DAN SARAN Bab ini terdiri dari kesimpulan mengenai hasil seluruh penelitian, serta saran untuk pengembangan robot. 1.7 Jadwal Kegitan Tabel 1.0.
MEI 1 BAB 1 SISTEMATIKA PENULISAN 2 3 4 1

Jadwal kegiatan
JUNI 2 3 4 1 JULI 2 3 4 AGUSTUS 1 2 3 4 SEPTEMBER 1 2 3 4

KEGIATAN

BAB 2 LANDASAN TEORI

BAB 3 PERANCANGAN Pengumpulan Data Perancangan Sistem Perancangan Sketsa Proses Pembuatan Robot penulisan Bahasa C

BAB 4 PENGUJIAN DAN HASIL Pengujian Bahasa C, dan Motor Servo Pengujian Bahasa C ke Mikrokontroler

BAB 5 KESIMPULAN DAN SARAN DEMO

BAB 2 LANDASAN TEORI


2.1 Pengertian Robot Robot adalah sebuah alat mekanik yang dapat melakukan tugas fisik, baik menggunakan pengawasan dan kontrol manusia, ataupun menggunakan program yang telah didefinisikan terlebih dulu (kecerdasan buatan). Istilah robot berawal dari bahasa Cheko robota yang berarti pekerja atau kuli yang tidak mengenal lelah atau bosan. Robot biasanya digunakan untuk tugas yang berat, berbahaya, pekerjaan yang berulang dan kotor. Biasanya kebanyakan robot industri digunakan dalam bidang produksi. Penggunaan robot lainnya termasuk untuk pembersihan limbah beracun. penjelajahan bawah air dan luar angkasa, pertambangan, pekerjaan "cari dan tolong" (search and rescue), dan untuk pencarian tambang. Belakangan ini robot mulai memasuki pasaran konsumen di bidang hiburan, dan alat pembantu rumah tangga, seperti penyedot debu, dan pemotong rumput. Saat ini hampir tidak ada orang yang tidak mengenal robot, namun pengertian robot tidaklah dipahami secara sama oleh setiap orang. Sebagian membayangkan robot adalah suatu mesin tiruan manusia (humanoid), meski demikian humanoid bukanlah satu-satunya jenis robot. Untuk memahami robot harus menelusuri pengertian robot dari beberapa sumber. Pada kamus Webster pengertian robot adalah An

automatic device that performs function ordinarily ascribed to human beings. Dari kamus Oxford diperoleh pengertian robot adalah A machine capable of carrying out a complex series of actions automatically, especially one programmed by a computer. Pengertian dari Webster mengacu pada pemahaman banyak orang bahwa robot melakukan tugas manusia, sedangkan pengertian dari Oxford lebih umum. Beberapa organisasi di bidang robot membuat definisi tersendiri. Robot Institute of America memberikan definisi robot sebagai : A reprogammable multifunctional manipulator designed to move materials, parts, tools or other specialized devices through variable programmed motions for the performance of a variety of tasks. International Standard Organization (ISO 8373) mendefinisikan robot sebagai : An automatically controlled, reprogrammable, multipurpose, manipulator programmable in three or more axes, which may be either fixed in place or mobile for use in industrial automation applications. Dari beberapa definisi di atas, kata kunci yang ada yang dapat menerangkan pengertian robot adalah:

Dapat memperoleh informasi dari lingkungan (melalui sensor) Dapat diprogram Dapat melaksanakan beberapa tugas yang berbeda Bekerja secara otomatis Cerdas (intelligent)

Digunakan di industri Robot Berkaki 6 Robot Berkaki 6 atau disebut juga dengan Hexapod adalah robot yang bisa berjalan dengan menggunakan 6 kaki. Ke enam kaki yang dipakai akan membuat robot berjalan dengan stabil dan bisa menopang bodi robot yang besar. Robot ini menggunakan motor servo untuk menggerakan kaki-kakinya sehingga robot akan berjalan ketika mikrokontroler nya di sisipkan kode perintah.

2.1.1

2.2

Pengertian Mikrokontroler Mikrokontroler merupakan sebuah sistem komputer yang seluruh atau sebagian besar elemennya di kemas dalam satu chip IC, sehingga sering disebut single chip microcomputer. Mikrokontroler merupakan sebuah sistem komputer yang mempunyai satu atau beberapa tugas yang sangat spesifik, berbeda dengan komputer yang memiliki beragam fungsi. Perbedaan yang lainnya adalah perbandingan RAM dan ROM yang sangat berbeda antara komputer dengan mikrokontroler. Dalam mikrokontroler ROM jauh lebih besar dibandingkan RAM, sedangkan dalam komputer RAM jauh lebih besar dibandingkan ROM. Pada Mikrokontroler keluaran dari pabrikan ATMEL, Mikrokontroler ini biasanya dikelompokkan dalam suatu keluarga, masing-masing mikrokontroler memiliki spesifikasi berbeda namun kompatibel / cocok dalam pemrogramannya. Keluarga AVR merupakan salah satu dari keluarga mikrokontroler, AVR ini dapat dikelompokan menjadi lima kelas yaitu :

1. tinyAVR Mikrokontroler (mungil, hanya 8 sampai 32 pin) serbaguna dengan Memori Flash untuk menyimpan program hingga 16 Kbytes, dilengkapi SRAM dan EEPROM 512 bytes. 2. MegaAVR Mikrokontroler Pengalih Perangkat dengan keras unjuk-kerja (Hardware tinggi, dilengkapi mampu

Multiplier),

menyimpan program hingga 256 Kbytes, dilengkapi EEPROM 4 Kbytes dan SRAM 8 Kbytes. 3. AVR XMega Mikrokontroler AVR 8/16-bit XMEGA memiliki periferal baru dan canggih dengan unjukkerja, sistem Event dan DMA yang ditingkatkan, serta merupakan pengembangan keluarga AVR untuk pasar low power dan high performance (daya rendah dan unjukkerja tinggi). 4. AVR UC3 Unjuk-kerja tinggi, mikrokontroler flash AVR 32-bit daya rendah. Memiliki flash hingga 512 KByte dan SRAM 128 KByte. 5. AVR32 AP7 Unjuk-kerja tinggi, prosesor aplikasi AVR32 32-bit daya rendah, memiliki SRAM hingga 32 KByte.

Pada dasarnya yang membedakan masing-masing kelas adalah memori, peripheral, dan fungsinya. Mikrokontroler yang digunakan dalam penelitian ini adalah Mikrokontroler AVR jenis ATMega32A, hal ini karena kelebihan yang dimilikinya, diantaranya sudah ada pengubah analog ke digital (ADC internal) di dalam chip tersebut. Berikut ATMega32A pada Gambar 1.0.

Gambar 1.0. Mikrokontroler ATMega32A 2.2.1 Arsitektur Mikrokontroler ATMega32A ATMega32A merupakan IC CMOS 8-bit yang memilikai daya rendah dalam pengoprasiannya dan berbasis pada arsitektur RISC (Reduced Intruction Set Computing). Mikrokontroler jenis ini dapat mengeksekusi satu instruksi dalam sebuah siklus clock, sehingga para perancang dapat mengoptimalkan penggunaan daya rendah dengan kecepatan yang tinggi. Fitur-fitur yang terdapat pada ATMega32A yaitu : 1. 32 Kbyte in-system programmable flash dengan

kemampuan membaca ketika menulis.

2. 32 general purpose I/O. 3. 32 general purpose register. 4. 3 buah timer/Counter dengan mode compare. 5. Interrupt internal dan external. 6. USART yang dapat diprogram. 7. 8-chaneel ADC 10 bit. 8. Watchdog timer yang dapat diprogram dengan osilator internal. 9. Sebuah serial port SPI. 10. 6 buah mode power saving yang dapat dipilih dengan perangkat lunak. 2.2.2 Diagram Pin dan Diagram Blok Mikrokontroler Pin adalah kaki fisik dari sebuah mikrokontroler, masingmasing pin memiliki fungsi dan karakteristik tersendiri yang harus diperhatikan oleh user. Pin-pin pada ATMega32A dengan kemasan 40-pin DIP (dual in-line package) Ditunjukan pada Gambar 1.1.

Gambar 1.1. Konfigurasi kaki IC Mikrokontroler ATMega32a

Tabel 1.1.
No 1 2 3 No Pin Pin 10 Pin 11 Pin 33-40 Nama Pin VCC GND Port A

Konfigurasi Pin
Fungsi Pin Tegangan suplay (5 Volt) Ground Sebagai input analog ke ADC dan Port A juga dapat berfungsi sebagai port I/O 8 bit bi directions resistor pull-up internal (dipilih untuk setiap bit).

Pin 1-8

Port B

Merupakan Port I/O bidirectional dengan resistor pull-up internal (dipilih untuk setiap bit).

Pin 22-29

Port C

Merupakan Port I/O 8 bidirectional dengan resistor pull-up internal (dipilih untuk setiap bit).

Pin 14-21

Port D

Merupakan port I/O dengan resistor pullup internal (dipilih untuk setiap bit).

Pin 9

Reset

Input reset. Level rendah pada pin ini selama lebih dari panjang pulsa minimum akan menghasilkan reser, walaupun clock sedang berjalan.

Pin 12

XTAL2

Input penguat osilator inverting dan input pada rangkaian operasi clock sedang berjalan.

9 10

Pin 13 Pin 30

XTAL1 AVCC

Output dari resistor inverting AVCC adalah pin tegangan suplay untuk Port A dan ADC.

Gambar 1.2. Diagram Blok Mikrokontroler ATMega32A

2.2.3

Fungsi Alternatif Port Pengaktifan fungsi alternatif port ini diatur oleh register SFIOR dengan menset Bit full-up disable (PUD) 2.2.3.1 Port A Port A memiliki fungsi lain yaitu sebagai : Tabel 1.2.
No Port Pin 1 PA7 2 PA6 3 PA5 4 PA4 5 PA3 6 PA2 7 PA1 8 PA0

Fungsi Alternatif Port A


Fungsi Alternatif ADC Input Channel 7 (ADC7) ADC Input Channel 6 (ADC7) ADC Input Channel 5 (ADC7) ADC Input Channel 4 (ADC7) ADC Input Channel 3 (ADC7) ADC Input Channel 2 (ADC7) ADC Input Channel 1 (ADC7) ADC Input Channel 0 (ADC7)

2.2.3.2 Port B Port B memiliki fungsi lain yaitu sebagai : Tabel 1.3.
No 1 2 3 4 5 6 7 8 Port Pin PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0

Fungsi Alternatif Port B

Fungsi Alternatif SPI Bus Serial Clock (SCK) SPI Bus Master Input/Slave Output (MISO) SPI Bus Master Output/Slave Input (MOSI) SPI Slave Select Input (SS) Analog Comparator Negative Input (AIN 1) Timer/Counter0 Output Compare Match Output (OCO) Analog Comparator Positive Input (AIN 0) Ecternal Interrupt 2 Input (INT 1) Timer/Counter 1 External Counter Input (T1) Timer/Counter 0 External Counter Input (T0) JSART External Clock Input/Output (XCK)

2.2.3.3 Port C Port C memiliki fungsi lain yaitu sebagai : Tabel 1.4.
No Port Pin 1 2 3 4 5 6 7 8 PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0

Fungsi Alternatif Port C


Fungsi Alternatif

Timer Osilator Pin 2 (TOSC2) Timer Osilator Pin (TOSC!) TDI (JTAG Test Data In) TDO (JTAG Test Data Out) TMS (JTAG Test Mode Select) TCK (JTAG Test Clock) Two-wire Serial Bus data Input/Output line (SDA) Two-wire Serial Bus Clock Line (SCL)

2.2.3.4 Port D Port D memiliki fungsi lain yaitu sebagai : Tabel 1.5.
No Port Pin 1 2 3 4 5 6 7 8 PD7 PD6 PD5 PD4 PD3 PD2 PD1 PD0

Fungsi Alternatif Port D


Fungsi Alternatif

Timer/Counter2 Output Compare Match Output (OC2) Timer/Counter1 Input Capture Pin 1 (CP1) Timer/Counter1 Output Compare A Match Output (OC1A) Timer/Counter1 output Compare B Match Output (OC1B) External Interuppt 1 Input (INT1) External Interuppt 0 Input (INT0) USART Output Pin (TXD) USART Input Pin (RXD)

2.3

Timer/Counter pada Mikrokontroler AVR Timer/Counter dalam mikrokontroler merupakan fasilitas yang salah satu fungsinya dapat digunakan sebagai pewaktu atau cacahan suatu event. Sumber clock atau pemicu dapat dibangkitkan dari sinyal eksternal maupun internal.

Jika sumber sinyal pemicu atau clock berasal dari internal maka Timer/Counter berfungsi sebagai pewaktu atau timer dan jika sumber sinyal berasal dari luar maka disebut sebagai pencacah atau counter. Mikrokontroler ATMega32a memliki 3 buah timer yaitu Timer0, Timer1 dan Timer2. Timer 0 dan Timer2 memiliki kapasitas 8-bit sedangkan Timer1 memiliki kapasitas 16-bit. 2.3.1 Perbedaan timer 8 bit dan 16 bit Timer 8-bit adalah pewaktu yang bias mencacah atau menghitung hingga maksimum nilai 0xFF heksa (dalam biner = 11111111). Timer 16-bit sama seperti timer 8-bit, hanya saja nilai maksimalnya mencapai 0xFFFF. 2.3.2 Timer1 16-bit Untuk dapat menjalankan atau menggunakan Timer1 ini, maka harus mempelajari terlebih dulu register-register yang berkaitan dengan Timer1 karena di register itulah tempat pengaturan Timer/Counter1 agar bisa bekerja. Pada Gambar 1.3 ditunjukan diagram blok dari Timer1 16-bit, terlihat adanya beberapa register yang terkait, antara lain : TCNT1, OCR1A, OCR1B, ICR1, TCCR1A, TCCR1B dan juga beberapa bit-bit terkait seperti : TOV1, OC1A, OC1B dan ICF1.

Gambar 1.3. Diagram blok TIMERn (n diganti dengan 1) Register Timer1 yang telah di libatkan di awal adalah : TCCR1B TCNT1 TIMSK TIFR Register TCCR1B, ditunjukan pada Gambar 1.4, merupakan tempat pengaturan clock yang intinya agar Timer/Counter1 bisa bekerja, maka register TCCR1B ini jangan sampai diisi dengan 0x00 (dikosongkan).

Gambar 1.4. Register TCCR1B TCCR1B tidak boleh berisi 0x00 atau semua bit pada TCCR1B nol semua, perhatikan pada Tabel 1.5 sumber clock bisa berasal dari internal mulai dari prescaler 1 hingga 1024 atau bisa juga dari sumber eksternal, semua bisa di atur sesuai atau mengikuti aturan pada Tabel 1.6. Timer1 (juga timer/counter lainnya) membutuhkan sumber detak atau clock source. Biasanya sumber detak yang biasa kita pakai berasal dari XTAL. Besarnya maksimum sama dengan XTAL yang digunakan dan minimum XTAL/1024. Nilai pembagi atau 1024 inilah yang disebur nilai praskalar atau prescaler. jika semua bit di TCCR1B nol semua, artinya bit 0, 1 dan 2 juga nol semua, itu artinya CS12=0, CS11=0 dan CS10=0 dan itu menurut Tabel 1.6 No clock source (Timer/Counter stopped) -> Timer berhenti bekerja! Atau tidak bekerja!! Tabel 1.6. Konfigurasi sumber clock atau detak pada TCCR1B

Perhatikan tiga bit (CS12, CS11 dan CS10), register TCNT1 merupakan register pencacah, artinya nilai di dalamnya akan dinaikkan setiap kali ada pemicu, bisa tepi naik atau tepi turun. Jika sumbernya dari dalam (internal) pencacahan dilakukan pada saat tepi naik. Register ini akan mencacah naik dari 0x0000 sampai nilai maksimal 0xFFFF kemudian di-reset kembali lagi ke 0x0000. Overflow (melimpah) terjadi saat kondisi dari 0xFFFF ke 0x0000, sehingga mengakibatkan bit TOV1 pada register TIFR akan di-set (diberi logika 1). Kondisi overflow juga bisa digunakan untuk menjalankan interrupsi. Register TIMSK, yang ditunjukkan pada Gambar 1.5, merupakan register tempat pengaturan interupsi overflow dari Timer/Counter1 yang ingin diaktifkan atau tidak. Dengan memberikan logika 1 pada bit TOIE1 (bit-2 pada TIMSK), maka interupsi Timer/Counter1 aktif dengan catatan bit interupsi global diaktifkan (bit-7 di register Status SREG, perhatikan Gambar 1.6). Perhatikan juga bit-bit lain yang berkaitan dengan masingmasing Timer: Timer/Counter-0: OCIE0 dan TOIE0 masing-masing bit 1 dan 0; Timer/Counter-1: TICIE1, OCIE1A, OCIE1B dan TOIE1 masing-masing bit 5, 4, 3 dan 2; Timer/Counter-2: OCIE2 dan TOIE2 masing-masing bit 7 dan 6;

Gambar 1.5. Register TIMSK

Gambar 1.6. Register SREG Penjelasan register SREG : I Global Interrupt Enable: digunakan untuk mengaktifkan interupsi menyeluruh (global); T Bit copy storage H Half Carry Flag S Sign bit V Twos Complement Overflow Flag N Negative flag Z Zero flag C Carry flag Sedangkan register TIFR (Timer/Counter Interrupt Flag Register), sebagaimana ditunjukkan pada Gambar 1.7, digunakan sebagai indikator atau penanda apakah sudah terjadi overflow atau belum. Pada Timer/Counter1, kondisi overflow ditandai dengan logika 1 pada bit TOV1 (bit-2) pada register TIFR.

Gambar 1.7. Register TIFR Persamaan untuk mencari waktu jeda yang ingin digunakan adalah berdasarkan nilai awal yang harus dimasukkan ke dalam TCNT1, gunakan persamaan berikut:
TCNT1 = (1+0xFFFF) - (waktu *( XTAL / praskalar))

Waktu -> waktu yang diinginkan XTAL -> frekuensi kristal yang dipakai praskalar -> nilai prescaler (lihat penjelasan berikut ini) 2.4 Modul Mikrokontroler DT-AVR Low Cost Micro System DT-AVR Low Cost Micro System merupakan sebuah modul chip tunggal dengan basis mikrokontroler AVR ATMega32A dan memiliki kemampuan untuk melakukan komuniasi data secara UART RS-232 serta pemrograman memori melalui ISP (In-System Prrogramming), berikut pada Gambar 1.8 adalah modul mikrokontrolernya.

Gambar 1.8. DT-AVR Low Cost Micro System

2.4.1

Spesifikasi Hardware 1. Mikrokontroler ATMega32A yang mempunyai 32 KB Flash Memory dan 8 channel ADC dengan resolusi 10 bit. 2. 3. Memiliki jalur Input/Output hingga 35 pin. Konfigurasi jumper untuk melakukan pemilihan beberapa model pengambilan tegangan referensi untuk tipe AVR dengan internal ADC. 4. 5. 6. LED Programming Indicator. Frekuensi Osilator sebesar 4MHz. Tersedia jalur komunikasi serial UART RS-232 dengan konektor RJ11. 7. 8. Tersedia Port untuk pemrograman secara ISP. Tegangan input Power Supply 9 12 VDC dan output tegangan 5 VDC.

2.4.2

Tata Letak dan Konfigurasi Jumper

Gambar 1.9. Tata Letak dan Konfigurasi Jumper

Untuk menghubungkan komputer dengan DT-AVR Low Cost Micro System secara serial seperti pada Tabel 1.7 di bawah ini. Tabel 1.7. Serial Computer

Apabila menggunakan tipe AVR dengan internal ADC, tegangan referensi dapat diperoleh dari AVCC atau Aref. Untuk mendapatkan tegangan referensi dari AVCC, jumper J6, J7, dan J8 harus dikonfigurasikan seperti pada Tabel 1.8. Tabel 1.8. Konfigurasi J6, J7, dan J8.

Sedangkan untuk mendapatkan tegangan referensi (Aref) dari luar, yang harus di konfigurasi adalah J8 saja, Konfigurasi J8 adalah sebagai berikut pada Tabel 1.9.

Tabel 1.9.

Konfigurasi J8

Bila menggunakan tipe AVR tanpa internal ADC, harus menggunakan Conversion socket. Konfigurasi jumper J6, J7, dan J8 adalah sebagai berikut pada Tabel 2.0.

Tabel 2.0. Konfigurasi J6, J7, dan J8.

Tabel 2.1. Alokasi PORT A, PORT B, PORT C, dan PORT D

Tabel 2.2. Alokasi Pin J14

Untuk pemrograman secara ISP (In-System Programming) konfigurasinya dapat di lihat pada Tabel 2.3. Tabel 2.3. Alokasi J16 ISP HEADER

Pada penggunaan komunikasi serial, J4 dan J5 harus di konfigurasikan seperti pada Tabel 2.4. Tabel 2.4. Konfigurasi J4 dan J5

Ketiga konfigurasi jumper digunakan untuk melakukan konfigurasi pada pin 30, 31, dan 32 pada mikrokontroler. Untuk beberapa mikrokontroler, misalnya ATMega8515, pin-pin tersebut berfungsi sebagai Port E (PE.0 PE.2). 2.5 Pengertian Motor Servo Motor servo adalah sebuah motor dengan sistem closed feedback di mana posisi dari motor akan di informasikan kembali ke rangkaian kontrol yang ada di dalam motor servo. Motor ini terdiri dari sebuah motor, serangkaian gear, potensiometer dan rangkaian kontrol. Potensiometer berfungsi 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. Tampak pada Gambar 2.1 dengan pulsa 1.5 ms pada periode selebar 2 ms maka sudut dari sumbu motor akan berada pada posisi 90. Semakin lebar pulsa OFF maka akan semakin besar gerakan sumbu ke arah jarum jam dan

semakin kecil pulsa OFF maka akan semakin besar gerakan sumbu ke arah yang berlawanan dengan jarum jam. Motor servo biasanya hanya bergerak mencapai sudut tertentu saja dan tidak kontinyu seperti motor DC maupun motor stepper. Walau demikian, untuk beberapa keperluan tertentu, motor servo dapat dimodifikasi agar bergerak kontinyu. Pada robot motor ini sering digunakan untuk bagian kaki, lengan atau bagian-bagian lain yang mempunyai gerakan terbatas dan membutuhkan torsi cukup besar. Motor servo mampu bekerja dua arah (CW dan CCW) dimana arah dan sudut pergerakan rotornya dapat dikendalikan hanya dengan memberikan pengaturan duty cycle sinyal PWM pada bagian pin kontrolnya, berikut adalah motor servo pada Gambar 2.0 dan Gambar 2.1.

Gambar 2.0. Motor Servo

Gambar 2.1. Nilai Pulsa untuk menggerakan motor servo 2.6 Dasar Bahasa C 2.6.1. Format Penulisan Sebelum mengenal lebih jauh tentang bahasa c terlebih dahulu harus mengenal struktur/format penulisan program c. sehingga mempunyai gambaran tentang bagian-bagian dalam pembuatan program. Berikut contoh program C, dengan catatan:

2.6.2.

Tipe Data Dasar Data merupakan suatu nilai yang bisa dinyatakan dalam benntuk konstanta atau variabel. konstanta menyatakan nilai yang tetap, sedangkan variabel menyatakan nilai yang dapat diubah-ubah selama eksekusi berlangsung. Data berdasarkan jenisnya dapat dibagi menjadi lima kelompok, yang dinamakan sebagai tipe data dasar. Kelima tipe data dasar adalah:

Bilangan Bulat Bilangan real presisi-tunggal Bilangan real presisi-ganda Karakter Tak bertipe (void) Kata kunci yang berkaitan dengan tipe dasar secara berurutan

di antaranya adalah int (short int, long int, signed int dan unsigned int), float, double dan char. Tabel 2.5. Ukuran Memori Tipe Data

Untuk tipe data short int, long int, signed int dan unsigned int, maka ukuran memori yang diperlukan serta kawasan dari masing masing tipe data adalah sebagai berikut : Tabel 2.6. Ukuran Memori Tipe Data Int

2.6.3.

Aturan pendefinisian variabel

Aturan penulisan pengenalan variabel, konstanta dan fungsi yang didefinisikan oleh pemrograman adalah sebagai berikut: Pengenala harus diawali dengan huruf (A..Z,a..z) atau karakter garis bawah(_). Selanjutnya dapat berupa huruf, digit(0..9) atau karakter garis bawah atau tanda dolar($). Panjang pengenal boleh lebih dari 31 karakter, tetapi hanya 31 karakter pertama yang akan dianggap berarti. Pengenal tidak boleh menggunakan nama yang tergoong sebagai kata kata cadangan (reserved words) seperti int,if,while dan sebagainya. 2.6.4. Operator Operator adalah karakter-karakter khusus untuk

memanipulasi variabel. Operator aritmatika, penugasan (assignment), logika dan bit, relasi, pointer. 1. Operator aritmatika Tabel 2.7. Operator aritmatika
Binary operator + * / % ++ -Keterangan Penambahan Pengurangan Perkalian Pembagian (hasil bagi) Modulo (sisa bagi) Increment Decrement

2.

Operator penugasan (assignment) Operator ini digunakan untuk memberi atau memasukan nilai suatu variabel. Tabel 2.8. Operator penugasan
Penugasan = += -= *= /= %= <<= >>= Keterangan Penugasan sederhana Penugasan + Penugasan Penugasan * Penugasan / Penugasan % Penugasan << Penugasan >>

3.

Operator relasional Operator ini berfungsi untuk menguji benar atau tidaknya hubungan dua operand, jika hubungan benar maa akan menghasilkan 1 dan jika salah akan menghasilkan 0. Tabel 2.9. Operator relasional
Operator == != > < >= <= Keterangan Sama dengan Tidak sama dengan Lebih besar Lebih kecil Lebih besar sama dengan Lebih kecil sama dengan

4.

Operator bit Berfungsi untuk mengoperasian antar-bit variable

Tabel 3.0.
Operator & | ^ ~ >> <<

Operator bit

Keterangan Meng-and-kan tap pasang bit dan menghaslikan 1 jika keduanya beris 1, dan 0 untuk lainnya Meng-or-kan tiap pasang bit dan menghasilkan 0 jika keduanya berisi 0, dan 1 untuk lainnya Meng-exor-kan tiap pasang bit dan menghasilkan 1 jika keduanya berbeda isi, dan 0 untuk yang lainnya Membalik isi tiap bit Menggeser tiap bit ke kanan Menggeser tiap bit ke kiri

5.

Operator logika Berfungsi untuk menentukan benar atau salah dengan menggunakan operasi and, or, dan negasi. Tabel 3.1. Operator logika
Keterangan Operator logika and, Meng-and-kan antar-operand Meng-or-kan antar-operand not/kebalikan

Operator && || !

2.6.5.

Preprocessor 1. Preprocessor #include Biasanya digunakan untuk menyertakan file header (.h) atau file library. File include berguna memberitahukan compiler agar membaca file yang akan di include-kan lebih dahulu agar mengenali definisi-definisi yang digunakan dalam program sehingga tidak dianggap error. Cara penulisan:

# include <> untuk lokasi standar file yang telah disetting oleh tools biasanya pada folder include atau folder direktori compiler. # include untuk lokasi file yang kita tentuka sendiri. File header io.h adalah file yang berisi segala

informasi/definisi tentang register-register fungsi khusus (SFR) dan bit-bit atau pin-pin mikrokonroler AVR. 2. Preprocessor #define Digunakan untuk mendefinisikan konstanta atau makro Cara penulisan: #define identifier Contoh : #define MAX konstanta 100

Setiap kemunculan max diganti dengan angka 100. #define identifier 3. Perintah #if - #endif Digunakan untuk mengetes ekpresi yang valid untuk mengolah kode program di bawahnya hinga #endif. Contoh : #if (ekpresi) Kode program #endif Contoh: macro

#define pembagi 15 #if (pembagi>0) Y=x/pembagi; #endif 4. While Perintah while dapat melakukan looping apabila persyaratannnya benar. Sintaks perintah while dapat dituliskan sebagai berikut:

5.

Fungsi tanpa nilai balik (void) Fungsi ini tidak memberikan hasil yang serupa nilai melainkan berupa sebuah proses. Fungsi ini bertipe void. Contoh:

6.

Fungsi delay Menghasilkan delay dalam program C. berada pada header delay.h yang harus dimasukan (include) sebelum digunakan. Sebelum memanggil fungsi, interupsi harus dimatikan terlebih dahulu, apabila tidak maka delay akan lebih lama dari yang diharapkan. Juga sangat penting untuk menyebutkan frekuensi clock chip IC AVR.

BAB 3 PERANCANGAN ROBOT BERKAKI 6


3.1 Flowchart Tahapan Perancangan Berikut adalah flowchart tahapan perancangan robot berkaki 6 dengan 3 motor servo terlihat pada Gambar 2.2.

Gambar 2.2. Flowchart tahapan penelitian 3.2 Perancangan Sketsa Sebelum pembuatan robot berkaki 6 ini, terlebih dahulu harus membuat sebuah konsep atau sketsa, yang meliputi bagai mana sebuah motor servo dapat bekerja tanpa mengganggu peralatan lainnya, dan bagai

mana menempatkan sebuah komponen yang pas tanpa merusak komponen lainnya. Proses pembuatan sketsa robot berkaki menggunakan perangkat lunak 3D akan lebih memudahkan dalam perancangan robot secara real-nya, untuk menentukan sudut pergerakan, penempatan posisi komponen, dan efisiensi dalam ukuran robot berkaki. Berikut pada Gambar 2.3 adalah sebuah sketsa robot berkaki.

Gambar 2.3. Sketsa Robot Berkaki 3.2.1 Posisi komponen robot pada sketsa Menentukan posisi komponen - komponen robot merupakan hal yang sangat penting dalam pembuatan robot berkaki ini, pada Gambar 2.4 terlihat urutan urutan komponen robot dengan nama komponen yang tertera pada Tabel 3.2.

Gambar 2.4. Posisi dan nama komponen Robot berkaki Tabel 3.2.
No. 1 Nama Komponen Kaki - Kaki DT-AVR Low Cost Micro sistem Mikrokontroler ATmega32a Plat Aluminium Motor Servo

Nama nama komponen pada sketsa robot


Keterangan Komponen utama pada pembuatan robot berkaki, di setiap pasang kaki terdapat motor servo untuk menggerakan badan robot. Sistem minimum untuk mikrokontroler ATmega32a dan jalur port A, B, C, D ke setiap motor servo dan masukan Battery. Tempat penyimpanan Program untuk memerintahkan motor servo agar dapat bergerak. Plat aluminium adalah sebuah plat yang disusun untuk menyimpan atau menyatukan komponen - komponen robot. Adalah sebuah motor yang berfungsi untuk menggerakkan kaki-kaki robot agar memindahkan badan robot ke posisi yang berbeda.

2 3 4

3.3

Persiapan Alat dan Bahan Penelitian 1. 2. 3. 4. 5. 6. 7. 8. 9. DT-AVR Low Cost Micro System dengan mikrokontroler ATMega32a. Motor Servo Standard Parallax. Catu daya 5 ~ 9 Volt. DT-HiQ AVR USB ISP mkII Plat Aluminium Mur 2cm 2mm dan baud Notebook MSI-CX420 Perangkat lunak Atmel Studio 6 Perangkat lunak Protheus 7

3.4

Perancangan Hardware Pada perancangan robot berkaki ini terdiri atas beberapa komponen yang mempunyai fungsi masing-masing yaitu mikrokontroler dan motor servo. Perancangan robot ini pengendali utamanya adalah mikrokontroler ATMega32a. dalam sistem robot ini untuk mengoprasikan semua sistem board atau modul yang sudah disiapkan, maka dibutuhkan yaitu catu daya dengan arus tegangan yang sesuai dengan masing-masing fungsi dari sistem rangkaian tersebut. Untuk lebih jelasnya pada sistem perancangan perangkat keras dapat dilihat pada Gambar 2.5. berikut:

Gambar 2.5. Rancangan sistem kerja robot berkaki

3.4.1

Desain Robot yang akan dibuat pada Gambar 2.6, 2.7, 2.8 Tampak dari sebuah robot berkaki dengan gambar tampak dari atas, depan dan belakang dengan skala 1:1. Gambar 2.9 rancangan untuk badan robot untuk penempatan motor servo dan modul DT-AVR LCMS dengan skala 1:1.

Gambar 2.6. Tampak Depan

Gambar 2.7. Tampak Depan

Gambar 2.8. Tampak Samping

Gambar 2.9. Ukuran

3.4.2

Rangkaian Sistem Minimum ATMega32A Rangkaian sistem minimum untuk ATMega32A ini merupakan sebuah modul DT-AVR Low Cost Micro System yang merupakan sistem kontrol untuk mengatur robot berkaki ini. Dalam penelitian ini, mikrokontroler digunakan sebagai sistem kontrol (output). Rangkaian sistem minimum mikrokontroler ditunjukan pada Gambar 3.0 berikut ini :

Gambar 3.0. ATMega32A dengan Modul DT-AVR LCMS 3.5 Use Case Diagram Sistem Komunikasi Komputer dan Robot Model use case diagram merupakan gambaran aktivitas yang berjalan yang dilihat dari kebutuhan Aktor. Pada tahapan ini menggambarkan

hubungan antara aktor dengan sistem. Hubungan antara aktor dengan sistem bias dilihat pada Gambar 3.1.
Sistem komunikasi komputer dan Robot

User

Coding & Debuging

Download

Robot

Gambar 3.1. sistem komunikasi komputer dan robot 3.6 Tahap Pembuatan Proyek Dengan Atmel Studio Untuk menjalankan perangkat lunak Atmel Studio 6 ada beberapa tahap yang diantaranya adalah :

Gambar 3.2. Diagram aktifitas coding & debuging

1.

klik Start > All Programs > Atmel > dan klik Atmel Studio 6.0 atau klik ganda shortcut pada desktop.

Gambar 3.3. Shortcut Atmel Studio 6.0 2. Akan muncul splash screen seperti berikut.

Gambar 3.4. Splash screen 3. Setelah splash screen maka akan tampil jendela startup.

Gambar 3.5. Window Startup 4. Klik pada menu file > New > Project atau Ctrl+Shift+N, pada jendela New Project isi Name proyek yang akan di buat.

Gambar 3.6. New project

5.

Selanjutnya pada jendela Device Selection pilih jenis dan tipe mikrokontroler apa yang akan di gunakan.

Gambar 3.7. Device selection 6. Setelah semua prosedur selesai, barulah merancang bahasa program.

Gambar 3.8. Editing program

3.7

Perancangan Bahasa C 1. Flowchart perancangan bahasa C untuk menggerakan 3 motor servo dengan mikrokontroler ATMega32a.

Gambar 3.9. Flowchart perancangan bahasa C 2. Listing code untuk menggerakan 3 motor servo #include <avr/io.h> #include <util/delay.h> int main() { unsigned char i; DDRA=(1<<0);

DDRB=(1<<0); DDRC=(1<<0); for(;;) { for(i=1;i<5;i++) { PORTA=(1<<0); _delay_us(2800); PORTA=0; _delay_ms(100); PORTB=(1<<0); _delay_us(2800); PORTB=0; _delay_ms(100); PORTC=(1<<0); _delay_us(2800); PORTC=0; _delay_ms(100); } for(i=2;i<5;i++) { PORTA=(1<<0); _delay_us(1000); PORTA=0; _delay_ms(10); PORTB=(1<<0); _delay_us(1000); PORTB=0; _delay_ms(100); PORTC=(1<<0); _delay_us(1000); PORTC=0; _delay_ms(100); } } }

3.8

Kompilasi dan download program ke mikrokontroler

Gambar 4.0. Diagram aktifitas proses kompilasi dan downloading. Sebelum menuliskan program ke mikrokontroler ada beberapa tahap untuk mengecek sebuah program, apakah program itu benar atau salah. 1. Setelah program di buat maka program harus di build, pada menu Build > Build Solution atau Ctrl+F7, jika berhasil maka akan seperti pada contoh dibawah ini :

Build succeeded. ====== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped =====

Dan jika gagal maka akan seperti contoh dibawah ini :


Build FAILED. ===== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped =====

2. Proses penulisan program ke mikrokontroler hubungkan DT-HiQ AVR USB ISP mkII ke komputer, klik pada menu Tools > Device Programming akan tampak jendela Device Programming.

Gambar 4.1. Device programming

BAB 4 HASIL DAN PEMBAHASAN


4.1 Pengukuran Pada Catu Daya Pada Gambar 4.2 dibawah ini adalah rangkaian adaptor dengan output sebesar 5 volt dan arus listrik sebesar 1200 mA.

Gambar 4.2. Rangkaian adaptor 5 volt Pengujian catu daya dilakukan dengan memberikan tegangan input AC pada rangkaian sebesar 220 volt, serta output dari rangkaian sebesar 5 volt DC dan pengukuran pun dengan menggunakan volt meter. Pada Gambar 4.3 di bawah ini adalah pengukuran output.

Gambar 4.3. Pengukuran adaptor dengan voltmeter

4.2

Pengujian Pada Motor Servo Motor servo pada robot berkaki 6 ini merupakan penggerak utama robot, agar robot dapat bergerak sesuai fungsi dibutuhkan kombinasi putaran dari 3 buah servo. Putaran servo dikendalikan oleh mikrokontroler ATMega32a dengan memberikan pulsa, besar sudut putar servo diatur berdasarkan lebar pulsa yang diberikan. Pada Gambar 4.4 adalah putaran motor servo standar dengan merk parallax.

Gambar 4.4. Putaran motor servo parallax standar Arah putaran servo dapat diketahui arahnya yakni 0 di sebelah kanan dan 180 di sebelah kiri. Motor servo ini merupakan jenis motor yang bergerak dua arah dengan defleksi masing-masing sudut mencapai 90 sehingga total defleksi sudut dari kanan tengah kiri adalah 180. Pengaturan lebar pulsa terhadap sudut putar motor servo dapat diketahui dengan mengukur batas lebar pulsa dari 0 hingga 180. Untuk pengujian motor servo dilakukan dengan menuliskan bahasa c ke mikrokontroler secara random. 1. Pengujian motor servo pada 0 dengan bahasa c.
#include <avr/io.h> #include <util/delay.h>

int main() { unsigned char i; DDRA=(1<<0); for(;;) { for(i=1;i<10;i++) { PORTB=(1<<0); _delay_us(1000); PORTB=0; _delay_ms(10); } } }

2. Pengujian motor servo pada 90 dengan bahasa c.


#include <avr/io.h> #include <util/delay.h> int main() { unsigned char i; DDRA=(1<<0); for(;;) { for(i=1;i<10;i++) { PORTB=(1<<0); _delay_us(4800); PORTB=0; _delay_ms(10); } } }

3. Pengujian motor servo pada 180 dengan bahasa c.


#include <avr/io.h> #include <util/delay.h> int main() { unsigned char i; DDRA=(1<<0); for(;;) { for(i=1;i<10;i++) { PORTB=(1<<0); _delay_us(8500); PORTB=0; _delay_ms(10); } } }

Hasil pengukuran lebar pulsa dapat dilihat pada Tabel 3.3 dibawah ini. Tabel 3.3. Hasil pengukuran lebar pulsa

No Sudut Putar Pulsa Yang Diberikan (us) 1 2 3 0 90 180 1000 4800 8500

Dari Tabel 3.3 di atas dapat diketahui jangkauan lebar pulsa dan nilai derajat dengan cara berikut :
Jangkauan lebar pulsa = pulsa pada 180 pulsa pada 0 = (8500us) (1000us) = 7500us Nilai pulsa/drajat = jangkauan lebar pulsa / 180 = 7500us/180 = 44.6 pulsa/derajat Lebar pulsa (0) = (derajat * nilai pulsa) + 1000us = (0 * 41.6) + 1000us = 1000us Lebar pulsa (90) = (derajat * nilai pulsa) + 1000us = (90 * 41.6) + 1000us = 4744us Lebar pulsa (180) = (derajat * nilai pulsa) + 1000us = (180 * 41.6) + 1000us = 8488us

4.3

Pembuatan body robot 1. Pemotongan plat aluminium

Ukuran pada plat aluminium dan lubang untuk baud penghubung plat dapat dilihat pada Gambar 2.9. dan pada Gambar 4.5 adalah plat aluminium yang sudah di potong.

Gambar 4.5. Hasil pemotongan plat aluminium 2. Perakitan plat aluminium Setelah pemotongan plat aluminium selanjutnya perakitan plat aluminium, pada Gambar 4.6 adalah bagian bagian pada badan robot, plat no. 1 dan 7 di posisikan berada di atas plat 2, 3, 4, 5, dan 6, selaraskan lubang pada plat untuk proses pembaud-an, dan Gambar 4.7 adalah hasil dari proses perangkaian plat aluminium.

Gambar 4.6. Bagian badan robot dari plat aluminium

Gambar 4.7. Hasil perakitan badan robot berkaki 6 dan 3 motor servo

3. Hasil dari perakitan robot dan komponen nya.

Gambar 4.8. Hasil akhir pembuatan robot 4.4 Mekanik Robot Robot berkaki 6 dengan penggerak 3 buah motor servo yang terletak pada badan robot dengan posisi motor servo yang berada di depan, tengah, dan belakang. Motor servo akan memutar kaki-kaki ke derajat tertentu dan menimbulkan gerakan yang teratur untuk menggerakan robot. Badan robot menggunakan plat aluminium, bahan di potong dan di bentuk menyesuaikan ukuran motor servo yang kemudian dirangkai atau disusun menjadi beberapa bagian dan bisa menopang badan robot seperti pada Gambar 4.9 berikut ini.

Gambar 4.9. Mekanik robot 4.5 Sistem Pergerakan Robot Algoritma gerakan robot berkaki 6 ini di tentukan oleh program. Pengaturan awal ketika robot akan melangkah ke depan merupakan kombinasi dari putaran tiga buah motor servo dengan sudut putaran yang berbeda-beda. 4.4.1 Algoritma pergerakan robot Algoritma flowchart robot berkaki 6 untuk jalan maju dapat ditunjukan pada Gambar 5.0 berikut.

Gambar 5.0. Flowchart algoritma pergerakan robot Dalam pemrograman bahasa c pada mikrokontroler ada 4 tahap proses yang menggerakan setiap motor servo, pergerakan robot pada setiap kaki kaki nya di maksudkan seperti pada tahapan berikut ini : 1. Tahap 1. Kaki depan dan belakang sebelah kanan bergerak maju ke posisi depan dan kaki tengah sebelah kanan terangkat. Sementara itu kaki depan dan belakang sebelah kiri bergerak ke belakang dan kaki tengah sebelah kiri turun. 2. Tahap 2. Kaki depan dan belakang sebelah kiri bergerak maju ke posisi depan dan kaki tengah sebelah kiri terangkat. Sementara itu kaki depan dan belakang sebelah kanan bergerak ke belakang dan kaki tengah sebelah kanan turun.

Pada Gambar 5.1 dan Gambar 5.2 di bawah ini adalah proses pergerakan robot untuk berjalan maju.

Gambar 5.1. Proses pergerakan 1

Gambar 5.2. Proses pergerakan 2 Berdasarkan sistem pergerakan pada tahapan yang ada di atas agar motor servo dapat bergerak sesuai tahapan tersebut maka motor servo akan di atur sesuai fungsi masing-masing dengan lebar pulsa tertentu, Sehingga akan menjadi sebuah gerakan. Pengaturan pulsa dapat dilihat pada Tabel 3.4 dan tata letak servo 1,2, dan 3 berada pada Gambar 5.3 berikut ini.

Gambar 5.3. Tabel 3.4.


No 1 2 3 Motor Servo Servo 1 (PORTA) Servo 2 (PORTB) Servo 3(PORTC)

Tata letak motor servo

Pengaturan pulsa pada bahasa c


Pulsa 1 1000 1000 1000 Derajat 1 0 0 0 Pulsa 2 2800 2800 2800 Derajat 2 45 45 45

4.6

Parameter Keberhasilan Sistem Pengujian robot berkaki 6 dengan penggerak 3 buah motor servo pada kondisi lintasan yang datar yaitu berupa lantai ubin, pengujian yang dilakukan adalah robot dapat berjalan lurus dengan keseimbangan yang baik, pengujian ini dilakukan pada jarak 1m, setiap jarak 10cm robot dihitung dengan kecepatannya untuk melihat robot berjalan dengan seimbang. Hasil pengujian dapat dilihat pada Tabel 3.5.

Tabel 3.5.
No. 1 2 3 4 5 6 7 8 9 10 Jarak (cm) 10 20 30 40 50 60 70 80 90 100 Waktu (sec) 2.45 2.42 2.25 2.23 2.79 2.10 2.33 2.33 2.45 2.09

Pengujian robot
Keadaan Jalan Lurus Jalan Lurus Jalan Lurus Jalan Lurus Jalan Lurus Jalan Lurus Jalan Lurus Jalan Lurus Jalan Lurus Jalan Lurus Presisi Robot Robot berjalan lurus Robot berjalan lurus Robot berjalan lurus Robot berjalan lurus Robot berjalan lurus Robot berjalan lurus Robot berjalan lurus Robot berjalan lurus Robot berjalan lurus Robot bergeser 4

Hasil dari pengukuran pada Tabel 3.5 di atas dapat diketahui bahwa robot dapat berjalan lurus sepanjang 1 meter dengan waktu tempuh 23 detik dengan presisi robot berjalan lurus dengan posisi awal 0 ketika sampai 1 meter robot bergeser 4 ke sebelah kiri.

BAB 5 KESIMPULAN DAN SARAN


5.1 Kesimpulan Berdasarkan hasil penelitian dan pembahasan yang telah dilakukan mengenai desain robot berkaki 6 dengan penggerak 3 motor servo. Dapat diambil kesimpulan : 1. Menjalankan robot sepanjang 1 meter dengan waktu tempuh 23 detik. 2. Perancangan bahasa c untuk menendalikan motor servo tidak akurat tanpa menggunakan fungsi Timer/Counter. 3. Proses pembuatan body robot yang desain nya berbeda dan jenis bahan yang berbeda mempengaruhi ukuran dan berat robot. 5.2 Saran Berdasarkan hasil yang diperoleh dan keterbatasan yang ditemui dalam perancangan desain robot berkaki 6 dengan penggerak 3 motor servo ini dapat di ketahui bahwa hasil penelitian ini masih belum sempurna. Sehubungan dengan hal tersebut maka, untuk penelitian selanjutnya disaranka sebagai berikut : 1. Sebaiknya menambahkan sensor ultrasonic pada robot agar dapat mendeteksi kondisi atau halangan yang ada di depan. 2. Sebaiknya ditambahkan bahan yang lunak dan mencengkram pada ujung kaki supaya tidak licin saat robot berjalan.

3. Untuk pengembangan lebih lanjut pada robot berkaki 6 ini bisa dikembangkan sensor logam untuk keperluan eksplorasi bahan tambang dan juga di bidang militer untuk mendeteksi ranjau darat, dan penambahan komponen seperti sensor panas dan kipas untuk memadamkan api.

DAFTAR PUSTAKA
1. Budiharto, Widodo. (2010). Membuat sendiri Robot Humanoid. Penerbit Elex Media. Jakarta 2. Budiharto, Widodo. (2008). 10 Proyek Robot Spektakuler. Penerbit Elex Media. Jakarta 3. Heryanto, M.ary. (2008). Pemrograman Bahasa C Untuk Mikrokontroler AVR ATMega8535. Penerbit ANDI. Yogyakarta 4. Winoto, Ardi. (2011). Mikrokontroler AVR Atmega 8/32/16/8535. Penerbit Informatika. 1. Patrick Hood.(2011). Introduction to Servo and Undertanding Torque.From http://newbiehack.com/MCUTutorial/Servos/IntroToServos.aspx (di akses tanggal 12 juni 2012) 2. Putra, Agfianto Eko. Nugraha, Dhani. (2010). Tutorial pemrograman mikrokontroler avr dengan winavr gcc. From http://www.kelas-mikrokontrol.com (di akses tanggal 21 Mei 2012)

#include <avr/io.h> #include <util/delay.h> int main() { unsigned char i; DDRA=(1<<0); DDRB=(1<<0); DDRC=(1<<0); for(;;) { for(i=1;i<5;i++) { PORTA=(1<<0); _delay_us(2800); PORTA=0; _delay_ms(100); PORTB=(1<<0); _delay_us(2800); PORTB=0; _delay_ms(100); PORTC=(1<<0); _delay_us(2800); PORTC=0; _delay_ms(100); } for(i=2;i<5;i++) { PORTA=(1<<0); _delay_us(1000); PORTA=0; _delay_ms(10); PORTB=(1<<0); _delay_us(1000); PORTB=0; _delay_ms(100); PORTC=(1<<0); _delay_us(1000); PORTC=0; _delay_ms(100); } } }

SKETSA ROBOT BERKAKI 6

Tampak Samping Kanan

Tampak Depan

SKETSA ROBOT BERKAKI 6

Tampak Atas

Tampak Isometric

PHOTO ROBOT BERKAKI 6