Anda di halaman 1dari 17

BOLABOT TECHNO ROBOTIC INSTITUTE |1

2013

ROBOT KONTROL BERBASIS WIRELESS TLP/RLP 315 MHZ

Mada Sanjaya WS, Ph.D


Penerbit Bolabot Copyright 2013 Mada Sanjaya WS, Ph.D (Profesor Bolabot)

BOLABOT TECHNO ROBOTIC INSTITUTE |2

ROBOT OBOT KONTROL DIGITAL MENGGUNAKAN WIRELESS TLP/RLP 315 MHz

TUJUAN
1. Mengetahui dan memahami sistem kontrol digital dengan komunikasi serial USART menggunakan wireless TLP/RLP 315 MHz. 2. Mampu mendesain, memprogram dan membuat robot kontrol wireless digital. 3. Mengetahui aplikasi robot kontrol digital menggunakan wireless.

DASAR TEORI
Dalam bab ini kita akan membuat desain dan rancang bangun pembuatan robot dengan kontrol berbasis wireless menggunakan gelombang 315 MHz.

Untuk membangun sistem kontrol wireless diperlukan dua buah sistem mikrokontroler yang terhubung secara serial. Satu sistem sebagai robot penerima perintah atau receiver (Rx), sedangkan sistem kontrol robot

memberikan perintah atau transmitter (Tx). Dalam mikrokontroler keluarga AVR,

komunikasi serial terdapat pada menu USART (Universal Syncronous Asyncronous

Receiver/Transmitter).
Gambar 1. Ilustrasi komunikasi serial

Copyright 2013 Mada Sanjaya WS, Ph.D (Profesor Bolabot)

BOLABOT TECHNO ROBOTIC INSTITUTE |3


Simulasi Sistem Wireless Proteus

Untuk membuat simulasi wireless di proteus, dapat kita lakukan dengan menghubungkan sistem transmitter dan receiver mikrokontroler dengan komponen optocoupler yang sebenarnya menghubungkan tapi tidak secara langsung. Berikut adalah desain simulasi proteus sistem wireless robot kontrol digital.

Gambar 2. Skema proteus robot kontrol digital wireless

Untuk membuat robot actual dari skema tersebut, maka optocoupler diganti dengan komponen TLP 315 MHz di bagian Transmitter remote kontrol dan RLP 315 MHz di bagian Receiver Robot.

Copyright 2013 Mada Sanjaya WS, Ph.D (Profesor Bolabot)

BOLABOT TECHNO ROBOTIC INSTITUTE |4


Hardware Aktual TLP/RLP 315 15 MHz

Gambar 3. Komponen actual TLP/RLP 315 MHz

Data sheet Komponen TLP/RLP 315 MHz

Gambar 4. Komponen transmitter TLP 315 MHz

Gambar 5. Komponen Receiver RLP 315 MHz

Copyright 2013 Mada Sanjaya WS, Ph.D (Profesor Bolabot)

BOLABOT TECHNO ROBOTIC INSTITUTE |5


Desain esain Aktual Robot Kontrol Wireless

Transmitter

Receiver

Copyright 2013 Mada Sanjaya WS, Ph.D (Profesor Bolabot)

BOLABOT TECHNO ROBOTIC INSTITUTE |6


Program CV AVR Robot Kontrol Wireless

Program Transmitter Remote Kontrol

/***************************************************** 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 : Remote Kontrol Robot Kontrol Wireless Version : I Hexapod UHF Date : 9/16/2012 Author : Mada Sanjaya WS, Ph.D Company : Bolabot Techno Robotic School Comments: "Semangat harapan itu masih ada"

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> // Standard Input/Output functions #include <stdio.h> #include <delay.h> unsigned char perintah; // Declare your global variables here void main(void) { // Declare your local variables here // Input/Output Ports initialization // 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

Copyright 2013 Mada Sanjaya WS, Ph.D (Profesor Bolabot)

BOLABOT TECHNO ROBOTIC INSTITUTE |7


// 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: Timer1 Stopped // Mode: Normal top=0xFFFF // 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: Timer2 Stopped // Mode: Normal top=0xFF // OC2 output: Disconnected ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; // External Interrupt(s) initialization

Copyright 2013 Mada Sanjaya WS, Ph.D (Profesor Bolabot)

BOLABOT TECHNO ROBOTIC INSTITUTE |8


// INT0: Off // INT1: Off MCUCR=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00; // USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: Off // USART Transmitter: On // USART Mode: Asynchronous // USART Baud Rate: 1200 UCSRA=0x00; UCSRB=0x08; UCSRC=0x86; UBRRH=0x02; UBRRL=0x70; // Analog Comparator initialization // Analog Comparator: Off // 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; // mendefinisikan input output DDRD.5=0; //input tombol perintah belok kiri DDRD.6=0; //input tombol perintah belok kanan DDRD.7=0; //input tombol perintah mundur DDRB.0=0; //input tombol perintah maju DDRD.2=1; //output led indikator ketika tombol ditekan while (1) { if (PINB.0!=0) //program maju { perintah=1; PORTD.2=0;

Copyright 2013 Mada Sanjaya WS, Ph.D (Profesor Bolabot)

BOLABOT TECHNO ROBOTIC INSTITUTE |9

} else if (PIND.7!=0) //program mundur { perintah=2; PORTD.2=0; } else if (PIND.6!=0) //program belok kanan { perintah=3; PORTD.2=0; } else if (PIND.5!=0) //program belok kiri { perintah=4; PORTD.2=0; } else { perintah=0; // diam PORTD.2=1; } putchar(perintah); // mengirim tipe data perintah } }

Program Receiver Robot Kontrol Wireless

/***************************************************** 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 : Receiver Robot Kontrol Wireless Version : I Hexapod Date : 9/16/2012

Copyright 2013 Mada Sanjaya WS, Ph.D (Profesor Bolabot)

B O L A B O T T E C H N O R O B O T I C I N S T I T U T E | 10
Author : Mada Sanjaya WS, Ph.D Company : Bolabot Techno Robotic School Comments: "Semangat Harapan itu Masih Ada!!!" 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> #ifndef RXB8 #define RXB8 1 #endif #ifndef TXB8 #define TXB8 0 #endif #ifndef UPE #define UPE 2 #endif #ifndef DOR #define DOR 3 #endif #ifndef FE #define FE 4 #endif #ifndef UDRE #define UDRE 5 #endif #ifndef RXC #define RXC 7 #endif #define FRAMING_ERROR (1<<FE) #define PARITY_ERROR (1<<UPE) #define DATA_OVERRUN (1<<DOR) #define DATA_REGISTER_EMPTY (1<<UDRE) #define RX_COMPLETE (1<<RXC) unsigned char dutu; // mendefinisikan data

// USART Receiver buffer

Copyright 2013 Mada Sanjaya WS, Ph.D (Profesor Bolabot)

B O L A B O T T E C H N O R O B O T I C I N S T I T U T E | 11
#define RX_BUFFER_SIZE 8 char rx_buffer[RX_BUFFER_SIZE]; #if RX_BUFFER_SIZE <= 256 unsigned char rx_wr_index,rx_rd_index,rx_counter; #else unsigned int rx_wr_index,rx_rd_index,rx_counter; #endif // This flag is set on USART Receiver buffer overflow bit rx_buffer_overflow; // USART Receiver interrupt service routine interrupt [USART_RXC] void usart_rx_isr(void) { char status,data; status=UCSRA; data=UDR; if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0) { rx_buffer[rx_wr_index++]=data; #if RX_BUFFER_SIZE == 256 // special case for receiver buffer size=256 if (++rx_counter == 0) { #else if (rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0; if (++rx_counter == RX_BUFFER_SIZE) { rx_counter=0; #endif rx_buffer_overflow=1; } } } #ifndef _DEBUG_TERMINAL_IO_ // Get a character from the USART Receiver buffer #define _ALTERNATE_GETCHAR_ #pragma used+ char getchar(void) { char data; while (rx_counter==0); data=rx_buffer[rx_rd_index++]; #if RX_BUFFER_SIZE != 256 if (rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0; #endif #asm("cli") --rx_counter; #asm("sei")

Copyright 2013 Mada Sanjaya WS, Ph.D (Profesor Bolabot)

B O L A B O T T E C H N O R O B O T I C I N S T I T U T E | 12
return data; } #pragma used#endif // Standard Input/Output functions #include <stdio.h> // Declare your global variables here void main(void) { // Declare your local variables here // 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

Copyright 2013 Mada Sanjaya WS, Ph.D (Profesor Bolabot)

B O L A B O T T E C H N O R O B O T I C I N S T I T U T E | 13
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 // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On // USART Transmitter: Off // USART Mode: Asynchronous // USART Baud Rate: 1200 UCSRA=0x00; UCSRB=0x90; UCSRC=0x86; UBRRH=0x02; UBRRL=0x70; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; // ADC initialization // ADC disabled ADCSRA=0x00;

Copyright 2013 Mada Sanjaya WS, Ph.D (Profesor Bolabot)

B O L A B O T T E C H N O R O B O T I C I N S T I T U T E | 14
// SPI initialization // SPI disabled SPCR=0x00; // TWI initialization // TWI disabled TWCR=0x00; // Global enable interrupts #asm("sei") // mendefinisikan output motor DC DDRD.5=1; //output motor kiri DDRD.6=1; //output motor kiri DDRD.7=1; //output motor kanan DDRB.0=1; //output motor kanan // kondisi awal PORTD.5=1; PORTD.6=1; PORTD.7=1; PORTB.0=1; // mengatur kecepatan motor dengan PWM OCR1A=200; // kecepatan motor kiri OCR1B=200; // kecepatan motor kanan while (1) { dutu=rx_buffer[0]; if(dutu==1) // program maju, kedua motor bergerak kedepan { PORTD.5=1; PORTD.6=0; PORTD.7=1; PORTB.0=0; } else if (dutu==2) //program mundur, kedua motor bergerak kebelakang { PORTD.5=0; PORTD.6=1; PORTD.7=0; PORTB.0=1; } else if (dutu==3) //program belok kanan, motor kanan mundur, motor kiri maju { PORTD.5=1;

Copyright 2013 Mada Sanjaya WS, Ph.D (Profesor Bolabot)

B O L A B O T T E C H N O R O B O T I C I N S T I T U T E | 15
PORTD.6=0; PORTD.7=0; PORTB.0=1; } else if (dutu==4) //program belok kiri, motor kanan maju, motor kiri mundur { PORTD.5=0; PORTD.6=1; PORTD.7=1; PORTB.0=0; } else { // tidak ada perintah kedua motor diam

PORTD.5=0; PORTD.6=0; PORTD.7=0; PORTB.0=0; } } }

METODE PERCOBAAN
ALAT DAN BAHAN

1. Papan PCB/protoboard 2. Multimeter 3. Kabel koneksi dan soket 4. Resistor 5. LED 6. Motor DC 7. Spacer 8. Tombol push-button 9. Battery 9 volt 10. 2 buah Mikrokontroler ATmega 16 11. Motor driver L 293D 12. Transmitter TLP 315 MHz

Copyright 2013 Mada Sanjaya WS, Ph.D (Profesor Bolabot)

B O L A B O T T E C H N O R O B O T I C I N S T I T U T E | 16
13. Receiver RLP 315 MHz 14. LCD 16x2 15. Antena 16. Modul kit Downloader 17. Software Proteus 18. Software Code Vision AVR 19. Toolkit elektronika 20. Osiloskop digital

PROSEDUR PERCOBAAN

Desain dan Pembuatan Transmitter Remote Kontrol

1. Desain rangkaian pada proteus sesuai skema yang telah dijelaskan 2. Buatlah program transmitter remote kontrol yang akan mengirimkan perintah pada receiver robot kontrol untuk menggerakan robot maju, mundur, belok kiri dan kanan menggunakan code vision AVR. 3. Isikan program yang dibuat pada desain proteus 4. Buatlah eksperimen actual transmitter dalam hal ini remote kontrol wireless yang meliputi pembuatan dan pengujian.

Desain dan Pembuatan Receiver Robot Kontrol

1. Desain rangkaian pada proteus sesuai skema yang telah dijelaskan 2. Buatlah program untuk receiver robot kontrol yang akan menerima perintah dari transmitter menggunakan code vision AVR. 3. Isikan program yang dibuat pada desain proteus 4. Buatlah eksperimen actual receiver dalam hal ini robot kontrol wireless yang meliputi pembuatan dan pengujian.

Pengujian dan Analisis

1. Pengujian dan analisis output transmitter remote kontrol menggunakan osiloskop. 2. Pengujian dan analisis output receiver robot kontrol menggunakan osiloskop.

Copyright 2013 Mada Sanjaya WS, Ph.D (Profesor Bolabot)

B O L A B O T T E C H N O R O B O T I C I N S T I T U T E | 17
3. Pengujian robot kontrol wireless.

TUGAS PENDAHULUAN
1. Apa yang dimaksud dengan robot kontrol! 2. Bagaimana prinsip kerja TLP/RLP 315 MHz! 3. Jelaskan prinsip kerja USART dalam mikrokontroler! 4. Bagaimana logika membangun robot kontrol wireless! 5. Jelaskan aplikasi robot kontrol wireless!

TUGAS AKHIR DAN LAPORAN


1. Buatlah diagram alir percobaan. 2. Analisis dan bandingkan antara teori, simulasi proteus, serta hasil eksperimen sesuai tujuan yang ingin dicapai dalam praktikum! 3. Buat Kesimpulan

DAFTAR PUSTAKA
1. Floyd & Buchla. Fundamental of analog circuits. Prentice Hall, New Jersey, 2008. 2. Malvino. Prinsip-prinsip elektronika I Erlangga, Jakarta, 1994. 3. Winarno & Arifianto, D. Bikin robot itu gampang. Kawan Pustaka, Jakarta, 2011. 4. Andrianto, H. Pemrograman mikrokontroler AVR ATmega 16 menggunakan bahasa C (Code Vision AVR). Penerbit Informatika, Bandung, 2008. 5. Sanjaya, M. Pengenalan robotika, Bolabot Techno Robotic School, Bandung, 2012. 6. Sanjaya, M. Modul membuat robot itu asyik, Bolabot Techno Robotic School, Bandung, 2012.

SELAMAT MENCOBA MARI BERJUANG BERSAMA BOLABOT

BEKERJA UNTUK KEBANGKITAN TEKNOLOGI INDONESIA


Copyright 2013 Mada Sanjaya WS, Ph.D (Profesor Bolabot)