Laporan Modul 5

15
DESAIN DAN ANALISIS ROBOT KONTROL DIGITAL ABDUL ROHMAN SAYYID Fisika Sains/III/A Universitas Islam Negeri Sunan Gunung Djati Bandung Bandung INDONESIA [email protected] Abstract: At the height and getting kompleknya energy's purpose problem electricity therefore at needs a system who can manage electric energy purpose that. AVR constitutes one of type in it mikrokontroler available logistic kind sort. Besides excess from AVR is have Power On Reset , which is not necessarily there is reset key from outside since last only by deadening supply , therefore self acting AVR will do reset . mikrokontroler just gets to issue one hight's tension or low, where is point than hight which is well worth 1 (one) and low well worth 0 (zero). while upon input most link with ground therefore inputan on does splits mikrokontroler shall well worth 1 therefore will blaze. so even contrariwise. There is point even tension on that series as big as 5 volts. It means to correspond to theory, since whereas for ATmega8 just gets is conected with tension among 4,5 – 5,5 V. There Is speed even on motor driver that we utilizes which is as big as 200 PWM. and our frequency utilize as big as 12 MHz. Key word: Mikrokontroler, code vision AVR, Tension, Frequency, Abstrak : Dengan meningkatnya dan semakin kompleknya persoalan penggunaan energy listrik maka di butuhkan suatu sistem yang dapat mengatur penggunaan energi listrik tersebut.AVR merupakan salah satu jenis mikrokontroler yang di dalamnya terdapat berbagai macam fungsi.Selain itu kelebihan dari AVR adalah

Transcript of Laporan Modul 5

Page 1: Laporan Modul 5

DESAIN DAN ANALISIS ROBOT KONTROL DIGITAL

ABDUL ROHMAN SAYYIDFisika Sains/III/A

Universitas Islam Negeri Sunan Gunung Djati BandungBandung

[email protected]

Abstract:

At the height and getting kompleknya energy's purpose problem electricity therefore at

needs a system who can manage electric energy purpose that. AVR constitutes one of type in it

mikrokontroler available logistic kind sort. Besides excess from AVR is have Power On Reset ,

which is not necessarily there is reset key from outside since last only by deadening supply ,

therefore self acting AVR will do reset . mikrokontroler just gets to issue one hight's tension or

low, where is point than hight which is well worth 1 (one) and low well worth 0 (zero). while

upon input most link with ground therefore inputan on does splits mikrokontroler shall well

worth 1 therefore will blaze. so even contrariwise. There is point even tension on that series as

big as 5 volts. It means to correspond to theory, since whereas for ATmega8 just gets is conected

with tension among 4,5 – 5,5 V. There Is speed even on motor driver that we utilizes which is as

big as 200 PWM. and our frequency utilize as big as 12 MHz.

Key word: Mikrokontroler, code vision AVR, Tension, Frequency,

Abstrak :

Dengan meningkatnya dan semakin kompleknya persoalan penggunaan energy listrik

maka di butuhkan suatu sistem yang dapat mengatur penggunaan energi listrik tersebut.AVR

merupakan salah satu jenis mikrokontroler yang di dalamnya terdapat berbagai macam

fungsi.Selain itu kelebihan dari AVR adalah memiliki Power-On Reset, yaitu tidak perlu ada

tombol reset dari luar karena cukup hanya dengan mematikan supply, maka secara otomatis AVR

akan melakukan reset. mikrokontroler hanya dapat mengeluarkan sebuah tegangan hight atau

low, dimana nilai daripada hight yaitu bernilai 1 (satu) dan low bernilai 0 (nol). ketika pada saat

input terhubung dengan ground maka inputan pada kaki mikrokontroler harus bernilai 1 maka

akan menyala. begitupun sebaliknya. Adapun nilai tegangan pada rangkaian tersebut sebesar 5

volt. Hal ini berarti sesuai dengan teori, karena sedangkan untuk ATmega8 hanya dapat bekerja

pada tegangan antara 4,5 – 5,5 V. Adapun kecepatan pada motor driver yang kita gunakan yaitu

sebesar 200 PWM . dan frekuensinya kita menggunakan sebesar 12 MHz.

Kata kunci : Mikrokontroler, code vision AVR, Tegangan, Frekuensi,

Page 2: Laporan Modul 5

1. Pendahuluan

Latarbelakang

Robot kontrol digital merupakan salah

satu jenis robot yang digunakan pada

teknologi saat ini. Robot kontrol digital

adalah sebuah robot yang dikendalikan

dengan menggunakan sebuah tombol ketika

tombol tersebut ditekan maka sesuai dengan

mikrokontroler yang telah diprogram

sebelumnya robot control digital akan

bergerak. Sebagai mahasiswa fisika sains kita

dituntut untuk mengerti dan memahami

system yang ada pada komponen

mikrokontroler sebagai program dan juga

sebagai komponen dasar yang ada pada

komponen-komponen elektronika.

Dasar Teori :

AVR ATmega8 adalah mikrokontroler

CMOS 8-bit berarsitektur AVR RISC yang

memiliki 8K byte in-System Programmable

Flash. Mikrokontroler dengan konsumsi daya

rendah ini mampu mengeksekusi instruksi

dengan kecepatan maksimum 16MIPS pada

frekuensi 16MHz. Jika dibandingkan dengan

ATmega8L perbedaannya hanya terletak pada

besarnya tegangan yang diperlukan untuk

bekerja. Untuk ATmega8 tipe L, mikrokontroler

ini dapat bekerja dengan tegangan antara 2,7 -

5,5 V sedangkan untuk ATmega8 hanya dapat

bekerja pada tegangan antara 4,5 – 5,5 V. AVR

merupakan salah satu jenis mikrokontroler yang

di dalamnya terdapat berbagai macam fungsi.

Perbedaannya pada mikro yang pada umumnya

digunakan seperti MCS51 adalah pada AVR

tidak perlu menggunakan oscillator eksternal

karena di dalamnya sudah terdapat internal

oscillator. Selain itu kelebihan dari AVR adalah

memiliki Power-On Reset, yaitu tidak perlu ada

tombol reset dari luar karena cukup hanya

dengan mematikan supply, maka secara

otomatis AVR akan melakukan reset. Untuk

beberapa jenis AVR terdapat beberapa fungsi

khusus seperti ADC, EEPROM sekitar 128 byte

sampai dengan 512 byte.

Konfigurasi Pin Atmega8

Gambar 2.1. Konfigurasi Pin Atmega8

ATmega8 memiliki 28 Pin, yang

masing-masing pin nya memiliki fungsi yang

berbeda-beda baik sebagai port maupun fungsi

yang lainnya. Berikut akan dijelaskan fungsi

dari masing-masing kaki ATmega8.

VCC

Merupakan supply tegangan digital.

GND

Merupakan ground untuk semua komponen

yang membutuhkan grounding.

Port B (PB7...PB0)

Didalam Port B terdapat XTAL1, XTAL2,

TOSC1, TOSC2. Jumlah Port B adalah 8 buah

pin, mulai dari pin B.0 sampai dengan B.7. Tiap

pin dapat digunakan sebagai input maupun

output. Port B merupakan sebuah 8-bit bi-

directional I/O dengan internal pull-up resistor.

Sebagai input, pin-pin yang terdapat pada port

B yang secara eksternal diturunkan, maka akan

mengeluarkan arus jika pull-up resistor

diaktifkan. Khusus PB6 dapat digunakan

sebagai input Kristal (inverting oscillator

amplifier) dan input ke rangkaian clock internal,

bergantung pada pengaturan Fuse bit yang

digunakan untuk memilih sumber clock.

Sedangkan untuk PB7 dapat digunakan sebagai

Page 3: Laporan Modul 5

output Kristal (output oscillator amplifier)

bergantung pada pengaturan Fuse bit yang

digunakan untuk memilih sumber clock. Jika

sumber clock yang dipilih dari oscillator

internal, PB7 dan PB6 dapat digunakan sebagai

I/O atau jika menggunakan Asyncronous

Timer/Counter2 maka PB6 dan PB7 (TOSC2

dan TOSC1) digunakan untuk saluran input

timer.

Port C (PC5…PC0)

Port C merupakan sebuah 7-bit bi-directional

I/O port yang di dalam masingmasing pin

terdapat pull-up resistor. Jumlah pin nya

Teknologi robot sebenarnya telah ada

sebelum kata “robot” digunakan, ilmuwan

muslim merupakan pionier pertama teknologi

robot. Donald Routledge dalam bukunya

Studies in Medieval Islamic Technology,

mengatakan bahwa hingga zaman modern ini,

tidak satupun dari suatu kebudayaan yang

dapat menandingi lengkapnya instruksi untuk

merancang, memproduksi dan menyusun

berbagai mesin sebagaimana yang disusun

oleh Al-Jazari. Pada 1206 ia merampungkan

sebuah karya dalam bentuk buku yang

berkaitan dengan dunia teknik. Beliau

mendokumentasikan lebih dari 50 karya

temuannya, lengkap dengan rincian desain

dalam buku, “al-Jami Bain al-Ilm Wal ‘Aml

al-Nafi Fi Sinat ‘at al-Hiyal” (The Book of

Knowledge of Ingenious Mechanical

Devices, Springer, 1973 Edition). Bukunya

ini berisi tentang teori dan praktik mekanik.

Karyanya ini sangat berbeda dengan karya

ilmuwan lainnya, karena dengan piawainya

Al-Jazari membeberkan secara detail hal yang

terkait dengan mekanika. Dan merupakan

kontribusi yang sangat berharga dalam sejarah

teknik. Kontribusi Al-Jazari dalam dunia

robotika salah satunya adalah jam gajah yang

bekerja secara otomatis.

Gambar 5.1. Teknologi otomatisasi pada

tahun 1206 karya Al-Jazzari

Kata Robot sendiri pertama kali

digunakan oleh seorang novelist Karel Capek

pada tahun 1920 Ketika membuat Teater

Rossum’s Universal Robots (RUR), Robot

menurut bahasa diambil dari kata Robota

yang berasal dari bahasa Czech yang artinya

pelayan atau pekerja. Sehingga robot dapat

diartikan sebagai mesin yang dapat bekerja

secara terus menerus sebagai pelayan atau

pekerja yang dapat di kontrol atau bekerja

secara otomatis sesuai dengan kebutuhan

manusia atau tujuan pembuatannya. Oleh

karena itu robot tidak harus berbentuk

manusia atau hewan. Secara umum robot

tergolong menjadi dua bagian yaitu robot

otomatis dan robot teleoperated. Robot

otomatis dapat bekerja tanpa kontrol langsung

oleh manusia, robot tersebut bekerja

berdasarkan program yang ditanamkan seperti

robot line follower, robot avoider obstacle,

robot humanoid, lampu lalu lintas, pintu

otomatis, dan sebagainya. Sedangkan robot

teleoperated harus dikontrol langsung oleh

manusia, seperti robot kontrol, televisi,

computer dan lainnya.

Page 4: Laporan Modul 5

Secara umum prinsip dasar sistem

robot terdiri dari tiga bagian utama yaitu

input, proses, dan output. Input robot dapat

berasal dari sensor, tombol kontrol, maupun

program yang tertanam. Proses merupakan

bagian otak robot yang menerima input dan

membuat perintah pada output berisi logika

atau kecerdasan buatan yang tertanam pada

chip mikrokontroler, sedangkan output adalah

actuator yang dapat berisi hidup matinya

motor DC, LED, buzzer atau lainnya.

Gambar 5.2. Prinsip umum sistem robotika

Pada percobaan kali ini, akan dibuat

robot teleoperated sederhana menggunakan

mikrokontroler ATmega 8, dengan kontrol

navigasi tombol push-buttom yang dapat

memberikan perintah pada robot untuk

bergerak maju, mundur, belok kiri dan belok

kanan.

2. Tujuan dan Rumusan Masalah

Adapun tujuan dari percobaan desain dan

analisis robot control digital adalah untuk :

1. Mengetahui dan memahami sistem

minimum mikrokontroler.

2. Mengetahui dan memahami prinsip

input-output mikrokontroler.

3. Mengetahui prinsip kendali motor DC

menggunakan mikrokontroler.

4. Mengetahui prinsip PWM (pulse

width modulation) untuk kendali

kecepatan motor DC.

5. Mampu mendesain dan membuat

robot kontrol digital sederhana.

6. Mengetahui aplikasi mikrokontroler

dalam teknologi digital dan

otomatisasi.

Rumusan masalah :

1. Bagaimana cara mengetahui dan

memahami sistem minimum

mikrokontroler?

2. Bagaimana cara mengetahui dan

memahami prinsip input-output

mikrokontroler.

3. Bagaimana cara mengetahui prinsip

kendali motor DC menggunakan

mikrokontroler.

4. Bagaimana cara mengetahui prinsip

PWM (pulse width modulation) untuk

kendali kecepatan motor DC.

5. Bagaimana cara mampu mendesain dan

membuat robot kontrol digital

sederhana.

Mengetahui aplikasi mikrokontroler dalam

teknologi digital dan otomatisasi.

Metode Percobaan :

ALAT DAN BAHAN

1. Papan PCB/protoboard

2. Multimeter

3. Kabel koneksi

4. Resistor

5. LED

6. Mikrokontroler ATmega 8

7. Motor driver L 293D

8. Tombol push-buttom

9. Software Proteus

10. Software Code Vision AVR

Prosedur percobaan

Desain dan Analisis

Robot Kontrol Digital

Page 5: Laporan Modul 5

Pada percobaan desain dan analisis

robot kontrol digital yang pertama diakukan

yaitu mendesain rangaian desain seperti pada

gambar menggunakan software proteus dan

setelah itu kita membuat program dengan

menggunakan code vision AVR. Setelah

program yang kita buat sudah benar dan

sesuai, kemudian isi dari program code AVR

diinput kedalam mikrokontroler ATmega8

pada desain dan analisis robot control digital

yang ada pada desain proteus. Kemudian

desain dan analisis robot control digital yang

ada pada desain proteus diuji dengan

menekan tombol yang ada pada rangkaian.

Ketika motor berjalan berarti program yang

pada code vision AVR telah benar.

3. Solusi dari Permasalahan

Data dan Analisis :

DIAGRAM ALIR

Gambar Desain dan Analisis

Robot Kontrol Digital

Pada rangkaian desain robot control

digital, pada rangkain ini kita menggunakan

mikrokontroler ATmega 8 karena ATmega 8

lebih sederhana dibandingkan ATmega yang

lain dan ATmega 8 pun lebih sesuai dengan

kebutuhan pada percobaan ini. Pada

percobaan ini pada saat mikrokontroler

bekerja, mikrokontroler hanya dapat

mengeluarkan sebuah tegangan hight atau

low, dimana nilai daripada hight yaitu bernilai

1 (satu) dan low bernilai 0 (nol). ketika pada

saat input terhubung dengan ground maka

inputan pada kaki mikrokontroler harus

bernilai 1 maka akan menyala motor yang ada

pada outputan akan menyala. begitupun

sebaliknya, ketika pada outputan terhubung

dengan power/Vcc maka nilai pada kaki

mikrokontroler harus bernilai 0 untuk

menyala. dari dari tombol-tombol yang

bekerja akan mengerluarkan tegangan yang

berupa low dan nilai tegangan pada outputan

harus terhubung dengan Vcc atau power. Pada

rangkaian mengggunakan crystal yang

berfungsi sebagai pendorong atau pengatur

data yang masuk dan keluar dari

mikrokontroler. Pada saat tombol yang

terhubung dengan PORTD.0 yang telah

diisikan program pada mikrokontrolernya

dengan menggunakan code vision AVR pada

saat tombol PORTD.0 yang berada pada

inputan ditekan maka motor yang berada pada

Desain Robot

kontrol Digital

Merangkai rangkaian

seperti gambar

pada proteus

Membuat program

pada AVR

Uji rangkain

input isi program

AVR kedalam

mikrokontroler ATmega8

Page 6: Laporan Modul 5

inputan 1 dan inputan 2 akan berjalan karena

pada saat tombol ditekan, ketika inputan

bernilai hight maka nilai yang keluar pada

outputan pun akan bernilai hight pula dan

akan menggerakan motor driver L 293D

sehingga robot dapat menjalankan motor

kanan sehingga robot belok kekiri. Pada

inputan 1 dan inputan 2 pasti terhubung

dengan eneble karena enebel bersifat

mendorong agar adanya arus yang masuk.

Begitu pun pada tombol – tombol PORTD.1

yang akan menggerakan robot agar robot

dapat belok ke kanan, dan pada PORTD.2

akan menggerakan robot menjadi maju dan

pada PORTD.3 akan menggerakan kedua

motor untuk mundur. Semua program yang

diinput pada mikrokontroler merupakan

program yang dibuat melalui program code

vision AVR. dan setelah diuji tegangan pada

rangkaian, diketahui nilai tegangan pada

rangkaian tersebut sebesar 5 volt. Hal ini

berarti sesuai dengan teori, karena untuk

ATmega8 hanya dapat bekerja pada tegangan

antara 4,5 – 5,5 V ketika tegangan input

memberikan nilai 5 volt maka nilai pada

tegangan outputan pun akan bernilai sama.

Adapun kecepatan pada motor driver yang

kita gunakan yaitu sebesar 200 PWM . dan

frekuensinya kita menggunakan sebesar 12

MHz dan adapun Program-program yang

digunakan pada kode vision AVR terlampir

pada lampiran.

Pada percobaan ini ada beberapa

kesalahan pada saat penggantian letak kaki

pada inputan, ketika kaki pada inputan

dipindahkan dan ketika diprogram ulang

dengan menggunakan code vision AVR

terjadi kesalahan berupa ketika tombol belum

ditekan, namun motor pada rangkaian sudah

berjalan terlebih dahulu. Hal ini dikarenkan

kesalahan pada saat pemrograman yang

dilakukan menggunakan code vision AVR.

4. Kesimpulan

Dari percobaan yang telah dilakukan,

dapat disimpulkan bahwa ketika suatu arus

yang masuk dari inputan, maka nilai arus

yang akan keluar pada outputan pun nilainya

sama dan mikrokontroler akan bekerja ketika

diisi dengan program yang menggunakan

code vision AVR.

References:

[1] Sanjaya, M. “Modul membuat robot itu

Asyik” Bolabot Techno Robotic School,

Bandung, 2012

[2] Malvino.”prinsip-prinsip elektronika I”

Erlangga, Jakarta,1994

[3] Malvino. “Prinsip-prinsip elektronika I”

Erlangga, Jakarta, 1994.

[4] Winarno & Arifianto, D. “Bikin robot itu

gampang”. Kawan Pustaka, Jakarta,

2011.

[5] Andrianto, H. “ Pemrograman

mikrokontroler AVR ATmega 16

menggunakan bahasa C (Code Vision

AVR)”. Penerbit Informatika, Bandung,

2008.

Page 7: Laporan Modul 5

Lampiran 1

Gambar 1. Robot Kontrol Digital Motor

Kanan Bergerak

Gambar 2. Robot Kontrol Digital Motor Kiri

Bergerak

Gambar 3. Robot Kontrol Digital kedua

Motor Bergerak Maju

Gambar 4. Robot Kontrol Digital kedua

Motor Bergerak Mundur

Page 8: Laporan Modul 5

Lampiran 2

PROGRAM ROBOT KONTROL

DIGITAL MENGGUNAKAN CV AVR

/******************************

This program was produced by the

CodeWizardAVR V2.05.0

Professional

Automatic Program Generator

© Copyright 1998-2010 Pavel Haiduc,

HP InfoTech s.r.l.

http://www.hpinfotech.com

Project :

Version :

Date : 11/29/2012

Author : Abdul Rohman

Company :

Comments:

Chip type : ATmega8

Program type : Application

AVR Core Clock frequency:

12.000000 MHz

Memory model : Small

External RAM size : 0

Data Stack size : 256

******************************/

#include <mega8.h>

#include <delay.h>

// Declare your global variables here

void main(void)

{

// Declare your local variables here

Page 9: Laporan Modul 5

// Input/Output Ports initialization

// Port B initialization

// Func7=In Func6=In Func5=In

Func4=In Func3=In Func2=Out

Func1=Out Func0=In

// State7=T State6=T State5=T

State4=T State3=T State2=0 State1=0

State0=T

PORTB=0x00;

DDRB=0x06;

// Port C initialization

// Func6=In Func5=In Func4=In

Func3=In Func2=In Func1=In

Func0=In

// State6=T State5=T State4=T

State3=T State2=T State1=T State0=T

PORTC=0x00;

DDRC=0x00;

// Port D 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

PORTD=0x00;

DDRD=0x00;

// Timer/Counter 0 initialization

// Clock source: System Clock

// Clock value: Timer 0 Stopped

TCCR0=0x00;

TCNT0=0x00;

// Timer/Counter 1 initialization

// Clock source: System Clock

// Clock value: 11.719 kHz

// Mode: Fast PWM top=0x00FF

// OC1A output: Non-Inv.

// OC1B output: Non-Inv.

// Noise Canceler: Off

// Input Capture on Falling Edge

// Timer1 Overflow Interrupt: Off

// Input Capture Interrupt: Off

// Compare A Match Interrupt: Off

// Compare B Match Interrupt: Off

TCCR1A=0xA1;

TCCR1B=0x0D;

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: Timer2 Stopped

// Mode: Normal top=0xFF

// OC2 output: Disconnected

ASSR=0x00;

TCCR2=0x00;

TCNT2=0x00;

OCR2=0x00;

// External Interrupt(s) initialization

// INT0: Off

// INT1: Off

MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s)

initialization

TIMSK=0x00;

// USART initialization

// USART disabled

UCSRB=0x00;

// Analog Comparator initialization

// Analog Comparator: Off

Page 10: Laporan Modul 5

// Analog Comparator Input Capture

by Timer/Counter 1: Off

ACSR=0x80;

SFIOR=0x00;

// ADC initialization

// ADC disabled

ADCSRA=0x00;

// SPI initialization

// SPI disabled

SPCR=0x00;

// TWI initialization

// TWI disabled

TWCR=0x00;

DDRD.0=0; // mendefinisikan sebagai

input

DDRD.1=0; // mendefinisikan sebagai

input

DDRD.2=0; // mendefinisikan sebagai

input

DDRD.3=0; // mendefinisikan sebagai

input

DDRD.5=1; // mendefinisikan sebagai

ouput

DDRD.6=1; // mendefinisikan sebagai

ouput

DDRD.7=1; // mendefinisikan sebagai

ouput

DDRB.0=1; // mendefinisikan sebagai

ouput

PORTD.0=1; // kondisi awal

PORTD.1=1;

PORTD.2=1;

PORTD.3=1;

PORTD.5=1;

PORTD.6=1;

PORTD.7=1;

PORTB.0=1;

OCR1A=200; // pengatur kecepatan

motor menggunakan PWM

OCR1B=200;

while (1)

{

if (PIND.0==0) //gerak kiri

{

PORTD.5=1;

PORTD.6=0;

PORTD.7=0;

PORTB.0=0;

}

else if (PIND.1==0) //gerak

kanan

{

PORTD.5=0;

PORTD.6=0;

PORTD.7=1;

PORTB.0=0;

}

else if (PIND.2==0) //gerak maju

{

PORTD.5=1;

PORTD.6=0;

PORTD.7=1;

PORTB.0=0;

}

else if (PIND.3==0) //gerak

mundur

{

PORTD.5=0;

PORTD.6=1;

PORTD.7=0;

PORTB.0=1;

}

else //diam

{

PORTD.5=0;

PORTD.6=0;

PORTD.7=0;

PORTB.0=0;

}

}

Page 11: Laporan Modul 5

}