Robot Kontrol Bolabot Berbasis Wireless
-
Upload
mada-sanjaya-ws -
Category
Documents
-
view
231 -
download
6
description
Transcript of Robot Kontrol Bolabot Berbasis Wireless
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 | 1
Copyright 2013 © Mada Sanjaya WS, Ph.D (Profesor Bolabot)
Mada Sanjaya WS, Ph.D
Penerbit Bolabot
2013 ROBOT KONTROL BERBASIS
WIRELESS TLP/RLP 315 MHZ
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
Copyright 2013 © Mada Sanjaya WS, Ph.D (Profesor Bolabot)
ROBOT KONTROL DIGITAL
MENGGUNAKAN WIRELESS
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
3. Mengetahui aplikasi robot kontrol digital menggunakan
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
diperlukan dua buah sistem mikrokontroler
yang terhubung secara serial. Satu sistem
sebagai robot penerima perintah atau
(Rx), sedangkan sistem kontrol robot
memberikan perintah atau transmitter
Dalam mikrokontroler keluarga AVR,
komunikasi serial terdapat pada menu USART
(Universal Syncronous Asyncronous
Receiver/Transmitter).
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
Mada Sanjaya WS, Ph.D (Profesor Bolabot)
OBOT KONTROL DIGITAL
MENGGUNAKAN WIRELESS
TLP/RLP 315 MHz
Mengetahui dan memahami sistem kontrol digital dengan komunikasi serial USART
TLP/RLP 315 MHz.
Mampu mendesain, memprogram dan membuat robot kontrol wireless digital.
Mengetahui aplikasi robot kontrol digital menggunakan wireless.
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
transmitter (Tx).
Dalam mikrokontroler keluarga AVR,
komunikasi serial terdapat pada menu USART
Universal Syncronous Asyncronous
Gambar 1. Ilustrasi komunikasi serial
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 | 2
Mengetahui dan memahami sistem kontrol digital dengan komunikasi serial USART
Dalam bab ini kita akan membuat desain dan rancang bangun pembuatan robot dengan kontrol berbasis
Ilustrasi komunikasi serial
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
Copyright 2013 © Mada Sanjaya WS, Ph.D (Profesor Bolabot)
Simulasi Sistem Wireless Proteus
Untuk membuat simulasi wireless
transmitter dan receiver mikrokontroler dengan komponen
tapi tidak secara langsung. Berikut adalah desain simulasi proteus sistem
Gambar 2.
Untuk membuat robot actual dari skema tersebut, maka
MHz di bagian Transmitter remote
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
Mada Sanjaya WS, Ph.D (Profesor Bolabot)
wireless di proteus, dapat kita lakukan dengan menghubungkan sistem
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
kontrol dan RLP 315 MHz di bagian Receiver Robot.
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 | 3
lakukan dengan menghubungkan sistem
yang sebenarnya menghubungkan
robot kontrol digital.
diganti dengan komponen TLP 315
Robot.
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
Copyright 2013 © Mada Sanjaya WS, Ph.D (Profesor Bolabot)
Hardware Aktual TLP/RLP 315 MHz
Gambar 3.
Data sheet Komponen TLP/RLP 315 MHz
Gambar 4.
Gambar 5.
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
Mada Sanjaya WS, Ph.D (Profesor Bolabot)
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
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 | 4
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
Copyright 2013 © Mada Sanjaya WS, Ph.D (Profesor Bolabot)
Desain Aktual Robot Kontrol Wireless
Transmitter
Receiver
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
Mada Sanjaya WS, Ph.D (Profesor Bolabot)
esain Aktual Robot Kontrol Wireless
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 | 5
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 | 6
Copyright 2013 © Mada Sanjaya WS, Ph.D (Profesor Bolabot)
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
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 | 7
Copyright 2013 © Mada Sanjaya WS, Ph.D (Profesor Bolabot)
// 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
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 | 8
Copyright 2013 © Mada Sanjaya WS, Ph.D (Profesor Bolabot)
// 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;
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 | 9
Copyright 2013 © Mada Sanjaya WS, Ph.D (Profesor Bolabot)
}
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
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
Copyright 2013 © Mada Sanjaya WS, Ph.D (Profesor Bolabot)
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
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
Copyright 2013 © Mada Sanjaya WS, Ph.D (Profesor Bolabot)
#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")
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
Copyright 2013 © Mada Sanjaya WS, Ph.D (Profesor Bolabot)
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
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
Copyright 2013 © Mada Sanjaya WS, Ph.D (Profesor Bolabot)
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;
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
Copyright 2013 © Mada Sanjaya WS, Ph.D (Profesor Bolabot)
// 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;
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
Copyright 2013 © Mada Sanjaya WS, Ph.D (Profesor Bolabot)
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
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
Copyright 2013 © Mada Sanjaya WS, Ph.D (Profesor Bolabot)
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.
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
Copyright 2013 © Mada Sanjaya WS, Ph.D (Profesor Bolabot)
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”