Pages

Selasa, 14 Januari 2014

Perancangan Robot Penjepit Barang Berbasis Mikrokontroler ATMega 8535

A. Pendahuluan

Perancangan Robot Penjepit Barang Berbasis Mikrokontroler ATMega8535. Hal ini didasari bahwa pekerjaan manusia terbatas dari segi tenaga dalam mengangkat dan memindahkan barang secara terus menerus, oleh karena itu dibuat suatu alternatif untuk menggantikan pekerjaan tersebut yaitu robot yang dapat memindahkan barang secara otomatis. Untuk rancang bangun robot ini dipakai mikrokontroler jenis ATMEGA8535 sebagai pengendali robot penjepit, yaitu suatu jenis robot beroda yang mempunyai penjepit di bagian depannya, yang akan menjepit barang yang ada di depannya bila terdeteksi oleh sensor yang terpasang pada bagian bawah penjepitnya. Dan juga mempunyai satu buah sensor yang terpasang pada bagian atas robot yang berfungsi sebagai pendeteksi dinding yang berada di depannya. Robot saat ini sudah menjadi suatu peralatan standar pada berbagai macam industri, baik skala kecil, menengah, maupun besar. Penggunaan teknologi robot pada suatu bidang industri terbukti dapat meningkatkan produk industri secara signifikan. Salah satu perangkat yang dapat digunakan untuk melakukan proses otomatisasi, khususnya pada bidang robotika, adalah mikrokontroler. Mikrokontroler dapat diprogram sesuai dengan keinginan kita untuk mengontrol hardware di mana ia diletakkan. Untuk saat ini banyak sekali jenis mikrokontroler yang digunakan dalam bidang robotika, diantaranya adalah keluaran dari Atmel, yaitu generasi AVR (alf and Vegard’s Risc Processor) yang dapat dikelompokkan menjadi 4 kelas, yaitu keluarga ATtiny, keluargaAT90Sxx, keluarga ATMega, dan AT86RFxx. yang saat ini banyak dipakai oleh para pencinta robotika. Karena mikrokontroler jenis ini mempunyai fitur-fitur yang lebih lengkap dibandingkan dengan mikrokontroler keluaran sebelumnya yaitu dari keluarga MCS-51. Pada dasarnya yang membedakan masing-masing kelas adalah memori, peripheral, dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan , mereka bisa dikatakan hampir sama. Adapun yang menjadi perumusan masalah adalah bagaimana membuat robot yang dirancang agar dapat mengangkat beban berupa kaleng dan dan dapat dipindahkan kesuatu tempat, yang dikendalikan dengan mikrokontroler ATMega8535, berdasarkan masukan-masukan dari sensor. Penelitian ini bertujuan membuat program mikrokontroler yang dapat mengendalikan motor servo maupun motor DC dan merancang robot yang dapat mendeteksi barang dengan menggunakan sensor infra merah.


. Teori Dasar

Mikrokontroler ATMega 8535
Mikrokontroler AVR memiliki arsitekur RISC (Reduced Instruction Set Computing) 8 bit, di mana semua instruksi dikemas dalam kode 16-bit (16-bits word) dan sebagian besar instruksi dieksekusi dalam 1 (satu) siklus clock.


Dari gambar 1. dapat dilihat bahwa ATMega8535 memiliki bagian sebagai sebagai berikut:
1. Saluran I/O sebanyak 32 buah, yaitu Port A, Port B, Port C, dan Port D.
2. ADC 10 bit sebanyak 8 saluran.
3. Tiga buah Timer/Counter dengan kemampuan pembandingan
4. CPU yang terdiri atas 32 buah register
5. Wachdog timer dengan osilator internal.
6. SRAM sebesar 512 byte.
7. Memori Flash sebesar 8 kb dengan kemampuan Read While Write.
8. Unit interupsi internal dan eksternal.
9. Port antarmuka SPI.
10. EEPROM sebesar 512 byte yang dapat diprogram saat operasi.
11. Antarmuka komparator analog.
12. Port USART untuk komunikasi serial.


Fitur ATMega8535

Kapabilitas deail dari ATMega8535 adalah sebagai berikut:
       1. Sistem mikroprosesor 8 bit berbasis RISC dengan kecepatan maksimal 16 MHz.
    2. Kapabilitas memori flash 8 kb, SRAM sebesar 512 byte, dan EEPROM (Electrically Erasabl Programmable Read Only memory) sebesar 512 byte.
       3. ADC internal dengan fidelitas 10 bit sebanyak 8 channel.
       4. Port komunikasi serial (USART) dengan kecepatan maksimal 2,5 Mbps.
Enam pilihan mode sleep menghemat penggunaan daya listrik

Konfigurasi Pin ATMega8535
Konfigurasi ATMega8535 bisa dilihat pada gambar 2. Dari gambar tersebut dapat dijelaskan secara fungsional,konfigurasi pin ATMega8535 sebagai berikut:
1. VCC merupakan pin yang berfungsi sebagai pin masukan catu daya.
2. GND merupakan pin ground.
3. Port A (PA0…PA7) merupakan pin I/O dua arah dan pin masukan ADC.
4. Port B (PB0…PB7) merupakan pin\ I/O dua arah dan pin khusus, yaitu Timer/Counter, komparator analog, dan SPI.
5. Port C (PC0…PC7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu TWI, komparator analog, dan Timer Osilator.
6. Port D (PD0…PD7) merupakan pin I/O dua arah dan pin khusus, yaitu komparator analog, interupsi eksternal, dan komunikasi serial.
7. RESET merupakan pin yang digunakan untuk me-reset mikrokontroler.

8. XTAL1 dan XTAL2 merupakan pin masukan clock eksternal.
9. AVCC merupakan pin masukan tegangan untuk ADC.
10. AREF merupakan pin masukan tegangan untuk referensi ADC.

C. Metode Penelitian


Perancangan Robot Konstruksi Fisik Robot

Sebuah robot biasanya terdiri dari tiga elemen penting agar menjadi suatu rangkaian otomatis yang terintegrasi, yaitu kontruksi fisik robot, rangkaian elektronik dan suatu software yang mengontrol komponen tersebut. Ketiga komponen tersebut saling berhubungan satu sama lain. Jadi apabila salah satu dari ketiga komponen tersebut dihilangkan maka alat sudah keluar dari sisi robotik.
Kontruksi fisik dari suatu robot manjadi dasar tumpuan dari rangkaian elektronik dan software kontroler. Biasanya kontruksi fisik dari suatu robot didesain untuk melakukan konsep atau tujuan dari robot itu sendiri. Dengan kata lain tujuan utama biasanya tercermin dari kontruksi fisiknya.
Berikut kontruksi Robot Beroda Penjepit Barang Berbasis Mikrokontroler ATMega8535 yang dibuat:


Perancangan Robot Penjepit Barang

-Konstruksi Robot Tampak Samping-

Diagram Blok 
Diagram ini menjelaskan secara garis besar cara kerja dari robot. Dua sensor infra merah sebagai pendeteksi adanya halangan, dan merupakan input bagi mikrokontroler yang kemudian diolah untuk menggerakkan motor Servo dan motor DC.

Rangkaian Kontrol Mikrokontroler ATMega8535

Rangkaian ini merupakan rangkaian minimum sistem control yang mengatur kerja dari mikrokontroler. Dalam hal ini, mikrokontroler digunakan sebagai control input dan output. Input (masukan) dari rangkaian sistem kontrol dhubungkadengan output rangkaian sensor pendeteksi barang. Sedangkan output dari rangkaian sistem konrol dihubungkan dengan driver motor dc.
Driver Motor DC

Rangkaian driver ini digunakan untuk mengendalikan motor DC. Rangkaian ini akan memberikan daya yang dibutuhkan oleh motor DC untuk berhenti, forward, dan reverse. Berdasarkan instruksi yang dikeluarkan oleh mikrokontroler ATMega8535, karena keluaran dari mikrokontroler tidak cukup untuk menggerakkan motor, seandainya kuat mikro akan menjadi cepat panas. Output dari mikrokontroler akan masuk ke
rangkaian driver ini, dan akan memberikan keluaran daya atau tegangan yang akan dibutuhkan untuk keperluan-keperluan di atas. Driver motor Dc yang digunaka penulis adalah IC L293D.


Motor DC

Kerja dari motor DC dikendalikan oleh mikrokontroler ATMega8535. Sesuai dengan namanya, Motor DC didayai dengan tegangan DC (Direct Current = arus searah). Dengan demikian putaran motor dc akan berbalik arah jika polaritas tegangan yang diberikan juga dirubah. Motor DC juga datang dengan tegangan yang bervariasi. Ada yang memiliki tegangan kerja 3 V, 6 V dan 12 Volt. Motor DC yang dipakai oleh penulis adalah motor dc yang dipakai pada mobilan remot yang memiliki tegangan kerja 12 Volt. Untuk mengendalikan motor ini hal pertama yang harus diketahui adalah sistematis dari motor itu sendiri, sehingga pengendalian identifikasi pada program yang dibuat pada mikrokontroler akan lebih mudah.

Cara Kerja Motor Servo

Motor servo bekerja pada tegangan 4,8 volt. Motor servo akan bekerja secara baik jika pada bagian pin kontrolnya diberikan sinyal PWM dengan frekuensi 50 Hz. Jika servo diberi pulsa dengan lebar1,5 ms maka motor servo akan berputar berlawanan jarum jam. Pulsa dengan lebar 1,0 ms akan membuat motor servo berhenti, sedangkan pulsa dengan lebar 0,5 ms akan membuat motor servo berputar searah jarum jam.


Sensor Infra Red

Dengan memakai dua buah sensor infra red untuk mendeteksi adanya halangan. Satu buah modul infra red dan sebuah rangkaian infra red rakitan sendiri dengan ic LM324 sebagai komparatornya.

Modul Infra Merah

Modul infra merah ini dipakai sebagai sensor pendeteksi dinding, apabila IR Transmitter mendeteksi adanya dinding, maka sinyal pantulan dari transmitter akan diterima oleh IR Receiver dan akan diolah oleh mikrokontroler ATMega8535 sebagai masukan untuk menentukan gerak robot.

a. Infra Red Transmitter
Merupakan suatu modul pengirim data melalui gelombang infra merah dengan
frekuensi carrier sebesar 38 kHz. Modul ini dapat difungsikan sebagai output dalam aplikasi transmisi data nirkabel seperti robotik.
Spesifikasi Hardware
1. Tegangan Kerja : +5 VDC
2. Frekuensi carrier penerima infra merah : 38 kHz
3. Panjang gelombang puncak 940 nm
4. Sudut pancaran ± 170
Prosedur Testing
1. Hubungkan sumber tegangan +5 VDC ke modul infra merah transmitter
2. Pindah semua jumper ke posisi 1-2
3. Hubungkan pin INPUT dengan ground.


b. Infra Red Receiver

Merupakan suatu modul penerima data melalui gelombang infra merah dengan frekuensi carrier sebesar 38 kHz. Modul ini dapat difungsikan sebagai input dalam aplikasi transmisi data nirkabel seperti robotic.
Spesifikasi Hardware
1. Tegangan kerja : +5 VDC
2. Frekuensi carrier penerima infra merah : 38 kHz
3. Panjang gelombang puncak 940 nm
4. Sudu penerimaan ±450
5. Memiliki 2 output : non-inverting (OUT) dan inverting .
Prosedur Testing
1. Hubungkan sumber tegangan +5 VDC ke modul infra red receiver.
2. Pasang jumper J2
3. Ukur tegangan pada pin dengan voltmeter. Nilainya akan berada pada logika ‘0’ (sekitar 0 V)
4. Beri sinyal infra merah (dengan modul infra red transmitter berjarak < 30 cm) secara teru menerus
5. Ukur tegangan pada pindengan voltmeter. Nilainya akan berada pada logika ‘1’ (sekitar 5


Rangkaian Sensor IR Pendeteksi BarangCara kerja dari driver ini hampir sama dengan modul IR. Apabila sensor mendeteksi adanya benda, maka sinar pantulannya akan diterima oleh receiver infra merah, sinar tersebut kemudian diolah IC LM324 yang merupakan komparator sinyal infra merah pada rangkaian robot tersebut. sinyal infra merah yang masuk lalu diolah mikrokontroler ATMega8535 sebagai masukan untuk menentukan gerakan robot.

Downloader
Downloader adalah alat yang dipakai untuk memasukkan program yang sudah berbentuk file hexa ke dalam mikrokontroler. Downloader yang penulis pakai adalah DT-HQ AVR ISP dan software yang dipakai untuk mendownload program adalah CodeVisionAVR yaitu software bawaan dari downloader tersebut. Bisa juga memakai software yang bernama PonyProg.
DT-HQ AVR ISP ini masih membutuhkan rangkaian tambahan untuk mendownload program ke mikrokontroler atau disebut dengan target board


  IC yang didukung antara lain:
1. AT90S1200
2. AT90S2313
3. AT90S8535
4. ATMega8515
5. ATMega853












Cara Kerja Robot
 



Perancangan robot penjepit barang ini menggunakan dua buah sensor infra merah, satu buah sensor sebagai pendeteksi dinding yang terhubung pada Port A.0, dan satu buah sensor pendeteksi barang yang terhubung pada Port A.1. Menggunakan dua buah motor DC sebagai penggerak roda, yang terhubung pada Port B bit ke 0,1,2,3,4,5. Satu buah motor servo sebagai penjepit yang terhubung pada Port B.6.

Berikut adalah cara kerja robot secara keseluruhan, pertama saat tombol power diaktifkan, tegangan dari baterai sebesar 9,6 volt akan masuk ke rangkaian regulator, dan keluaran dari rangkaian regulator yang bernilai 5 volt akan mengaktifkan rangkaian. Pertama sensor satu (pendeteksi dinding) akan mengecek semua kondisi yang berada di depannya, jika sinyal infra merah yang keluar dari transmiter sensor IR mengenai permukaan dinding, dan pantulan sinyal infra merah tersebut diterima oleh receiver sensor infra
merah, keluaran dari receiver akan berlogika satu dan memberikan masukan ke mikrokontroler melalui Port A.0, yang selanjutnya masukan tersebut akan diolah oleh mikrokontroler dan memberikan keluaran melalui Port B bit ke 0,1,2,3,4,5 untuk menggerakkan motor DC, yang sebelumnya keluaran dari mikro akan diolah oleh driver motor DC L293D dan keluaran dari driver tersebut baru akan menggerakkan motor untuk bergerak ke kiri. Dan selanjutnya sensor akan mengecek kondisi lagi, jika tidak ada dinding, maka mikro akan mengalihkan ke sensor dua (pendeteksi barang) yang terhubung pada Port A.1 untuk mengecek kondisi yang berada di depannya. Jika sinyal infra merah yang keluar dari transmitter sensor infra merah mengenai permukaan benda, dan pantulan sinyal infra merah tersebut diterima oleh receiver sensor infra merah, keluaran dari receiver akan berlogika satu dan memberikan masukan ke mikrokontroler melalui Port

    A.1, dan masukan tersebut akan diolah oleh mikro untuk menggerakkan motor servo sebagai penjepit barang melalui Port B.6. Setelah menjepit barang maka robot akan bergerak mundur ke kiri, selanjutnya servo akan aktif untuk membuka penjepit dan robot berhenti sebentar, kemudian robot mundur selama kurang lebih dua detik, dan robot berhenti lagi, baru kemudian motor akan menggerakkan motor kiri ke depan sehingga posisi robot kembali seperti posisi awal. Sensor dua atau pendeteksi barang akan melakukan pengecekan kondisi di depannya lagi, jika tidak ada barang dan sensor satu juga tidak mendeteksi adanya dinding, maka robot akan bergerak maju. Dan kondisi di atas akan terus berulang sampai tombol power dimatikan.ke perintah rjmp (relative jump) belok dan menjalankan program belok. Dan jika sensor 1 memberi masukan berlogika “0” pada pin a bit ke 0 maka akan lompat ke perintah rjmp ceksensor2. Dan perintah sbic pina,1 adalah untuk membaca masukan dari sensor dua (pendeteksi barang), jika pada pin a bit ke satu menerima logika “1” maka akan lompat ke perintah rjmp berhenti dan menjalankan program berhenti. Dan jika sensor 2 memberikan logika “0” pada pin a bit ke satu maka akan lompat ke perintah rjmp maju, dan menjalankan perintah maju.

Program Menggerakkan Servo
jepit:
inc r16
sbi portb,6
rcall delay_1_5ms
cbi portb,6
rcall delay_20ms
cpi r16,10
brne jepit
ldi r17,0b00000000
out ddrb,r17
rcall delay
rcall delay
rcall delay

Perintah inc r16 adalah untuk menaikkan satu isi register 16. Sbi (set bit in I/O) portb,6 untuk membuat logika high port b bit ke 6, dan perintah rcall delay_1_5ms adalah untuk memberikan penundaan kondisi high port b bit ke 6 selama 1,5 ms. Sedangkan perintah cbi (clear bit in I/O) portb,6 untuk membuat logika low port b bit ke 6 dan dilakukan penundaan selama 20 ms oleh perintah rcall delay_20ms dan membuat servo berputar berlawanan arah jarum jam. Setelah itu berlanjut ke perintah di bawahnya yaitu cpi (compire with immediate) r16,10 yaitu untuk membandingkan isi register 16 dengan nilai 10. Dan perintah brne jepit adalah untuk memeriksa hasil pembandingan diatas, apabila isi register 16 belum sama dengan 10 maka kembali ke sub program jepit untuk menaikkan satu nilai register 16 oleh perintah inc r16, dan akan terus berlanjut ke perintah-perintah di bawahnya sampai kondisi register 16 sama dengan 10. Setelah itu baru pindah ke perintah ldi (load immediate) r17,0b00000000 untuk memberikan nilai 0 ke register 17 sebelum nilai itu dituliskan ke port b. Kemudian isi dari register b akan dikeluarkan oleh perintah out ddrb,r17. Dan perintah out portb,r17 akan mengeluarkan isi dari register 17 ke port b, sehingga port b akan bernilai nol. Sedangkan perintah rcall delay sebanyak 3 kali untuk melakukan
     penundaan selama 3 detik.
Program Menggerakkan Motor DC
mundur:
ldi r18,0b00111010
out ddrb,r18
rcall delay
rcall delay
rcall jedah
Pada label mundur, ldi r18,0b00111010 adalah perintah untuk mengisi nilai register 18 dengan nilai 00111010 sebelum dituliskan ke port b. Kemudian isi dari register b akan dikeluarkan oleh perintah out ddrb,r17. Dan perintah out portb,r17 akan mengeluarkan isi dari register 17 ke port b, sehingga bit 1,3,4,5 akan bernilai satu dan menyebabkan motor bergerak mundur. Perintah rcall delay selama 2 kali menyebabkan penundaan selama dua detik, dan perintah rcall jedah untuk memanggil instruksi jedah.
Program Delay
delay:
ldi r17,20
La: ldi r18,255
Lb: ldi r19,255
Lc: dec r19
cpi r19,0
brne Lc
dec r18
dec r17
cpi r17,0
brne La
ret
Pada label delay, perintah ldi r17,20 adalah untuk mengisi register 17 dengan nilai 20, ldi r18 untuk mengisi register 18 dengan 255 dan ldi r19 untuk mengisi register 19 dengan nilai 255. Kemudian perintah dec r19, untuk menurunkan satu isi register 19, sedangkan cpi r19,0 adalah untuk membandingkan isi dari register 19 apakah sudah sama dengan nol. Kondisi tersebut akan dibaca oleh perintah brne La, jika register 19 belum sama dengan nol maka lompat ke label La, yang berarti kembali ke perintah dec r19, untuk mengurangi 1 isi register 19, yang kemudian akan dibandingkan lagi apakah sudah sama dengan nol. Jika sudah sama maka akan lanjut ke perintah dec r18, dan akan menurunkan satu isi register18 yang selanjutnya akan dibandingkan oleh perintah cpi r18,0, jika belum sama dengan nol maka akan lompat ke label Lb sesuai dengan perintah brne Lb. Pada label Lb, membaca perintah ldi r19, 255 yaitu mengisi register 19 dengan nilai 255, dan kemudian lanjut keperintah seperti di atas yaitu mengurangi isi register 19 membandingkan dan akan kembali lagi ke label Lc dan menurunkan satu isi register 18, membandingkan dan akan terus berulang sampai isi dari register 18 sama dengan nol. Baru kemudian lanjut ke perintah dec r17 untuk menurunkan satu isi register 17 membandingkan jika belum sama dengan nol maka akan lompat ke label La sesuai dengan perintah brne La. Dan akan melakukan perintah-perintah seperti diatas dan terus berulang sampai isi dari register 17 sama dengan nol, kemudian lanjut ke perintah ret, perintah ret di sini adalah untuk kembali dari subrutin rcall delay yaitu menjalankan perintah di bawahnya.


E. .Kesimpulan

Adapun yang menjadi kesimpulan dari penelitian ini adalah :
1. Sensor infra merah lebih peka dalam mendeteksi barang dan dinding yang berwarna putih. Karena warna putih memiliki pantulan dengan intensitas cahaya yang besar
2. Robot dapat bekerja dengan baik,dengan kombinasi rangkaian  komponen-komponen yang baik dantepat serta didukung software yangbaik juga
3. Dengan Mikrokontroler dapat digunakan sebagai pengendali Motor DC dan Motor Servo secara otomatis
4. Dengan menggunakan sensor inframerah, robot dapat mendeteksi barang yang berada di depannya

Daftar Pustaka

[1]. B.L.,Theraja, A.K. Theraja, 1999,” A Text Book Of Electrical Technology”, S.Chand & Company
LTD, New Delhi
[2]. Denis Clarck, Michael Owings,2003,”Building Robot Drive Trains”,McGraw-Hill,New York.
[3]. Lingga Wardhana, 2006,” Belajar Sendiri Mikrokontroler Seri AVR ATMEGA 8535 Simulasi, Hardwaredan Aplikasi”, Penerbit An]di,Yogyakarta
[4]. Muhammad Ali Marzidi, Janice Gillispie Marzidi,” The 8051 Microcontroller and Embedded
 Systems”,Prentice Hall, New Jersey.
[5]. Moh.Ibnu Malik,2006,” Pengantar Membuat Robot”, Gava Media, Yogyakarta
[6]. Sultan Setiawan, 2006,” Mudah dan Menyenangkan Belajar Mikrokontroler”, Penerbit Andi, Yogyakarta
[7]. Widodo Budiharto, 2004, Interfacing Komputer dan Mikrokontroler, Elex Media Komputindo,Jakarta.
[8]. Wasito, 2004, Vademekum Elektronika, PT.Gramedia Pustaka Utama, Jakarta

Tidak ada komentar:

Posting Komentar