• MUHILHAM • Electronics Hobbyist and Maker
  • Shop
  • Sitemap
  • Portfolio
  • Jasa Custom Project





  • Home Arduino Elektronika Robotic Line Follower Robot Using PID Control

    Line Follower Robot Using PID Control

    MUHAMMAD ILHAM Penulis MUHAMMAD ILHAM


    Line Follower Robot merupakan robot yang dapat mengikuti garis, sebagai peng-indera robot ini menggunakan sensor yang  berguna untuk membaca atau mendeteksi garis, warna garis yang biasa di gunakan adalah putih untuk base/dasar lapangan warna hitam dan garis hitam untuk base/dasar lapangan putih, dengan dua warna berbeda itu sensor dapat mendeteksi garis dengan cara membedakan warna yang gelap dan warna yang terang.

    Untuk sensor yang biasa digunakan untuk membaca garis diantaranya sensor photodioda, phototransistor, infrared maupun sensor LDR (Light Dependent Resistor), untuk robot yang saya buat kali ini menggunakan sensor photodioda kenapa sensor itu, karena sensor ini mudah didapat yang banyak dijual di toko komponen elektronika dan harga yang juga terjangkau tentunya.

    Gambar Ilustrasi Mekanisme Pembacaan Sensor Garis.

    Kemudian untuk pemeroses atau otak dari robot ini menggunakan mikrokontroler, untuk robot line follower kali ini saya menggunakan mikrokontroler arduino yaitu arduino uno fungsi dari mikro untuk memproses data dari sensor dan kemudian mengontrol motor sebagai aktuator penggerak robot, mikrokontroler ini di isi dengan program atau coding yang akan mengatur robot untuk bernavigasi mengikuti garis.

    Lalu bagaimana robot bisa dengan baik bernavigasi mengikuti garis, yaap.. kita masuk pada inti dari robot ini yaitu sistem kontrol PID pada robot line follower, dengan menerapkan kontroler PID yang tepat pada robot line follower pergerakan robot akan lebih halus dibandingkan menggunakan kontrol ON-OFF.

    Apa itu PID?
    PID singkatan dari Proporsional Integral Derivative, merupakan sebuah algoritma kontrol yang sudah lama ada dan sangat populer digunakan pada sistem kontrol di industri maupun dibidang robotic, sistem kendali ini dapat digunakan pada sistem yang memiliki umpan balik (feedback), kontrol PID ini akan menghitung nilai error, yaitu perbedaan antara nilai setpoint (nilai yang diinginkan) dan variabel prosses terukur (process variable), kontrol ini akan mencoba untuk megurangi nilai error agar menuju ke setpoint yang diinginkan.

    Diagram Blok Kontrol PID

    Bentuk Kontroler PID Diskrit

    Diagram Blok Penerapan Kontrol PID Pada Robot Line Follower
    • Setpoint, merupakan parameter nilai yang diinginkan.
    • Process Variable, merupakan bobot nilai sensor yang dibaca sesuai dengan pembacaan sensor saat itu.
    • Error, merupakan nilai kesalahan yang di dapat dari ( Setpoint - Process Variable ).
    Kontrol PID Pada Robot Line Follower
    Robot line follower yang akan di kontrol degan PID kali ini menggunakan 8 sensor, garis yang digunakan dengan lebar 2-3 cm yang memungkinkan mengenai 2 sensor kemudian lakukan mapping pada sensor untuk mendapatkan nilai process variable, untuk 8 sensor hasil mapping nilai process variable kurang lebih sebagai berikut :

        /** 1 di asusmsikan sensor mengenai garis **/
        case 0b00000001 : NilaiPosisi = -10; break;
        case 0b00000111 : NilaiPosisi = -9; break;
        case 0b00000011 : NilaiPosisi = -8; break;
        case 0b00000010 : NilaiPosisi = -7; break;
        case 0b00001110 : NilaiPosisi = -6; break;
        case 0b00000110 : NilaiPosisi = -5; break;
        case 0b00000100 : NilaiPosisi = -4; break;
        case 0b00011100 : NilaiPosisi = -3; break;
        case 0b00001100 : NilaiPosisi = -2; break;
        case 0b00001000 : NilaiPosisi = -1; break;
        case 0b00011000 : NilaiPosisi = -0; break;
        case 0b00010000 : NilaiPosisi =  1; break;
        case 0b00110000 : NilaiPosisi =  2; break;
        case 0b00111000 : NilaiPosisi =  3; break;
        case 0b00100000 : NilaiPosisi =  4; break;
        case 0b01100000 : NilaiPosisi =  5; break;
        case 0b01110000 : NilaiPosisi =  6; break;
        case 0b01000000 : NilaiPosisi =  7; break;
        case 0b11000000 : NilaiPosisi =  8; break;
        case 0b11100000 : NilaiPosisi =  9; break;
        case 0b10000000 : NilaiPosisi =  10; break;
    

    kondisi ideal robot adalah pada saat sensor berada pada posisi 00011000 (nilai 1 di asumsikan sensor mengenai garis) atau NilaiPosisi = 0 dan Setpoint = 0 merupakan posisi ideal robot line follower jika NilaiPosisi tidak = 0 berarti robot tidak pada posisi ideal dan artinya ada nilai error, pada kondisi error output PID akan mengeluarkan hasil kendalinya sesuai dengan besaran error yang terjadi dan kemudian akan dikalkulasikan dengan nilai base PWM yang ditentukan untuk menjadi PWM ke motor kiri dan kanan.

    Formula perhitungan PWM motor kiri dan kanan sebagai berikut :
    motorKi = BasePWM - outPID;      ( Motor Kiri )
    motorKa = BasePWM + outPID;    ( Motor Kanan )

    Pada pemrograman robot line follower perhitungan PID ditulis sebagai berikut :

    double Error = 0, SumError = 0, LastError = 0;
    double BasePWM = 250; 
    double Kp = 43;       // Proporsional 
    double Ki = 0.2;      // Integral     
    double Kd = 145;      // Diferensial
    double Ts = 1;        // Time sampling
    
    /**** Fungsi perhitungan PID ****/
    void lineFollow() {
      robotPosition();
      int SetPoint = 0;                      // Setpoint yang diinginkan
      Error = SetPoint - NilaiPosisi;        // Error
      double DeltaError = Error - LastError; // Delta Error (Selisih error sekarang e(t) dengan error sebelumya e(t-1))
      SumError += LastError;                 // Akumulasi error
      double P = Kp * Error;                 // Kontrol proporsional
      double I = Ki * SumError * Ts;         // Kontrol integral
      double D = ((Kd / Ts) * DeltaError);   // Kontrol derivative
      LastError = Error;                     // Error sebelumnya
      outPID = P + I + D;                    // Output PID
      double motorKi = BasePWM - outPID;     // Motor Kiri
      double motorKa = BasePWM + outPID;     // Motor Kanan
      /*** Pembatasan kecepatan ***/
      if (motorKi > Kec_Max)motorKi = Kec_Max;
      if (motorKi < Kec_Min)motorKi = Kec_Min;
      if (motorKa > Kec_Max)motorKa = Kec_Max;
      if (motorKa < Kec_Min)motorKa = Kec_Min;
      driveMotor(motorKi, motorKa);
    }
    

    Tuning Kontroler PID Robot Line Follower
    Proses tuning bertujuan untuk menentukan nilai yang tepat untuk parameter aksi kontrol proporsional, integral, derivative pada robot line follower, proses tuning dilakukan dengan menggunkan metode tuning Ziegler-Nichols metode ini dilakukan dengan cara memberikan kontrol proporsional pada sistem close loop dan plant di dalamnya.

    Kemudian memberikan nilai Kcr (kontrol proporsional), nilai Ki = 0 (kontrol integral) dan Kd = 0 (kontrol derivative) hingga sistem memperlihatkan grafik yang berosilasi terus menerus secara teratur contoh pada gambar berikut :
    Dari grafik osilasi yang berkesinambungan dan dari penguatan Kcr kemudian dapatkan nilai Pcr (periode kritis) untuk mendapatkan nilai Kp, Ki, Kd dihitung sesuai aturan Ziegler-Nichols sebagai berikut:
    Setelah nilai Kp, Ki, Kd di dapatkan kemudian masukkan pada program line follower, jika semua nilai parameter sudah tepat maka robot akan bergerak mengikuti garis dengan baik dan akan didapatkan grafik yang memperlihatkan respon posisi yang selalu menuju setpoint seperti gambar berikut :

    Untuk hasilnya silahkan lihat pada video berikut.

    Referensi : 
    • https://id.wikipedia.org/wiki/PID

    Facebook Twitter
    Arduino
    Elektronika
    Robotic

    Related Posts

    • Membuat Mobil Remote Control dengan Arduino [RC Car Control with Bluetooth]
      Kali ini kita akan membuat sebuah Mobil Remote Control atau bisa di sebut RC Robot yang
    • Wall Follower Robot dengan Kendali PID
      Kali ini saya akan membagikan mengenai robot lagi nih, yah robot.. namun masih seper
    • Arduino Tutorial : Pengenalan Arduino dan Program LED Berkedip/Blink
      Tulisan ini merupakan pendahuluan dari seri tutorial arduino, pada seri tutorial ardu
    • Arduino Tutorial : Analog Input Potentiometer
      Pada tutorial arduino kali ini kita akan masuk pada pembelajaran mengenai cara
    • Cara Memperbaiki Kipas Angin Mati Total [Tidak Berputar Sama Sekali]
      Tulisan yang akan saya bagikan kali ini merupakan pengalaman pribadi saya tentang m
    • Cara Mudah Membuat Layout PCB Dengan Menggunakan Lotion Anti Nyamuk
      Membuat atau mencetak sendiri layout rangkaian elektronika tidaklah terlalu sulit,
    MUHAMMAD ILHAM

    MUHAMMAD ILHAM

    “ Ikat ilmu dengan menulisnya ”
    ― Ali bin Abi Thalib ―

  • Membuat Running LED Dengan IC 4017 dan Timer NE555
    Membuat Gerbang Otomatis [Arduino Controlled Gate Barrier with Ultrasonic Sensor HC-SR04]

    7 comments

    1. UnknownFebruary 16, 2018 at 10:09 AM

      Mas Ilham Trimakasih banyak share ilmunya tentang Line Follower PID, mohon di share sceth coding lengkapnya biar kami juga bisa eksperimen,,, semoga kebaikan mas ilham dibalas dengan Pahala yang besar dari Allah SWT,amiin.

      ReplyDelete
      Replies
        Reply
    2. hadli30March 14, 2018 at 10:14 AM

      bang boleh bagi rangkaian sensor nya, buat jadi contoh

      ReplyDelete
      Replies
        Reply
    3. UnknownAugust 25, 2018 at 10:46 PM

      Mas mohon dengan sangat untuk spec komponen & skematiknya dishare ya,,, agar bisa praktik,,, makasih banyak sebelumnya semoga jadi amal sholih, amiin.

      ReplyDelete
      Replies
        Reply
    4. UnknownNovember 9, 2018 at 6:56 AM

      Syukron katsir mas sketchnya,,,, moga tambah sukses, amiin.

      ReplyDelete
      Replies
        Reply
    5. UnknownMay 7, 2019 at 10:41 PM

      please i want the code

      ReplyDelete
      Replies
        Reply
    6. AnonymousApril 11, 2020 at 6:26 AM

      boleh saya dapatkan code lengkapnya mas

      ReplyDelete
      Replies
        Reply
    7. Skyt easyDecember 1, 2022 at 8:25 AM

      bang boleh minta codingnya

      ReplyDelete
      Replies
        Reply
    Add comment
    Load more...


    EmoticonEmoticon

    • Popular Posts
    • Categories

    Popular Posts

    • Download Cadsoft Eagle Professional 7.2.0 Full
    • Cara Mudah Membuat Layout PCB Dengan Menggunakan Lotion Anti Nyamuk
    • Membuat Running LED Dengan IC 4017 dan Timer NE555
    • Cara Mudah Cek HP Android Asli atau Palsu
    • Cara Memperbaiki Kipas Angin Mati Total [Tidak Berputar Sama Sekali]

    Categories

    Elektronika Arduino Tips dan Trik Robotic Tutorial IoT Software Arduino Tutorial PCB STM32

    Recent Posts

    Arduino Tutorial : Analog Input Potentiometer
    Arduino Tutorial : Digital Input Output Arduino [LED dan Push Button]
    Monitoring Daya Listrik 3 Phase [3 Phase AC Power Monitoring] - Data Logger
    Arduino Tutorial : Pengenalan Arduino dan Program LED Berkedip/Blink
    Sistem Keamanan Rumah Berbasis IoT Dengan Sensor Gerak [Motion Detection]
     
    Copyright © 2025 MUHILHAM • Electronics Hobbyist and Maker. All Rights Reserved.