robot manual pemindah barang dengan joystick
Post on 20-Jan-2016
612 Views
Preview:
DESCRIPTION
TRANSCRIPT
Klub robotik universitas sebelas maret
ROBOT MANUAL PEMINDAH BARANG DENGAN
JOYSTICK
Edi prasetyo
Fisika FMIPA Universitas Sebelas Maret
edipras19@yahoo.com
Juli 2013
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
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.
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.
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.
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
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
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
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.
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.
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
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
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
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
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; //
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);
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;
}
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
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
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;
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;
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;
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
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
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
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
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;
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:
{
Klub robotik universitas sebelas maret
mundur();
menutup();
break;
}
case segitigaR2:
{
mundur();
naik();
break;
}
case segitigaR1R2:
{
mundur();
menutup();
naik();
break;
}
case pengL1:
{
maju();
membuka();
break;
}
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();
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:
{
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;
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();
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:
Klub robotik universitas sebelas maret
{
membuka();
turun();
break;
}
case R2L1:
{
naik();
membuka();
break;
}
case R1L2:
{
menutup();
turun();
break;
}
default: normal();
break;
}
};
}
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
top related