Mikrokontroler
OLEH :
RIANTI RAHMI
1423040004
S1. A
Dr. Hendra Jaya, S.Pd, M.T ( NIP. 19820907 200501 1 007 )
JURUSAN PENDIDIKAN
TEKNIK ELEKTRONIKA
FAKULTAS TEKNIK
UNIVERSITAS NEGERI
MAKASSAR
2017
BAB I
PENDAHULUAN
Penggunaan teknik kendali Fuzzy Logic telah cukup meluas
pada berbagai aplikasi mulai dari consummer electronics, robotics, kendali
industri, dan lain-lain. Implementasi kendali Fuzzy biasanya dilakukan oleh
multi-purpose mikroprosesor, mikrokontroler maupun prosesor khusus berupa Fuzzy
Logic Processor. Biasanya dibutuhkan alat atau software bantu untuk
mengembangkan aplikasi fuzzy mulai dari tahap perancangan, evaluasi,
implementasi dan penalaan (tuning).
Makalah ini menyajikan sebuah sistem pengembangan fuzzy
logic (PetraFuz, Petra Fuzzy Development System) yang dikembangkan oleh
laboratorium Sistem Kontrol, Jurusan Teknik Elektro, Universitas Kristen Petra
Surabaya. Sistem ini terdiri dari perangkat keras sistem mikrokontroler MCS51
dan perangkat lunak pendukung yang berjalan pada PC. Pembuatan PetraFuz
bertujuan untuk menyediakan
alat/software bantu dalam pengembangan sistem berbasis fuzzy logic, utamanya
pada aplikasi bidang kendali.
Proyek ini diinspirasi oleh proyek serupa yang
dikembangkan oleh Motorola (FUDGE, Fuzzy Design Generator) yang ditujukan untuk
implementasi fuzzy pada mikroprosesor 68HC11, 6805 dan 68000(2).
Sistem PetraFuz dikembangkan dengan kemampuan lebih yaitu berupa sistem
pengembangan fuzzy yang terintegrasi dengan dilengkapi dengan sistem target
perangkat keras. Program pada PC berinteraksi langsung dengan sistem target
melalui komunikasi serial RS232. Sistem
PetraFuz memilih platform mikrokontroler keluarga MCS51 karena ketersediaan dan
kepopuleran penggunaan prosesor ini di Indonesia. Sistem PetraFuz diharapkan
dapat memberikan kontribusi positip bagi masyarakat sistem kendali untuk
mengembangkan berbagai aplikasi kendali
berbasis fuzzy logic.
BAB II
PEMBAHASAN
A. Pengertian Mikrokontroler
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.
Kelebihan utama dari mikrokontroler ialah tersedianya
RAM dan peralatan I/O pendukung sehingga ukuran board mikrokontroler menjadi
sangat ringkas. Mikrokontroler MCS51 ialah mikrokomputer CMOS 8 bit dengan 4 KB
Flash PEROM (Programmable and Erasable Only Memory) yang dapat dihapus dan
ditulisi sebanyak 1000 kali. Mikrokontroler ini diproduksi dengan menggunakan
teknologi high density non-volatile memory. Flash PEROM on-chip tersebut memungkinkan
memori program untuk diprogram ulang dalam sistem (in-system programming) atau
dengan menggunakan programmer non-volatile memory konvensional. Kombinasi CPU 8
bit serba guna dan Flash PEROM, menjadikan mikrokontroler MCS51 menjadi
microcomputer handal yang fleksibel.
Bentuk Fisik Mikrokontroler Keluarga MCS51 40 Pin
Arsitektur perangkat keras mikrokontroler MCS51
mempunyai 40 kaki, 32 kaki digunakan untuk keperluan 4 buah port pararel. 1
port terdiri dari 8 kaki yang dapat di hubungkan untuk interfacing ke pararel
device, seperti ADC, sensor dan sebagainya, atau dapat juga digunakan secara
sendiri setiap bitnya untuk interfacing single bit septerti switch, LED, dll.
Karakteristik lainya dari mikrokontroler MCS51 sebagai
berikut :
- Low-power
- 32 jalur masukan/keluaran yang dapat diprogram*
- Dua timer counter 16 bit
- RAM 128 byte
- Lima interrupt
Tidak seperti sistem komputer, yang mampu
menanganiberbagai macam program aplikasi (misalnya pengolah kata, pengolah
angkadan lain sebagainya), mikrokontroler hanya bisa digunakan untuk suatu
aplikasi tertentu saja (hanya satu program saja yang bisa disimpan). Perbedaan
lainnya terletak pada perbandingan RAM dan ROM. Pada sistem komputer
perbandingan RAM dan ROM-nya besar, artinya program-program pengguna disimpan
dalam ruang RAM yang relatif besar, sedangkan rutin-rutin antarmuka perangkat keras
disimpan dalam ruang ROM yang kecil. Sedangkan pada Mikrokontroler,
perbandingan ROM dan RAM-nya yang besar, artinya program kontrol disimpan dalam
ROM (bisa Masked ROM atau Flash PEROM) yang ukurannya relatif lebih besar,
sedangkan RAM digunakan sebagai tempat penyimpan sementara, termasuk
register-register yang digunakan pada mikrokontroler yang bersangkutan.
Kelebihan Sistem Dengan Mikrokontroler
- Penggerak pada mikrokontoler menggunakan bahasa pemograman assembly dengan berpatokan pada kaidah digital dasar sehingga pengoperasian sistem menjadi sangat mudah dikerjakan sesuai dengan logika sistem (bahasa assembly ini mudah dimengerti karena menggunakan bahasa assembly aplikasi dimana parameter input dan output langsung bisa diakses tanpa menggunakan banyak perintah). Desain bahasa assembly ini tidak menggunakan begitu banyak syarat penulisan bahasa pemrograman seperti huruf besar dan huruf kecil untuk bahasa assembly tetap diwajarkan.
- Mikrokontroler tersusun dalam satu chip dimana prosesor, memori, dan I/O terintegrasi menjadi satu kesatuan kontrol sistem sehingga mikrokontroler dapat dikatakan sebagai komputer mini yang dapat bekerja secara inovatif sesuai dengan kebutuhan sistem.
Sistem running bersifat
berdiri sendiri tanpa tergantung dengan komputer sedangkan parameter komputer
hanya digunakan untuk download perintah instruksi atau program. Langkah-langkah
untuk downloa
- komputer dengan mikrokontroler sangat mudah digunakan karena tidak menggunakan banyak perintah.
- Pada mikrokontroler tersedia fasilitas tambahan untuk pengembangan memori dan I/O yang disesuaikan dengan kebutuhan sistem.
- Harga untuk memperoleh alat ini lebih murah dan mudah didapat.
2. SISTEM PETRAFUZ
Sistem PetraFuz
terdiri dari 2 bagian yaitu sistem software yang berjalan pada PC dan sistem target perangkat keras berupa
sistem mikrokontroler MCS51. Blok diagram sistem PetraFuz seperti pada gambar
1.
Gambar 1. blok Diagram Sistem Petrafuz
Proses perancangan, evaluasi, pembentukan program
assembly dan proses downloading MCS51 machine code menuju sistem target
dilakukan oleh program yang berjalan pada PC yaitu PetraFuz51 software.
Sedangkan sistem target melakukan proses
fuzzy logic yang berinteraksi dengan perangkat I/O ke dunia luar. Proses fuzzy
logic yang dilakukan oleh sistem target meliputi proses fuzzification, rule
evaluation dan defuzzification. Program PetraFuz51 dibuat dengan Delphi v.2
berbasis Windows dengan kemampuan graphical user interface sehingga memudahkan
user dalam penggunaanya. Perancangan
kendali meliputi pembentukan fuzzy membership function untuk input maupun
output (maksimum 5 input, 3 output dan 8 label per input/output) serta
pembentukan fuzzy if-then rules. Sedangkan proses evaluasi kendali menyajikan
control surface untuk berbagai kombinasi input kendali. Dengan demikian
pengguna dapat melihat respon kendali sebelum kendali sesungguhnya dijalankan
oleh perangkat keras sistem target.
PetraFuz51 juga
membentuk program bahasa assembly MCS51 yang selanjutnya dicompile dan
didownload menuju sistem target melalui serial komunikasi RS232. Sistem target
perangkat keras terdiri dari mikrokontroler MCS51 dilengkapi dengan paralel I/O
serta interface analog (ADC/DAC).
Aksi kendali
dapat diakuisisi oleh program PC melalui komunikasi serial RS232 sehingga
respon kendali dapat digambarkan pada layar monitor untuk dilakukan analisis
lebih lanjut yang diperlukan pada proses tuning if-then fuzzy rules. Selain
respon kendali, masing-masing input fuzzy logic juga dapat diamati melalui
layar monitor.
Secara umum
kemampuan sistem PetraFuz adalah:
- Max. 5 Input
- Max. 3 Output
- 8 Membership Functions per Input
- 8 Membership Functions per Output
- 1024 if-then Rule
- 15 Characters per Name (Input, Output, Member).
- 4 Points per Input Member. (Trapezoid MF)
- 1 Point per Output Member. (Singleton MF)3. CONTOH PENGGUNAAN PETRAFUZ
Program PetraFuz51 meyediakan beberapa fasilitas yaitu
perancangan input dan output membership function (MF), perancangan fuzzy
if-then rules, fuzzy logic evaluator, control surface, pembentukan assembly code, downloader ke
sistem target dan data acquisition. Secara umum penggunaan PetraFuz dapat
dibagi atas tahap-tahap berikut yaitu tahap pertama mendisain fuzzy inference
system yang meliputi perancangan input dan output fuzzy beserta membership
functionnya dan perancangan fuzzy if-then rules. Tahap kedua pembentukan
database (yang terdiri dari MF dan if-then rules) dari hasil perancangan tahap
pertama dalam bahasa assembly MCS51 yang akan digabungkan dengan user program.
Adapun user program yang dimaksud adalah program yang dibuat user untuk akses data dari/ke I/O interface baik analog maupun
digital sesuai dengan sistem kendali yang dirancang. Tahap ketiga adalah user program dicompile terlebih
dahulu untuk menghasilkan machine code, baru kemudian machine code tersebut
didownload ke sistem target mikrokontroler MCS51.
Untuk memberi
gambaran yang lebih jelas diambil contoh penggunaan PetraFuz pada sistem
kendali temperatur udara yang menggunakan bola lampu sebagai pemanas dan kipas sebagai pedingin. Input sistem fuzzy
disini adalah Error dan Delta_Error temperatur udara terhadap Setting Point
yang diinginkan. Input Error adalah selisih antara Setting Point dengan Present
Value (Error= SP - PV) sedangkan Delta_Error adalah kecepatan perubahan error
yang terjadi, Delta_Error = Error (n) -
Error (n-1)
Pertama
dilakukan pengisian spesifikasi dari
crisp input dan crisp output yaitu nama, satuan, nilai minimum, nilai maksimum dan jumlah label membership
function. Tampilan menu dapat dilihat pada gambar 2 dan gambar 3.
Gambar 2 Menu Edit Crisp Input
Gambar 3
Menu Edit Crisp Output
Dalam sistem
kendali temperatur ini sebagai crisp input adalah Error dan Delta_Error
sedangkan crisp output adalah Lampu dan Kipas. Dari gambar 2 dan 3 dapat
dilihat bahwa input Error mempunyai 5 label membership function dengan nilai
minimum –255 dan nilai maksimum 255 dan output lampu mempunyai 5 label membership
function dengan nilai minimum –2 dan nilai maksimum 2. Input Delta_Error mempunyai 5 label dengan nilai minimum –255 dan nilai maksimum
255. Output kipas mempunyai 2 fuzzy label dengan nilai minimum –1 dan nilai
maksimum 1.
Perancangan membership function dapat dilakukan dengan
mudah baik secara grafis maupun dengan cara mengisi nilai point dari membership
function. Bentuk input membership
function hanya bisa dibuat dalam bentuk trapesium atau segitiga. Membership
function ini dibentuk oleh 4 point yang dapat dimasukan dalam program.
Sedangkan output membership function hanya bisa dibuat dalam bentuk singleton
yang dibentuk dengan 1 point yaitu posisi nilai crisp dimana MF ini berada.
Tampilan pembentukan MF dapat dilihat
pada gambar 4 dan gambar 5.
Dari gambar 4
dapat dilihat bahwa input Error mempunyai 5 label, 2 berbentuk trapesium, 3 berbentuk segitiga.
Label 0 dari input Error diberi nama NB
dengan nilai point1 = -255, point2 =
-255, point3 = -170 dan point4 = -85 dan bentuk membershipnya adalah
trapesium. Dari gambar 5 dapat dilihat bahwa output lampu mempunyai 5 label
yang semuanya berbentuk single. Label 0 dari
output lampu diberi nama NB dengan nilai point = -2 yang berarti
mematikan 2 lampu. Nama label input
Error adalah NB, NS, Z, PS, PB. Input Delta_Error mempunyai membership function
sama dengan input Error. Output kipas hanya mempunyai 2 label yaitu N dan P.
Label N menyatakan kipas dimatikan, P menyatakan kipas dinyalakan.
Gambar 4
Menu Input Membership Function
Gambar 5
Menu Output Membership Function
Gambar 6
Menu Edit Rule
Gambar 7 Menu Add Rule
Gambar 6 menampilkan tampilan menu pembentukan fuzzy
if-then rules. Kapasitas maksimum rule yang dapat dibuat dalam program
PetraFuz51 adalah sebanyak 1024 rule dengan tanpa membatasi jumlah antecedent
dan consequent dari tiap rule. Untuk menambah rule dapat dilakukan dengan click
pada Add Rule dan akan keluar tampilan seperti gambar 7.
Fasilitas fuzzy
logic evaluator disediakan untuk evaluasi sistem kendali yang dirancang.
Pengguna dapat mengetahui hasil fuzzifikasi, hasil evaluasi rule yaitu
rule-rule mana yang aktif, hasil defuzzifikasi bila input diset pada nilai
tertentu. Dengan demikian memberikan gambaran kepada pengguna tentang aksi
kendali fuzzy logic yang telah dirancang.
Tampilan menu dapat dilihat pada gambar 8.
Gambar
8 Tampilan Menu Fuzzy Logic Evaluator
Fasilitas control surface disediakan untuk mengevaluasi
aksi sistem kendali yang dirancang sebelum sistem kendali yang sesungguhnya di
jalankan oleh sistem target. Control surface menyajikan grafik fuzzy output
terhadap variasi salah satu input. Bila
input lebih dari satu maka input yang lainnya dianggap konstan. Tampilan menu
control surface dapat dilihat pada gambar 9. Disini ditampilkan grafik output
Lampu terhadap input Error dengan nilai Delta_Error=0. Grafik dapat dibentuk
untuk nilai Delta_Error lainnya yang dikehendaki.
Grafik output lampu terhadap input Error dari sistem kendali temperatur yang dirancang dapat dilihat pada gambar 10, 11 dan 12
Gambar
9 Tampilan Menu Control Surface
Gambar 10 Grafik Output Lampu terhadap Input Error
dengan Delta_Error = 0
Gambar
11 Grafik Output Lampu terhadap Input
Error dengan Delta_Error = 50
Gambar
12 Grafik Output Lampu terhadap Input
Error dengan Delta_Error = 100
Membership function dan rule yang telah didesain harus dikonversi ke
dalam bentuk bahasa assembly MCS51 agar bisa digabungkan dengan user program
yang akan didownload ke sistem target mikrokontroler MCS51. Hal ini dapat
dilakukan dengan memanfaatkan fasilitas generate code. Fasilitas ini akan
mempersiapkan database dari membership function dan rule dan menyimpannya dalam
file dengan extension .ASM. Semua range nilai baik untuk input maupun output
akan dikonversi (normalisasi) ke range 0 – FFh sehingga dalam program bahasa
assembly dapat diminimalkan penggunaan bilangan negatif. Tampilan menu generate
code dapat dilihat pada gambar 13.
Gambar 13
Menu Generate Code
File .ASM yang dihasilkan mempunyai format khusus, hanya
bisa digunakan untuk PetraFuz Routine Engine yang tersedia dalam kernel sistem
target mikrokontroler MCS51. PetraFuz Routine Engine adalah suatu procedure
yang melakukan proses fuzzy logic meliputi proses fuzzifikasi, pengevaluasian
rule dan defuzzifikasi. Metode defuzzifikasi yang digunakan adalah Center of
Gravity atau Center of Area. Dengan demikian user hanya perlu membuat program
untuk interaksi dengan I/O ke dunia luar. Data yang dibaca dimasukkan ke
parameter input fuzzy, PetraFuz routine yang akan melakukan proses fuzzy logic
dan menghasilkan output fuzzy, yang oleh user program akan diolah dan
dikeluarkan ke interface dengan dunia luar. Routine ini besifat general,
berlaku untuk jumlah input dan output yang bervariasi (maksimum 5 input dan 3
output) serta jumlah rule yang bervariasi (maksimum 1024 rule).
File hasil bentukan Generate Code selanjutnya digabungkan
dengan user program lalu dicompile. Setelah user program dicompile membentuk
machine code, maka machine code tersebut selanjutnya didownload ke sistem
target mikrokontroler sehingga sistem mikrokontroler dapat menjalankan proses
kontrol fuzzy logic. User program harus dicompile dalam bentuk Intel Hex Format
karena program downloader yang dibuat dalam program PetraFuz51 disini bekerja
berdasarkan format Intel Hex. Tampilan menu downloader dapat dilihat pada
gambar 14.
Gambar 15 Grafik Nilai Respon Sistem
Gambar 16 Grafik Input Error
Gambar 17 Grafik Input Delta_Error
4. PELUANG
PENGGUNAAN PETRAFUZ
Selama ini
cukup banyak para praktisi sistem kendali mengalami kesulitan dalam
mengaplikasikan metode fuzzy logic dalam sistem kendali terutama sampai pada
level implementasi hardware. Salah satu
alasannya adalah karena tidak didukung oleh fuzzy development tools yang
dilengkapi dengan target sistem perangkat keras. Sistem PetraFuz menyediakan
tools yang cukup lengkap mulai dari proses desain membership function dan
pembentukan fuzzy if-then rule sampai pada proses kendali fuzzy logic yang
dilaksanakan oleh sistem target perangkat keras. Pada kenyataannya dalam
kendali fuzzy logic, bagian yang tersulit adalah mendesain membership function
dan fuzzy rules sehingga didapatkan yang optimum dan menghasilkan kendali fuzzy
logic yang memadai. Untuk mendapatkan hasil yang terbaik maka harus dilakukan
percobaan yang berulang-ulang. Ini akan menjadi suatu kendala tersendiri bila
tidak mempunyai tools yang menunjang.
Dari hasil
pengujian yang dilakukan, PetraFuz Routine Engine mampu mengevaluate lebih
kurang 16000 rule dalam satu detik. Pengujian ini dilakukan dengan kondisi tiap
rule mempunyai 2 antecendent dan 1 consequent dan sistem clok yang digunakan
pada prosesor MCS51 adalah 2 MHz. Ini berarti untuk mengevaluate satu rule,
PetraFuz Routine Engine membutuhkan waktu lebih kurang 62,5 mikrodetik. Jika
sistem kendali fuzzy logic mempunyai 2 input 1 output dan masing-masing input
mempunyai 5 label membership function maka jumlah maksimum rule adalah 25
sehingga waktu untuk mengevaluate rule tidak lebih dari 1,5625 milidetik.
Dengan waktu
akses yang cukup cepat ini, maka sistem PetraFuz dapat digunakan pada sistem
kendali yang mempunyai respon yang relatif cepat seperti mengendalikan kecepatan
motor DC, kontrol posisi dan lain-lain. Selain itu sistem ini berpeluang untuk
digunakan pada aplikasi proses kendali
industri seperti pressure control, chemical process control, kiln control dan
lain-lain.
Sistem ini juga
berpeluang dimanfaatkan untuk pengembangan kendali untuk bidang pertanian,
misalnya pada kendali temperatur untuk cold/hot storage produk-produk pertanian
yang membutuhkan kondisi temperatur tertentu. Dapat pula digunakan untuk
pengendalian kadar PH air tambak, identifikasi level kematangan produk
pertanian, dan lain-lain.
Sistem PetraFuz
telah dimanfaatkan sebagai modul praktikum Kendali Fuzzy Logic pada institusi
penulis dan terlihat cukup bermanfaat bagi pemula untuk memahami dan merancang
sistem kendali fuzzy. Disamping itu pula tools ini memberikan pemahaman aspek
implementasi khususnya menggunakan mikrokontroler.
5. KESIMPULAN
Dari hasil eksperimen pembuatan dan pemanfaatan sistem
pengembangan fuzzy logic PetraFuz penulis mencatat beberapa hal antara lain:
- Sistem PetraFuz relatif mudah digunakan dan bermanfaat bagi pemula yang ingin bereksperimen sistem kendali berbasis fuzzy logic yang diimplementasikan pada mikrokontroler. Saat ini mikrokontroler yang dapat digunakan terbatas pada keluarga MCS51, dan tidak tertutup kemungkinan untuk dikembangkan fuzzy kernel untuk berbagai prosesor misalkan 8088, MCS96, Z80 atau lainnya.
- Sistem PetraFuz menyediakan kemampuan yang interaktif dan terintegrasi dengan sistem target perangkat keras. Dengan tools ini meningkatkan peluang pemanfaatan konsep kendali fuzzy pada berbagai bidang di Indonesia, khususnya pada bidang kendali pada pertanian.
- Masih terbuka pengembangan lebih lanjut dari sistem ini untuk mengakomodasi jumlah input/output yang lebih banyak, variasi bentuk membership function dan berbagai metode defuzzifikasi. Juga tidak menutup kemungkinan untuk memadukan metode jaringan saraf tiruan dengan fuzzy logic untuk membentuk kendali cerdas.DAFTAR PUSTAKAAdvanced Micro Device, “Microcontrollers Handbook”, California : Advanced Micro Device, 1988.Alex De Castro, Jason Spelman, John Dumas, "Fuzzy Designer Generator (FUDGE)", Motorola Inc., 1994Center for Emerging Computer Technologies, "Fuzzy Logic Education Program", Motorola Inc., 1994Klir, George J, “Fuzzy Sets and Fuzzy Logics : Theory and Applications”, NJ : Prentice Hall, 1995.Sanchez, Julio, “IBM Microcomputers : A Programmer’s Handbook”, New York : McGraw-Hill, 1990
Komentar
Posting Komentar