Pada zaman sekarang ini, dimana tekhnologi sudah sangat
berkembang. Hampir semua pengontrolan sudah bisa dilakukan dengan jarak yang
jauh tanpa harus menggunakan kabel sebagai media jalurnya. Seperti sekarang ini
sudah banyak pengendalian dengan menggunakan infrared, Bluetooth, bahkan
wireless. Oleh sebab itu, pada makalah ini saya akan membahas sebuah robot
dimana untuk pengendalian kita memanfaatkan sebuah komunikasi jarak jauh yaitu
wireless. Dengan menggunakan modul tambahan yaitu ys 1020 dimana modul ini
sebagai transceiver dan receiver. Komunikasi yang kita pakai adalah komunikasi
serial melalui wireless. Dengan bantuan modul wireless yang terhubung dengan
komputer, dimana pengendali dapat menggerakkan sebuah robot dari komputer. Dan
tentunya pada robot tersebut juga harus terpasang modul transceiver dan
receiver. Berikut akan dijelaskan blok diagram sistem pengendali robot jarak
jauh.
BLOK DIAGRAM SISTEM
ROBOT PENGENDALI JARAK JAUH :
KETERANGAN WARNA :
-
MERAH
(INPUT)
-
BIRU
(PROSES)
-
HIJAU
(OUTPUT)
PRINSIP KERJA TIAP BLOK
SEBAGAI BERIKUT :
- PC digunakan sebagai input, yang terhubung dengan usb antara PC dengan USB AVR Programmer.
- USB AVR Programmer menerima input dari PC. Dimana level tegangan keluaran dari pc masih berupa RS 232. namun USB AVR ini merubah level tegangan RS 232 ini menjadi TTL. Diperlukan tegangan TTL untuk menghubungkan ke modul YS-1020.
- YS-1020 merupakan modul komunikasi yang sangat aman, mempunyai 8 kanal dengan frekuensi yang berbeda, jarak jangkauan komunikasi sekitar 100 meter dengan baudrate 2400 kbps.
- Antena berfungsi sebagai pengirim dan penerima gelombang frekuensi radio.
- Mikrokontroler atmega 8535 menerima output dari YS-1020 yang terhubung pada port RXD dan TXD.
- Driver motor DC L298 perintah yang berbentuk data 0 dan 1 dari mikrokontroler untuk arah gerak motor DC A dan B.
PERANCANGAN PENGONTROL
Pada perancangan hardware ini terdiri
dari sebuah PC, USB AVR programmer, modul wireless YS-1020, mikrokontroler
atmega 8535, driver motor L298 dan motor DC sebagai output untuk pergerakkan.
PC (KOMPUTER)
PC pada perancangan sistem robot ini digunakan sebagai input, dengan bantuan sebuah software. Software yang digunakan merupakan software yang sudah bawaan dari windows xp yaitu hyper terminal. Dimana hyper terminal ini dapat menghubungkan antara pc dengan port yang terhubung ke usb. Agar hyper terminal ini dapat terhubung dengan perangkat yang terhubung melalui usb ini kita harus mensetting dan mengetahui port mana yang akan digunakan.
USB AVR Programmer K-125
USB ini berfungsi sebagai komunikasi
serial antara PC dengan Robot, dimana usb ini akan menghubungkan antara PC dengan
modul YS-1020.
Gambar USB AVR Programmer K-125
Untuk menghubungkan USB ini ke modul
YS-1020, kita hanya menghubungkan port TX, RX, Ground dan VCC ke modulYS-1020
tersebut.
Selain berfungsi sebagai komuikasi
serial, USB AVR Programmer ini juga dapat digunakan sebagai downloader untuk
memasukkan program kedalam mikrokontroler, khususnya mikrokontroler keluarga
AVR saja.
MODUL YS-1020
Untuk mengirim bit-bit digital maka diperlukan sistem modulasi
digital yang dapat mengkonversikan bit-bit tersebut ke dalam bentuk sinyal
analog modulation digital yang dipakai ialah sistem FSK dengan menggunakan
rangkaian terintegrasi YS-1020UB dapat dilihat pada gambar berikut ini.
Gambar modul YS-1020
Keterangan fungsi tiap port pada modul YS-1020
YS-1020UB merupakan modul komunikasi
yang dapat digunakan sebagai modulator atau demodulator. Untuk menggunakan
modul sebagai modulator maka hanya digunakan satu Pin saja, Pin 3 (RX) adalah
Pin masukan dengan level tegangan TTL. Sebaliknya untuk menggunakan modul
sebagai demodulator maka digunakan Pin 4 (TX) dengan level tegangan TTL dapat
dilihat pada tabel sebelumnya.
MIKROKONTROLER ATMEGA 8535
Mikrokontroler atmega 8535 termasuk
jenis keluarga AVR, yang menggunakan design arsitektur RISC (Reduce Instruction
Set Computer) yang mempunyai lebar bus data 8 bit. Jenis ini berbeda dengan
jenis keluarga MCS51, yaitu dapat dilihat dari frekuensi kerjanya. Pada MCS51
memiliki frekuensi kerja seperduabelas kali frekuensi osilator sedangkan pada
AVR frekuensi kerjanya sama dengan frekuensi osilator. Jadi dengan frekuensi
osilator yang sama, maka kecepatan AVR dua belas kali lebih cepat dibandingkan
dengan kecepatan MCS51.
Pin output atmega 8535
Rangkaian pada mikrokontroler atmega 8535
Berikut program yang digunakan yang akan dimasukkan
ke dalam mikrokontroler atmega 8535 dengan bantuan software CodeVisionAVR dan
hardware USB AVR programmer.
/*****************************************************
This program
was produced by the
CodeWizardAVR
V1.25.3 Standard
Automatic
Program Generator
© Copyright
1998-2007 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 2/23/2011
Author : ZAINUDDIN
Company :
UNIVERSITAS GUNADARMA
Comments:
Chip
type : ATmega8535
Program
type : Application
Clock
frequency : 12.000000 MHz
Memory
model : Small
External
SRAM size : 0
Data Stack
size : 128
*****************************************************/
#include
#include
// Standard
Input/Output functions
#include
// Declare
your global variables here
unsigned
char data_rx;
void menu()
{
putchar(13);
printf("MENU
PENGENDALI MOBIL :\n");
putchar(13);
printf("(1)
TEKAN 1 MOBIL MAJU\n");
putchar(13);
printf("(2)
TEKAN 2 MOBIL MUNDUR\n");
putchar(13);
printf("(3)
TEKAN 3 BELOK KANAN\n");
putchar(13);
printf("(4)
TEKAN 4 BELOK KIRI\n");
putchar(13);
printf("(5)
TEKAN 5 MOBIL BERHENTI\n");
}
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=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
PORTB=0x00;
DDRB=0x00;
// 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=In
Func6=In Func5=Out Func4=Out Func3=In Func2=In Func1=In Func0=In
// State7=T
State6=T State5=0 State4=0 State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x30;
//
Timer/Counter 0 initialization
// Clock
source: System Clock
// Clock
value: Timer 0 Stopped
// Mode:
Normal top=FFh
// OC0
output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
//
Timer/Counter 1 initialization
// Clock
source: System Clock
// Clock
value: 12000.000 kHz
// Mode: Ph.
correct PWM top=00FFh
// OC1A
output: Inverted
// OC1B
output: Inverted
// 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: Off
TCCR1A=0xF1;
TCCR1B=0x01;
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
ASSR=0x00;
TCCR2=0x00;
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=0x00;
// USART
initialization
//
Communication Parameters: 8 Data, 1 Stop, No Parity
// USART
Receiver: On
// USART
Transmitter: On
// USART
Mode: Asynchronous
// USART
Baud rate: 2400
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x01;
UBRRL=0x37;
// Analog
Comparator initialization
// Analog
Comparator: Off
// Analog
Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
{
OCR1AL=00;
OCR1BL=00;
menu();
while (1)
{
// Place your code here
data_rx=getchar(); //terima data dari komputer
if (data_rx == '2' )
{
OCR1AL=100;
OCR1BL=70;
PORTC.0=0;
PORTC.1=1;
PORTC.2=0;
PORTC.3=1;
//printf("MOBIL BERGERAK
MAJU");
}
if (data_rx == '1' )
{
OCR1AL=100;
OCR1BL=69;
PORTC.0=1;
PORTC.1=0;
PORTC.2=1;
PORTC.3=0;
//printf("MOBIL BERGERAK MUNDUR");
}
if (data_rx == '3' )
{
OCR1AL=255;
OCR1BL=40;
//printf("MOBIL BELOK KANAN");
}
if (data_rx == '4' )
{
OCR1AL=55;
OCR1BL=255;
//printf("MOBIL BELOK KIRI");
}
if (data_rx == '5' )
{
OCR1AL=255;
OCR1BL=255;
//printf("MOBIL BERHENTI");
}
}
};
}
Tampilan pada software CodeVisionAVR
Driver Motor DC L298
Untuk menggerakkan dua buah
motor dc, digunakan IC H-Bridge Motor Driver L298, yang mampu memberikan arus
maksimum sebesar 1A ke tiap motor. Input L298 ada 6 jalur, terdiri dari input
data arah pergerakan motor dan input untuk PWM (Pulse Width Modulation). Untuk
mengatur kecepatan motor, pada input PWM inilah akan diberikan lebar pulsa yang
bervariasi dari mikrokontroler.
Gambar rangkaian pada Driver Motor DC L298
SUMBER REFERENSI :
- SKRIPSI “SISTEM PENGONTROL TELE-MOBILE ROBOTIK BERBASIS MIKROKONTROLER AT89S51”
- MAKALAH “MEMBUAT SENDIRI ROBOT LINE TRACKER”
- WWW.GOOGLE.COM
- BUKU “PEMROGRAMAN BAHASA C UNTUK MIKROKONTROLER ATMEGA 8535”
- BUKU “MIKROKONTROLER AVR ATMEGA 8/16/32/8535 DAN PEMROGRAMANNYA DENGAN BAHASA C PADA WINAVR”