View
3
Download
0
Category
Preview:
Citation preview
i
TUGAS AKHIR
ROBOT LENGAN OTOMATIS SEBAGAI PEMISAH BARANG BERDASARKAN WARNA DENGAN MENGGUNAKAN
ATMEGA8535
Diajukan Untuk Memenuhi Salah Satu SyaratMemperoleh Gelar Sarjana Teknik
Program Studi Teknik Elektro
Oleh :
Rio ArismarjitoNIM : 065114011
PROGRAM STUDI TEKNIK ELEKTROFAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMAYOGYAKARTA
2011
ii
FINAL PROJECT
AUTOMATIC ROBOT ARM AS SEPARATOR OBJECT BASED ON COLOR
USING ATMEGA8535
Presented as Partial Fulfillment of the RequirementsTo Obtain the Sarjana Teknik Degree
In Electrical Engineering Study Program
Rio ArismarjitoNIM : 065114011
ELECTRICAL ENGINEERING STUDY PROGRAM SCIENCE AND TECHNOLOGY FACULTY
SANATA DHARMA UNIVERSITYYOGYAKARTA
2011
iii
HALAMAN PERSETUJUAN
TUGAS AKHIR
ROBOT LENGAN OTOMATIS SEBAGAI PEMISAH BARANG BERDASARKAN WARNA DENGAN
MENGGUNAKAN ATMEGA8535(AUTOMATIC ROBOT ARM AS SEPARATOR
OBJECT BASED ON COLOR USING ATMEGA8535)
Oleh :
Rio ArismarjitoNIM : 065114011
Telah disetujui oleh:
Pembimbing,
Martanto, S.T.,M.T. Tanggal : 6 Juni 2011
iv
HALAMAN PENGESAHAN
TUGAS AKHIR
ROBOT LENGAN OTOMATIS SEBAGAI PEMISAH BARANG BERDASARKAN WARNA DENGAN MENGGUNAKAN ATMEGA8535
(AUTOMATIC ROBOT ARM AS SEPARATOR OBJECT BASED ON COLOR USING ATMEGA8535)
Oleh :
Rio Arismarjito
NIM : 065114011
Telah dipertahankan di depan panitia penguji pada tanggal: 21 Juni 2011
dan dinyatakan memenuhi syarat
susunan panitia
Nama lengkap Tanda Tangan
Ketua : B. Wuri Harini, S.T.,M.T.
Sekertaris : Martanto, S.T.,M.T.
Anggota : Petrus Setyo Prabowo, S.T.,M.T.
Yogyakarta, 22 Juni 2011Fakultas Sains dan TeknologiUniversitas Sanata DharmaDekan,
v
PERNYATAAN KEASLIAN KARYA
“Saya menyatakan dengan sesungguhnya bahwa tugas akhir ini tidak memuat karya atau
bagian orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka,
sebagaimana layaknya karya ilmiah”
Yogyakarta, 6 Juni 2011
Rio Arismarjito
vi
HALAMAN PERSEMBAHAN
Karya tulis ini kupersembahkan untuk :
Yesus Kristus Gembalaku
Bunda Maria dan Malaikat pelindungku…
Bapak dan Ibu tercinta, untuk doanya, serta dukungannya secara moral maupun materi
Almamaterku Teknik Elektro Universitas Sanata Dharma
“Tak ada kata terlambat,
Semua indah pada waktunya, berdoa dan berusahalah”
vii
HALAMAN PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN
AKADEMIS
Yang bertandatangan di bawah ini, saya mahasiswa Universitas Sanata Dharma :
Nama : Rio Arismarjito
Nomor Mahasiswa : 065114011
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas
Sanata Dharma karya ilmiah saya yang berjudul :
ROBOT LENGAN OTOMATIS SEBAGAI PEMISAH BARANG BERDASARKAN WARNA DENGAN MENGGUNAKAN
ATMEGA8535
beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada
Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk
media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara terbatas, dan
mempublikasikannya di internet atau media lain untuk kepentingan akademis tanpa perlu
meminta ijin dari saya maupun memberikan royalti kepada saya selama tetap mencantumkan
nama saya sebagai penulis.
Demikian pernyataan ini yang saya buat dengan sebenarnya.
Yogyakarta, 6 Juni 2011
Rio Arismarjito
viii
INTISARI
Dalam dunia teknologi maupun kehidupan manusia sehari-hari, penggunaan robot saat ini sangat membantu dalam menyelesaikan tugas atau pekerjaan yang tidak bisa dilakukan oleh manusia. Kelebihan yang dimiliki robot memudahkan manusia dalam menyelesaikan pekerjaan. Oleh karena itu, agar dapat membantu manusia, robot lengan sebagai pemisah barang dibuat dengan tujuan untuk menghemat waktu dalam menyelesaikan pekerjaan dalam mengambil dan memindahkan barang, mendapatkan hasil akhir yang berkualitas, mengurangi resiko yang dapat membahayakan manusia.
Robot lengan otomatis sebagai pemisah barang berdasarkan warna menggunakan ATmega8535 terdiri dari sistim minimum yang berfungsi mengontrol pergerakan motor servo sebagai aktuator robot lengan dan mengolah data yang dihasilkan oleh sensor TCS3200 sebagai pengidentifikasi warna objek. Warna objek yang dideteksi ditampilkan dalam penampil LCD, jika warna merah, biru atau hijau maka akan tampil nilai R G B warna tersebut dan warna objek.
Robot lengan otomatis sebagai pemisah barang berdasarkan warna menggunakan ATmega8535 sudah berhasil dibuat dan dapat bekerja dengan baik. Sensor dapat membedakan warna tiap objek yaitu merah, biru dan hijau. Robot lengan mampu mengambil dan memindahkan objek berwarna yang telah diindentifikasi oleh sensor TCS3200 ke dalam wadah penampung sesuai dengan warna objek tersebut.
Kata kunci : Robot lengan, Motor servo, TCS3200, Warna, ATmega8535
ix
ABSTRACT
In the world of technology and daily human life, the use of robots is very helpful in completing tasks or jobs that can’t be done by humans. Advantages of robot is to easy human in completing the work. Therefore, in order to help humans, the robot arm as separator items was created in order to save time in completing the work in taking and moving items, get a quality end result, and reducing the risks that could harm humans.
Automatic robot arm as separator items based on color using the ATmega8535 consist of a minimum system which controls the movement of the servo motor as the actuator arm robot and process data generated by sensors TCS3200 as the identifiers color of an object. The color of the detected object is displayed in the LCD viewer, if the colors red, blue or green it will show the RGB color value and color of the object.
Automatic robot arm as separator items based on color using the ATmega8535 has been successfully established and can work well. The sensor can distinguish the color of each object that is red, blue and green. The robot arm can pick up and move colored objects that have been identified by the sensor into the container receptacle TCS3200 matches the color of the object.
Keywords : Robot arm, Motor servo, TCS3200, Color, ATmega8535
x
KATA PENGANTAR
Puji dan syukur penulis haturkan pada Tuhan Yesus Kristus, karena atas rahmat dan
karunia Nya penulis dapat menyelesaikan tugas akhir ini yang berjudul “Robot Lengan
Otomatis Sebagai Pemisah Barang Berdasarkan Warna Dengan Menggunakan
ATmega8535”. Penulis menyadari mulai dari proses perancangan, pengujian alat dan proses
penyusunan skripsi ini tidak dapat lepas dari bantuan, dorongan, dan bimbingan berbagai pihak.
Oleh karena itu dengan segala kerendahan hati, penulis mengucapkan terima kasih kepada :
1. Kedua orang tua tercinta dan adik-adikku, terimakasih atas perhatian, dukungan
dan kesabaran dalam mendidik penulis.
2. Bapak Yosef Agung Cahyanta, S.T., M.T. selaku Dekan Fakultas Sains dan
Teknologi Universitas Sanata Dharma Yogyakarta.
3. Bapak Martanto , S.T., M.Eng., selaku dosen pembimbing yang menyumbangkan
pemikiran, ide, tenaga dan memberikan saran serta kritik yang membantu dalam
menyelesaikan tugas akhir ini dari awal hingga selesai.
4. Seluruh dosen dan laboran teknik elektro yang memberikan ilmu dan membantu
selama perkuliahan.
5. Rocha Ifahyana Siagian, terimakasih atas dukungan dan motivasinya.
6. Teman-teman teknik elektro angkatan 2006 dan sahabat SMAku terimakasih atas
bantuannya.
Penulis menyadari bahwa dalam penulisan tugas akhir ini masih banyak kekurangan,
kelemahan dan jauh dari sempurna. Oleh karena itu dengan segenap kerendahan hati, penulis
mengharapkan kritik dan saran yang membangun untuk penyempurnaan tugas akhir ini.
terimakasih.
Yogyakarta, 6 Juni 2011
Penulis
Rio Arismarjito
xi
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 ..................................................................................................... xiv
DAFTAR TABEL ........................................................................................................xviii
BAB I. PENDAHULUAN1.1 Latar Belakang....................................................................................................... 1
1.2 Tujuan dan Manfaat................................................................................................ 2
1.3 Batasan Masalah ..................................................................................................... 2
1.4 Metodologi Penelitian............................................................................................. 2
1.5 Sistematika Penulisan ............................................................................................. 4
BAB II. DASAR TEORI2.1 Mikrokontroler AVR Atmega8535 ........................................................................ 5
2.2.1 Arsitektur AVR Atmega8535 ................................................................ 5
xii
2.2.2 Deskripsi Mikrokontroler Atmega8535 ................................................. 5
2.2.3 Organisasi Memori AVR Atmega8535.................................................. 7
2.2.3.1 Program Memori............................................................................ 7
2.2.3.2 Data Memori.................................................................................. 7
2.2.4 Interupsi ................................................................................................. 7
2.2.5 Timer/Counter ........................................................................................ 8
2.2.5.1 Timer/Counter0 ............................................................................. 8
2.2 LCD (Liquid Crystal Display) ............................................................................. 10
2.3 Robot Lengan ....................................................................................................... 12
2.4 Gripper .............................................................................................................. 14
2.5 Sensor TCS3200................................................................................................... 15
2.6 Motor Servo.......................................................................................................... 17
2.6.1 Torsi/Momen Gaya .............................................................................. 19
2.7 Regulator Tegangan IC 7805 dan IC 7806 .......................................................... 19
BAB III. PERANCANGAN PENELITIAN3.1 Proses Kerja dan Mekanisme Gerak Robot Lengan............................................. 22
3.2 Perancangan Mekanik Robot Lengan................................................................... 24
3.3 Perancangan Perangkat Keras .............................................................................. 29
3.3.1 Arsitektur AVR Atmega8535 .............................................................. 30
3.3.2 Rangkaian Konfigurasi LCD 16x2 ...................................................... 32
3.3.3 Perancangan Sensor TCS3200 ............................................................. 33
3.3.4 Motor Servo ......................................................................................... 34
3.3.5 Regulator Tegangan menggunakan IC 7805 dan IC 7806.................. 41
xiii
3.4 Perancangan Perangkat Lunak ............................................................................. 43
3.4.1 Program Pengaturan Awal Posisi Robot.............................................. 44
3.4.2 Program Indentifikasi Warna Objek menggunakan Sensor TCS3200. 45
3.4.3 Program Pengendali Sudut Putar Motor Servo dalam Pengambilan dan.
Peletakan Objek....................................................................................47
BAB III. HASIL PENGAMATAN DAN PEMBAHASAN4.1 Betuk Fisik dan Sistem Kerja Robot Lengan ....................................................... 51
4.2 Hasil Data Pengujian dan Pembahasan ................................................................ 53
4.2.1 Pengujian Sensor TCS3200 ................................................................. 53
4.2.2 Pengujian Jarak Jangkauan Sensor TCS3200 ...................................... 56
4.2.3 Pengujian Arus pada Motor Servo ....................................................... 59
4.2.4 Pengamatan Pergerakan Motor Servo sebagai Aktuator
Robot Lengan.......................................................................................60
4.3 Analisa dan Pembahasan Perangkat Lunak ......................................................... 63
4.3.1 Pengendali Motor Servo....................................................................... 63
4.3.2 Identifikasi Warna Sensor TCS3200.................................................... 68
4.4 Analisa Keberhasilan Alat .................................................................................... 72
Kesimpulan dan Saran ................................................................................................... 76
Daftar Pustaka .............................................................................................................. 77
Lampiran ..............................................................................................................L1
xiv
DAFTAR GAMBAR
Halaman
Gambar 1.1 Diagram Blok Sistem............................................................................. 3
Gambar 2.1 Konfigurasi Pin Mikrokontroller ATmega8535 .................................... 6
Gambar 2.2 Mode Phase Correct PWM.................................................................... 9
Gambar 2.3 Mode Fast PWM ................................................................................ 10
Gambar 2.4 Baris dan Kolom Karakter pada LCD 16x2......................................... 10
Gambar 2.5 Konfigurasi kaki LCD 16x2................................................................. 11
Gambar 2.6 Anatomi Robot Lengan........................................................................ 12
Gambar 2.7 Sistem Robot Lengan ........................................................................... 13
Gambar 2.8 Jenis Gripper Mekanik......................................................................... 14
Gambar 2.9 Konfigurasi pin dan Blok Fungsional TCS3200.................................. 15
Gambar 2.10 Sample Warna dan Komposisi RGB.................................................... 16
Gambar 2.11 Motor Servo ......................................................................................... 17
Gambar 2.12 Konfigurasi Pin Motor Servo............................................................... 17
Gambar 2.13 Sinyal untuk Mengendalikan Motor Servo .......................................... 18
Gambar 2.14 Lebar Pulsa dan Posisi Servo ............................................................... 18
Gambar 2.15 Penyearah Gelombang Penuh .............................................................. 20
Gambar 2.16 IC Regulator ....................................................................................... 20
Gambar 3.1 Diagram Blok Sistem Robot Lengan ................................................... 22
Gambar 3.2 Keseluruhan Sistem Robot Lengan...................................................... 23
Gambar 3.3 Model Anatomi Robot Lengan ............................................................ 24
Gambar 3.4 Robot Lengan Komponen 1 ................................................................. 25
xv
Gambar 3.5 Robot Lengan Komponen 2 ................................................................. 25
Gambar 3.6 Robot Lengan Komponen 3 dan 4 ....................................................... 26
Gambar 3.7 Tinggi Total Robot Lengan.................................................................. 26
Gambar 3.8 Posisi Penempatan Barang ................................................................... 27
Gambar 3.9 Sketsa Robot Lengan Komponen 1 dan Komponen 3 ......................... 27
Gambar 3.10 Sketsa Robot Lengan Komponen 2 , Komponen 4 dan Poros ............. 28
Gambar 3.11 Gripper................................................................................................. 28
Gambar 3.12 Jarak Robot Lengan dengan Objek dan Wadahnya ............................. 29
Gambar 3.13 Rangkaian Osilator ATmega8535........................................................ 30
Gambar 3.14 Rangkaian Reset ATmega8535............................................................ 30
Gambar 3.15 Rangkaian Sistem Minimum ATmega8535......................................... 32
Gambar 3.16 Rangkaian LCD 16x2........................................................................... 33
Gambar 3.17 Pengaturan Port LCD pada Code Vision AVR ..................................... 33
Gambar 3.18 Rangkaian Sensor TCS3200 terhubung ATmega8535 ........................ 34
Gambar 3.19 Motor Servo HXT5010 ........................................................................ 35
Gambar 3.20 Motor Servo Futaba3003 ..................................................................... 35
Gambar 3.21 Rangkaian Servo ke Mikrokontroler.................................................... 36
Gambar 3.22 PWM Motor Servo HXT5010.............................................................. 39
Gambar 3.23 PWM Motor Servo Futaba3003........................................................... 39
Gambar 3.24 Rangkaian Regulator Tegangan ........................................................... 42
Gambar 3.25 Diagram Alir Utama............................................................................. 43
Gambar 3.26 Diagram Alir Pengaturan Posisi Awal Robot ...................................... 44
Gambar 3.27 Perioda 1 Gelombang........................................................................... 45
Gambar 3.28 Diagram Alir Identifikasi Warna Objek............................................... 46
Gambar 3.29 Diagram Alir Servo Mode Merah ........................................................ 48
xvi
Gambar 3.30 Diagram Alir Servo Mode Biru ........................................................... 49
Gambar 3.31 Diagram Alir Servo Mode Hijau.......................................................... 50
Gambar 4.1 Sistem Minimum ATmega8535........................................................... 51
Gambar 4.2 Regulator Tegangan ............................................................................ 51
Gambar 4.3 Robot Lengan Keseluruhan.................................................................. 52
Gambar 4.4 Penempatan Objek, TCS3200 dan sistem minimum ........................... 52
Gambar 4.5 Robot Lengan....................................................................................... 52
Gambar 4.6 TCS3200 .............................................................................................. 52
Gambar 4.7 Objek Berwarna ................................................................................... 52
Gambar 4.8 Wadah Objek........................................................................................ 52
Gambar 4.9 Jarak Objek 2,5 cm............................................................................... 57
Gambar 4.10 Jarak Objek 3 cm.................................................................................. 57
Gambar 4.11 Jarak Objek 4 cm.................................................................................. 57
Gambar 4.12 Jarak Objek 5 cm.................................................................................. 58
Gambar 4.13 Jarak Objek 6 cm.................................................................................. 58
Gambar 4.14 Jarak Objek 7 cm.................................................................................. 58
Gambar 4.15 Jarak Objek 8 cm.................................................................................. 58
Gambar 4.16 Jarak Objek 9 cm.................................................................................. 59
Gambar 4.17 Pengukuran Arus Motor Servo ............................................................ 59
Gambar 4.18 Sudut Putar Motor Servo 0° ................................................................. 60
Gambar 4.19 Sudut Putar Motor Servo 45° ............................................................... 60
Gambar 4.20 Sudut Putar Motor Servo 90° ............................................................... 61
Gambar 4.21 Pengamatan Sudut Putar Motor Servo 3 saat 0° .................................. 61
Gambar 4.22 Pengamatan Sudut Putar Motor Servo 3 saat 28° ................................ 61
Gambar 4.23 Pengamatan Sudut Putar Motor Servo Poros saat 40° ......................... 62
xvii
Gambar 4.24 Pengamatan Sudut Putar Motor Servo Poros saat 80° ......................... 62
Gambar 4.25 Pengamatan Sudut Putar Motor Servo Poros saat 120° ....................... 62
Gambar 4.26 Tampilan LCD saat Objek Merah........................................................ 71
Gambar 4.27 Tampilan LCD saat Objek Biru ........................................................... 71
Gambar 4.28 Tampilan LCD saat Objek Hijau ......................................................... 72
Gambar 4.29 Tampilan LCD saat Tidak Ada Objek ................................................. 72
xviii
DAFTAR TABELHalaman
Tabel 2.1 Hubungan PIN dan Interrupt..................................................................8
Tabel 2.2 Konfigurasi kaki LCD 16x2.................................................................11
Tabel 2.3 Kombinasi Kaki Selektor.....................................................................16
Tabel 2.4 Penskalaan Frekuensi Output TC3200.................................................16
Tabel 2.5 Regulator Tegangan Positif Seri 78XX ...............................................21
Tabel 3.1 Penggunaan Port pada Mikrokontroler...............................................31
Tabel 3.2 Karakteristik Motor Servo ...................................................................35
Tabel 3.3 Perhitungan Sudut Putar Motor Servo .................................................37
Tabel 3.4 Data Pengujian Motor Servo................................................................38
Tabel 3.5 Perhitungan Torsi Motor Servo pada Robot Lengan ...........................40
Tabel 4.1 Data Pengujian Sensor TCS3200 pada Kondisi Cahaya Ruang Terang
dan pada Kondisi Ruang Gelap............................................................54
Tabel 4.2 Nilai Rata-Rata R G B Ruang Terang dan pada Ruang Gelap ............56
Tabel 4.3 Data Pengujian Jarak Jangkauan TCS3200 .........................................57
Tabel 4.4 Data Pengujian Tegangan dan Arus Motor Servo ...............................59
Tabel 4.5 Data Hasil Percobaan Robot dalam Mengambil dan Meletakan Objek
Berwarna yang Tersusun Secara Acak ................................................73
Tabel 4.6 Data Hasil Percobaan Robot dalam Mengambil dan Meletakan Objek
Berwarna yang Tersusun Secara Berurutan.........................................74
1
BAB I
PEDAHULUAN
1.1 Latar Belakang
Penggunaan robot di dalam kehidupan manusia semakin meningkat dari waktu ke
waktu. Robot sering digunakan untuk menangani berbagai tugas yang tidak dapat ditangani
oleh manusia, seperti di bidang nuklir, kimia, perjalanan ke luar angkasa dan tugas-tugas
lain yang dilakukan di lingkungan yang berbahaya [1]. Hal ini terjadi karena robot
memiliki banyak kelebihan yang tidak dimiliki manusia, diantaranya : menghasilkan
output yang sama ketika mengerjakan suatu pekerjaan secara berulang-ulang, tidak mudah
lelah, ketelitian dan kecepatan menyelesaikan tugas, dapat diprogram ulang sehingga dapat
difungsikan untuk beberapa tugas yang berbeda, dan lebih sedikit melakukan kesalahan
dibandingkan manusia.
Berbagai variasi robot yang diciptakan oleh manusia dapat membantu melakukan
tugas-tugas yang tidak dapat atau sulit dilakukan oleh manusia, salah satunya adalah robot
lengan. Robot lengan biasanya digunakan untuk mengambil dan memindahkan
objek/barang. Pada umumnya robot lengan dapat melakukan dua gerakan yaitu gerakan
berputar dan gerakan memanjang atau memendek [2]. Robot lengan memiliki 2 sisi yang
digunakan dalam melakukan pergerakan tersebut. Salah satu sisi yang disebut poros
ditanam pada bidang yang statis dan sisi lain disebut ujung (end effector) yang dapat
dimuati dengan tool tertentu sesuai dengan tugas robot [2]. Umumnya tool yang digunakan
adalah gripper yang dapat difungsikan sebagai penjepit atau pencengkeram objek yang
akan diambil. Selain itu pergerakan robot lengan dapat diatur sesuai dengan kebutuhan
yang dinginkan, baik itu sudut putaran robot lengan atau pun jarak jangkauan lengan robot.
Melihat kemampuan robot lengan yang lebih dibandingkan manusia maka penulis
ingin membuat aplikasi robot lengan sebagai pemindah barang. Robot lengan ini berfungsi
untuk memindahkan barang dan menempatkannya berdasarkan warna barang tersebut.
Robot ini menggunakan sensor TCS3200 sebagai pengidentifikasi warna objek, 4 motor
servo sebagai aktuator robot lengan, dan gripper sebagai penjepit atau pencekram
objek/barang. Robot lengan bekerja secara otomatis sesuai dengan instruksi yang telah
diprogram. Saat TCS3200 mengidentifikasi warna objek/barang maka data yang dihasilkan
dikirim ke mikrokontroler lalu diolah dan kemudian menjalankan instruksi menggerakan
2
motor servo untuk mengambil dan menempatkan barang tersebut pada kotak yang sudah
tersedia. Penempatan barang dan wadahnya sudah diatur sedemikian rupa sesuai dengan
jangkauan robot lengan dan karakteristik putaran motor servo yang digunakan.
1.2 Tujuan dan Manfaat
Tujuan penelitian ini adalah menghasilkan robot lengan sebagai pemindah barang
secara otomatis berdasarkan warna barang.
Manfaat dari penelitian ini adalah membantu memudahkan pekerjaan manusia baik
dari segi efisiensi waktu, tenaga, kualitas dan hasil yang didapat.
1.3 Batasan Masalah
Batasan masalah dari penelitian ini adalah :
1. Menggunakan sensor TCS3200 sebagai pengindentifikasi warna
objek/barang.
2. Warna barang yang dideteksi hanya tiga warna yaitu merah, biru, dan hijau.
3. Warna objek disusun secara acak dan terbuat dari bahan akrilik.
4. Barang berbentuk kotak yang berukuran 3x3x3 cm dengan berat sekitar 5
gram.
5. Jarak pengambilan barang dan wadah penampung barang dengan robot
lengan diatur dengan jarak 6 cm terhadap kotak penampung barang dan 18
cm terhadap posisi objek/barang, agar robot lengan dapat menjangkau barang
dalam proses pengambilan dan peletakan barang ke dalam wadah
penampung.
6. Menggunakan motor servo standar sebagai aktuator robot lengan.
7. Mikrokontroler menggunakan keluarga AVR ATmega8535 dan diprogram
menggunakan bahasa pemrograman C.
1.4 Metodologi Penelitian
Untuk dapat merealisasikan penelitian maka digunakan metode seperti berikut :
1. Mencari sumber informasi/literatur. Studi kepustakaan yang mencakup
literatur-literatur mengenai, datasheet ATmega8535, sensor TCS3200, dan
motor servo standar.
3
2. Perancangan subsistem hardware dan software. Tahap ini bertujuan untuk
mencari bentuk model yang optimal dari sistem yang akan dibuat dengan
mempertimbangkan dari berbagai faktor permasalahan dan kebutuhan yang
telah ditentukan. Gambar 1.1 adalah model diagram blok sistem yang akan
dirancang.
Gambar 1.1. Diagram Blok Sistem
3. Perancangan dan pembuatan sistem mekanik penggerak robot lengan dengan
model gambar 3D (3 dimensi). Kemudian menggunakan aklrik sebagai bahan
dasar pembuat robot lengan.
4. Perancangan dan pembuatan rangkaian elektronik sistem minimum
ATmega8535 dan regulator tegangan. Tahap ini meliputi perhitungan teoritis
dan pembuatan rangkaian PCB menggunakan software EAGLE.
5. Perancangan dan pembuatan program menggunakan bahasa C dengan
software CodeVision AVR.
6. Proses pengambilan data. Teknik pengambilan data dilakukan dengan melihat
respon sensor TCS3200 terhadap warna merah, biru dan hijau serta motor
servo.
7. Analisa dan penyimpulan hasil percobaan. Analisa dan penyimpulan hasil
percobaan dapat dilakukan dengan melihat presentasi error yang terjadi pada
kinerja sistem secara keseluruhan, yaitu kondisi sensor TCS3200 terhadap
kondisi pencahayaan ruang yaitu jika mendapat cahaya terang atau dengan
pencahayaan yang kurang, jarak jangkau sensor, pergerakan motor servo
sebagai aktuator robot lengan , dan tingkat keberhasilan robot lengan dalam
memisahkan barang.
MikrokontrolerSensor TCS3200
Identifikasi warna
Motor servo
Aktuatorrobot lengan
Motor servo 1
Motor servo 2
Motor servo 4
Motor servo 3
Objek
4
1.5 Sistematika Penulisan
Sistematika penulisan tugas akhir ini adalah sebagai berikut :
BAB I: PENDAHULUAN
Bab ini berisi latar belakang masalah, tujuan dan manfaat, batasan masalah,
metodologi penelitian dan sistematika penulisan.
BAB II : DASAR TEORI
Bab ini berisi teori-teori yang mendukung kerja sistem dan teori yang
digunakan dalam perancangan.
BAB III : PERANCANGAN PENELITIAN
Bab ini berisi penjelasan alur perancangan robot lengan sebagai pemisah
barang berdasarkan warna dengan menggunakan Atmega8535.
BAB IV : HASIL PENGAMATAN DAN PEMBAHASAN
Bab ini berisi pengamatan dan pembahasan data yang diperoleh, berupa
data sensor TCS3200, motor servo dan tingkat keberhasilan keseluruhan
sistem robot lengan.
BAB V : KESIMPULAN DAN SARAN
Bab ini berisi ringkasan hasil penelitian yang telah dilakukan dan usulan
yang berupa ide-ide untuk perbaikan atau pengembangan terhadap
penelitian yang telah dilakukan.
5
BAB II
DASAR TEORI
2.1 Mikrokontroler AVR ATmega8535
AVR (Alf and Vegard’sRiscProcessor) merupakan seri mikrokontroler CMOS 8-bit
yang diproduksi oleh Atmel berbasis arsitektur RISC (Reduced Instruction Set Computer).
Chip AVR yang digunakan untuk tugas akhir ini adalah ATmega8535. Hampir semua
instruksi 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 Timer, dan power saving mode. AVR juga mempunyai
ADC, PWM internal dan In-System Programmable Flash on-chip yang mengijinkan
memori program untuk diprogram ulang [3].
2.1.1 Arsitektur AVR ATmega8535
Mikrokontroler ATmega8535 memiliki arsitektur sebagai berikut [3] :
a. Saluran IO sebanyak 32 buah, yaitu Port A, Port B, Port C dan Port D
b. ADC 10 bit sebanyak 8 Channel
c. Tiga buah timer/counter yaitu Timer 0, Timer 1, dan Timer 2
d. Watchdog Timer dengan osilator internal
e. SRAM sebanyak 512 byte
f. Memori Flash sebesar 8 kb
g. Sumber Interupsi internal dan eksternal
h. Port SPI (Serial Pheriperal Interface)
i. EEPROM on board sebanyak 512 byte
j. Komparator analog
k. Port USART (Universal ShynchronousAshynchronous Receiver Transmitter)
2.1.2 Deskripsi Mikrokontroler ATmega8535
Konfigurasi Pin Mikrokontroller ATmega8535 dengan kemasan 40-pin DIP (dual
in-line package) dapat dilihat pada Gambar 2.1. Untuk memaksimalkan performa dan
paralelisme, AVR menggunakan arsitektur Harvard (dengan memori dan bus terpisah
6
untuk program dan data). Ketika sebuah instruksi sedang dikerjakan maka instruksi
berikutnya diambil dari memori program [3].
Mikrokontroler Atmega 8535 memiliki konfigurasi Pin sebagai berikut [3] :
a. VCC (power supply)
b. GND (ground)
c. Port A (PA7..PA0) Port A berfungsi sebagai input analog pada ADC (analog
digital converter). Port A juga berfungsi sebagai suatu Port I/O 8-bit dua
arah.
d. Port B (PB7..PB0) Port B adalah suatu Port I/O 8-bit dua arah dengan
resistor internal pull-up (yang dipilih untuk beberapa bit).
e. Port C (PC7..PC0) Port C adalah suatu Port I/O 8-bit dua arah dengan
resistor internal pull-up (yang dipilih untuk beberapa bit).
f. Port D (PD7..PD0) Port D adalah suatu Port I/O 8-bit dua arah dengan
resistor internal pull-up (yang dipilih untuk beberapa bit).
g. RESET (Reset input)
h. XTAL1 (Input Oscillator)
i. XTAL2 (Output Oscillator)
j. AVCC adalah pin penyedia tegangan untuk Port A dan ADC.
k. AREF adalah pin referensi analog untuk ADC.
Port A berfungsi sebagai input analog pada A/D Konverter dan port I/O 8-bit dua
arah. Port B, Port C, Port D adalah suatu port I/O 8-bit dua arah dengan resistor internal
Gambar 2.1. Konfigurasi Pin Mikrokontroler ATmega8535 [3]
7
pull-up (yang dipilih untuk beberapa bit). Pada rangkaian reset, waktu pengosongan
kapasitor dapat dihitung dengan persamaan 2.1.
T = R x C (2.1)
2.1.3 Organisasi Memori AVR ATmega8535
AVR arsitektur mempunyai dua ruang memori utama, Ruang. Memori data dan
Memori program. ATmega8535 juga memiliki fitur EEPROM Memori untuk penyimpanan
data.
2.1.3.1 Memori Program
Kode program disimpan dalam flash memory, yaitu memori jenis non-volatile yang
tidak akan hilang datanya meskipun catu daya dimatikan [5]. Dalam ATmega8535 terdapat
8Kbyte On-Chip di dalam sistem Memory Flash Reprogrammable untuk penyimpanan
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 Purphose
Register adalah register khusus yang bertugas untuk membantu eksekusi program oleh
ALU (Arithmatich Logic Unit). Dalam istilah processor komputer sehari-hari GPR dikenal
sebagai “chace memory” [16].
I/O register dan Aditional I/O register adalah register yang difungsikan khusus untuk
mengendalikan berbagai pheripheral dalam mikrokontroler seperti pin, port, timer/counter
[16].
2.1.4 Interupsi
Interupsi adalah suatu kondisi dimana mikrokontroler akan berhenti sementara dari
program utama untuk melayani instruksi-instruksi pada interupsi kemudian kembali
mengerjakan instruksi program utama setelah instruksi-instruksi pada interupsi selesai
dikerjakan [4].
8
Table 2.1. Hubungan PIN dan Interupsi [4]
Jenis interupt PIN pada Atemega 8535
INT0 PORTD.2
INT1 PORTD3
INT2 PORTB.2
ATmega8535 menyediakan tiga interupsi eksternal yaitu, INT0, INT1, dan INT2.
Masing-masing interupsi tersebut terhubung dengan pin ATmega8535 seperti ditunjukan
pada Tabel 2.1. Interupsi eksternal bisa dilakukan dengan memberikan logika 0 atau
perubahan logika (rissing edge dan falling edge) pada pin interupsi yang bersangkutan.
2.1.5 Timer/Counter
ATmega 8535 memiliki tiga modul timer yang terdiri dari dua buah timer/counter 8
bit dan satu buah timer/counter 16 bit. Ketiga 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 [5].
2.1.5.1 Timer/conter0
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 width modulation) dengan glitch
free
d. Frequency generator
e. Prescalar 10 bit untuk timer
f. Membangkitkan interupsi saat timer overflow dan atau match compare
Perhitungan overflow interrupt sebagai pembangkit PWM ditunjukan pada
persamaan 2.1 dan 2.2 berikut [14].
= (2.2)
ℎ = ∗ (2.3)
9
T O = Timer Overflow (T x bit timer)
OCR = nilai cacahan pulsa (Output Compare Register/OCR)
T = Lebar pulsa
Berikut merupakan mode-mode operasi timer :
a. Mode normal, timer digunakan untuk menghitung saja, membuat delay, dan
mengitung selang waktu [11].
Gambar 2.2. Mode Phase Correct PWM [3]
b. Mode phase correct PWM (PCP), digunakan untuk menghasilkan sinyal
PWM dimana nilai register counter (TCNT0) yang mencacah naik dan
turun secara terus menerus akan selalu dibandingakan dengan register
pembanding OCR0 [5]. Hasil perbandingan register TCNT0 dan OCR0
digunakan untuk membangkitkan sinyal PWM yang dikeluarkan pada OC0
seperti ditunjukan Gambar 2.2.
c. CTC (Clear timer on compare match), register counter (TCNT0) akan
mencacah naik kemudian di-reset atau kembali 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 [5].
d. Fast PWM, 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 [5].
10
Gambar 2.3. Mode Fast PWM [3]
2.2 LCD (Liquid Crystal Display)
Terdapat 2 jenis LCD yaitu LCD karakter dan LCD grafik. LCD karakter, adalah
LCD yang tampilannya terbatas pada tampilan karakter, khususnya karakter ASCII (seperti
karakter-karakter yang tercetak pada keyboard komputer). Sedangkan LCD grafik, adalah
LCD yang tampilannya tidak terbatas, bahkan dapat menampilkan foto. LCD grafik inilah
yang terus berkembang seperti layar LCD yang biasa dilihat di notebook/laptop [6].
Jenis LCD karakter yang beredar di pasaran biasa dituliskan dengan bilangan matriks
dari jumlah karakter yang dapat dituliskan pada LCD tersebut, yaitu jumlah kolom karakter
dikali jumlah baris karakter. Sebagai contoh, LCD16x2, artinya terdapat 16 kolom dalam 2
baris ruang karakter seperti ditunjukan pada Gambar 2.4, yang berarti total karakter yang
dapat dituliskan adalah 32 karakter [6].
Gambar 2.4. Baris dan Kolom Karakter pada LCD 16x2 [6]
11
Agar dapat mengendalikan LCD karakter dengan baik, tentu diperlukan koneksi yang
benar. Untuk itu perlu diketahui pin-pin antarmuka yang dimiliki oleh LCD karakter
seperti yang ditunjukan pada Gambar 2.5 dan Tabel 2.2.
Gambar 2.5. Konfigurasi kaki LCD 16x2 [6]
Tabel 2.2. Konfigurasi kaki LCD 16x2 [6]
Nomor
PIN
PIN Keterangan
1 VSS GND
2 VDD 5V
3 Vo Kontras
4 RS
5 R/W Read / Write
6 EN Enable
7 DB0 Data 0
8 DB1 Data 1
9 DB2 Data 2
10 DB3 Data 3
11 DB4 Data 4
12 DB5 Data 5
13 DB6 Data 6
14 DB7 Data 7
15 - -
16 - -
Display karakter pada LCD diatur oleh pin EN, RS dan R/W, dimana: Jalur EN
dinamakan Enable. Jalur ini digunakan untuk memberitahu LCD bahwa data sedang
12
dikirimkan. Untuk mengirimkan data ke LCD, maka melalui program EN harus dibuat
logika low “0” dan set pada dua jalur kontrol yang lain RS dan RW. Ketika dua jalur yang
lain telah siap, set EN dengan logika “1” dan tunggu untuk sejumlah waktu tertentu (sesuai
dengan datasheet dari LCD tersebut) dan berikutnya set EN ke logika low “0” lagi. Jalur
RS adalah jalur Register Select. Ketika RS berlogika low “0”, data akan dianggap sebagai
sebuah perintah atau instruksi khusus (seperti clear screen, posisikursor, dll). Ketika RS
berlogika high “1”, data yang dikirim adalah data text yang akan ditampilkan pada display
LCD. Sebagai contoh, untuk menampilkan huruf “1” pada layer LCD maka RS harus diset
logika high “1”, jalur R/W adalah jalur control Read/Write. Ketika RW berlogika low (0),
maka informasi pada bus data akan dituliskan pada layar LCD. Ketika RW berlogika high
”1”, maka program akan melakukan pembacaan memori dari LCD. Sedangkan pada
aplikasi umum pin R/W selalu diberi logika low “0”. Pada akhirnya, bus data terdiri dari 4
atau 8 jalur (bergantung pada mode operasi yang dipilih oleh user). Pada kasus bus data 8
bit, jalur diacukan sebagai DB0 s/d DB7.
2.3 Robot Lengan
Robot lengan merupakan gabungan dari beberapa segmen dan sendi yang secara
umum dibagi menjadi tiga bagian , yaitu : arm, wirst, dan gripper. Robotic Industries
Association (RIA) mendefinisikan robot lengan sebagai lengan yang didesain untuk
memindahkan material, benda, alat tertentu lewat pergerakan yang terprogram untuk
melakukan berbagai macam tugas [7].
Gambar 2.6. Anatomi Robot Lengan [7]
13
Robot lengan diilustrasikan pada Gambar 2.6 adalah robot lengan yang memiliki dua
lengan dan pergelangan. Di ujung pergelangan dapat diinstal berbagai tool sesuai dengan
fungsi yang diharapakan. Jika dipandang dari sudut pergerakan maka terdiri dari tiga
pergerakan utama yaitu badan robot yang dapat berputar ke kiri dan ke kanan, lengan
masing-masing dapat bergerak ke atas dan ke bawah, dan gerak pergelangan sesuai dengan
sifat tool [8].
Perangkat pendukung robot lengan secara umum dapat ditunjukan pada Gambar 2.7
yang terdiri dari beberapa komponen, yaitu :
1. Manipulator
2. Sensor
3. Aktuator
4. Kontroler
Gambar 2.7. Sistem Robot Lengan [7]
Manipulator adalah bagian mekanik yang dapat difungsikan untuk memindah,
mengangkat dan memanipulasi benda kerja. Sensor adalah komponen berbasis
instrumentasi (pengukuran) yang berfungsi sebagai pemberi informasi tentang berbagai
keadaan atau kedudukan dari bagian-bagian robot.
Aktuator adalah komponen penggerak yang jika dilihat dari prinsip penghasil
geraknya dapat dibagi menjadi tiga bagian yaitu penggerak berbasi motor listrik (motor
14
servo, motor steper, motor DC dan sebagainya), penggerak pneumatik (berbasis kompresi:
udara, nitrogen) dan penggerak hidrolik (berbasis benda cair: minyak pelumas)
Kontroler adalah rangkaian elekronik berbasis mikroprosesor yang berfungsi sebagai
pengatur seluruh komponen.
2.4 Gripper
Gripper adalah sebuah efektor yang berfungsi untuk menggenggam dan menahan
objek. Objek ini merupakan sebuah komponen yang akan dipindahkan oleh robot dapat
berupa kertas, botol, bahan mentah dan peralatan-peralatan lain [9].
Menurut jumlah peralatan penggenggam dan penahan, gripper dapat diklasifikasikan
menjadi dua, yaitu: gripper tunggal dan gripper ganda, masing masing memiliki kelebihan dan
kekurangan sesuai dengan tujuan dari sistem robot. Gripper tunggal diartikan bahwa hanya ada
satu peralatan untuk menggenggam dan menahan yang dipasang pada wrist. Gripper ganda
diartikan bahwa ada dua peralatan yang berfungsi sebagai penggenggam dan penahan objek
yang dipasang pada wrist [9].
Gambar 2.8. Jenis Gripper Mekanik [9]
Ada 3 jenis gripper yang dikenal seperti gripper mekanik, gripper vacuum dan gripper
magnetic. Mechanical gripper didesain untuk menggenggam dan menahan objek dengan
15
memberikan kontak pada objek. Biasanya menggunakan finger/jari mekanik yang disebut
dengan jaws. Finger ini dapat dilepas dan dipasang sehingga sangat fleksibel pemakaiannya.
Sumber tenaga yang berikan pada gripper ini bisa berupa pneumatik, hidrolik, dan elektrik.
2.5 Sensor TCS3200
TCS3200 adalah IC pengkonversi warna cahaya ke frekuensi. Ada dua komponen
utama pembentuk IC ini yaitu, fotodioda dan pengkonversi arus ke frekuensi seperti di
tunjukan pada Gambar 2.9 [10].
Warna dasar penyusun ada tiga yaitu merah, hijau, dan biru atau lebih dikenal
dengan istilah RGB (Red, Green, Blue) . Gambar 2.10 menunjukan beberapa sample warna
dan komposisi RGB. Fotodioda pada IC TC3200 disusun secara array 8x8 dengan
konfigurasi sebagai berikut : 16 fotodioda untuk memfilter warna merah, 16 fotodioda
untuk memfilter warna hijau, 16 fotodioda untuk memfilter warna biru dan 16 fotodioda
tanpa filter.
Gambar 2.9. Konfigurasi Pin dan Blok Fungsional TCS3200 [10]
16
Gambar 2.10. Sample Warna dan Komposisi RGB [18]
Dapat dilakukan pengaturan pada fotodioda yang akan dipakai sebagai pemfilter
warna yaitu dengan mengatur melalui kaki selektor S2 dan S3. Kombinasi kaki S2 dan S3
dapat dilihat pada Tabel 2.3.
Tabel 2.3 Kombinasi Kaki Selektor [10]
S2 S3 Fotodioda yang aktif
0 0 Pemfilter merah
0 1 Pemfilter biru
1 0 Tanpa filter
1 1 Pemfilter hijau
Frekuensi output TCS3200 bisa diskala dengan mengatur kaki selektor S0 dan S1.
Penskalaan output ditunjukan pada tabel 2.4 berikut.
Tabel 2.4 Penskalaan Frekuensi Output TC3200 [10]
S0 S1 Skala Frekuensi Output
0 0 Power Down0 1 2%1 0 20%1 1 100%
17
2.6 Motor Servo
Motor servo biasanya digunakan untuk robot berkaki, lengan robot atau sebagai
aktuator pada mobil robot. Motor servo adalah sebuah motor dengan sistem umpan balik
tertutup di mana posisi dari motor akan diinformasikan kembali ke rangkaian kontrol yang
ada di dalam motor servo. Motor servo terdiri dari sebuah motor DC, beberapa gear,
sebuah potensiometer, sebuah output shaft dan sebuah rangkaian kontrol elektronik [11].
Gambar 2.11. Motor Servo [15]
Motor servo dikemas dalam bentuk kotak segiempat seperti ditunjukan pada Gambar
2.11, terdiri dari tiga kabel konektor yaitu power (Vdd), control (I/O pin) dan ground (Vss)
seperti ditunjukan pada gambar 2.12. Gear motor servo ada yang terbuat dari plastik, metal
atau titanium. Di dalam motor servo terdapat potensiometer 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. Rangkaian kontrol dapat membaca kondisi potensiometer tersebut
untuk mengetahui posisi akutal shaft. Jika posisinya sesuai dengan yang diingikan , maka
motor dc akan berhenti [4].
Gambar 2.12. Konfigurasi Pin Motor Servo [15]
ada dua jenis motor servo yaitu :
1. Motor servo standard, yaitu yang mampu bergerak CW (clockwise) dan
CCW (counter clockwise) dengan sudut operasi tertentu, misalnya 60°,
90°, atau 180°.
18
2. Motor servo continous, motor servo yang mampu bergerak CW dan CCW
tanpa batasan sudut operasi (berputar secara kontiyu)
Motor servo biasanya menggunakan tegangan 4,8 V hingga 7,2 V. Motor servo
dikendalikan dengan cara mengirimkan sebuah pulsa yang lebarnya bervariasi. Lebar pulsa
antara 1 ms sampai 2 ms dengan periode pulsa sebesar 20 ms.
Gambar 2.13. Sinyal untuk Mengendalikan Motor Servo [4]
Lebar pulsa akan mengakibatkan perubahan posisi pada motor servo. Misalnya
sebuah pulsa 1,5 ms akan memutar motor pada posisi 90° (posisi netral). Agar posisi servo
tetap pada posisi maka pulsa harus terus diberikan pada servo. Jadi mesikipun ada gaya
yang melawan, servo akan tetap bertahan pada posisinya. Gaya maksimum servo
tergantung dari rentang torsi servo.
Gambar 2.14. Lebar Pulsa dan Posisi Servo [4]
Ketika sebuah pulsa yang dikirim ke servo kurang dari 1 ms servo akan berputar
CCW menuju ke posisi tertentu dari posisi netral. Jika pulsa yang dikirim lebih dari 1,5 ms
19
servo akan berputar CW menuju posisi tertentu dari posisi netral seperti di tunjukan pada
gambar 2.14. Setiap servo memiliki spesifikasi lebar pulsa minimum dan maksimum
sendiri-sendiri, tergantung jenis dan merk servo. Umumnya antara 1 ms sampai 2 ms.
Parameter lain yang berbeda antara servo satu dengan servo lainnya adalah kecepatan
servo untuk berubah dari posisi satu ke posisi lainnya (operating speed) [4].
2.6.1 Torsi / Momen Gaya
Momen Gaya (Torsi (τ)) adalah kemampuan gaya F memutar/merotasi benda
terhadap poros diam. Sehingga semakin besar torsi (τ) maka gaya F memutar benda pun
semakin besar [21].
Rumus :
τ = F r sin 0 (2.4)
τ = Torsi (N-m)
F = Gaya (N), F = m x g
r = Jarak dari titik pangakal gaya sampai sumbu putar
0 = Derajat sumbu putar
2.7 Regulator Tegangan IC 7805 dan 7806
Perangkat elektronika mestinya dicatu oleh suplai arus searah DC (direct current)
yang stabil agar dapat bekerja dengan baik. Baterai atau accu adalah sumber catu daya DC
yang paling baik. Namun untuk aplikasi yang membutuhkan catu daya lebih besar, sumber
dari baterai tidak cukup. Sumber catu daya yang besar adalah sumber bolak-balik AC
(alternating current) dari pembangkit tenaga listrik. Untuk itu diperlukan suatu perangkat
catu daya yang dapat mengubah arus AC menjadi DC [12]. Dengan prinsip penyearah
(rectifier) maka dapat dihasilkan tegangan DC seperti ditunjukkan pada Gambar 2.15. Pada
saat terminal A positif dan terminal B negatif , dioda D2 dan D3 berada dalam kondisi
menghantar arus seadangkan D4 dan D1 tidak menghantar. Pada saat terminal A negatif dan
B positif , dioda yang menghantar adalah D4 dan D1, sedang D2 dan D3 tidak menghantar.
Dengan demikian setiap setengah perioda tegangan bolak balik ada dua dioda yang
menghantar (conduct) secara bersamaan dan dua buah dioda lainnya tidak menghantar.
sehingga menghasilkan bentuk gelombang penuh. Transformator diperlukan untuk
20
menurunkan tegangan AC dari jala-jala listrik pada kumparan primernya menjadi tegangan
AC yang lebih kecil pada kumparan sekundernya.
Gambar 2.15. Penyearah Gelombang Penuh [12]
Penentuan nilai kapasitor yang berfungsi untuk memperkecil ripple Untuk itu dapat
digunakan persamaan 2.5 sebagai tegangan ripple [22].
Vripple = ∆ = (2.5)
Vr = Tegangan ripple
I = Arus
T = 1/f
C = kapasitor
Rangkaian penyearah pada dasarnya sudah cukup bagus jika tegangan ripple-nya
kecil, namun ada masalah pada stabilitas tegangan yang dihasilkan. Jika tegangan PLN
naik/turun, maka tegangan output-nya juga akan naik/turun. Untuk mengatasi hal tersebut
maka digunakan IC regulator sebagai penstabil tegangan. kongifurasi pin IC regulator
ditunjukan pada Gambar 2.16.
Gambar 2.16. Konfigurasi pin IC Regulator [17]
21
Karakteristik IC Regulator :
a. Output arus 1A
b. Output Tegangan 5, 6, 8, 9, 10, 12, 15, 20, 24 V
c. Dapat bertahan pada suhu yang berlebihan
Tabel 2.5 menunjukkan beberapa contoh IC regulator seri 78XX dengan keluaran
dan tegangan minimum yang diperlukan.
Tabel 2.5. Regulator Tegangan Positif Seri 78XX [13]
IC Part Tegangan Keluaran Tegangan Masukan Minimum
7805 +5 V 7,37806 +6 V 8,37810 +10 V 12,57812 +12 V 14,67815 +15 V 17,77824 +24 V 27,1
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 lengan
b. Perancangan mekanik
c. Perancangan perangkat keras
d. Perancangan perangkat lunak
3.1 Proses Kerja dan Mekanisme Gerak Robot Lengan
Pada tugas akhir ini, akan dibuat sebuah robot lengan yang mampu memindahkan
dan menempatkan barang secara otomatis berdasarkan warna barang. Digunakan sensor
TCS3200 yang mengidentifikasi warna barang dan motor servo sebagai aktuator. Saat
sensor TC3200 medeteksi warna barang maka data yang dihasilkan TCS3200 akan diolah
di dalam mikrokontroler yang telah diprogram kemudian akan menjalankan motor servo
sebagai aktuator robot lengan seperti ditunjukan pada Gambar 3.1 yang merupakan
diagram blok sistem.
Gambar 3.1. Diagram Blok Sistem Robot Lengan
23
Proses mekanisme pergerakan robot lengan diawali dengan proses untuk
memposisikan robot lengan dengan tepat yaitu pada posisi berdiri tegak. Robot lengan
akan mulai bergerak secara otomatis setelah menerima data dari sensor TCS3200 sebagai
identifikasi warna barang. Proses selanjutnya adalah pengambilan dan peletakan
barang/objek yang dimulai dengan pergerakan aktuator pada link 2. Motor servo 3 pada
link 2 menggerakan seluruh bidang pada joint 2 lalu di ikuti link 1 yang menggerakan
seluruh bidang pada joint 1. Pergerakan kedua link tersebut di atur dalam mikrokontoler
dengan memberi sudut putar dalam bentuk pulsa PWM pada motor servo yang sesuai
sehingga posisi robot lengan tepat pada barang agar pada saat pencengkeraman dilakukan
dapat mencengkeram barang dengan baik. Proses pencekraman dilakukan oleh motor servo
1 yang menggerakan gripper sebagai pencengkeram barang. Kemudian motor servo 3
bergerak ke posisi semula agar saat proses peletakan barang tidak terjadi benturan. Proses
selanjutnya adalah meletakan barang pada kotak penampungan barang yang disesuaikan
dengan warna barang. Pada proses ini motor servo 4 pada poros robot mempunyai peran
utama, motor tersebut akan menggerakan poros robot lengan dengan sudut putar yang telah
diatur sesuai dengan warna barang yang telah diidentifikasi oleh sensor TCS3200. Jika
barang berwana merah maka sudut putar motor servo 4 bergerak dari 180° ke 140°, jika
barang berwarna biru maka sudut putar motor dari 180° ke 100°, jika barang berwarna
hijau maka sudut putar motor dari 180° ke 120°. Keterbatasan gerakan link dikarenakan
oleh karakteristik motor yang digunakan yaitu motor servo standar yang memiliki sudut
putar dari 0° sampai 180°. Gambar 3.2 menunjukan keseluruhan sistem robot lengan.
Gambar 3.2. Keseluruhan Sistem Robot Lengan
24
3.2 Perancangan Mekanik Robot Lengan
Pada tahap ini dilakukan perancangan mekanik dari robot tersebut, antara lain
mendisain ukuran robot, penggunaan bahan dasar untuk mekanik robot yaitu aklirik setebal
3 mm. Pendisainan robot menggunakan software Google Sketchup untuk gambar tiga
dimensi dan software Corel Draw untuk gambar dua dimensi. Robot lengan terdiri dari 5
bagian utama yaitu poros, gripper, komponen 1, komponen 2, komponen 3, komponen 4.
Gambar 3.3 menunjukan anatomi robot lengan secara keseluruhan.
Gambar 3.3. Model Anatomi Robot Lengan
Berikut adalah gambar detail dari bagian-bagian robot lengan, yaitu: komponen 1
ditunjukan Gambar 3.4, komponen 2 ditunjukan Gambar 3.5, komponen 3 dan 4
ditunjukan Gambar 3.6, tinggi robot ditunjukan Gambar 3.7
25
Gambar 3.4. Robot Lengan Komponen 1
Gambar 3.5. Robot Lengan Komponen 2
26
Gambar 3.6. Robot Lengan Komponen 3 dan 4
Gambar 3.7. Tinggi Total Robot Lengan
27
Untuk penempatan posisi barang, didisain dengan model kemiringan yang bertujuan
agar barang dapat bergerak seperti berada pada konveyer sehingga dapat memudahkan
robot lengan dalam proses pengambilan seperti yang di tunjukan pada Gambar 3.8.
Objek/barang berbentuk kotak berukuran 3x3x3 cm yang terbuat dari bahan aklirik.
Gambar 3.8. Posisi Penempatan Barang
Perancangan mekanik robot lengan menggunakan metode puzzle dalam membentuk
tiap bagian dari anatomi robot lengan. Berikut adalah gambar dua dimensi menggunakan
software Corel Draw untuk tiap-tiap bagian dari robot lengan seperti yang terlihat pada
Gambar 3.9 dan 3.10.
Gambar 3.9. Sketsa Robot Lengan Komponen 1 dan Komponen 3
28
Gambar 3.10. Sketsa Robot Lengan Komponen 2 , Komponen 4 dan Poros
Gambar 3.11 adalah model gripper penjepit barang, untuk bahan gripper digunakan
aklirik 5 mm dan seutas tali yang digunakan untuk menggerakan gripper dalam menjepit
barang. Penggunaan engsel bertujuan agar gripper memiliki sendi gerak dalam membuka
dan menutup sedangkan spring digunakan untuk memposisikan gripper ke keadaan
membuka setelah dilakukan proses penjepitan.
Gambar 3.11. Gripper
Jarak antara robot lengan dengan objek dan wadah penampung diatur sedemikan rupa
sehingga robot dapat menjangkau objek/barang dalam proses pengambilan dan peletakan
29
barang. Dengan menggunakan software Autodesk 3ds Max sebagai animasi pergerakan
robot lengan maka dapat diketahui jarak jangkau robot lengan sehingga mempermudah
dalam memposisikan letak robot lengan dengan objek/barang dan wadah penampungnya.
Gambar 3.12 menunjukan jarak antara robot lengan dengan objek dan wadahnya.
Gambar 3.12. Jarak Robot Lengan dengan Objek dan Wadahnya
3.3 Perancangan Perangkat Keras
Ada beberapa bagian utama dalam perancangan subsitem perangkat keras robot
lengan otomatis , yaitu :
a. Sistem minimum menggunakan mikrokontorler ATmega8535
b. Sensor TCS3200
c. Motor servo
d. Regulator tegangan menggunakan IC 7805 dan 7806
30
3.3.1 Sistem Minimum Mikrokontroler ATmega8535
Rangkaian Sistem Minimum berfungsi sebagai I/O untuk mengolah data dari sensor
TCS3200 dan mengontrol/mengendalikan sudut putar motor servo yang telah diprogram
dalam mikrokontroler ATmega8535 pada robot lengan. Mikrokontroler membutuhkan
sistem minimum yang terdiri dari rangkaian eksternal yaitu, rangkaian osilator, rangkaian
reset.
Untuk rangkaian osilator digunakan crystal dengan frekuensi sebesar 11,0592 MHz
dan menggunakan kapasitor 22 pf pada pin XTAL1 dan XTAL2 di mikrokontroler.
Rangkaian osilator ini berfungsi sebagai sumber clock bagi mikrokontroler. Pemberian
kapasitor bertujuan untuk memperbaiki kestabilan frekuensi yang diberikan oleh osilator
eksternal. Gambar 3.13 menunjukan rangkaian osilator.
Gambar 3.13. Rangkaian Osilator ATmega8535 [3]
Perancangan rangkaian reset bertujuan untuk memaksa proses kerja pada
mikrokontroler dapat diulang dari awal. Saat tombol reset ditekan maka mikrokontroler
mendapat input logika rendah, sehingga akan me-reset seluruh proses yang sedang
dilakukan mikrokontroler. Gambar 3.14 adalah rangkaian reset untuk ATmega8535.
Gambar 3.14. Rangkaian Reset ATmega8535
31
Fungsi resistor dan kapasitor adalah untuk tunda waktu tegangan yang masuk ke
reset. Waktu yang dibutuhkan untuk reset eksternal tidak sama dengan waktu input VCC,
sehingga waktu reset diberikan setelah waktu input VCC. Untuk itu diperlukan kapasitor
dan resistor sebagai penundanya dan waktu pengisian kapasitor sebagai jedanya. Waktu
pengisian kapasitor minimum sesuai dengan datasheet yaitu 2us. Maka jika menggunakan
kapasitor sebesar 10nF, nilai resistor minimum dapat dihitung dengan persamaan 2.1.
T = R x C
Maka R = 2us/10nF
= 200Ω
Untuk memperoleh waktu yang lebih dari 2us , maka nilai resistor harus lebih besar dari
200 Ω. Oleh karena itu digunakan resistor 4700 Ω untuk meperoleh waktu pengisian 47us.
Perancangan penggunaan port sebagai input dan output pada mikrokontroler
ATmega8535 disesuaikan dengan kebutuhan yaitu sejumlah 11 pin. Sensor TCS3200
dengan 5 pin pada PORTD dan Out pada PORTC, motor servo dengan 4 pin pada PORTB
dan LCD dengan 7 pin pada PORTA. Tabel 3.1 menunjukan penggunaan port pada
mikrokontroler yang digunakan sebagai input dan output dari motor servo dan sensor
TCS3200.
Tabel 3.1. Penggunaan Port pada Mikrokontroler
Fungsi PORT Mikro Keterangan
INPUT
TCS3200
PORTC.1 Out TCS3200
PORTD.3 Input S0 (skala frekuensi output)
PORTD.4 Input S1 (skala frekuensi output)
PORTD.5 Input S2 (photodiode yang aktif)
PORTD.6 Input S3 (photodiode yang aktif)
PORTD.7 Led sensor
OUTPUT
Motor Servo
PORTB.0 Output PWM motor servo 1
PORTB.1 Output PWM motor servo 2
PORTB.2 Output PWM motor servo 3
PORTB.3 Output PWM motor servo 4
LCD PORTA.0-7 Display
32
Secara keseluruhan rangkaian sistem minimum ATmega8535 ditunjukan pada
Gambar 3.15.
Gambar 3.15. Rangkaian Sistem Minimum ATmega8535
3.3.2 Rangkaian Konfigurasi LCD 16x2
Dengan menggunakan informasi pada Tabel 2.2 maka dapat dibuat rangkaian
pendukung LCD 16x2 seperti pada Gambar 3.16. Penentuan konfigurasi kaki LCD menuju
mikrokontroler ditentukan dengan melihat pada software compiler yang digunakan
(CodeVisionAVR) seperti pada Gambar 3.17.
33
Gambar 3.16. Rangkaian LCD 16x2
Gambar 3.17. Pengaturan Port LCD pada Code Vision AVR
3.3.3 Perancangan Sensor TCS3200
Sensor yang dipakai pada pembuatan tugas akhir ini adalah sensor warna TCS3200,
sebagai pendeteksi warna objek yang memiliki range tegangan input 2,7-5,5 volt.
34
Perlakuan terhadap sensor TCS3200 yaitu dengan memberikan logika high (1) dan low (0)
ke kaki selektor S2 dan S3 maka filter aktif, serta penskalaan frekuensi output 100% yaitu
dengan memberikan 5V ke kaki selektor S0 dan S1, yang semuanya dilakukan dengan
memberikan perintah pengalamatan dari mikrokontroler. Kaki S0 dihubungkan ke portD.3,
S1 ke PortD.4, S2 ke PortD.5, S3 PortD.6, Led ke PortD.7 dan Out ke PortC.1.
pemasangan kapasitor 10uF pada vdd dan 5V disesuaikan pada datasheet TCS3200 yang
berfungsi sebagai sebagai penstabil tegangan dan respon transien. Gambar 3.18 berikut ini
menunjukan hubungan pin sensor TCS3200 dengan mikrokontroler ATmega8535.
Gambar 3.18. Rangkaian Sensor TCS3200 terhubung ATmega8535
3.3.4 Motor Servo
Pada perancangan ini digunakan 4 buah motor servo sebagai aktuator robot lengan,
tiga diantaranya menggunakan merk motor servo HXT5010 dan satu lagi menggunakan
35
merk Futaba S3003,seperti yang ditunjukan pada Gambar 3.19 dan 3.20. Pemilihan motor
servo yang berbeda disesuaikan dengan kebutuhan. Digunakan motor servo Futaba S3003
dengan sudut putar 0-180° karena motor tersebut akan difungsikan sebagai motor poros
robot lengan yang membutuhkan sudut putar yang lebih lebar dibanding motor link 1, link
2 dan link 3 dalam proses peletakan barang. Karakteristik motor servo HXT5010 dan
Futaba S3003 berdasarkan datasheet ditunjukan pada Tabel 3.2.
Tabel 3.2. Karakteristik Motor Servo
HXT5010 [19] Futaba S3003 [20]
Motor servo tipe standard HXT5010
dengan sudut putar 90 derajat:
Kecepatan (4,8V) : 0,2 sec/60 degree
Kecepatan (6V) : 0,16 sec/60 degree
Torsi (4,8V) : 5,5Kg-cm
Torsi (6V) : 6,5Kg-cm
Tegangan: 4,8-6 volt
Dimensi: 40 x 38 x 20 mm
Berat: 38 grams
Gambar 3.19. Motor Servo HXT5010
Motor servo tipe standard Futaba S3003
dengan sudut putar 180 derajat:
Kecepatan (4,8V) : 0,23 sec/60deg
Kecepatan (6V) : 0,19 sec/60deg
Torsi (4,8V) : 3,2 Kg-cm
Torsi (6V) : 4,1 Kg-cm
Tegangan: 4,8-6 volt
Dimensi : 1,6 x 0,8 x 1,4 in
Berat : 37,2 grams
Current Drain (4.8V): 7.2mA/idle
Current Drain (6.0V): 8mA/idle
Gambar 3.20. Motor Servo Futaba S3003
Rangkaian servo terdiri dari tiga port yaitu vcc, ground, dan data. Jalur data
terhubung dengan port pada mikrokontroler sebagai jalur pengiriman pulsa PWM untuk
36
mengaktifkan motor servo dan mengatur sudut putarnya. Gambar 3.21 berikut merupakan
pin motor servo yang terhubung ke mikrokontroler.
Gambar 3.21. Pin Motor Servo ke Mikrokontroler
Pengujian dan pengambilan data pada keempat motor servo yang digunakan sebagai
aktuator robot lengan bertujuan, untuk mengetahui sudut putar yang terukur dari
karakterisktik motor servo tersebut. Pengujian dilakukan dengan memberi tegangan
masukan pada motor servo sebesar 5V dan masukan berupa PWM sebagai sinyal
pengontrol sudut putar motor yang berasal dari servo controller menggunakan
ATmega8535. Tabel 3.3 adalah hasil pengujian dari empat motor servo yang digunakan.
Digunakan interrupt timer sebagai pembangkit PWM. Secara prinsip, sebuah timer
adalah sebuah counter (penghitung). Tugas timer hanya menghitung, timer selalu
menyimpan hitungannya saat menghitung “satu, dua, tiga, …” hingga 255 (8 bit). Naiknya
hitungan timer dan berapa lama jeda antar hitungan ini ditentukan dari siklus pencacah uC,
mode timer. Pada perancangan motor servo, timer diset agar menghitung sampai 255. Dan
jika sudah mencapai 255, maka timer (overflow) akan memberikan sinyal, disinilah PWM
bekerja dan mengintruksikan timer untuk menghitung lagi dari 0. Demikian seterusnya
terjadi jika nilai 255 tercapai.
Perbandingan nilai lebar pulsa terhadap nilai overflow motor servo selama T= 20ms
adalah nilai OCR, yang merupakan cacahan pulsa selama 1ms dan 2ms. Sebagai berikut
37
perhitung overflow interrupt sebagai pembangkit PWM untuk mengatur sudut putar motor
servo.
Frekuesi kristal = 11,059200 MHz
Dengan menggunakan timer0/8bit dan nilai prescaler 256 sebagai pengatur kecepatan clock
maka timer overflow yang dihasilkan (0,09 x 10-6 ) x 256 = 23,04 x 10-6. Tabel 3.2 berikut
adalah perhitungan sudut putar motor servo.
Tabel 3.3. Perhitungan Sudut putar Motor Servo
Merk
Servo
Arah Putaran Sudut
putar
Nilai OCR =
HXT5010
Kiri (lebar pulsa 1 ms) 0° 1 1023,04 10 = 43,40
Tengah (lebar pulsa 1,5 ms) 45° 1,5 1023,04 10 = 65,10
Kanan (lebar pulsa 2 ms) 90° 2 1023,04 10 = 86,80
Futaba
S3003
Kiri (lebar pulsa 0,3 ms) 0° 0,3 1023,04 10 = 19,02
Tengah (lebar pulsa 1,3 ms) 90° 1,3 1023,04 10 = 56,42
Kanan (lebar pulsa 2,3 ms) 180° 2,3 1023,04 10 = 99,80
38
Tabel 3.4. Data Pengujian Motor Servo
Jenis Motor Servo Tegangan
Input
(Terukur)
Lebar
pulsa
Nilai
OCR
Sudut putar
(Terukur)
HXT5010 (motor 1) 5,01 V 1 ms
1,5 ms
2 ms
43,40
65,10
86,8
0°
45°
90°
HXT5010 (motor 2) 5,01 V 1 ms
1,5 ms
2 ms
43,40
65,10
86,8
0°
45°
90°
HXT5010 (motor 3) 5,00 V 1 ms
1,5 ms
2 ms
43,40
65,10
86,8
0°
45°
90°
Futaba S3003
(motor 4/poros)
5,01 V 0,3 ms
1,3 ms
2,3 ms
13,02
56,42
99,80
0°
90°
180°
Saat pengambilan data motor servo HXT5010, sudut putar yang terukur
menghasilkan data yang sesuai dengan lebar pulsa servo pada umumnya seperti ditunjukan
gambar 3.22. Namun untuk motor servo dengan merk Futaba S3003 menghasilkan data
yang berbeda dengan teori. Jika umumnya lebar pulsa servo minimum 1 ms dan
maksimum 2 ms, hal ini justru berbeda dengan servo Futaba S3003. Dari hasil pengamatan
yang dilakukan, ternyata lebar pulsa minimum 0,3 ms dan lebar pulsa maksimum motor
servo tersebut adalah sebesar 2,3 ms dengan sudut putar maksimum sebesar 0-180°, seperti
di tunjukan pada Gambar 3.23. Ini berarti setiap motor servo dengan merk yang berbeda
memiliki karakteristik lebar pulsa yang berbeda juga. Motor servo dengan merk Futaba
S3003 memiliki karakteristik interval waktu untuk mencapai sudut putar maksimum yang
lebih pajang jika dibandingkan dengan motor servo dengan merk HXT5010. Untuk lebih
detailnya Gambar 3.22 dan 3.23 menunjukan lebar pulsa dan posisi motor servo.
39
Gambar 3.22. Lebar Pulsa dan Posisi Motor Servo HXT5010
Gambar 3.23. Lebar Pulsa dan Posisi Motor Servo Futaba S3003
3.3.4.1 Perhitungan Torsi Motor Servo terhadap Beban
Pada perancangan robot lengan digunakan motor servo yang berbeda sebagai
aktuator yaitu HXT5010 dan Futaba S3003. Kedua motor servo tersebut memiliki
kataktersitik yang berbeda-beda, untuk itu perlu diketahui seberapa besar torsi yang di
butuhkan untuk menggerakkan robot lengan. Dengan menggunakan persamaan 2.4 dapat di
perhitungkan torsi yang diperlukan masing-masing motor servo dalam menggerakan robot
lengan. Tabel 3.5 menunjukan perhitungan torsi motor servo dalam menggerakan robot
lengan.
40
Tabel 3.5. Perhitungan Torsi Motor Servo pada Robot Lengan
Motor Penggerak Torsi
Motor 1 sebagai penggerak
gripper
Beban pada gripper = 32 gr
F = m x g
= 0,032 x 9,8 = 0,31 N
maka
τ = F r sin 0
= (0,31) (0,077) sin 90 = 0,02 N-m = 0,20 Kg-cm
Motor 2
Beban = 91 gr
Maka F = m x g
= 0.091 x 9,8 = 0,8918 N
τ = F r sin 0
= (0,8918)(0,11074) sin 5 = 0,008 N-m=0,08 kg-cm
Motor 3
Beban = 106 gr
Maka F = m x g
= 0,106 x 9,8 = 1,0388 N
τ = FR sin 0
= (1,0388)(0,16047) sin 28 = 0,074 N-m=0,79 kg-cm
41
Tabel 3.5. (lanjutan)Perhitungan Torsi Motor Servo pada Robot Lengan
Motor 4
Beban = 182 gr
Maka F = m x g
= 0,182 x 9,8 = 1,7836 N
Untuk 400
τ = F r sin 0
= (1,7836) (0,2168) sin 40 = 0,248 N-m= 2,52 kg-cm
Untuk 800
τ = F r sin 0
= (1,7836) (0,2168) sin 80 = 0,38 N-m= 3,87 kg-cm
Untuk 1200
τ = F r sin 0
= (1,7836) (0,2168) sin 120 = 0,334 N-m=3,40 kg-cm
3.3.5 Regulator Tegangan menggunakan IC 7805 dan IC 7806
Regulator dengan IC7805 ini digunakan sebagai sumber tegangan bagi sistem
minimum ATmega8535, TCS3200 dan regulator dengan IC7806 digunakan untuk mencatu
motor servo sebagai aktuator. Digunakan trafo step-down 1A untuk mengubah tegangan
listrik AC 220V/50Hz menjadi lebih kecil. Setelah tegangan AC dikecilkan menggunakan
trafo step-down maka untuk menghasilkan tegangan DC digunakan diode bridge 1A
sebagai penyearah tegangan AC ke DC. Gambar 3.24 menunjukan rangkaian regulator 5
volt dan rangkaian regulator 6 volt.
42
Gambar 3.24. Rangkaian Regulator Tegangan
Dalam merancang regulator agar memiliki tegangan ripple yang tidak lebih 0,75 vpp
dari jala-jala listrik PLN 220V/50Hz untuk menyuplai arus 1A, maka digunakan beberapa
nilai kapasitor untuk memperkecil ripple tegangan DC yang dihasilkan. Dengan persamaan
2.4 maka dapat dihitung nilai kapasitor yang harus digunakan.
c = I load ∗ TVrippleMaka c = ∗ .
. = 1333,3uFNamun karena nilai kapasitor 1333,3uF tidak terdapat di pasaran maka digunakan
kapasitor dengan nilai 2200uF. Pengubahan nilai kapasitor yang semakin besar justru
berdampak memperkecil tegangan ripple. Sesuai dengan rumus di atas, jika arus beban I
semakin besar, maka tegangan ripple akan semakin besar. Sebaliknya jika kapasitansi C
semakin besar, maka tegangan ripple akan semakin kecil.
Nilai T diperoleh dari T=1/2*50Hz = 0,01 dan agar diperoleh tegangan keluaran yang
lebih stabil di perlukan IC regulator sebagai penstabil tegangan. Untuk itu digunakan
IC7805 dan IC7806 untuk menghasilkan tegangan keluaran stabil 5 volt dan 6 volt. Nilai
kapasitor C2 dan C3 disesuaikan berdasarkan datasheet IC regulator 7805 dan 7806 yaitu
C2= 0,33uF dan C3 = 0,1uF. Fungsi kapasitor C1 sebagai filter tegangan DC, C2 sebagai
penstabil tegangan dan respon transien yaitu respon terhadap perubahan sinyal
input/sinyal gangguan, biasanya berupa delay time, peak time dan %overshoot.
43
3.4 Perancangan Perangkat Lunak
Perancangan perangkat lunak merupakan tahap pembuatan program yang nantinya
difungsikan untuk menjalankan robot lengan agar sesuai dengan tugas dan tujuannya.
Perancangan perangkat lunak meliput program utama dan subroutine program.
Gambar 3.25 menunjukan program utama proses kerja mikrokontroler secara
keseluruhan. Proses diawali dengan inisialisasi port pada mikrokontroler, lalu proses
pengaturan posisi robot lengan, pada proses ini motor servo diatur pada posisi sudut putar
yang berbeda-beda,motor 1 pada posisi 0°, motor 2 pada posisi 90°, motor 3 pada posisi 0°
dan motor 4 pada posisi 180°. Kemudian dilanjutkan proses pengidentifikasian warna
objek oleh sensor TCS3200. Setelah TCS3200 mendeteksi warna objek maka,
mikrokontroler mulai menjalankan intruksi untuk menggerakan motor servo. Pengaturan
sudut putar servo tergantung pada warna objek yang dideteksi oleh sensor TCS3200.
Proses selanjutnya robot lengan mengambil objek dan meletakknya pada wadah yang telah
tersedia sesuai dengan warna objek tersebut. Proses akan terus berjalan selama sensor
TCS3200 masih mengidentifikasi adanya objek berwarna merah, biru, dan hijau dan akan
selesai jika barang telah habis dan jika sensor tidak mendeteksi adanya barang maka robot
kembali pada posisi awal.
Gambar 3.25. Diagram Alir Utama
44
3.4.1 Program Pengaturan Awal Posisi Robot
Gambar 3.26 menunjukan proses pengaturan awal posisi robot. Pada proses ini,
semua motor servo diatur dengan sudut putar yang berbeda karena posisi peletakan motor
pada robot lengan tidak sama, motor 1 pada sudut 0°, motor 2 pada sudut 90°, motor 3
pada sudut 0° dan motor 4 pada sudut 180° . Hal ini bertujuan agar robot lengan berada
pada posisi yang dapat bergerak untuk menjangkau objek yang akan diambil dan dapat
begerak dalam proses peletakan objek pada tempatnya.
Mulai
X< m_1
PORTB.1 1 PORTB.1 0
Ya
Tidak
x==896
Selesai
Pemberian nilai OCR untuk tiap motor pada sudut 0, 90, dan 180
derajat
X 1
Tidak
Ya
Data overflow x==896, selama
T 20ms(x++)
Gambar 3.26. Diagram Alir Pengaturan Awal Posisi Robot
45
3.4.2 Program Indentifikasi Warna Objek menggunakan Sensor
TCS3200
Dalam pembacaan data sensor ini cukup rumit karena data outputnya berupa
frekuensi pulsa kotak dengan duty cycle 50 %. Maka dari itu diperlukan suatu frekuensi
reader dengan memfungsikan uC ATmega8535 sebagai pembaca frekuensi. Pada
perancangan ini akan dihitung lama waktu high dan low satu gelombang penuh sebagai
periodenya, maka 1/periode akan menghasilkan nilai frekuensi seperti ditunjukan pada
Gambar 3.27 dalam menghitung frekuensi selama T=1ms.
Gambar 3.27. Perioda 1 Gelombang
Gambar 3.28 menujukan diagram alir proses pengecekan atau pengidentifikasian
warna objek. Sebagai langkah awal yaitu kalibrasi sensor dengan mencari nilai referensi
untuk tiap pemfilter terhadap warna putih. Nilai referensi tersebut diperoleh dari
pengukuran output sensor ketika difilter merah, biru dan hijau dengan objek sebagai
kalibrasi maksimum bernilai 255 atau diasumsikan 8 bit menggunakan kertas putih. Untuk
pemfilter merah nilai referensinya adalah 22795 Hz, referensi pemfilter biru adalah
33066,7 Hz dan referensi pemfilter hijau adalah 34720 Hz. Nilai referensi tersebut akan
digunakan sebagai pembagi hasil yang diperoleh pada proses scaning. Pada Gambar 3.28,
dimulai dengan pengaktifan filter dengan memberikan logika low pada selektor S2-S3
untuk filter warna merah, logika low dan high pada selektor S2-S3 untuk filter biru dan
logika high pada selektor S2-S3 untuk filter hijau. Masing-masing pemfilter yang
diaktifkan, yaitu pemfilter merah diberi nama sebagai variabel R, untuk pemfilter hijau
sebagai variabel G dan untuk pemfilter biru sebagai variabel B. Proses selanjutnya adalah
proses scaning, yaitu proses untuk memperoleh data R G B. Data R G B diperoleh dengan
cara meng-counter/menghitung jumlah cacahan pulsa high dan low selama satu gelombang
penuh sehingga diperoleh nilai periodanya yaitu dengan mengalikan jumlah cacahan
dengan lama waktu eksekusi satu kali counter (1/frekuensi kristal). Setelah itu dilakukan
46
pembagian data frekuensi (1/perioda) R G B dari objek tersebut dengan terhadap data
referensi kalibrasi dan kemudian ditampilkan ke LCD yaitu berupa data R G B. Setelah
data R G B dari objek diketahui maka proses selanjutnya adalah pengaturan sudut putar
motor servo yang disesuaikan dengan warna objek yang telah diidentifikasi. Jika data R
yang diperoleh adalah lebih besar dibanding dengan data G dan B maka mikrokontroler
akan mengerjakan instruksi gerak servo mode merah, jika data B lebih besar dibanding
dengan data R dan G maka mikrokontroler akan mengerjakan instruksi gerak mode biru,
dan jika data G lebih besar dibanding data R dan B maka mikrokontroler akan
mengerjakan instruksi gerak servo mode hijau.
Mulai
Count ++Pada pulsa High
dan Low selama 1 gel. penuh
data R G B Frekuensi (1/T)
referensi
Tampil data R G B(LCD)
R G BR>G & R>B
(merah)
R G BB>R & B>G
(biru)
R G BG>R & G>B
(hijau)
selesai
Ya Ya Ya
Tidak Tidak Tidak
T= jumlah cacahan * t (1xcounter)
gerak servo mode merah
gerak servo mode biru
gerak servo mode hijau
selektor S2 dan S3 masukan logika
high dan lowPORTD.5 & 6
Red filter 0 0Green filter 1 1Blue filter 0 1
Gambar 3.28. Diagram Alir Identifikasi Warna
47
3.4.3 Program Pengendali Sudut Putar Motor Servo dalam Pengambilan
dan Peletakan Objek
Pada perancangan program untuk mengendalikan motor servo dibagi dalam tiga
bagian berdasarkan warna objek, yaitu :
a. Gerak Servo mode merah
b. Gerak Servo mode biru
c. Gerak Servo mode hijau
Data cacahan yang diberikan untuk menggerakan motor servo memiliki range yang
disesuaikan dengan penggunaan kristal dan mode timer. Dengan periode servo selama
20ms maka diperoleh nilai cacahan overflow dengan persamaan 2.3 sebagai berikut
cacahan = 1/50(1/frek. kristal) ∗ 255cacahan = 1/50(1/11059200) ∗ 255
cacahan = 869Pada proses pengambilan barang, pergerakan motor servo mode merah, mode biru
dan mode hijau adalah sama. Diawali dengan pergerakan motor 3 dengan sudut dari 0°
menuju 28° kemudian motor 2 dengan sudut pergerakan 5°, lalu dilanjutkan dengan proses
pencengkeraman objek yang dilakukan oleh motor 1 dengan sudut 90°. Setelah proses
pengambilan dilakukan, motor 3 bergerak kembali ke posisi awal lalu motor 4 sebagai
penggerak poros bergerak sesuai dengan warna objek yang telah dideteksi oleh sensor
TCS3200. Untuk objek berwarna merah sudut putar motor 4 adalah 40°, objek berwarna
biru sudut putar motor poros adalah 80° dan objek berwarna hijau sudut putar motor poros
adalah 120°. Proses tersebut akan berjalan terus sampai sensor masih mendeteksi adanya
objek/barang berwarna. Dan untuk lebih detailnya sebagai berikut diagram alir servo,
Gambar 3.29 menunjukan diagram alir servo mode merah, Gambar 3.30 menunjukan
diagram alir servo mode biru, Gambar 3.31 menunjukan diagram alir servo mode hijau.
48
a. Gerak Servo Mode Merah
Gambar 3.29. Diagram Alir Gerak Servo Mode Merah
49
b. Gerak Servo Mode Biru
Gambar 3.30. Diagram Alir Gerak Servo Mode Biru
50
c. Gerak Servo Mode Hijau
Gambar 3.31. Diagram Alir Gerak Servo Mode Hijau
51
BAB IV
HASIL PENGAMATAN DAN PEMBAHASAN
Pada bab ini akan dibahas mengenai hasil pengamatan dari robot lengan sebagai
pemisah barang berdasarkan warna. Hasil pengamatan berupa pengujian sensor TCS3200
terhadap tiga warna yaitu merah, biru, dan hijau pada kondisi pencahayaan ruang terang dan
gelap, jarak jangkauan sensor TCS3200, tingkat keberhasilan robot lengan serta pengamatan
terhadap pergerakan motor servo sebagai aktuator robot lengan.
4.1 Betuk Fisik dan Sistem Kerja Robot Lengan
Perangkat keras robot lengan tersusun atas sistem minimum ATMega8535 dan
rangkaian regulator seperti pada Gambar 4.1 dan Gambar 4.2. dan bentuk fisik robot lengan
ditunjukkan pada Gambar 4.3, Gambar 4.4, Gambar 4.5, Gambar 4.6, Gambar 4.7 dan Gambar
4.8.
Gambar 4.1. Sistem Minimum ATmega8535 Gambar 4.2. Regulator Tegangan
52
Gambar 4.3. Robot Lengan Keseluruhan
Gambar 4.5. Robot Lengan
Gambar 4.7. Objek Berwarna
Gambar 4.4. Penempatan Objek,TCS3200 dan Sistim Minimum
Gambar 4.6. TCS3200
Gambar 4.8. Wadah Objek
53
Gambar 4.1 menunjukkan board dari sistem minimum Atmega8535 sebagai pengolah
data I/O dari sensor dan motor servo, Gambar 4.2 menunjukkan board dari regulator tegangan
sebagai catu daya untuk sistem, Gambar 4.3, 4.4, 4.5, 4.6, 4.7, 4.8 menunjukkan sistem
keseluruhan robot lengan dan bagian-bagiannya yang terdiri dari penempatan objek, sensor
TCS3200 dan sistem minimum, robot lengan , letak sensor terhadap objek berwarna, objek
yang berbentuk kotak, dan wadah penampung objek berwarna.
Mekanisme kerja sistem robot lengan adalah robot bekerja secara otomatis sesuai
dengan instruksi yang telah diprogram. Ketika tombol ON-OFF dinyalakan maka sistem aktif
dan secara otomatis robot akan memulai proses pengambilan dan peletakan objek berwarna.
Diawali dengan proses pendeteksian warna objek oleh sensor TCS3200 setelah itu motor servo
akan menggerakan robot untuk mengambil objek berwarna dan meletakkannya ke kotak
penampung objek yang sesuai dengan warna objek tersebut. Proses pengambilan dan
peletakan objek akan terus dilakukan jika sensor TCS3200 masih mendeteksi adanya objek
dan akan berhenti ketika sensor sudah tidak mendeteksi adanya objek atau ketika tombol ON-
OFF dimatikan.
4.2 Hasil Data Pengujian dan Pembahasan
Pada sub bab ini, dilakukan pengujian dan pembahasan terhadap sensor TCS3200 yaitu
pada kondisi pencahayaan ruang terang dan gelap, jarak jangkauan sensor, dan pengamatan
pergerakan motor servo sebagai aktuator.
4.2.1 Pengujian Sensor TCS3200
Dilakukan pengujian sensor TCS3200 pada 2 kondisi yang berbeda yaitu pada kondisi
pencahayaan ruang terang dan gelap dengan objek yang terbuat dari bahan akrilik yang telah
dicat. Data yang diambil adalah nilai R G B untuk setiap sisi dari objek berwarna yang
berbentuk kotak yaitu sisi 1a-1f, 2a-2f dan 3a-3f. Tabel 4.1 menunjukkan perbandingan hasil
percobaan sensor TCS3200 pada kondisi ruang terang dan gelap.
54
Tabel 4.1. Data Pengujian Sensor TCS3200 pada Kondisi Cahaya Ruang Terang dengan
Intesitas cahaya 77 lux dan pada Kondisi Ruang Gelap dengan intesitas cahaya 16 lux
OBJEK BERWARNA
DATASAAT KONDISI
CAHAYA RUANG TERANG (Objek
akrilik)
DATASAAT KONDISI
CAHAYA RUANG GELAP (Objek
akrilik)R G B R G B
MERAH 1a 44 9 9 46 9 91b 33 6 6 34 6 71c 48 13 5 47 14 151d 53 8 9 54 8 91e 36 6 6 36 7 81f 43 6 6 42 6 7
MERAH 2a 44 9 9 43 9 92b 30 6 6 30 6 62c 41 6 6 41 7 72d 51 7 8 52 7 82e 30 8 8 53 7 82f 44 10 10 44 10 10
MERAH 3a 52 8 9 51 7 83b 35 9 10 35 9 103c 26 6 6 28 6 63d 38 10 11 38 10 113e 44 12 13 38 10 113f 46 8 9 45 8 9
BIRU 1a 11 25 57 11 25 571b 8 24 62 8 24 621c 9 22 52 9 22 541d 8 20 49 8 20 501e 9 22 51 8 21 521f 10 24 60 10 24 60
BIRU 2a 9 25 59 9 24 602b 10 24 57 10 24 562c 9 22 50 8 22 492d 8 24 60 8 24 602e 10 23 50 10 3 512f 11 25 59 11 25 58
BIRU 3a 9 24 56 9 23 583b 8 21 54 9 22 53
55
Tabel 4.1. (Lanjutan) Data Pengujian Sensor TCS3200 pada Kondisi Cahaya Ruang Terang
dengan Intesitas cahaya 77 lux dan pada Kondisi Ruang Gelap dengan intesitas cahaya 16 lux
Data Tabel 4.1 menunjukkan nilai R G B untuk kondisi pencahayaan ruang yang terang
dan gelap dengan intesitas cahaya ruang terang adalah 77 lux dan dengan intensitas cahaya
ruang gelap adalah 16 lux. Terlihat adanya perbedaan data yang dihasilkan, hal ini dipengaruhi
oleh ketidakmerataan warna pada saat proses pengecatan, ada yang tebal dan ada yang tipis.
Jika pada saat sensor membaca warna salah satu sisi objek yang tebal maka nilai R G B yang
dihasilkan lebih besar dibanding dengan warna yang tipis. Misalnya untuk nilai R pada objek
merah 1a dan 3a, nilai R pada objek 3a lebih besar dari objek merah 1a artinya objek merah 3a
memiliki tingkat warna cat yang lebih tebal dibanding objek merah 1a.
OBJEK BERWARNA
DATASAAT KONDISI
CAHAYA RUANG TERANG (Objek
akrilik)
DATASAAT KONDISI
CAHAYA RUANG GELAP (Objek
akrilik)R G B R G B
BIRU 3c 9 24 62 9 24 623d 9 24 60 9 24 623e 9 23 58 10 23 513f 9 24 58 11 25 583f 9 24 58 11 25 58
HIJAU 1a 37 58 22 37 59 221b 35 58 18 35 60 191c 35 55 22 36 55 221d 35 58 20 35 58 201e 35 58 20 35 58 201f 35 58 19 34 58 19
HIJAU 2a 33 56 18 33 55 182b 32 54 18 32 54 192c 34 58 19 33 58 192d 34 57 19 33 57 192e 34 56 18 34 57 182f 34 58 19 33 58 19
56
Tabel 4.2. Nilai Rata-Rata R G B pada Kondisi Ruang Terang dan pada Kondisi Ruang Gelap
OBJEK
BERWARNA
DATA SAAT KONDISI CAHAYA RUANG
TERANG (objek akrilik)
DATA SAAT KONDISI CAHAYA RUANG
GELAP (objek akrilik)R G B R G B
MERAH 41 8,16 8,11 42 8,11 8,77
BIRU 9,16 23,33 56,33 8,5 23,22 56,66
HIJAU 34,41 57 19 34,16 57,25 19,5
Tabel 4.2 menunjukkan nilai rata-rata R G B pada setiap warna saat kondisi ruang
terang dan gelap. Nilai rata-rata tersebut diperoleh dengan menjumlahkan setiap nilai R G B
dan dibagi terhadap banyaknya jumlah warna tiap sisi yang dideteksi. Melihat nilai rata-rata R
G B yang diperoleh antara kondisi cahaya ruang gelap ataupun terang maka, nilai R G B yang
dihasilkan adalah relatif sama artinya kondisi pencahayaan ruang yang gelap ataupun terang
tidak berdampak pada kinerja sensor saat mendeteksi warna suatu objek. Misalnya, dengan
membandingkan nilai R G B objek berwarna merah dengan kondisi cahaya ruang terang yang
memiliki nilai rata-rata R=41, B=8.16, dan G=8,11 sedangkan pada kondisi cahaya gelap
dengan nilai R=42, B=8,11 dan B=8,77. Selisih antara kedua nilai tersebut memiliki range
perbandingan tiap nilai R G B yang kecil yaitu 0,05 sampai 1. Jadi nilai yang dihasilkan
adalah relatif sama. Untuk itu dapat disimpulkan bahwa, dengan kondisi cahaya ruang baik
gelap maupun terang tidak mempengaruhi kinerja sensor. Ketidakmerataan warna cat
mempengaruhi nilai R G B, jika objek yang terdeteksi berwarna merah maka nilai R bernilai
lebih besar dibanding nilai G dan B, jika objek yang terdeteksi berwarna biru maka nilai B
lebih besar dibanding nilai R dan G, dan jika objek yang terdeteksi berwarna hijau maka nilai
G lebih besar dibanding nilai R dan B.
4.2.2 Pengujian Jarak Jangkauan Sensor TCS3200
Dilakukan pengujian jarak jangkauan sensor dengan mengukur jarak objek berwarna
terhadap posisi sensor. Data pengujian yang diperoleh, sensor masih dapat medeteksi hingga
jarak 7 cm tetapi data yang dihasilkan kecil. Untuk itu sarankan sesuai datasheet agar jarak
sensor dengan objek adalah sejauh 2,5-3 cm dan pada tugas akhir ini jarak sensor terhadap
57
objek adalah 2,5 cm. Tabel 4.3 menunjukkan data hasil pengujian jarak jangkauan sensor
TCS3200 dengan visualisasi Gambar 4.9 sampai Gambar 4.16 yang menunjukkan hasil
pengukuran jarak jangkau sensor terhadap objek berwarna.
Tabel 4.3. Data Pengujian Jarak Jangkauan TCS3200
No Jarak (cm) Hasil
1. 2,5 cm
Gambar 4.9. Jarak Objek 2,5 cm
2. 3 cm
Gambar 4.10. Jarak Objek 3 cm
3. 4 cm
Gambar 4.11. Jarak Objek 4 cm
58
Tabel 4.3. (Lanjutan) Data Pengujian Sensor TCS3200
No Jarak (cm) Hasil
4. 5 cm
Gambar 4.12. Jarak Objek 5 cm
5. 6 cm
Gambar 4.13. Jarak Objek 6 cm
6. 7 cm
Gambar 4.14. Jarak Objek 7 cm
7. 8 cm
Gambar 4.15. Jarak Objek 8 cm
59
Tabel 4.3. (Lanjutan) Data Pengujian Sensor TCS3200
No Jarak (cm) Hasil
8. 9 cm
Gambar 4.16. Jarak Objek 9 cm
4.2.3 Pengujian Arus pada Motor Servo
Pengujian arus pada motor servo dilakukan dengan cara menghubungkan multimeter
yang diset dalam pengukuran arus (Amperemeter) positif pada pin vcc sistem minimum dan
multimeter ground pada pin vcc motor servo, seperti ditunjukan pada gambar 4.17.
Gambar 4.17. Pengukuran Arus Motor Servo
Tabel 4.4. Data Pengujian Tegangan dan Arus
Regulator Tegangan Input (V) Arus (mA)
7805 4,95 TCS3200 = 1,8 mA
7806 5,99 Motor servo 1 = 190 mA
Motor servo 2 = 193 mA
Motor servo 3 = 203 mA
Motor servo 4 = 200 mA
60
Data pada Tabel 4.4 menunjukkan kebutuhan arus motor servo yang berbeda-beda. Hal
ini disebabkan oleh beban yang ada pada motor tersebut saat menggerakan joint dan link pada
robot lengan. Semakin berat beban yang digerakkan motor servo maka konsumsi arus akan
semakin besar pula. Hal ini dipengaruhi karena pada motor servo dilengkapi encoder yang
berfungsi sebagai umpan balik, sehingga pusat pengendali dapat memberikan arus yang sesuai
dengan beban pada motor. Dari Tabel 4.4, kebutuhan maksimal arus motor servo adalah
203mA dan TCS3200 adalah 1,8mA. Melihat konsumsi arus yang dibutuhkan motor servo dan
TCS3200 maka dengan menggunakan regulator 5V dan 6V dengan arus 1A sebagai sumber
catu daya sudah dapat menyuplai kebutuhan tegangan dan arus untuk sensor dan motor servo
tersebut. Pemisahan sumber tegangan antara sistem minimum dan motor servo dimaksudkan
karena kebutuhan arus dan tegangan pada motor servo yang lebih besar dibanding sistem
minimum dan TCS3200. Pada datasheet, kebutuhan tegangan pada motor servo 4,8-6V
dengan arus 322mA pada beban 2kg, ATmega8535 sekitar 5V dengan arus sekitar 200mA dan
TCS3200 sekitar 3,3-5V dengan arus 2mA.
4.2.4 Pengamatan Pergerakan Motor Servo sebagai Aktuator Robot Lengan
Pengamatan dilakukan dengan cara mengukur sudut putar pergerakan motor servo
dalam proses pengambilan dan peletakan objek. Dengan menggunakan busur derajat maka
dapat dilihat sudut putar motor servo. Gambar 4.18 sampai 4.20 menununjukan hasil
pengukuran sudut putar motor servo.
Gambar 4.18. Sudut Putar Motor Servo 0° Gambar 4.19. Sudut Putar Motor Servo 45°
61
Gambar 4.20. Sudut Putar Motor Servo 90°
Dari hasil pengukuran seperti pada Gambar 4.18, 4.19 dan 4.20 menunjukkan hasil yang
sama dengan perhitungan seperti Tabel 3.3 pada bab 3. Jika nilai OCR 43,40 maka sudut
putar servo 0°, jika nilai OCR 65,10 maka sudut putar servo 45°dan jika nilai OCR 86,8 maka
sudut putar servo adalah dan 90°. Namun hal tersebut berbeda dengan hasil yang ditujukan
saat motor servo sudah terpasang pada robot lengan seperti yang ditunjukan pada Gambar 4.21
dan 4.22.
Gambar 4.21. Pengamatan Sudut Putar Motor Servo 3 saat 0°
Gambar 4.22. Pengamatan Sudut Putar Motor Servo 3 saat 28°
62
Gambar 4.21 dan 4.22 menunjukkan hasil pengamatan motor 3 yang telah terpasang
pada badan robot lengan. Posisi awal motor 3 berada pada sudut 0°, maka pergerakannya
adalah berlawanan dengan arah jarum jam yaitu dari 0° menuju 90°. Motor 3 sebagai
penggerak joint 2 pada robot lengan yang diset dengan nilai OCR 59,67 seharusnya bergerak
dengan sudut putar 28°, ternyata dari hasil pengamatan menunjukkan motor tersebut bergerak
hingga 34°, hal ini disebabkan oleh adanya beban pada sehingga beban tersebut
mempengaruhi sudut putar motor 3.
Gambar 4.23. Pengamatan Sudut Putar Motor
Servo poros saat 40°
Gambar 4.24 Pengamatan Sudut Putar Motor
Servo poros saat 80°
Gambar 4.25. Pengamatan Sudut Putar Motor Servo poros saat 120°
Gambar 4.23-4.25 menunjukkan hasil pengamatan pergerakan motor poros dengan
sudut putar masing-masing 40°, 80°, 120°. Posisi awal motor poros diatur berada pada sudut
180°, jadi pergerakannya adalah sesuai dengan arah jarum jam dari 180° menuju 0°. Dari hasil
63
pengamatan diperoleh hasil yang sesuai dengan perhitungan teori, dengan memberikan nilai
OCR sebesar 80.46 maka sudut putar motor akan bergerak sebesar 40° dari 180° menuju 140°,
jika diberi nilai OCR=61,15 maka akan dihasilkan sudut putar 80°, yaitu motor bergerak dari
sudut 180°-100° dan jika nilai OCR=42,11 maka akan dihasilkan sudut putar 120°, yaitu
motor bergerak dari sudut 180°menuju 60°. Tidak terjadi adanya pergeseran sudut pada motor
4 karena beban tertumpu secara tegak lurus terhadap sumbu putar motor sehingga beban yang
ada pada motor tersebut tidak mempengaruhi gaya pada saat motor bergerak. Namum berbeda
dengan motor 3 dimana beban yang tertumpu pada sumbu putar motor berada pada posisi
miring sehingga berat beban mempengaruhi gaya pada saat motor bergerak.
4.3 Analisa dan Pembahasan Perangkat Lunak
Program yang terdapat pada mikrokontroler terdiri dari program pengendali motor servo
dan program pengidentifikasi warna. Digunakan CodeVision AVR Compiler sebagai software
dalam pembuatan program.
4.3.1 Pengendali Motor Servo
Program pengendali motor servo menggunakan interrupt timer0 sebagai pembangkit
pulsa untuk menggerakan motor servo. Listing program pengendali sudut putar motor servo
sebagai berikut :
unsigned int x,m_1,m_2,m_3,m_p; // variabel motor servo x++; if(x==869) x=1; // overflow servo T=20ms, logika high diberikan agar terus mencacah
else if (x <= m_1) PORTB.0=1; else PORTB.0=0; if (x <= m_2) PORTB.1=1; else PORTB.1=0; if (x <= m_3) PORTB.2=1; else PORTB.2=0; if (x <= m_4) PORTB.3=1; else PORTB.3=0;
64
Listing program di atas adalah penyetingan port yang digunakan motor servo. Kodisi
nilai x++ artinya adalah timer mulai mencacah dari 0 hingga 255, jika lebih dari itu maka
timer overflow dan mulai mengaktifan PWM. Nilai 896 adalah nilai overflow selama perioda
motor servo yaitu 20ms. Kemudian pemberian logika high pada tiap port, jika kondisi nilai x
lebih kecil dari pada nilai variabel m_1, m_2, m_3, m_4 sehingga mulai memberikan pulsa
agar motor servo bergerak dan logika low jika kondisinya tidak terpenuhi maka portb akan di-
reset.
while (1) ========Proses Pengaturan Awal Sudut Putar Motor Servo ======= m_2=86.80; //90 derajat delay_ms(30); m_3=43.40; //0 derajat delay_ms(30); m_4=98.9; //180 derajat delay_ms(30); m_1=43.40; // 0 derajat delay_ms(600); ==============Proses Pengambilan Objek/barang================= m_3=43.40; delay_ms(12); m_3=44.25; delay_ms(12); m_3=45.25; delay_ms(12); m_3=46.25; delay_ms(12); m_3=47.25; delay_ms(12); m_3=48.25; delay_ms(12); m_3=49.25; delay_ms(12); m_3=50.25; delay_ms(12); m_3=51.25; delay_ms(12); m_3=52.25;
65
delay_ms(12); m_3=53.25; delay_ms(12); m_3=54.25; delay_ms(12); m_3=55.25; delay_ms(12); m_3=56.25; delay_ms(12); m_3=57.25; //28 derajat delay_ms(700); m_2=85.41; delay_ms(10); m_2=84; //5 derajat delay_ms(800); ==================Proses Pencengkraman Objek/barang=============== m_1=86.8; //90 derajat cw delay_ms(800); ==================Proses Peletakan Objek/barang==================== m_3=57.25; delay_ms(10); m_3=56.25; delay_ms(10); m_3=55.25; delay_ms(10); m_3=54.25; delay_ms(10); m_3=53.25; delay_ms(10); m_3=52.25; delay_ms(10); m_3=51.25; delay_ms(10); m_3=50.25; delay_ms(10); m_3=49.25; delay_ms(10); m_3=48.25; delay_ms(10); m_3=47.25; delay_ms(10); m_3=46.25; delay_ms(10); m_3=45.25;
66
delay_ms(10); m_3=44.25; delay_ms(10); m_3=43.40; delay_ms(500); m_4=42.11; 61.15; 80.46; //120 ; 80 ; 40 derajat delay_ms(80);
m_3=43.40; delay_ms(20); m_3=44.25; delay_ms(20); m_3=45.25; delay_ms(20); m_3=46.25; delay_ms(20); m_3=47.25; delay_ms(20); m_3=48.25; delay_ms(20); m_3=49.25; delay_ms(20); m_3=50.25; delay_ms(20); m_3=51.25; delay_ms(20); m_3=52.25; delay_ms(20); m_3=53.25; delay_ms(20); m_3=54.25; delay_ms(20); m_3=55.25; delay_ms(20); m_3=56.25; delay_ms(20); m_3=57.25; delay_ms(20); m_3=58.25; delay_ms(500);
m_1=43.40; delay_ms(500);
m_3=57.25; delay_ms(20);
67
m_3=56.25; delay_ms(20); m_3=55.25; delay_ms(20); m_3=54.25; delay_ms(20); m_3=53.25; delay_ms(20); m_3=52.25; delay_ms(20); m_3=51.25; delay_ms(20); m_3=50.25; delay_ms(20); m_3=49.25; delay_ms(20); m_3=48.25; delay_ms(20); m_3=47.25; delay_ms(20); m_3=46.25; delay_ms(20); m_3=45.25; delay_ms(20); m_3=44.25; delay_ms(20); m_3=43.40; delay_ms(20); m_2=83.8; delay_ms(50); m_2=84.8; delay_ms(50); m_2=85.8; delay_ms(50); m_2=86.8; delay_ms(50); m_4=98.9; delay_ms(100); ;
Listing program di atas adalah pemberian nilai OCR yang merupakan cacahan pulsa
selama 1ms dan 2ms untuk menggerakan motor servo sesuai dengan sudut yang diinginkan.
Pergerakan motor servo tersebut adalah secara bertahap satu persatu dengan pemberian delay
68
masing-masing pergerakan utama motor servo adalah 500 ms dan 800 ms. Gerakan servo
hanya dibedakan pada proses peletakan barang yaitu motor 4 (m_4) bergerak 40° untuk objek
warna merah, 80° untuk objek warna biru, 120° untuk objek warna hijau.
4.3.2 Identifikasi Warna Sensor TCS3200
Pada program identifikasi warna, akan dihitung lama waktu high dan low satu
gelombang penuh sebagai periodenya, maka 1/periode akan menghasilkan nilai frekuensi.
Listing program proses identifikasi warna objek sebagai berikut :
#define redref (27795/255) //nilai referensi frekuensi tiap 8 bitnya maka di bagi 255#define greenref (33066.7/255)#define blueref (34720/255)
unsigned char lcd_buffer[33];unsigned int count, red, green, blue;float periode, frekuensi
void red_filter() PORTD.4=0; PORTD.5=0; while(PINC.1 == 0) while(PIND.1 == 1) while(PINC.1 == 0) count++; while(PINC.1 == 1) count++; periode = ((float)count*(1/11059200)); frekuensi = ((float)1/periode); red = (frekuensi/redref); count=0;
void green_filter() PORTD.4=1;
69
PORTD.5=1; while(PINC.1 == 0) while(PINC.1 == 1)
while(PIND.1 == 0) count++; while(PIND.1 == 1) count++; periode = ((float)count*(1/11059200)); frekuensi = ((float)1/periode); green = (frekuensi/greenref); count=0;
void blue_filter() PORTD.4=0; PORTD.5=1; while(PINC.1 == 0) while(PINC.1 == 1) while(PINC.1 == 0) count++; while(PINC.1 == 1) count++; periode = ((float)count*(1/11059200)); frekuensi = ((float)1/periode); blue = (frekuensi/blueref); count=0; void tampil_warna() if (((red>blue)&&(red>green)))
70
lcd_gotoxy(4,1); lcd_putsf("MERAH"); delay_ms(20); if (((blue>red)&&(blue>green))) lcd_gotoxy(4,1); lcd_putsf("BIRU"); delay_ms(20); if (((green>red)&&(green>blue))) lcd_gotoxy(4,1); lcd_putsf("HIJAU"); delay_ms(20);
if (((red<4)&&(blue<4)&&(green<4))) lcd_gotoxy(0,1); lcd_putsf("TIDAK ADA OBJEK"); delay_ms(20); while () red_filter(); delay_ms(20); green_filter(); delay_ms(20); blue_filter(); delay_ms(20); lcd_gotoxy(0,1); lcd_clear(); sprintf(lcd_buffer,"R:%d G:%d B:%d",red,green,blue); lcd_puts(lcd_buffer); tampil_warna() ;
Listing program di atas adalah proses scanning untuk memperoleh nilai frekuensi dari
masing-masing warna merah, biru dan hijau. Pada baris paling atas adalah pendeklarasian nilai
referensi tiap warna redref untuk warna merah, blueref untuk warna biru, greenref untuk
warna hijau yang di peroleh dengan cara pengaktifan pemfilter merah, biru, dan hijau terhadap
warna putih dengan menggunakan kertas HVS kemudian dicatat nilai outputnya. Unsigned
71
char lcd_buffer[33] digunakan untuk mendeklarasikan variabel array dengan lebar kolom 33.
Variabel array ini digunakan untuk menyimpan data string ke dalam memori SRAM
menggunakan sprintf yang selanjutnya akan ditampilkan ke LCD menggunakan lcd_putsf.
Void red_filter, blue_filter, dan green_filter adalah 3 fungsi untuk tiap warna merah,
biru dan hijau. Di dalam fungsi tersebut terjadi proses scanning untuk memperoleh nilai
frekuensi objek. Pemberian logika high dan low pada PORTD.4 dan 5 adalah bertujuan untuk
pengaktifan pemfilter pada sensor. Kemudian pada PINC.1, jika bernilai 0 dan 1 maka akan
mencacah lama waktu data sensor pada kondisi pulsa high dan kondisi low. Eksekusi satu kali
siklus counter adalah 1 dibagi dengan nilai frekuensi kristal yang digunakan (T=1/11059200)
kemudian frekuesi yang diperoleh dibagi dengan nilai refrensi sehingga diperoleh nilai
frekuensi warna tiap objek yang diidentifikasi oleh TCS3200.
Void tampil_warna adalah fungsi untuk menampilkan tulisan pada LCD. Ada tiga
kondisi menggunakan pernyataan if yang masing-masing kondisi memiliki blok pernyataan
yang berbeda. Jika nilai “red>blue && red>green” maka akan muncul tulisan MERAH, jika
nilai “blue>red && blue>green” maka akan muncul tulisan BIRU, jika nilai “green>red &&
green>blue” maka akan muncul tulisan HIJAU, jika nilai “red<4&&blue<4&&green<4”
maka akan muncul tulisan TIDAK ADA OBJEK. Perintah lcd_gotoxy (4,1) menyatakan letak
karakter tulisan di kolom 4 baris 1 pada LCD, lcd_putsf( ) sebagai perintah menampilkan
karakter tulisan “OBJEK MERAH, OBJEK BIRU, dan OBJEK HIJAU”, dan
sprintf(lcd_buffer,"R:%d G:%d B:%d",red,green,blue); adalah perintah untuk menampilkan
data array yang tersimpan dalam memori SRAM dari proses scanning red, blue, dan green
untuk ditampilkan ke LCD. Gambar 4.25, Gambar 4.26, Gambar 4.27, dan Gambar 4.28,
menunjukkan tampilan LCD.
Gambar 4.25. Tampilan LCD Saat Objek
Merah
Gambar 4.26. Tampilan LCD Saat Objek
Biru
72
Gambar 4.27. Tampilan LCD Saat Objek
Hijau
Gambar 4.28. Tampilan LCD Saat Tidak
Ada Objek
4.4 Analisa Keberhasilan Alat
Pada tugas akhir ini, dilakukan analisa tingkat keberhasil robot saat proses pengambilan
dan peletakan barang untuk objek berwarna merah, biru dan hijau. Namun jika ada objek lain
selain warna tersebut dan data yang dihasilkan oleh sensor memenuhi syarat maka robot akan
tetap melakukan proses pengambilan barang. Misalnya, objek berwarna kuning dengan nilai
R=46, B=25, G=23 maka sensor akan mendeteksi objek tersebut adalah berwarna merah dan
robot akan mengambil barang tersebut dan meletakkannya pada kotak penampung warna
merah. Hal ini disebabkan karena pada perancangan program, hanya dibuat untuk 3 kondisi
warna dasar yaitu merah biru dan hijau. Dengan masing-masing kondisi adalah jika nilai R>G
dan R>B maka objek merah, jika G>R dan G>B maka objek hijau, dan jika B>G dan B>R
maka objek biru. Jadi apapun warna objek yang dideteksi dan jika nilai R G B yang dihasilkan
memenuhi kondisi yang telah disebutkan diatas, maka robot akan tetap melakukan proses
pengambilan dan peletakan barang. Untuk mengatasi hal tersebut maka perlu kondisi yang
berbeda yaitu pemberian range untuk tiap nilai R G B pada masing-masing warna yang
dideteksi. Misalnya untuk warna merah yang memiliki nilai R=44, G=9, dan B=9 maka
kondisinya adalah (R>40)&&(R<50) && (G>7)&&(G<15) && (B>7)&&(B<15).
Tingkat keberhasilan robot lengan secara keseluruhan dapat diketahui dengan
melakukan beberapa kali percobaan dalam proses pengambilan dan peletakan objek sesuai
warna. Percobaan dilakukan dengan 2 cara yaitu penempatan barang/objek berwarna secara
acak dan penempatan objek berwarna secara berurutan. Robot bekerja dengan baik artinya saat
proses pedeteksian warna hingga ke proses pergerakan motor servo sebagai aktuator bekerja
dengan baik dan sesuai dengan perintah yang diberikan sehingga dapat mengambil dan
73
meletakan objek yang sesuai dengan warna objek tersebut kedalam wadah penampung. Robot
tidak bekerja dengan baik jika tidak dapat melakukan salah satu proses yaitu proses scaning
objek berwarna, pengambilan atau proses peletakan objek. Data percobaan diambil pada
kondisi ruang terang dengan objek tersusun secara acak ditunjukkan oleh Tabel 4.5 dan Tabel
4.6 menunjukkan data percobaan dengan objek yang tersusun berurutan.
Tabel 4.5. Data Hasil Percobaan Robot dalam Mengambil dan Meletakan Objek Berwarna
yang Tersusun Secara Acak
Percobaan Objek Berwarna
Data R G B Hasil
I Merah 44 ; 9 ; 9 Robot bekerja dengan baik
II Biru 8 ; 20 ; 49 Robot bekerja dengan baik
III Hijau 35 ; 55 ; 22 Robot bekerja dengan baik
IV Hijau 35 ; 55 ; 20 Robot bekerja dengan baik
V Biru 10 ; 24 ; 60 Robot bekerja dengan baik
VI Merah 51 ; 7 ; 9 Robot bekerja dengan baik
VII Biru 9 ; 22 ; 50 Robot bekerja dengan baik
VIII Merah 35 ; 9 ; 10 Robot bekerja dengan baik
IX Merah 30 ; 8 ; 8 Robot bekerja dengan baik
X Merah 43 ; 6 ; 6 Robot bekerja dengan baik
XI Hijau 34 ; 58 ; 19 Robot bekerja dengan baik
XII Biru 9 ; 22 ; 51 Robot bekerja dengan baik
XIII Merah 41 ; 6 ; 6 Robot bekerja dengan baik
XIV Biru 11 ; 25 ; 59 Robot bekerja dengan baik
XV Merah 43 ; 6 ; 7 Robot bekerja dengan baik
74
Tabel 4.5. (Lanjutan) Data Hasil Percobaan Robot dalam Mengambil dan Meletakan Objek
Berwarna yang Tersusun Secara Acak
Percobaan Objek Berwarna
Data R G B Hasil
XVI Hijau 34 ; 58 ; 19 Robot bekerja dengan baik
XVII Hijau 35 ; 58 ; 20 Robot bekerja dengan baik
XVIII Biru 38 ; 10 ; 11 Robot bekerja dengan baik
XIX Biru 10 ; 24 ; 57 Robot bekerja dengan baik
XX Biru 10 ; 23 ; 50 Robot bekerja dengan baik
Tabel 4.6. Data Hasil Percobaan Robot dalam Mengambil dan Meletakan Objek Berwarna
yang Tersusun Secara Berurutan
Percobaan Objek Berwarna
Data R G B Hasil
I Merah 48 ; 13 ; 5 Robot bekerja dengan baik
II Biru 9 ; 22 ; 52 Robot bekerja dengan baik
III Hijau 33 ; 56 ; 18 Robot bekerja dengan baik
IV Merah 36 ; 6 ; 6 Robot bekerja dengan baik
V Biru 9 ; 22 ; 51 Robot bekerja dengan baik
VI Hijau 34 ; 58 ; 19 Robot bekerja dengan baik
VII Merah 51 ; 7 ; 8 Robot bekerja dengan baik
VIII Biru 8 ; 24 ; 62 Robot bekerja dengan baik
IX Hijau 35 ; 55 ; 22 Robot bekerja dengan baik
X Merah 44 ; 12 ; 13 Robot bekerja dengan baik
Dari Tabel 4.5 dan 4.6 menunjukkan bahwa dari beberapa kali percobaan yang
dilakukan semua berhasil, baik dengan objek yang tersusun secara acak maupun dengan objek
75
yang tersusun secara berurutan. Robot lengan mampu mengambil dan meletakkan objek
berwarna dengan tempat ke wadah penampung objek sesuai dengan warna objek tersebut.
Tingkat keberhasilan alat dapat dihitung dengan persamaan sebagai berikut :
Robot lengan memiliki tingkat keberhasilan 100% dalam menjalankan tugasnya untuk
mengambil dan memindahkan objek berwarna kedalam kotak penampung sesuai dengan
warna objek tersebut.
76
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Dari hasil pengujian serta pengambilan data pada robot lengan otomatis sebagai
pemisah barang berdasarkan warna dengan menggunakan Atmega8535, dapat diambil
kesimpulan:
1. Robot lengan sudah dapat bekerja dengan baik dalam proses pengambilan dan
peletakan objek berwarna yang tersusun secara acak ataupun tersusun secara
berurutan.
2. Motor servo berfungsi dengan baik sebagai aktuator robot lengan dalam
mengerjakan proses pengambilan dan peletakan objek/barang.
3. Jarak jangkauan sensor untuk mendeteksi objek berwarna dapat mencapai jarak
jangkau 2,5-7 cm.
4. Kondisi pencahayaan ruang yang gelap ataupun terang tidak mempengaruhi
kinerja sensor TCS3200.
5. Robot lengan sebagai pengambil dan peletak objek berwarna memiliki tingkat
keberhasilan 100%.
5.2 Saran
Saran-saran bagi pengembangan selanjutnya adalah:
1. Robot lengan memiliki daya jangkauan lebih jauh agar dapat mengambil dan
meletakan barang lebih banyak.
2. Lebih banyak variasi warna objek yang dideteksi.
77
DAFTAR PUSTAKA
[1] Muhammad Afiq Bin Zulkifli, 2007, Design for Robot Welding Rotation Jig
with Workspace, Faculty of Manufacturing Engineering TECHNICAL
UNIVERSITY of MALAYSIA.
[2] http://www.robotindonesia.com, diakses 11 Januari 2011
[3] ----, 2011,Data Sheet Mikrokontroler Atmega8535, Atmel
[4] Ari Heryanto M., ST., Ir. Wisni Adi P., 2008, Pemorgraman Bahasa C untuk
Mikrokontroler ATMEGA8535, 1st ed, C.V ANDI OFFSET, Yogyakarta.
[5] Agus Bejo, 2008, C dan AVR Rahasia Kemudahan Bahasa C dalam
Mikrokonroler ATMEGA8535, 1st ed, GRAHA ILMU, Yogyakarta.
[6] http://depokinstruments.com/2010/02/08/teknik-pengendalian-lcd-karakter-
i/#more-585, diakses tanggal 6 Januari 2011.
[7] Sigit Suyantoro F., 2010, Robotika - Teori dan Implementasinya, 1st ed, C.V
ANDI OFFSET, Yogyakarta.
[8] Endra Pitowarno, 2006, ROBOTIKA : Desain, kontrol, dan kecerdasan Buatan,
1st ed, C.V ANDI OFFSET, Yogyakarta.
[9] Sumbodo, W., 2008, Jilid 3, Teknik Produksi Mesin Industri, Direktorat
Pembinaan Sekolah Menengah Kejuruan, Dirjen Manajemen Pendidikan Dasar
dan Menengah, Hak Cipta Depdiknas.
[10] ----, 2011,Data Sheet TCS3200-DB (#28302): Color Sensor Module, Parallax
[11] Heri Adrianto, 2008, Pemrograman Mikrokontroler AVR ATMEGA 16, 1st ed,
INFORMATIKA, Bandung.
[12] http://www.electroniclab.com, diakses 20 Febuari 2011.
[13] Honeycutt, Richard A., 1988, Op Amps and Linear Integrated Circuits, Delmar
Publishers Inc., New York.
[14] http://www.avrku.com, diakses 23 Febuari 2011
[15]
[16]
[17]
http://www.parralax.com/motor servo, diakses 23 Febuari 2011.
Ardi Winoto, 2002, Mikrokontroler AVR ATMEGA8/32/8535 dan
Pemrogramannya dengan Bahasa C pada WinAVR, INFORMATIKA, Bandung
http://www.fairchildsemi.com/regulator7805, diakses 20 Febuari 2011.
78
[18]
[19]
[20]
[21]
[22]
[23]
http://delta-electronic.com/sensorwarna, diakses 1 Febuari 2011.
http://www.rctronic.com/index.php?main_page=product_info&cPath=2_18&pr
oducts_id=192&zenid=6d042f1cef76d193910fa6fbdab0bf9c, diakses 2 Febuari
2011.
http://www.servocity.com/html/s3003_servo_standard.html diakses 2 Febuari
2011.
Paul A. Tipler, 1998, FISIKA Untuk Sains dan Teknik, edisi 3 jilid 1, Erlangga,
Bandung.
Mark N. Horesnstein, 1996, Microlectronic Circuit and Devices, 2st ed, Prentice
Hall nternational.Inc, New Jersey.
http://www.ofremmi.info/F3A/Technic/ServoTesting/servo_test_results.htm,
diakses 14 April 2011.
L1
LAMPIRAN
Rangkaian Sistem Minimum
Rangkaian Regulator Rangkaian TCS3200
L2
Servo HXT5010 Test Result [23]
SERVO HXT5010 [19]
L3
SERVO FUTABAS3003[20]
LISTING PROGRAM
/*****************************************************This program was produced by theCodeWizardAVR V1.25.8 ProfessionalAutomatic Program Generator© Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.http://www.hpinfotech.com
Project : Robot Lengan Otomatis sebagai Pemisah Barang Berdasarkan Warna Version : Date : 5/14/2011Author : Rio Arismarjito Company : Electro USD Comments :”Pengakuan” Datang Dari Usaha Kita untuk “Melayakkan” Diri
L4
Chip type : ATmega8535Program type : ApplicationClock frequency : 11.059200 MHzMemory model : SmallExternal SRAM size : 0Data Stack size : 128
S0 dan S1 5 voltS2=0 ; S3=0 -> filter merah S2=0 ; S3=1 -> filter biruS2=1 ; S3=0 -> filter clearS2=1 ; S3=1 -> filter hijau
S0 = PORTD.3S1 = PORTD.4S2 = PORTD.5S3 = PORTD.6LED putih di sensor PORTD.7out = PORTC.1
SERVO m_1 = PORTB.0SERVO m_2 = PORTB.1SERVO m_3 = PORTB.2SERVO m_4 = PORTB.3*****************************************************/#include <mega8535.h>// Alphanumeric LCD Module functions#asm .equ __lcd_port=0x1B ;PORTA#endasm#include <lcd.h>unsigned int x,m_4,m_2,m_3,m_1;
// Timer 0 overflow interrupt service routineinterrupt [TIM0_OVF] void timer0_ovf_isr(void)// Place your code herex++; if(x==869) x=1; else if (x <= m_1) PORTB.0=1; else PORTB.0=0; if (x <= m_2) PORTB.1=1; else PORTB.1=0;
L5
if (x <= m_3) PORTB.2=1; else PORTB.2=0; if (x <= m_4) PORTB.3=1; else PORTB.3=0; //=================================================================////SCANNING WARNA
#include <stdio.h> #include <delay.h>#define redref (27795/255) //nilai frekuensi warna merah, warna tiap 8 bitnya maka dbagi 255#define greenref (33066.7/255)#define blueref (34720/255) unsigned char lcd_buffer[33];unsigned int count, red, green, blue;float periode, frekuensi, ;
void red_filter() //fungsi untuk scaning pemfilter merah
PORTD.5=0; //selector S1 PORTD.6=0; //selector S2 while(PINC.1 == 0) while(PINC.1 == 1) while(PINC.1 == 0) //Output sensor, bernilai low count++;//proses counter output sensor while(PINC.1 == 1)//Output sensor, bernilai high count++; periode = ((float)count*(1/11059200)); frekuensi = ((float)1/periode);// hitung lama waktu pulsa high dan low dlm gel.penuhred = (frekuensi/redref); //hasil pemfilter merah (R)
count=0; //proses counter selesai
void green_filter() //fungsi untuk scaning pemfilter hijau
L6
PORTD.5=1;// selector S1 PORTD.6=1;// selector S2 while(PINC.1 == 0) while(PINC.1 == 1) while(PINC.1 == 0) //Output sensor, bernilai low count++; //proses counter output sensor while(PINC.1 == 1)//Output sensor, bernilai high count++; periode = ((float)count*(1/11059200)); frekuensi = ((float)1/periode); green = (frekuensi/greenref); count=0;
void blue_filter() //fungsi untuk scaning pemfilter biru
PORTD.5=0;//selector S1 PORTD.6=1;//selektror S2 while(PINC.1 == 0) while(PINC.1 == 1) while(PINC.1 == 0) count++; while(PINC.1 == 1) count++; periode = ((float)count*(1/11059200)); frekuensi = ((float)1/periode); blue = (frekuensi/blueref); count=0;
L7
//===========================================================////MODE GERAK SERVO
void tampil_warna() if (((red>blue)&&(red>green))) lcd_gotoxy(4,1); lcd_putsf("OBJEK MERAH"); delay_ms(20); ===========Pengaturan Awal Posisi Robot============= m_2=86.80; //90 derajat delay_ms(30); m_3=43.40; //0 derajat delay_ms(30); m_4=99.82; //180 derajat delay_ms(30); m_1=43.40; // 0 derajat delay_ms(600);
============Proses Pengambilan===================== m_3=43.40; delay_ms(12); m_3=44.25; delay_ms(12); m_3=45.25; delay_ms(12); m_3=46.25; delay_ms(12); m_3=47.25; delay_ms(12); m_3=48.25; delay_ms(12); m_3=49.25; delay_ms(12); m_3=50.25; delay_ms(12); m_3=51.25; delay_ms(12); m_3=52.25; delay_ms(12); m_3=53.25; delay_ms(12); m_3=54.25;
L8
delay_ms(12); m_3=55.25; delay_ms(12); m_3=56.25; delay_ms(12); m_3=57.25; //28 derajat delay_ms(700); m_2=85.41; delay_ms(10); m_2=84; //5 derajat delay_ms(00); =============Proses Pencengkraman Objek================== m_1=86.8; //90 derajat cw delay_ms(800);
=============Proses Peletakan=========================== m_3=57.25; delay_ms(10); m_3=56.25; delay_ms(10); m_3=55.25; delay_ms(10); m_3=54.25; delay_ms(10); m_3=53.25; delay_ms(10); m_3=52.25; delay_ms(10); m_3=51.25; delay_ms(10); m_3=50.25; delay_ms(10); m_3=49.25; delay_ms(10); m_3=48.25; delay_ms(10); m_3=47.25; delay_ms(10); m_3=46.25; delay_ms(10); m_3=45.25; delay_ms(10); m_3=44.25; delay_ms(10);
L9
m_3=43.40; delay_ms(500); m_4=80.46; //40 derajat delay_ms(80);
m_3=43.40; delay_ms(20); m_3=44.25; delay_ms(20); m_3=45.25; delay_ms(20); m_3=46.25; delay_ms(20); m_3=47.25; delay_ms(20); m_3=48.25; delay_ms(20); m_3=49.25; delay_ms(20); m_3=50.25; delay_ms(20); m_3=51.25; delay_ms(20); m_3=52.25; delay_ms(20); m_3=53.25; delay_ms(20); m_3=54.25; delay_ms(20); m_3=55.25; delay_ms(20); m_3=56.25; delay_ms(20); m_3=57.25; delay_ms(20); m_3=58.25; delay_ms(500); m_1=43.40; delay_ms(500); m_3=57.25; delay_ms(20); m_3=56.25; delay_ms(20);
L10
m_3=55.25; delay_ms(20); m_3=54.25; delay_ms(20); m_3=53.25; delay_ms(20); m_3=52.25; delay_ms(20); m_3=51.25; delay_ms(20); m_3=50.25; delay_ms(20); m_3=49.25; delay_ms(20); m_3=48.25; delay_ms(20); m_3=47.25; delay_ms(20); m_3=46.25; delay_ms(20); m_3=45.25; delay_ms(20); m_3=44.25; delay_ms(20); m_3=43.40; delay_ms(20); m_2=83.8; delay_ms(50); m_2=84.8; delay_ms(50); m_2=85.8; delay_ms(50); m_2=86.8; delay_ms(50);
m_4=99.82; delay_ms(100);
if (((green>red)&&(green>blue)))
lcd_gotoxy(4,1); lcd_putsf("OBJEK HIJAU"); delay_ms(20);
L11
m_2=86.80; delay_ms(30); m_3=43.40; delay_ms(30); m_4=99.82; //180 derajat delay_ms(30); m_1=43.40; delay_ms(600); m_3=43.40; delay_ms(12); m_3=44.25; delay_ms(12); m_3=45.25; delay_ms(12); m_3=46.25; delay_ms(12); m_3=47.25; delay_ms(12); m_3=48.25; delay_ms(12); m_3=49.25; delay_ms(12); m_3=50.25; delay_ms(12); m_3=51.25; delay_ms(12); m_3=52.25; delay_ms(12); m_3=53.25; delay_ms(12); m_3=54.25; delay_ms(12); m_3=55.25; delay_ms(12); m_3=56.25; delay_ms(12); m_3=57.25; delay_ms(700);
m_2=85.41; delay_ms(10); m_2=84; delay_ms(700);
m_1=86.8;
L12
delay_ms(800); m_3=57.25; delay_ms(10); m_3=56.25; delay_ms(10); m_3=55.25; delay_ms(10); m_3=54.25; delay_ms(10); m_3=53.25; delay_ms(10); m_3=52.25; delay_ms(10); m_3=51.25; delay_ms(10); m_3=50.25; delay_ms(10); m_3=49.25; delay_ms(10); m_3=48.25; delay_ms(10); m_3=47.25; delay_ms(10); m_3=46.25; delay_ms(10); m_3=45.25; delay_ms(10); m_3=44.25; delay_ms(10); m_3=43.40; delay_ms(500); m_4=42.11; // 120 derajat delay_ms(350); m_3=43.40; delay_ms(20); m_3=44.25; delay_ms(20); m_3=45.25; delay_ms(20); m_3=46.25; delay_ms(20); m_3=47.25; delay_ms(20);
L13
m_3=48.25; delay_ms(20); m_3=49.25; delay_ms(20); m_3=50.25; delay_ms(20); m_3=51.25; delay_ms(20); m_3=52.25; delay_ms(20); m_3=53.25; delay_ms(20); m_3=54.25; delay_ms(20); m_3=55.25; delay_ms(20); m_3=56.25; delay_ms(20); m_3=57.25; delay_ms(20); m_3=58.25; delay_ms(500); m_1=43.40; delay_ms(500);
m_3=57.25; delay_ms(20); m_3=56.25; delay_ms(20); m_3=55.25; delay_ms(20); m_3=54.25; delay_ms(20); m_3=53.25; delay_ms(20); m_3=52.25; delay_ms(20); m_3=51.25; delay_ms(20); m_3=50.25; delay_ms(20); m_3=49.25; delay_ms(20); m_3=48.25; delay_ms(20);
L14
m_3=47.25; delay_ms(20); m_3=46.25; delay_ms(20); m_3=45.25; delay_ms(20); m_3=44.25; delay_ms(20); m_3=43.40; delay_ms(20); m_2=83.8; delay_ms(50); m_2=84.8; delay_ms(50); m_2=85.8; delay_ms(50); m_2=86.8; delay_ms(50); m_4=99.82; delay_ms(100);
if (((blue>red)&&(blue>green))) lcd_gotoxy(4,1); lcd_putsf("OBJEK BIRU"); delay_ms(20); m_2=86.80; delay_ms(30); m_3=43.40; delay_ms(30); m_4=99.82; //180 derajat delay_ms(30); m_1=43.40; delay_ms(500);
m_3=43.40; delay_ms(12); m_3=44.25; delay_ms(12); m_3=45.25; delay_ms(12); m_3=46.25; delay_ms(12);
L15
m_3=47.25; delay_ms(12); m_3=48.25; delay_ms(12); m_3=49.25; delay_ms(12); m_3=50.25; delay_ms(12); m_3=51.25; delay_ms(12); m_3=52.25; delay_ms(12); m_3=53.25; delay_ms(12); m_3=54.25; delay_ms(12); m_3=55.25; delay_ms(12); m_3=56.25; delay_ms(12); m_3=57.25; delay_ms(700); m_2=85.41; delay_ms(10); m_2=84; delay_ms(700);
m_1=86.8; delay_ms(800); m_3=57.25; delay_ms(10); m_3=56.25; delay_ms(10); m_3=55.25; delay_ms(10); m_3=54.25; delay_ms(10); m_3=53.25; delay_ms(10); m_3=52.25; delay_ms(10); m_3=51.25; delay_ms(10); m_3=50.25;
L16
delay_ms(10); m_3=49.25; delay_ms(10); m_3=48.25; delay_ms(10); m_3=47.25; delay_ms(10); m_3=46.25; delay_ms(10); m_3=45.25; delay_ms(10); m_3=44.25; delay_ms(10); m_3=43.40; delay_ms(500);
m_4=61.15; //80 derajat delay_ms(80);
m_3=43.40; delay_ms(20); m_3=44.25; delay_ms(20); m_3=45.25; delay_ms(20); m_3=46.25; delay_ms(20); m_3=47.25; delay_ms(20); m_3=48.25; delay_ms(20); m_3=49.25; delay_ms(20); m_3=50.25; delay_ms(20); m_3=51.25; delay_ms(20); m_3=52.25; delay_ms(20); m_3=53.25; delay_ms(20); m_3=54.25; delay_ms(20); m_3=55.25; delay_ms(20); m_3=56.25;
L17
delay_ms(20); m_3=57.25; delay_ms(20); m_3=58.25; delay_ms(500);
m_1=43.40; delay_ms(500); m_3=57.25; delay_ms(20); m_3=56.25; delay_ms(20); m_3=55.25; delay_ms(20); m_3=54.25; delay_ms(20); m_3=53.25; delay_ms(20); m_3=52.25; delay_ms(20); m_3=51.25; delay_ms(20); m_3=50.25; delay_ms(20); m_3=49.25; delay_ms(20); m_3=48.25; delay_ms(20); m_3=47.25; delay_ms(20); m_3=46.25; delay_ms(20); m_3=45.25; delay_ms(20); m_3=44.25; delay_ms(20); m_3=43.40; delay_ms(20); m_2=83.8; delay_ms(50); m_2=84.8; delay_ms(50); m_2=85.8; delay_ms(50);
L18
m_2=86.8; delay_ms(50);
m_4=99.82; delay_ms(100);
if (((green<4)&&(blue<4)&&(red<4)))
lcd_gotoxy(0,1); lcd_putsf("TIDAK ADA OBJEK"); delay_ms(20);
m_3=43.40; delay_ms(100); m_2=86.80; delay_ms(100); m_4=99.82; //180 derajat delay_ms(100); m_1=43.40; delay_ms(800);
// Declare your global variables here
void main(void)// Declare your local variables here
// Input/Output Ports initialization// Port A initialization// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0x00;DDRA=0x00;
// Port B initialization// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTB=0x00;DDRB=0xFF;
// Port C initialization// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=P State0=T PORTC=0x02;
L19
DDRC=0x00;
// Port D initialization// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTD=0x00;DDRD=0xFF;
// Timer/Counter 0 initialization// Clock source: System Clock// Clock value: 11059.200 kHz// Mode: Normal top=FFh// OC0 output: DisconnectedTCCR0=0x01;TCNT0=0x00;OCR0=0x00;
// Timer/Counter 1 initialization// Clock source: System Clock// Clock value: Timer 1 Stopped// Mode: Normal top=FFFFh// OC1A output: Discon.// OC1B output: Discon.// Noise Canceler: Off// Input Capture on Falling Edge// Timer 1 Overflow Interrupt: Off// Input Capture Interrupt: Off// Compare A Match Interrupt: Off// Compare B Match Interrupt: OffTCCR1A=0x00;TCCR1B=0x00;TCNT1H=0x00;TCNT1L=0x00;ICR1H=0x00;ICR1L=0x00;OCR1AH=0x00;OCR1AL=0x00;OCR1BH=0x00;OCR1BL=0x00;
// Timer/Counter 2 initialization// Clock source: System Clock// Clock value: Timer 2 Stopped// Mode: Normal top=FFh// OC2 output: Disconnected
L20
ASSR=0x00;TCCR2=0x00;TCNT2=0x00;OCR2=0x00;
// External Interrupt(s) initialization// INT0: Off// INT1: Off// INT2: OffMCUCR=0x00;MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initializationTIMSK=0x01;
// Analog Comparator initialization// Analog Comparator: Off// Analog Comparator Input Capture by Timer/Counter 1: OffACSR=0x80;SFIOR=0x00;// LCD module initializationlcd_init(16);// Global enable interrupts#asm("sei")count=0;PORTD=0b10011000;
while (1) // Place your code here red_filter(); delay_ms(20); green_filter(); delay_ms(20); blue_filter(); delay_ms(20); lcd_gotoxy(0,1); lcd_clear(); sprintf(lcd_buffer,"R:%d G:%d B:%d",red,green,blue); lcd_puts(lcd_buffer); tampil_warna(); ;
Rio Arismarjito
DAFTAR RIWAYAT HIDUP
Rio ArismarjitoTEMPAT & TGL LAHIR : NABIRE, 11 APRIL 1989JENIS KELAMIN : LAKI-LAKI
AGAMA : KATOLIK
PEKERJAAN : MAHASISWA
PROGRAM STUDI : TEKNIK ELEKTRO,UNIVERSITAS SANATA DHARMA
PENDIDIKAN :
1994-2000, SD YPPK St. Petrus, Nabire, Papua2000-2003, SLTP YPPK St. Antonius, Nabire, Papua2003-2006, SMA Adhi Luhur, Nabire, Papua2006-2011, Universitas Sanata Dharma, Yogyakarta, Teknik Elektro
KEAHLIAN :
Menguasai Code Vision AVR studioMenguasai Eagle Layout EditorMenguasai PLC omronMenguasai Orcad SimulatorPemograman C,C++,Assambler, Visual BasicMenguasai Google Sketchup dan 3D maxMenguasai Microsoft Office
PRESTASI :Juara Harapan I Kontes Robot Cerdas Indonesia 2010 (KRCI) Regional III Divisi Battle.Masuk dalam 13 besar Kontes Robot Cerdas Indonesia 2010 (KRCI) tingkat Nasional Divisi Battle.Juara I Basket antar SMA 2005Peserta ajang kreativitas tingkat Provinsi Papua 2005
Rio Arismarjito
DAFTAR RIWAYAT HIDUP
PENGALAMAN KERJA :Praktek Kerja di PT. Produk Rekreasi Kids Fun, YogyakartaPraktek Kerja di PT. Pertamina Field Jatibarang, CirebonOperator Internet
TERTARIK :
Graphics Designing in Adobe Photoshop & Corel DrawEditing Photo, Sound EditorRobotic, Komputer dan Jaringan
HOBI : Photography, Footsal, Browsing, Basket, gitar, dengar musik.
.
Alamat :Jln. Kepuhsari No.21
Paingan, Maguwoharjo,Depok, Sleman, Yogyakarta-------------------------------------
Phone : 085743545777E-mail :
Rio_Vincenta@yahoo.com
Recommended