robot manual pemindah barang dengan joystick

36

Click here to load reader

Upload: rijal-danialhaq

Post on 20-Jan-2016

610 views

Category:

Documents


38 download

DESCRIPTION

Robot Manual Pemindah Barang Dengan Joystick

TRANSCRIPT

Page 1: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

ROBOT MANUAL PEMINDAH BARANG DENGAN

JOYSTICK

Edi prasetyo

Fisika FMIPA Universitas Sebelas Maret

[email protected]

Juli 2013

Page 2: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

Robot manual adalah robot yang kendalinya dikendalikan oleh user dalam

melakukan kerjanya. Sistem kendali ini bermacam-macam jenisnya dan yang akan saya

bahas kali ini adalah yang menggunkan kendali joystick playstation. Sistem robot ini terdiri

dari tiga bagian utama yaitu gripper atau lengan untuk menjapit dan mengakat barang

menggunakan servo, remot kendali menggunakan joystick, dan penggerak robot

menggunakan motor dc. Chip mikrokontroller yang digunakan yaitu atmega8535 dan driver

motornya menggunakan ic l298d. Yang akan saya bahas secara detail dalam tulisan ini

adalah sistem dari robot pemindah barang itu sendiri yang meliputi rangkaian elektronik

robot, antar muka joystick playstation dengan mikrokontroler atmega 8535, tehnik kontrol

motor servo dan Pemrograman Robot Pemindah Barang Dengan CVAVR

Elektronik Robot

Bagian elektronik robot ini terdiri dari bagian rangkaian kontrol yang menggunakan

mikrokontroller atmega 8535,rangkaian driver motor yang menggunakan ic l298d, dan

kendali menggunakan joystik dengan komunikasi serial. Rangkaian Kontrol Mikrokontroler

merupakan rangkaian minimum sistem control yang mengatur kerja dari mikrokontroler.

Sistem minimum mikrokontroller ini memungkinkan mikrokontroller untuk bekerja dan

biasanya terdiri dari ic regulator untuk penyetabil tegangan, xtal untuk generator clok secara

eksternal, dan tombol reset unutk mereset mikrokontroller. Jika belum paham tentang

bagian bagian mikrokontroller bisa mencarinya ebook gratisan yang banyak beredar

membahas tentang mikrokontroller avr.

Chip mikrokontroller atmega 8535

Page 3: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

Rangkaian system minimum atmega 8535

Dalam hal ini, mikrokontroler digunakan sebagai control input dan output. Input (masukan)

dari rangkaian sistem kontrol dihubungkan dengan joystik playstation melalui komunikasi

serial dan akan saya jelaskan lebih lanjut tentang antar interface joystik di bagian

selanjutnya tulisan ini. Sedangkan output dari rangkaian sistem konrol dihubungkan

dengan driver motor dc.

Rangkaian driver motor DC 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 digunakan penulis adalah IC L298d.

Page 4: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

IC driver motor L298D

Rangkaian driver motor untuk 2 motor dc

Antar Muka Joystick Playstation Dengan Mikrokontroler Atmega 8535

Komunikasi yang diigunakan dalam antar muka joystick adalah komunikasi serial

sinkron yaitu data dikirim satu persatu melalui melalui satu jalur data. Untuk

mengkoordinasi antara pengirim dan penerima terdapat satu jalur clock.

Page 5: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

Pada joystick PS menggunakan komunikasi SPI (serial Pheriperal Interface) atau disebut 3

wire interface. SPI adalah salah satu jenis komunikasi serial yang terkenal.

Didalam joystick ps terdapat 9 pin atau 8 pin dengan warna berbeda tergantung

merk dan tipe joystick ps. Untuk memastikannya bongkarlah joystik dan lihatlah konfigurasi

pin didalamnnya

Rangkaian antarmuka koystick ps dengan mikrokontroller ATMEGA8535

Gambar diatas merupakan rangkaian antarmuka joystick dengan mikrokontroller. Pin

yang digunakan adalah psxclock, psxattn, vcc, gnd, psxcmd, psxdata. Biasanya jika

membongkar joystick dan melihat konfigurasi yang tertulis di pcbnya kode pinnya berbeda,

yaitu psxclock = clk, psxattn = cs, psxcmd = Do, dan psxdat = Di. Jika memakai joystick

dengan 8 pin biasannya warna abu abu tidak ada dan warna putih digunakan sebagai catu

daya motor getar. Dan untuk memastikan konfigurasinya benar alangkah baiknya membuka

lebih dahulu joystick dan melihat konfigurasi yang tertulis pcb nya.

Page 6: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

Untuk antarmuka dengan mikrokontroller ATMega 8535 dibutuhkan 4 pin, 3 sebagai

output (PB7/sck, PB5/MOSI, dan PB4) dan 1 pin sebagai input (PB6/MISO). Jika

menngunakan mikrokontroller lain pemilihan pin harus disesuaikan dengan jalur SPI yang

dapat dilihat pada datasheet masing-masing mikrokontroller. Dibawah ini ditunjukkan

tabel pertukaran data antara joystick ps dengan mikrokontroller

Pertukaran data untuk joystik digital

Petukaran data untuk joystik analog

Untuk bisa komunikasi maka pin psxattn aharus berlogika nol selanjutnya untuk

mengawali komunikasi dengan joystick ps mikrokontroller mengirimkan byte pertama

berupa perintah 0x01 di jalur PB5/MOSI ke psxcmd di joystick ps, kemudian byte kedua 0x42

di jalur MOSI untuk membaca data joystick dan sekaligus menerima tipe joystick dari psxdat

joystick ke MISO mikrokontroller (0x41 untuk digital, 0x73 untuk analog). Byte ke tiga pin

MISO mikrokontroller menerima data dari psxdat joystick 0x5A yang menandakan joystick

sudah ready. Byte ke empat dan seterusnya MISO mikrokontroller berturut turut menerima

Page 7: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

data dari joystick data digital 1 ,data digital 2 . Data digital ini menunjukan penekanan

tombol dan bersifat actif low, jadi jika tidak ada tombol yang ditekan MISO mikrokontroller

akan menerima data 0xff atau 0b11111111), jika joystick dalam operasi analaog maka

komunikasi dilanjutkan dengan data analog 3, data analog 4. Pada kondisi netral data 0x7f

(127) dengan nilai minimal 0 dan maksimal 0xff (255) dan saat operasi digital 6-9 selalu

memberikan data 0xff.

Teknik kontrol motor servo

Dalam robot pemindah barang ini terdapat gripper yang berfungsi untuk menjapit

dan mengakat barang. Penggerak gripper ini menggunakan motor servo. Motor servo

adalah motor DC dengan sistem closed feedback sehingga dapat berputar berdasarkan

sudut yang dikehendaki. Berdasarkan sudut putarannya, umumnya servo terdiri atas dua

jenis yaitu servo continuous dan servo standar. Servo continuous adalah servo yang dapat

berputar 360 derajat. Servo standar adalah servo yang hanya dapat berputar 180 derajat.

Servo yang digunakan dalam robot ini memakai servo standart yaitu yang hanya dapat

berputar 180 derajat. Motor servo ini nantinya dirangakai dengan sistem mekanik sehingga

membentuk gripper, dimana jika servo berputar searah jarum jam maka gripper membuka

dan jika berputar berlawanan arah jarum jam gripper menutup.

Gripper robot dan servo untuk kendali gripper

Sekarang saya akan menjelaskan bagaimana cara mengontrol motor servo agar bisa

bergerak searah jarum jam atau berlawanan jarum jam dengan sufut putar tertentu. Sudut

putar ini perlu diperhatikan karena ini yang menentukan seberapa lebar nantinya gripp akan

membuka. Secara umum untuk mengontrol motor servo tipe standard adalah dengan cara

memberikan pulsa high selama 1,5 ms dan mengulangnya setiap 20 ms, maka posisi servo

Page 8: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

akan berada ditengah atau netral (0°). Untuk pulsa 1 ms maka akan bergerak berkebalikan

arah jarum jam dengan sudut -90°. Dan pulsa high selama 2 ms akan bergerak searah jarum

jam sebesar 90°. Untuk lebih jelasnya perhatikan gambar berikut.

Pin SIGNAL pada motor servo dapat dikoneksikan ke pin mana saja pada

mikrokontroler, lihat gambar dibawah. Dan program motor servo bisa dilihat listing program

bagain bawah tulisan ini.

0 1.5 ms

0 2 ms

20ms

20ms

20ms

Page 9: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

Pemrograman Bahasa C Kendali Manual Robot Pemindah Barang Dengan CVAVR

Program yang dibuat menggunakan bahasa c dan compiler CVAVR. Urutan menulis

program yaitu pertam buka dulu CVAVR kemudian pilih new kemudian pilih project setelah

itu kita akan berada ditampilan codewizard avr, kegunaan codewizard avr adalah untuk

mengeset program yang akan kita buat. Unutk program ini yaitu program untuk robot

kendali manual untuk pemindah barang.

Pertama atur mikrokontroller yang digunakan dalam robot ini menggunakan atmega8535

Kedua mengatur port dari mikrokontroller apakah digunakan sebagai output atau input.

port B digunakan sebagai komunikasi serial seperti yang sudah dijelaskan diatas, maka

konfigurasi input output pinnya sesuai diatas. Kemudian motor dc di port c, maka port c

diubah ke output semua, kemudian untuk servo digunakan port d.0 dan port d.7, maka bit

ini perlu dibuat output. Dan port lainnya yang tidak dipakai terserah mau difungsikan sebgai

input atau output.

Page 10: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

Setelah semuanya selesai kemudian pilih file – generate, save and exit. Kemudian muncul

tiga kali perintah penyimpanan. Tiga file yang disimpan harus mempunyai nama yang sama

dan folder yang sama.

Kemudian kita akan masuk ke jendela pemrograman, disini sudah ada program awal yang

kita atur di codewizard avr tadi dan kemudian kita melanjutkan menulis program di jendela

cvavr.

Page 11: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

listing program dan penjelasannya

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

This program was produced by the

CodeWizardAVR V2.04.4a Advanced

Automatic Program Generator

© Copyright 1998-2009 Pavel Haiduc, HP InfoTech s.r.l.

http://www.hpinfotech.com

Project : program robot manual pemindah barang dengan joystik

Version : 1

Date : 27/02/2013

Author : EDI PRASETYO

university : universitas sebelas maret

Page 12: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

Chip type : ATmega8535

Program type : Application

AVR Core Clock frequency: 11,059200 MHz

Memory model : Small

External RAM size : 0

Data Stack size : 128

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

//kegunaan dari #define adalah menetapkan nama pengganti dari konstanta yang sering

dipakai

//dibawah ini port – port dari mikrokontroller di definisikan atau diganti namanya

//dan memeberi nama dari konfigurasi joystick

#define psxattn PORTB.4

#define servo1 PORTD.0 //control signal servo pada gripperer (port output)

#define servo2 PORTD.7 //control signal servo untuk naik turun gripperer (port output)

#define Enki PORTC.7 //enable l298 untuk motor kiri (port output)

#define A_Ki PORTC.5 //out A untuk motor kiri (port output)

#define B_Ki PORTC.4 //out B unutk motor kiri (port output)

#define Enka PORTC.6 //enable l298 untuk motor kanan (port output)

#define C_Ka PORTC.3 //out C untuk motor kanan (port output)

#define D_Ka PORTC.2 //out D untuk motor kanan (port output)

#define Select 1

#define Start 2

Page 13: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

#define kiri 3

#define bawah 4

#define kanan 5

#define atas 6

#define kotak 7

#define peng 8

#define bunder 9

#define segitiga 10

#define R1 11

#define L1 12

#define R2 13

#define L2 14

#define R3 15

#define L3 16

#define pengR1 17

#define pengR1R2 18

#define segitigaR1 19

#define segitigaR1R2 20

#define pengL1 21

#define pengL1L2 22

#define segitigaL1 23

#define segitigaL1L2 24

#define tidakditekan1 25

Page 14: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

#define tidakditekan2 26

#define pengR2 27

#define segitigaR2 28

#define pengL2 29

#define segitigaL2 30

#define kotakR1 31

#define kotakR1R2 32

#define bunderR1 33

#define bunderR1R2 34

#define kotakL1 35

#define kotakL1L2 36

#define bunderL1 37

#define bunderL1L2 38

#define kotakR2 39

#define bunderR2 40

#define kotakL2 41

#define bunderL2 42

#define R1R2 43

#define L1L2 44

#define R1L1 45

#define R2L2 46

#define R2L1 47

#define R1L2 48

Page 15: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

//dibawah adalah kode untuk memanggil library yang letaknya diluar program

//sehingga tidak perlu menulis program ini lagi karena sudah ada di library, hanya tinggal

memanggil

#include <mega8535.h>

#include <delay.h>

#include <spi.h>

void maju() // fungsi untuk robot bergerak maju

{

Enki=1;Enka=1;

A_Ki=1;B_Ki=0; // motor kiri berputar searah jarum jam, dilihat dari posisi motor

C_Ka=0;D_Ka=1; // motor kanan berputar berlawanan jarum jam

}

void mundur()

{

Enki=1;Enka=1;

A_Ki=0;B_Ki=1; // motor kiri berputar berlawanan jarum jam

C_Ka=1;D_Ka=0; // motor kanan berputar searah jarum jam

}

void belok_kanan () //fungsi robot belok kanan

{

Enki=1;Enka=1;

A_Ki=1; B_Ki=0; //

C_Ka=0; D_Ka=0; //

Page 16: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

}

void belok_kiri() //fungsi robot belok kiri

{

Enki=1;Enka=1;

A_Ki=0; B_Ki=0; //

C_Ka=0; D_Ka=1; //

}

//fungsi gripperer, jika masih bingung tentang fungsi ini baca lagi tehnik mengontrol motor

servo

void membuka() //fungsi untuk membuka gripperer

{

servo1=1; //memberikan pulsa high

delay_ms(3); //pulsa high diberikan selama 3 ms

servo1=0;

delay_ms(20);

}

void menutup() //fungsi untuk menutup gripperer

{

servo1=1;//memberikan pulsa high

delay_ms(0.5);//pulsa high diberikan selama 3 ms

servo1=0;

delay_ms(20);

Page 17: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

}

void naik() //fungsi untuk gripperer naik

{

servo2=1; //memberikan pulsa high

delay_ms(0.5); //pulsa high diberikan selama 1 ms

servo2=0;

delay_ms(20);

}

void turun() //fungsi untuk gripperer turun

{

servo2=1;//memberikan pulsa high

delay_ms(3);//pulsa high diberikan selama 2 ms

servo2=0;

delay_ms(20);

}

void normal() //fungsi ini digunakan jika tidak ada penekanan stick

{

Enki=0; Enka=0;

}

Page 18: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

// Declare your global variables here

//deklarasi variabel dahulu sebelum digunakan

unsigned char spi(unsigned char data);

unsigned char byte4, byte5, xkanan, ykanan, xkiri, ykiri;

unsigned char id,ss;

int key;

void scan_remot() //fungsi pembacaan penekanan joystik

{

//seperti yang sudah saya jelaskan,

//dibawah ini adalah proses komunikasi serial joystik dan mikro

psxattn=0; // memberi nilai psxattn mengawali komunikasi

delay_us(10);

// untuk mengawali komunikasi mikrokontroller mengirimkan byte pertama mengirim

//berupa perintah 0x01 di jalur PB5/MOSI ke psxcmd di joystick

spi(0x01);

delay_us(10);

// byte kedua 0x42 di jalur MOSI untuk membaca data joystick dan

// sekaligus menerima tipe joystick dari psxdat joystick ke MISO mikrokontroller

// dalam program ini diwakilkan oleh variabel id (0x41 untuk digital, 0x73 untuk analog).

id=spi(0x42);

delay_us(10);

//Byte ke tiga pin MISO mikrokontroller menerima data dari psxdat joystick 0x5A

Page 19: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

//yang menandakan joystick sudah ready

ss=spi(0);

delay_us(10);

//byte ke 4 dan seterusnya mikro menerima data dari joystick

byte4 =spi(0);

delay_us(10);

byte5 =spi(0);

delay_us(10);

xkanan =spi(0);

delay_us(10);

ykanan =spi(0);

delay_us(10);

xkiri =spi(0);

delay_us(10);

ykiri =spi(0);

delay_us(10);

//mengakhiri komunikasi

psxattn=1;

delay_us(10);

}

//memberi nama hasil penekan tombol dengan switch

//bilangan hexa dibawah merupakan data yang diterima dari joystick

Page 20: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

//bisa dihitumg dengan melihat tabel pertukaran data joystik

switch (byte4)

{

case 0x7F: key=kiri; break;

case 0xBF: key=bawah; break;

case 0xDF: key=kanan; break;

case 0xEF: key=atas; break;

case 0xF7: key=Start; break;

case 0xFB: key=R3; break;

case 0xFD: key=L3; break;

case 0xFE: key=Select; break;

case 0xff: key=tidakditekan1; break;

}

switch (byte5)

{

case 0x7F: key=kotak; break;

case 0xBF: key=peng; break;

case 0xDF: key=bunder; break;

case 0xEF: key=segitiga; break;

case 0xF7: key=R1; break;

case 0xFB: key=L1; break;

case 0xFD: key=R2; break;

case 0xFE: key=L2; break;

Page 21: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

case 0xB7: key=pengR1; break;

case 0xB5: key=pengR1R2; break;

case 0xE7: key=segitigaR1; break;

case 0xE5: key=segitigaR1R2; break;

case 0xBB: key=pengL1; break;

case 0xBA: key=pengL1L2; break;

case 0xEB: key=segitigaL1; break;

case 0xEA: key=segitigaL1L2; break;

case 0xff: key=tidakditekan2; break;

case 0xBD: key=pengR2; break;

case 0xED: key=segitigaR2; break;

case 0xBE: key=pengL2; break;

case 0xEE: key=segitigaL2; break;

case 0x77: key=kotakR1; break;

case 0x75: key=kotakR1R2; break;

case 0xD7: key=bunderR1; break;

case 0xD5: key=bunderR1R2; break;

case 0x7B: key=kotakL1; break;

case 0x7A: key=kotakL1L2; break;

case 0xDB: key=bunderL1; break;

case 0xDA: key=bunderL1L2; break;

case 0xDE: key=bunderL2; break;

case 0xDD: key=bunderR2; break;

Page 22: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

case 0x7D: key=kotakR2; break;

case 0x7E: key=kotakL2; break;

case 0xF5: key=R1R2; break;

case 0xFA: key=L1L2; break;

case 0xF9: key=R2L1; break;

case 0xF6: key=R1L2; break;

}

}

void main(void)

{

//konfigurasi dari mirikontroller yand didapat dari pengaturan code wizard tadi

// Declare your local variables here

// Input/Output Ports initialization

// Port A initialization

// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=In Func0=In

// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=P State0=P

PORTA=0x03;

DDRA=0xFC;

// Port B initialization

// Func7=out Func6=In Func5=out Func4=out Func3=In Func2=In Func1=In Func0=In

// State7=T State6=p State5=T State4=t State3=T State2=T State1=T State0=T

PORTB=0x10;

Page 23: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

DDRB=0xb0;

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

PORTC=0x00;

DDRC=0xFF;

// Port D initialization

// Func7=out Func6=out Func5=out Func4=out Func3=out Func2=out Func1=out Func0=out

// State7=P State6=P State5=P State4=P State3=P State2=P State1=P State0=P

PORTD=0x00;

DDRD=0xFF;

// Timer/Counter 0 initialization

// Clock source: System Clock

// Clock value: 10,800 kHz

// Mode: Normal top=FFh

// OC0 output: Disconnected

TCCR0=0x00;

TCNT0=0x00;

OCR0=0x00;

// Timer/Counter 1 initialization

// Clock source: System Clock

// Clock value: Timer1 Stopped

Page 24: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

// Mode: Normal top=FFFFh

// OC1A output: Discon.

// OC1B output: Discon.

// 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=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: 10,800 kHz

// Mode: Normal top=FFh

Page 25: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

// OC2 output: Disconnected

ASSR=0x00;

TCCR2=0x07;

TCNT2=0x00;

OCR2=0x00;

// External Interrupt (s) initialization

// INT0: Off

// INT1: Off

// INT2: Off

MCUCR=0x00;

MCUCSR=0x00;

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

TIMSK=0x41;

// Analog Comparator initialization

// Analog Comparator: Off

// Analog Comparator Input Capture by Timer/Counter 1: Off

ACSR=0x80;

SFIOR=0x00;

SPCR=(0<<SPIE) | (1<<SPE) | (1<<DORD) | (1<<MSTR) | (1<<CPOL) | (1<<CPHA) | (1<<SPR1)

| (1<<SPR0);

SPSR=(0<<SPI2X);

// Global enable interrupts

Page 26: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

#asm("sei")

//perintah while (1) digunakan untuk mengulang terus tanmpa berhenti program utama

while (1)

{

// Place your code here

//memanggil fungsi

scan_remot();

//dibawah ini perintah dari hasil penekan tombol joystick

switch (key)

{

case kiri:

break;

case bawah:

break;

case kanan:

break;

case atas:

break;

case Start:

break;

case Select:

break;

//jika ditekan kotak maka memanggil fungsi belok_kiri

Page 27: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

//robot akan belok kiri

case kotak: belok_kiri();

break;

case peng: maju();

break;

case bunder: belok_kanan();

break;

case segitiga: mundur();

break;

case R1: menutup();

break;

case L1: membuka();

break;

case R2: naik();

break;

case L2: turun();

break;

case R3:

break;

Page 28: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

case L3:

break;

case pengR1:

{

maju();

menutup();

break;

}

case pengR2:

{

maju();

naik();

break;

}

case pengR1R2:

{

maju();

menutup();

naik();

break;

}

case segitigaR1:

{

Page 29: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

mundur();

menutup();

break;

}

case segitigaR2:

{

mundur();

naik();

break;

}

case segitigaR1R2:

{

mundur();

menutup();

naik();

break;

}

case pengL1:

{

maju();

membuka();

break;

}

Page 30: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

case pengL2:

{

maju();

turun();

break;

}

case pengL1L2:

{

maju();

membuka();

turun();

break;

}

case segitigaL1:

{

mundur();

membuka();

break;

}

case segitigaL2:

{

mundur();

turun();

Page 31: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

break;

}

case segitigaL1L2:

{

mundur();

membuka();

turun();

break;

}

case kotakR1:

{

belok_kiri();

menutup();

break;

}

case kotakR2:

{

belok_kiri();

naik();

break;

}

case kotakR1R2:

{

Page 32: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

belok_kiri();

menutup();

naik();

break;

}

case bunderR1:

{

belok_kanan();

menutup();

break;

}

case bunderR2:

{

belok_kanan();

naik();

break;

}

case bunderR1R2:

{

belok_kanan();

menutup();

naik();

break;

Page 33: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

}

case kotakL1:

{

belok_kiri();

membuka();

break;

}

case kotakL2:

{

belok_kiri();

turun();

break;

}

case kotakL1L2:

{

belok_kiri();

membuka();

turun();

break;

}

case bunderL1:

{

belok_kanan();

Page 34: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

membuka();

break;

}

case bunderL2:

{

belok_kanan();

turun();

break;

}

case bunderL1L2:

{

belok_kanan();

membuka();

turun();

break;

}

case R1R2:

{

menutup();

naik();

break;

}

case L1L2:

Page 35: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

{

membuka();

turun();

break;

}

case R2L1:

{

naik();

membuka();

break;

}

case R1L2:

{

menutup();

turun();

break;

}

default: normal();

break;

}

};

}

Page 36: Robot Manual Pemindah Barang Dengan Joystick

Klub robotik universitas sebelas maret

Daftar Pustaka

Charles Ronald Harahap.2009. Perancangan Robot Pemadam Api Gedung Bertingkat

Berbasis Mikrokontroler ATMega8535. ELECTRICIAN Jurnal Rekayasa dan Teknologi

Elektro Volume: 3, No.2 | Mei 2009

Agung nugroho adi.Antar Muka Joystick Playstation Dengan Mikrokontroller Avr

Menggunkan Cvavr.labolatorium mekatronika jurusan teknik mesin universitas islam

indonesia

http://elektro-kontrol.blogspot.com