LAPORAN
PROJECT MIKROCONTROLLER
“ Robot
Line Follower Sebagai Salah Satu Media Pembelajaran Mikrokontroller “
Dosen Pengampu : Amir Fatah Faturrahman, S.Pd
DISUSUN OLEH :
NAMA :
Ibnu Hakim
NIM :
12502244011
KELAS
: A2
JURUSAN
PENDIDIKAN TEKNIK ELEKTRONIKA
FAKULTAS
TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
2014
A. JUDUL
Robot Line Follower Sebagai Salah Satu Media
Pembelajaran Mikrokontroller.
B. LATAR BELAKANG
Perkembangan teknologi begitu pesat
dan penerapan mikrokontroler pada bidang robotika terus
mengalami perkembangan yang sangat pesat pula. Banyak negara maju
(Amerika, Jerman, Inggris, Jepang, Perancis) berlomba-lomba untuk
menciptakan robot-robot cerdas dengan keistimewaan-keistimewaan khusus.
Temasuk indonesia sebagai negara berkembang, hal ini terlihat dengan
diselenggarakannya ajang Kontes Robot Indonesia (KRI), Kontes Robot Cerdas
Indonesia (KRCI) maupun kontes robot yang lain oleh Departemen Pendidikan
Nasional (Depdiknas) dan juga ajang Electronics and Informatics Technology
Competition (ELINFO)
Kategori RoboRace Line Follower Contest (RR). Pembuatan robot-robot dengan keistimewaan khusus sangat berkaitan erat dengan adanya kebutuhan dalam dunia industri modern yang menuntut adanya suatu instrumen dengan kemampuan yang tinggi yang dapat membantu menyelesaikan pekerjaan manusia ataupun untuk menyelesaikan pekerjaan yang tidak mampu diselesaikan oleh manusia.
Kategori RoboRace Line Follower Contest (RR). Pembuatan robot-robot dengan keistimewaan khusus sangat berkaitan erat dengan adanya kebutuhan dalam dunia industri modern yang menuntut adanya suatu instrumen dengan kemampuan yang tinggi yang dapat membantu menyelesaikan pekerjaan manusia ataupun untuk menyelesaikan pekerjaan yang tidak mampu diselesaikan oleh manusia.
Pada robot line follower
sensor proximity sering digunakan untuk mendeteksi ada
atau tidaknya suatu garis untuk gerak robot. Dengan demikian sensor
proximity difungsikan sebagai sensor garis. Sensor ini dapat dibuat dari
pasangan LED (Light Emitting Diode) dan
Photodioda yang dipasang secara sejajar dan berdampingan. Jika pancaran
LED memantul pada garis dan diterima oleh
basis Photodioda maka Photodioda menjadi saturasi (off)
sehingga tegangan keluaran mendekati 0 volt, yang didefinisikan sebagai
logika ‘0’ atau ‘low’. Sebaliknya jika tidak terjadi pantulan, artinya
pancaran dari LED diserap oleh garis, maka Photodioda menjadi
cut-off dimana tegangan keluaran sama dengan Vcc (5 volt). Kondisi ini
didefinisikan sebagai logika ‘1’ atau ‘high’. Robot jenis line follower
bergerak menggunakan aktuator berupa motor DC. Motor DC merupakan suatu
motor penggerak yang dikendalikan dengan arus searah.
Jenis penggerak robot line follower,
biasanya memiliki 2 buah motor DC yang diapasang di sebelah kiri dan
kanan robot, kedua motor bergerak secara diferensial. Untuk dapat
menggerakan robot maka masing-masing motor DC harus diatur arah putar dan
kecepatannya lewat sebuah rangkaian driver motor. Prinsip kerja dari
driver ini hanya dengan melewatkan arus pada motor dan menghentikan arus
yang melewati motor serta mengatur arah arusnya. Pengaturan
kecepatan kedua motor DC tersebut dapat diaplikasikan sebagai steering
sekaligus penggerak robot mobil. Pengaturan kecepatan masing-masing motor
sangat menentukan tingkat kestabilan robot dalam bergerak.
Pada robot yang sangat berperan dalam
pengaturan arah dan kecepatan kedua motor DC adalah sistem navigasi dari
robot itu sendiri. Sistem navigasi inilah yang merupakan otak dari robot.
Otak robot diprogram oleh manusia sesuai dengan keinginannya, kemudian
ditanamkan ke dalam sebuah chip mikrokontroler. Mikrokontroler pada robot
difungsikan sebagai unit pemroses data, sistem monitoring, dan sistem
kontrol, dimana piranti kontrol konvensional tidak dapat melakukannya.
Sistem navigasi robot menggunakan
sistem kontrol konvensional, kontrol P, kontrol I, kontrol D atau
gabungan kontrol PID, tidak dapat melakukan adaptasi terhadap perubahan
dinamik sistem selama operasi, karena parameter P, I dan D secara teoritis
hanya mampu memberikan efek kontrol terbaik pada kondisi sistem yang sama
ketika parameter tersebut di-tune. Pada penerapan fuzzy logic controller
pada line follower robot diharapkan dapat memberikan perubahan pergerakan
robot yang halus dari kondisi berbelok ke kondisi bergerak lurus maupun
sebaliknya tanpa menimbulkan pergerakan yang kaku. Dengan didasari
hal-hal tersebut di atas, maka peneliti mencoba melakukan
perancangan dan implementasi line follower robot
menggunakan mikrokontroler AVR ATMega 16 dengan sistem navigasi berbasis
fuzzy logic controller.
C. TUJUAN
Tujuan utama dari
penulisan laporan ini adalah :
1. Mahasiswa
dapat menjelaskan tentang robot line follower.
2. Mahasiswa
dapat memahami blok rangkaian robot line follower.
3. Mahasiswa
dapat memahami tentang mikrokontroler AVR.
4. Mahasiswa
dapat memahami cara kerja sensor garis dengan ADC.
5. Mahasiswa dapat perancangan dan
implementasi sebuah robot line follower.
6. Mahasiswa implementasi kecerdasan buatan
(Artificial intellegence) yaitu Fuzzy Logic Controller.
D. DESAIN RANCANGAN
1.
Rancangan
Hardware
a) Spesifikasi :
1. 8 sensor
2. Chip
Microcontroller Atmega 16
3. LCD
16X2
4. 5
button control
5. Driver
motor MOSFET dual H-Bridge
6. Gearbox
Motor DC Custom
Berikut pada gambar 1 ditunjukan model robot line
follower :
Gambar 1. Robot Line Follower
b)
Skematik
Rancangan Robot Line Follower
Berikut
pada gambar dibawah ini ditunjukan rangkaian robot line follower :
Gambar 2.
Skematik Robot Line Follower
c)
Layout
Robot Line Follower
Berikut
pada gambar dibawah ini ditunjukan layout robot line follower :
1. Layout Sismin
Gambar 3. Layout Sismin Robot Line Follower
Gambar 4. Layout Driver Motor Robot Line Follower
3. Layout Push Button
Gambar 5. Layout Push Button Robot Line Follower
d)
Flowchart
Kendali Robot Line Follower
Berikut
pada gambar dibawah ini ditunjukan flowchart kendali LF :
Gambar 6. Flowchart Robot Line Follower
Tabel komponen yang digunakan :
Tabel
1. Komponen yang digunakan
2.
Rancangan
Software
Bahasa
C
Program
Robot Line Follower dengan Bahasa C Pada ATMega 16 :
#include
<mega16.h>
//
Alphanumeric LCD functions
#include
<alcd.h>
//
Declare your global variables here
#include
<stdio.h>
#include
<delay.h>
char
buff[33];
unsigned
char pwm, no, lpwm, rpwm;
#define
t1 PINC.3
#define
t2 PINC.2
#define
t3 PINC.1
#define
t4 PINC.0
#define
mtrx0 PORTD.1
#define
mtrx1 PORTD.0
#define kaju
PORTD.5
#define kidur
PORTD.3
#define kadur
PORTD.6
#define kiju
PORTD.4
void
maju(unsigned char lpwm,unsigned char rpwm)
{
OCR1A=255-rpwm;
OCR1B=255-lpwm;
kadur=0;
kidur=0;
}
void
mundur(unsigned char lpwm,unsigned char rpwm)
{
OCR1A=rpwm;
OCR1B=lpwm;
kadur=1;
kidur=1;
}
void
stop()
{
OCR1A=255;
OCR1B=255;
kadur=0;
kidur=0;
}
void
sikan(unsigned char lpwm, unsigned char rpwm){
OCR1A=255-rpwm;
OCR1B=lpwm;
kadur=1;
kidur=0;
}
void
sikir(unsigned char lpwm, unsigned char rpwm){
OCR1A=rpwm;
OCR1B=255-lpwm;
kadur=0;
kidur=1;
}
void
set_pwm()
{
if
(!t4) {pwm++; delay_ms(10);}
if
(!t1) {pwm--;delay_ms(10);}
if
(pwm > 255) {pwm = 255;}
}
void
main(void)
{
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x00;
//
Port C 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
PORTC=0xff;
DDRC=0x00;
//
Port D 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
PORTD=0x00;
DDRD=0xFF;
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
TCCR1A=0xF1;
TCCR1B=0x0C;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
MCUCR=0x00;
MCUCSR=0x00;
TIMSK=0x00;
UCSRB=0x00;
ACSR=0x80;
SFIOR=0x00;
//
ADC initialization
//
ADC disabled
ADCSRA=0x00;
//
SPI initialization
//
SPI disabled
SPCR=0x00;
//
TWI initialization
//
TWI disabled
TWCR=0x00;
//
Alphanumeric LCD initialization
//
Connections are specified in the
//
Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
//
RS - PORTB Bit 0
//
RD - PORTB Bit 1
//
EN - PORTB Bit 2
//
D4 - PORTB Bit 4
//
D5 - PORTB Bit 5
//
D6 - PORTB Bit 6
//
D7 - PORTB Bit 7
//
Characters/line: 16
lcd_init(16);
while
(1)
{
stop();
lcd_clear();
lcd_gotoxy(3,0);
lcd_putsf("Tes Motor");
delay_ms(100);
lcd_clear();
lcd_gotoxy(1,0);
lcd_putsf("Tekan Ok untuk");
lcd_gotoxy(2,1);
lcd_putsf("melanjutkan");
while (1){ if (!t3) {goto lanjut;}}
}
lanjut:
while
(1)
{
lcd_clear();
//kode untuk memilih no
if (!t1) {no --;}
if (!t4) {no ++;}
if (no<1) {no = 1;}
if (no>5) {no = 5;}
switch(no)
{ case 1: lcd_putsf("Maju");
maju(lpwm,rpwm);
break;
case 2: lcd_putsf("Mundur");
mundur(lpwm,rpwm);
break;
case 3: lcd_putsf("Stop");
stop();
break;
case 4: lcd_putsf("Sikan");
sikan(lpwm,rpwm);
break;
case 5: lcd_putsf("Sikir");
sikir(lpwm,rpwm);
break;
}
if (!t3)
{
while(1)
{
lcd_gotoxy (0,1);
lcd_putsf("PWM = ");
sprintf (buff,"%3d",pwm);
lcd_puts (buff);
set_pwm();
lpwm = pwm;
rpwm = pwm;
if (!t2) {break;}
}
}
lcd_gotoxy(0,1);
sprintf(buff,"%d",no);
lcd_puts (buff);
delay_ms(20);
}
}
E. LANGKAH PEMBUATAN
1.
Desain Layout
2.
Menyablon Layout Pada PCB
3.
Pelarutan PCB
4.
Pemasangan Komponen dan Penyolderan
5.
Memrogram Mikrokontroller
6.
Menyatukan Elektronik dan Mekanik
7.
Finishing
8.
Uji Coba Rangkaian
F. PENGUJIAN
Setelah melakukan
perancangan dan pembuatan alat, maka tahap yang harus dilakukan selanjutnya
adalah melakukan pengujian pada
alat yang telah dibuat. Pengujian
dan pengamatan dilakukan pada perangkat
keras dan keseluruhan sistem yang
terdapat dalam peralatan ini. Pengujian
ini dilakukan dengan cara
melakukan pengukuran pada tiap
blok sistem alat,
sehingga didapat
perbandingan antara hasil pengujian yang
didapat dengan perancangan sistem.
Dan juga dapat
dianalisa apakah sistem pada Line Follower ini berfungsi dengan baik
dan stabil. Tujuan
dari pengukuran sistem ini adalah
:
1. Mengetahui apakah perangkat keras
yang telah dibuat
dapat bekerja dengan baik.
2. Dapat diketahui
parameter perbandingan antara hasil pengujian dengan perancangan, sehingga
dapat diketahui apakah kinerja
sistem stabil.
Berikut ini adalah pengujian
data dengan video dibawah ini :
G. ANALISIS DATA
1. Line Follower Robot adalah sebuah alat
yang dapat berjalan secara otomatis mengikuti garis berdasarkan perubahan warna pada garis baik
hitam dan putih. Hasil dari perubahan warna tersebut menyebabkan nilai pada
photo diode berubah sehingga menyebabkan nilai yang masuk ke dalam port ADC
pada mikrokontroller berubah, dan nilai ADC tersebut yang akan kita oleh
menjadi sebuah input.
2. Perancangan dilakukan
berdasarkan blok per blok
dari setiap rangkaian, dimana tiap-tiap
blok mempunyai fungsi masing-masing
dan blok rangkaian yang
satu dengan blok rangkaian yang
lain merupakan satu kesatuan
yang saling terkait
dan berhubungan serta membentuk
satu kesatuan yang saling menunjang kerja dari sistem. Blok rangkaian
dari robot ini dapat dilihat
selengkapnya pada gambar 7.
Gambar 7. Diagram Blok
Rangkaian Keseluruhan
Diagram blok diatas dijelaskan bahwa input
yang masuk pada mikrokontroler akan
menggerakkan motor yang merupakan output pada mikrokontroler.
Disini dapat dilihat pentingnya peranan mikrokontroler, yang
mana mikrokontroler akan mengolah
input dan mengatur output.
Jadi mikrokontroler
merupakan pengendali utama dari
sistem kerja robot.
3. Atmel
AVR adalah jenis mikrokontroler yang paling sering dipakai dalam bidang
elektronika dan instrumentasi. Mikrokontroler AVR ini memiliki arsitektur RISC
(Reduce Instruction Set Computing) delapan bit, di mana semua instruksi dikemas
dalam kode 16-bit (16 bits word) dan sebagian besar instruksi dieksekusi dalam
1 (satu ) siklus clock. Nama AVR sendiri berasal dari "Alf (Egil Bogen)
and Vegard (Wollan) 's Risc processor" dimana Alf Egil Bogen dan Vegard
Wollan adalah dua penemu berkebangsaan Norwegia yang menemukan mikrokontroller
AVR yang kemudian diproduksi oleh Atmel.
4. Rangkaian
dasar sensor garis menggunakan ADC hampir sama dengan rangkaian menggunakan
metode On Off hanya saja dengan ADC tidak perlu rangkaian Op Amp.
H. KESIMPULAN
Setelah melalui tahap
perencanaan dan perancangan, maka sebuah
line follower robot dapat direalisasikan. Kemudian dilakukan pengujian
dan analisa pada sistemnya yang dapat diambil beberapa kesimpulan sebagai
berikut :
1. Line follower robot merupakan suatu
rangkaian otomatis terintegrasi yang terdiri
dari tiga komponen penting
yaitu, konstruksi fisik,
rangkaian elektronis, dan software pengontrol.
2. Mikrokontroler adalah sebuah chip yang
berfungsi sebagai pengontrol rangkaian elektronik dan umunya dapat menyimpan
program didalamnya. Mikrokontroler umumnya terdiri dari CPU (Central Processing
Unit), memori, I/O tertentu dan unit pendukung seperti Analog-to-Digital
Converter (ADC) yang sudah terintegrasi di dalamnya.
3.
Pengaturan
jarak deteksi sensor
dapat dilakukan dengan
mengatur besarnya nilai penguatan pada photodioda.
4. Kendali pada line follower robot ini
diterapkan menggunakan software LabVIEW 7.1 dengan metode ON/OFF.
5. Penggunaan
kendali ON/OFF pada
LabVIEW 7.1 yang
dihubungkan melalui port pararel memang tidak praktis, tetapi dalam
perancangannya dirasakan lebih mudah.
6. Fungsi
pertama yang harus ada dalam program C dan sudah ditentukan namanya adalah
main().
7. Fungsi
terdiri atas satu atau beberapa pernyataan, yang secara keseluruhan dimaksudkan untuk melaksanakan tugas
khusus. Bagian pernyataan fungsi (sering disebut tubuh fungsi) diawali dengan tanda kurung kurawal buka ({) dan diakhiri dengan tanda kurung kurawal tutup
(}). Di antara kurung kurawal itu dapat dituliskan statemen-statemen program C.
8. Semua sistem yang dimiliki oleh line follower robot saling berhubungan.
Jadi, ketika salah
satu sistem tidak
berfungsi dengan baik,
akan mempengaruhi kinerja dari seluruh sistem robot.
I. SARAN
Dalam merencanakan
dan merancang sebuah
line follower robot, diperlukan kecermatan dan ketelitian
dalam pemilihan bahan penyusun konstruksi fisik, komponen elektronik, dan
terlebih pada software pengontrolnya agar sistem yang dirancang dapat berfungsi
dengan sempurna.
Line follower robot merupakan salah satu hasil karya
teknologi, maka sistem ini diharapkan dapat dimanfaatkan dan diaplikasikan
dalam kehidupan sehari-hari dalam bentuk dan metode yang sederhana serta
ekonomis.
okey
ReplyDeletelumayan
sip dahhh
ReplyDeletemembantu kak,,
ReplyDeletethx info nya