Thursday, June 12, 2014

Laporan Proyek Mikrokontroller : Robot Line Follower Sebagai Salah Satu Media Pembelajaran Mikrokontroller



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.  

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

                     2. Layout Driver Motor

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.

3 comments:

 

Link-Link

Follower's

About Me

My photo
Penulis (Ibnu Hakim) : Mari budayakan berkomentar baik berupa Kritik, Saran, maupun Pertanyaan untuk menjadikan blog ini lebih baik ke depannya. Copy-Paste artikel Ibnu Hakim Di ijinkan, tapi URL sumbernya disertakan. Terima Kasih..