Mikrokontroler
Mikrokontroler adalah suatu
chip yang memiliki memory, register dan CPU yang dapat melakukan fungsi kendali
pada suatu alat atau robot. Arsitektur mikrokontroler yang semakin komplek dan
memudahkan para pengembang untuk mendesain system elektronika yang canggih.
Jenis – jenis Mikrokontroler
Berdasarkan arsitekturnya
mikro kontroler dapat dibagi menjadi dua jenis yaitu RISC (Reduce Instrution
Set Computer) dan CISC (Kompleks
Instruction Set Computer).. RISC mempunyai jumlah intruksi yang
terbatas, tetapi mempunyai banyak fasilitas yang dapat digunakan. Sebaliknya
CISC memiliki instruksi yang cukup banyak, tetapi fitur yang ada hanya sedikit.
Mikrokontroler ATMega8535
Mikrokontroler AVR (Alf
and Vegard’s Risc Prosessor) merupakan salah satu perkembangan produk
mikroelektronika dari vendor Atmel. AVR merupakan teknologi yang
memiliki kemampuan baik dengan biaya ekonomis yang cukup minimal.
Mikrokontroler AVR memiliki arsitektur RISC 8 bit, dimana semua
instruksi dikemas dalam kode 16 bit dan sebagian besar instruksi
dieksekusi dalam 1 (satu) siklus clock, berbeda dengan instruksi
MCS51 yang membutuhkan 12 siklus clock.
Tentu saja itu
terjadi karena kedua jenis mikrokontroler tersebut memiliki arsitektur
yang berbeda. AVR berteknologi RISC (Reduced Instruction Set Computing),
sedang MCS 51 berteknologi CISC (Complex Instruction Set Computing).
Secara umum AVR dapat dikelompokkan menjadi 4 kelas, yaitu keluarga
ATTiny, keluarga AT90Sxx, keluarga ATMega, dan AT86RFxx. Pada dasarnya
yang membedakan masingmasing kelas adalah memori, peripheral, dan
fungsinya. Dari segi arsitektur dan instruksi yang digunakan, mereka bias
dikatakan hampir sama.
Arsitektur ATMega8535
Dari gambar 2.1 dapat dilihat bahwa ATMega8535 memiliki bagian sebagai
berikut:
a.
Saluran I/O
sebanyak 32 buah, yaitu port A, Port B, Port C, dan Port D.
b.
ADC 10 bit
sebanyak 8 saluran.
c.
Tiga buah Timer/Counter
dengankemampuan pembandingan.
d.
CPU yang
terdiri atas 32 buah register.
e.
Watchdog
Timer dengan OscilatorInternal.
f.
SRAM
sebanyak 512 byte.
g.
Memori Flash
sebesar 8 kb dengan kemampuan Read While Write.
h.
Unit
Interupsi internal dan eksternal.
i.
Port
antarmuka SPI.
j.
EEPROM
sebesar 512 byte yang dapat diprogram saat operasi.
k.
Antarmuka
komparator analog.
l.
Port USART
untuk komunikasi serial.
Fitur ATMega8535
Kapabilitas detail dari ATMega8535 adalah sebagai berikut:
1.
Sistem
mikroprosessor 8 bit berbasis RISC dengan kecepatan maksimal 16 MHz.
2.
Kapabilitas
memori Flash 8 KB, SRAM sebesar 512 byte, dan EEPROM (Electrically Erasable
Programmable Read Only Memory) sebesar 512 byte.
3.
ADC
Internal dengan fidelitas 10 bit sebanyak 8 saluran.
4.
Portal
komunikasi serial (USART) dengan kecepatan maksimal 2,5 Mbps.
5.
Enam
pilihan mode sleep menghemat penggunaan daya listrik.
Gambar Pin Mikrokontroler ATMega8535
LCD (Liquid
Crystal Display)
Liquid Crystal Display (LCD) merupakan perangkat (devais) yang sering digunakan
untuk menampilkan data selain menggunakan seven segment. LCD berfungsi
sebagai salah satu alat komunikasi dengan manusia dalam bentuk tulisan/gambar.
Untuk menghubungkan mikrokontroler dengan LCD dibutuhkan konfigurasi
antara pin-pin yang ada di LCD dengan port yang ada di mikrokontroler.
Konfigurasi pin LCD dan mikrokontroler dapat dilihat pada gambar berikut.
Gambar LCD 16 X 2
Interface LCD merupakan
sebuah parallel bus, dimana hal ini sangat memudahkan dan sangat cepat dalam pembacaan
dan penulisan data dari atau ke LCD. Kode ASCII yang ditampilkan sepanjang 8
bit dikirim ke LCD secara 4 atau 8 bit pada satu waktu. Jika mode 4 bit yang digunakan,
maka 2 nibble data dikirim untuk membuat sepenuhnya 8 bit (pertama dikirim 4
bit MSB lalu 4 bit LSB dengan pulsa clock EN setiap nibblenya). Jalur kontrol
EN digunakan untuk memberitahu LCD bahwa mikrokontroller mengirimkan data ke
LCD. Untuk mengirim data ke LCD program harus menset EN ke kondisi high (1) dan
kemudian menset dua jalur control lainnya (RS dan R/W) atau juga mengirimkan
data ke jalur data bus. Saat jalur lainnya sudah siap, EN harus diset ke 0 dan
tunggu beberapa saat (tergantung pada datasheet LCD), dan set EN kembali
ke high (1).
Ketika jalur RS berada dalam
kondisi low (0), data yang dikirimkan ke LCD dianggap sebagai sebuah perintah
atau instruksi khusus (seperti bersihkan layar, posisi kursor dll). Ketika RS
dalam kondisi high atau 1, data yang dikirimkan adalah data ASCII yang akan ditampilkan
dilayar. Jalur kontrol R/W harus berada dalam kondisi low (0) saat informasi
pada data bus akan dituliskan ke LCD. Apabila R/W berada dalam kondisi high
(1), maka program akan melakukan query (pembacaan) data dari LCD. Instruksi
pembacaan hanya satu, yaitu Get LCD status (membaca status LCD), lainnya merupakan
instruksi penulisan. Jadi hampir setiap aplikasi yang menggunakan LCD, R/W
selalu diset ke 0.
Jalur data dapat terdiri 4
atau 8 jalur (tergantung mode yang dipilih pengguna), mereka dinamakan DB0,
DB1, DB2, DB3, DB4, DB5, DB6 dan DB7. Mengirim data secara parallel baik 4 atau
8 bit merupakan 2 mode operasi primer. Untuk membuat sebuah aplikasi interface
LCD, menentukan mode operasi merupakan hal yang paling penting. Mode 8 bit
sangat baik digunakan ketika kecepatan menjadi keutamaan dalam sebuah aplikasi
dan setidaknya minimal tersedia 11 pin I/O (3 pin untuk kontrol, 8 pin untuk
data). Sedangkan mode 4 bit minimal hanya membutuhkan 7 bit (3 pin untuk
kontrol, 4 untuk data).
Motor DC
Motor DC adalah motor yang
nonterpolarisasi -yang berarti bahwa tegangan dapat di balikkan maka
putarannyapun akan berubah. Tegangan yang digunakan untuk memutar motor DC
sekitar 6V-24V atau lebih. Motor DC Yang digunakan pada robot sekitar motor DC
6V-12V. Jadi, mengapa motor beroperasi pada tegangan yang berbeda? Seperti yang
kita semua tahu (atau seharusnya tahu), tegangan secara langsung berkaitan
dengan torsi dari sebuah motor. Lebih besar tegangan, maka lebih besar torsi
yang dihasilkan. Tetapi dalam pemberian tegangan tidak boleh melebihi dari
tegangan yang di butuhkan. Misalkan pemberian tegangan hingga 100V, itu menyebabkan
motor tidak akan lagi berputar(rusak). Hal itu menyebabkan motor menjadi
terlalu panas dan kumparan akan meleleh.Meskipun motor 24V mungkin lebih kuat,
apakah benar-robot harus membawa baterai 24V (yang lebih berat dan lebih
besar,kecuali jika benar-benar membutuhkan sebuah torsi pada motor.
Ada beberapa macam driver
motor DC yang biasa kita pakai seperti menggunakan relay yang diaktifkan dengan
transistor sebagai saklar, namun yang demikian dianggap tidak efesien dalam
pengerjaan hardwarenya. Dengan berkembangnya dunia IC, sekarang sudah ada H
Bridge yang dikemas dalam satu IC dimana memudahkan kita dalam pelaksanaan hardware
dan kendalinya menggunakan mikrokontroler, berikut IC yang familiar dalam dunia
robotika seperti IC L298 dan L293, kedua IC ini memiliki kelebihan dan kekurangan
masing-masing. Modul yang menggunakan IC driver L298 yang memiliki kemampuan
menggerakkan motor DC sampai arus 4A dan tegangan maksimum 46 VoltDC untuk satu
kanalnya. Rangkaian driver motor DC dengan IC L298 diperlihatkan pada Gambar 2.4
Pin Enable A dan B untuk mengendalikan jalan atau kecepatan motor, pin
Input 1 sampai 4 untuk mengendalikan arah putaran. Pin Enable diberi VCC 5 Volt
untuk kecepatan penuh dan PWM (Pulse Width Modulation) untuk kecepatan
rotasi yang bervariasi tergantung dari level highnya. Ilustrasinya ditunjukkan
pada Gambar dibawah ini.
Gambar Rangkaian
Driver motor DC dengan L298
Kontrol PID
PID (dari singkatan bahasa
Proportional– Integral–Derivative controller) merupakan kontroler untuk
menentukan presisi suatu sistem instrumentasi dengan karakteristik adanya umpan
balik pada sistem tesebut. Komponen kontrol PID ini terdiri dari tiga jenis
yaitu Proportional, Integratif dan Derivatif. Ketiganya dapat dipakai bersamaan
maupun sendiri-sendiri tergantung dari respon yang kita inginkan terhadap suatu
plant.
Kontroler Proporsional (P)
Pengaruh pada sistem :
1.
Menambah
atau mengurangi
2.
kestabilan.
3.
Dapat
memperbaiki respon transien
4.
khususnya :
rise time, settling time
5.
Mengurangi
(bukan menghilangkan) Error steady state.
Kontroler Proporsional memberi pengaruh langsung (sebanding) pada
error.Semakin besar error, semakin besar sinyal kendali yang dihasilkan
kontroler.
Kontroler Integral (I)
Pengaruh pada sistem :
1.
Menghilangkan
Error Steady State
2.
Respon
lebih lambat (dibandingkan
1.
dengan P)
2.
Dapat
Menambah Ketidakstabilan
3.
(karena
menambah orde pada sistem)
Kontroler Derivatif (D)
Pengaruh pada sistem :
1.
Memberikan
efek redaman pada sistem yang berosilasi sehingga bias memperbesar pemberian
nilai Kp
2.
Memperbaiki
respon transien, karena memberikan aksi saat ada perubahan error
3.
D hanya
berubah saat ada perubahan error, sehingga saat ada error statis D tidak beraksi.Sehingga
D tidak boleh digunakan sendiri
Kontrol PID saat ini banyak digunakan
dalam aksi-aksi di dunia industri dan juga control robot. jika kita berbicara
kontrol robot line follower dengan PID maka bukanlah kontrol PID yang
sebenarnya sebab pada robot line follower elemen ukur (sensor) tidak terdapat
pada plant (motor penggerak) dari robot, yang serharusnya \adalah sensor
terdapat di plant(motor penggerak), dengan contoh tachometer sebagai sensor pada
motor, encoder atau yang lainnya yang terletak pada plant. sedangkan pada robot
line follower sensor berupa pendeteksi garis (tidak terletak pada plant) dan
dari hasil kondisi garis tersebut barulah dikontrol ke motor (plant), walaupun
begitu kontrol PID masih dapat diterapkan untuk mengendalikan robot line
follower. Berikut dijelaskan mengenai Blok aksi control PID pada Gambar dibawah
ini.
Gambar blok control PID
Dari blok diagram diatas dapat dijelaskan sebagai berikut
1.
SP = Set
point, secara simple maksudnya ialah suatu parameter nilai acuan atau nilai
yang kita inginkan.
2.
PV =
Present Value, kalo yang ini maksudnya ialah nilai bobot pembacaan sensor saat
itu atau variabel terukur yang di umpan balikan oleh sensor (sinyal feedback
dari sensor).
3.
Error =
nilai kesalahan, nach kalo yang ini pengertiannya ialah Deviasi atau simpangan
antar variabel terukur atau bobot sensor (PV) dengan nilai acuan (SP)
Nilai konstanta perhitungan
PID di tuning secara trial and error, proses ini dilakukan dengan metode
mencoba-coba (eksperimental) nilai proporsional, derivatif dan integratif pada
formula PID hingga ditemukan hasil sistem yag stabil, adapun cara yang dilakukan
untuk mentuning PID pada robot line follower ialah sebagai berikut:
1.
Langkah
awal gunakan control proporsional terlebih dahulu, abaikan konstanta integratif
dan derivatifnya dengan memberikan nilai nol pada integratif dan derivatif.
2.
Tambahkan
terus konstanta proporsional maksimum hingga keadaan stabil namun robot masih berosilasi.
3.
Untuk
meredam osilasi, tambahkan konstanta derivatif dengan membagi dua nilai
proporsional, amati keadaan sistem robot hingga stabil dan lebih responsif.
4.
Jika sistem
robot telah stabil, kontrol integratif dapat menjadi opsional, dalam artian
jika ingin mencoba-coba tambahkan control integratif tersebut, namun pemberian
nilai integratif yang tidak tepat dapat membuat system robot menjadi tidak
stabil.
5.
Nilai set
point kecepatan dan nilai batas bawah/atas memberikan patokan kecepatan robot.
6.
Nilai time
sampling (waktu cuplik) juga mempengaruhi perhitungan PID, tentunnya saat penggunaan
kontrol integratif dan derivatif.
Definisi-definisi yang digunakan dalam
PID:
Target Position - Untuk
mengikuti garis, posisi ini adalah tengah garis. Kita akan merepresentasikannya
dengan nilai nol.
Measured Position -
Seberapa jauh ke kiri atau ke kanan terhadap garis. Nilai ini dapat negative atau
positif untuk merepresentasikan posisi relatif terhadap garis.
Error - Perbedaan
antara target position dan measured position.
Proportional - Mengukur
berapa jauh robot kita keluar dari garis. Proportional merupakan dasar untuk
membaca posisi robot dengan menggunakan sensor. Semakin banyak data, semakin
akurat kita dapat mengukur posisi robot di atas garis.
Integral - Mengukur
akumulasi error terhadap waktu. Nilai integral naik ketika robot tidak berada
di tengah garis. Semakin lama robot tidak berada di tengah garis, semakin
tinggi nilai integral.
Derivative - Mengukur
seberapa sering robot bergerak dari kiri ke kanan atau dari kanan ke kiri.
Faktor P - Kp, adalah
konstanta yang digunakan untuk memperbesar dan memperkecil pengaruh dari
Proportional.
Faktor I - Ki, adalah
konstanta yang digunakan untuk memperbesar dan memperkecil pengaruh dari
Integral.
Faktor D - Kd, adalah
konstanta yang digunakan untuk memperbesar dan memperkecil pengaruh dari
Derivative.
PERANCANGAN ALAT
Prototipe robot ini
merupakan robot line follower menggunakan control PID. Robot ini berjalan
dengan bantuan sensor sebagai alat indra robot tersebut. Sensor membaca garis berwarna
hitam dan dasar jalur berwarna putih. Jika sensor membaca garis hitam, maka
sensor akan memberikan masukan tegangan ke komparator untuk dibandingkan.
Komparator mengeluarkan logika low sebagai masukan ke mikrokontroler untuk
diproses. Program akan menterjemahkan masukan untuk menggerakan roda dalam robot
line follower ini. Perancangan prototype robot line follower ini merupakan perancangan
secara perangkat keras dan perangkat lunak. Dalam perancangan ini meliputi analisa
rangkaian secara blok diagram, analisa rangkaian keseluruhan, diagram alur (flowchart)
dan analisa secara program.
Blok tegangan dan rangkaian regulator
Sumber tegangan yang
digunakan pada Robot Pengikut Garis ini menggunakan 2 tegangan yang berbeda pada
motor driver menggunakan 12 volt dan 5 volt, dan yang lainnya hanya perlu 5volt,
maka dari itu saya mengunakan masukan tegangan 12volt saja. Untuk blok blok rangkaian
lain saya menggunakan rangkaian regulator, dimana rangkaian ini dapat menghasilkan
tegangan 5 volt yang dibutuhkan pada blok rangjkain lainnya. Jadi pada alurnya dari
12 volt akan di sambungkan ke motor driver yang membutuhkan 12volt dan disambungkan
ke regulator, dari regulator disambungkan ke blok rangkaian yang membutuhkan tegangan 5volt
Blok sensor
Sensor garis disini adalah
suatu perangkat/alat yang digunakan untuk mendeteksi adanya sebuah garis atau
tidak. Garis yang dimaksud adalah garis berwarna hitam diatas permukaan berwarna
putih. Alat ini menggunakan teknik pantulan cahaya inframerah yang ditangkap
oleh photodioda dari sebuah LED Seperti layaknya manusia, bagaimana manusia
dapat berjalan pada mengikuti jalan yang ada tanpa menabrak dan sebagainya,
tentunya karena manusia memiliki “mata” sebagai penginderanya. Begitu juga
robot line follower ini, dia memiliki sensor garis yang berfungsi seperti
“mata” pada manusia. Sensor garis ini mendeteksi adanya garis atau tidak pada
permukaan lintasan robot tersebut, dan informasi yang diterima sensor garis
kemudian diteruskan ke prosesor untuk diolah sedemikian rupa dan akhirnya hasil
informasi hasil olahannya akan diteruskan ke penggerak atau motor agar motor
dapat menyesuaikan gerak tubuh robot sesuai garis yang dideteksinya. Pada
konstruksi yang sederhana, robot line follower memiliki dua sensor garis
(A-Kiri dan B-Kanan), yang terhubung ke dua motor (kanan dan kiri) secara
bersilang melalui sebuah prosesor/driver (lihat gambar). Sensor garis A (Kiri) mengendalikan
motor kanan, sedangkan sensor garis B (kanan) mengendalikan motor kiri.
Gambar Blok sensor
Ketika sensor A mendeteksi
garis sedangkan sensor B keluar garis ini berarti posisi robot berada lebih
sebelah kanan dari garis, untuk itu motor kanan akan aktif sedangkan motor kiri
akan mati. Akibatnya motor akan berbelok kearah kiri. Begitu sebaliknya ketika
sensor B mendeteksi garis, motor kiri aktif dan motor kanan mati, maka robot
akan berbelok ke kanan. Jika kedua sensor mendeteksi garis maka kedua motor
akan aktif dan robot akan bergerak maju
Blok Mikrokontroler
Didalam mikrokontroller
akan dimasukkan program yang akan menjalankan motor. Akan tetapi mikrokontroller
juga mempunyai input dan output sendiri, input dari sensor dan output
yang akan diteruskan ke motor driver
Gambar Blok Mikrokontroler
Blok Driver
Pada blok ini merupakan
penggerak pada motor, dimana membutuhkan tegangan 5volt dan 12volt, seperti pembahasan
yang telah diajarkan mikrokontroler akan aktif jika diberi logika low, mikrokontroler
akan memberikan output pada driver dengan
logika high ( “1“ ) dan pada saat itu driver akan menggerakan
motor.
Gambar Blok Driver
Analisa Rangkaian Secara Detail
Dalam pengoperasian
“Prototipe Robot Line follower dengan Kontrol PID” menggunakan tegangan DC 12v.
Tegangan tersebut dikonversikan oleh IC regulator LM 7805 untuk menghasilkan
tegangan 5v agar sesuai dengan tegangan mikrokontroler. Tengangan 5v tersebut mengaktifkan
rangkaian sensor, komparator, mikrokontroler, motor driver. Pada rangkaian
robot tersebut, sensor yang digunakan adalah sensor garis. Sensor garis berguna
untuk mengatur kemudi robot agar mengikuti garis yang telah dibuat. Sensor
tersebut merupakan rangkaian led sebagai pengirim cahaya dan rangkaian photo
dioda sebagai penerima cahaya. Pada saat cahaya led terkena jalur warna putih,
maka pantulan cahaya led akan mengenai photo dioda sehingga resistansi pada
photo dioda sangat kecil. Sedangkan saat cahaya led terkena
garis hitam, maka cahaya led akan terserap oleh warna hitam
sehingga resistansi pada photo dioda besar. Saat resistansi pada photo dioda
kecil maka tegangan pada photo dioda besar, sedangkan saat resistansi pada
photo dioda besar maka tegangan pada photo dioda kecil. Tegangan photo dioda akan
masuk ke dalam komparator. Komparator berfungsi membandingkan tegangan photo
dioda dengan tegangan referensi. Jika tegangan photo dioda lebih besar daripada
tegangan referensi, maka keluaran dari rangkaian komparator berlogika high.
Jika tegangan photo diode lebih kecil daripada tegangan referensi, maka
keluaran dari rangkaian komparator berlogika low.Keluaran dari komparatorakan\masukkedalam
mikrokontroler. Masukan pada robot ini berupa aktif low karena pada program
masukandari blok inputan diinisialisasikan sebagai aktif low. Jadi pada robot
ini akan bergerak jika sensor terkena garis warna hitam.
Cara pengoperasian alat
Pada robot Line Follower ini, pengoprasian alat menggunakan
tegangan baterai sebesar 12V Algoritma pengoprasian alat sebagai berikut:
1. Hubungkan prototipe line follower dengan tegangan 12v. Tegangan
dapat berasal baterai.
2. Tempatkan line follower pada jalurnya. Jalur berupa garis hitam
dengan dasar berwarna putih.
3. Robot akan berjalan
sesuai jalur dengan algoritma
Cara kerja alat
Cara kerja dari robot line follower ini dibagi dalam dua bagian, yakni cara kerja
dari sensor garis dan prinsip kerja control PID.
Cara kerja sensor
Prinsip kerja sensor pada
robot line follower ini berasal dari cahaya led yang dipantulkan medium
berwarna hitam dan putih. Pada saat cahaya led terkena medium berwarna putih,
maka cahaya led akan memantul sempurna dan diterima oleh photo dioda dengan
baik. Sedangkan saat cahaya led terkena medium berwarna hitam, maka cahaya led
akan memantul sangat sedikit ke photo dioda karena terserap oleh medium
berwarna hitam. Oleh karena itu, resistansi pada photo dioda sangat berbeda.
Prinsip kerja control PID
Robot line follower dengan control
PID adalah salah satu bentuk pengaplikasian dari IC mikrokontroler Atmega8535,
yang dalam pengoperasianya menggunakan sensor garis yang berupa rangkaian LED
dan photo dioda. Prinsip kerja kontrol PIDrobot ini adalah menggunakan 8(delapan)
sensor di depan untuk mengikuti garis. Lebar garis yang ideal untuk dilalui
robot line follower ini sekitar 1,5 – 2 cm, dengan kemungkinan 2-3 sensor dapat
mengenai garis. Langkah selanjutnya yaitu melakukan mapping nilai sensor untuk
mendapatkan process variable (PV). Kurang lebih seperti berikut (misal nilai 0
merepresentasikan sensor mengenai garis):
11111110 (-7) // ujung kiri
11111000 (-6)
11111100 (-6)
11111101 (-5)
11110001 (-4)
11111001 (-4)
11111011 (-3)
11100011 (-2)
11110011 (-2)
11110111 (-1)
11100111 (0) // tengah
11101111 (1)
11000111 (2)
11001111 (2)
11011111 (3)
10001111 (4)
10011111 (4)
10111111 (5)
00011111 (6)
00111111 (6)
01111111 (7) // ujung kanan
11111111 (8 / -8) // loss
Kondisi ideal pada robot
adalah bergerak maju lurus mengikuti garis, dengan kata lain PV = 0 (nilai
sensor = 11100111). Dari sini bisa kita asumsikan Set Point (SP) /
kondisi ideal adalah saat SP = 0. Nilai sensor yang dibaca oleh sensor disebut
Process Variable (PV) / nilai actual pembacaan. Menyimpangnya posisi robot dari
garis disebut sebagai error (e), yang didapat dari e = SP - PV. Dengan
mengetahui besar error, microcontroller dapat memberikan nilai PWM motor
kanan dan kiri yang sesuai agar dapat menuju ke posisi ideal (SP = 0). Besar
PWM ini bisa kita dapatkan dengan menggunakan kontrol Proportional (P),
dimana P = e * Kp (Kp adalah konstanta proportional yang nilainya kita set
sendiri dari hasil tuning). Misalkan nilai PWM didefinisikan dari 0 – 255 dengan
nilai 0 berarti berhenti dan 255 berarti kecepatan penuh. Dari data nilai 8 sensor
yang telah dimapping ada 16 PWM untuk tiap motor. Tapi dalam kondisi real dimisalkan
saat sepelan-pelannya motor adalah PWM < 30 dan secepat-cepatnya (maju
lurus) adalah 250. Saat PV = 8 atau -8 itu tergantung dari kondisi PV
sebelumnya, jika PV lebih besar dari 0 maka, nilai PV adalah 8 dan jika PV kurang
dari 0 maka nilai PV adalah -8. Dalam pemrograman robot line follower
ini kodenya ditulis secara sederhana seperti berikut:
If Sensor = &B11111111 Then
If Pv < 0 Then : Pv = -30
End If
If Pv > 0 Then : Pv = 30
End If
End If
Perhitungan kendali proporsional
Dengan mengukur seberapa
jauh robot menyimpang dari kondisi ideal, sistem kontrol P sudah diterapkan.
Output (berupa nilai PWM) didapat dari perhitungan yang melibatkan hanya
variable P = e * Kp. Jika pergerakan robot masih terlihat bergelombang, bias ditambahkan
control Derivative (D). Kontrol D digunakan untuk mengukur seberapa
cepat robot bergerak dari kiri ke kanan atau dari kanan ke kiri. Semakin cepat
bergerak dari satu sisi ke sisi lainnya, maka semakin besar nilai D. Konstanta
D (Kd) digunakan untuk menambah atau mengurangi imbas dari derivative. Dengan
mendapatkan nilai Kd yang tepat pergerakan sisi ke sisi yang bergelombang
akibat dari proportional PWM bisa diminimalisasi. Nilai D didapat dari: D = Kd
* rate, dimana rate = e(n) - e(n-1). Dalam program nilai error (SP – PV) saat
itu menjadi nilai last_error, sehingga rate didapat dari error - last_error
Perhitungan kendali proporsional + Derivatif
Jika dengan P + D sudah
membuat pergerakan robot cukup smooth, maka penambahan Integral menjadi
opsional. Jika ingin mencoba-coba bias ditambahakan Integral (I). I
digunakan untuk mengakumulasi error dan mengetahui durasi error. Dengan
menjumlahkan error disetiap pembacaan PV akan memberikan akumulasi offset yang
harus diperbaiki sebelumnya. Saat robot
bergerak menjauhi garis, maka nilai error akan bertambah. Semakin lama tidak mendapatkan
SP, maka semakin besar nilai I. Degan mendapatkan nilai Ki yang tepat, imbas
dari Integral bisa dikurangi. Nilai akumulasi error didapat dari: I = I + error.
Nilai I sendiri : I = I * Ki.
Tidak ada komentar:
Posting Komentar