Anda di halaman 1dari 11

DESAIN PENGLAMATAN PORT MIKROKONTROL

ARDUINO DENGAN PROTOKOL FIRMATA


PADA ANTARMUKA KOMPUTER
YANG BERBASISKAN LABVIEW
Kristian Ismail1, Agus Risdiyanto2
1,2
Pusat Penelitian Tenaga Listrik dan Mekatronik LIPI Bandung

ABSTARKSI

Mikrokontroler Arduino sangat populer digunakan oleh kalangan mahasiswa maupun oleh
para pengembang karena pengoperasiannya yang mudah, memiliki modul-modul tambahan
yang lengkap, bahasa pemograman yang user friendly, referensinya banyak, dan semua
software pendukung bersifat open source. Mikrokontroler Arduino memiliki fitur untuk
berkomunikasi dengan komputer pribadi (PC) melalui komunikasi serial sehingga board
Arduino dapat dijadikan jembatan antara komputer dan aktuatornya (Antarmuka). Sistem
pengaturan real time pada komputer memerlukan software dan hardware yang berkesesuaian
satu sama lain. Pada tulisan ini software yang digunakan pada grafic user interface (GUI )
adalah LabVIEW. Alasan menggunakan LabVIEW dikarenakan memiliki protokol yang
langsung dapat menggunakan board Arduino tanpa harus harus sering memprogram board
Arduino melalui IDE Arduino yang dikenal dengan protokol firmata. Namun ada sedikit
kekurangan dari board Arduino yaitu board hanya memiliki fasilitas pengalamatan per bit.
Untuk aktuator yang bersifat on/off tidak terjadi masalah, namun ketika dibutuhkan keluaran
numerik biner maka dibutuhkan pengalamatan per port. Hasil akhir tulisan ini adalah sebuah
desain sistem real time kontroler and monitoring dengan keluaran dua buah port masing-
masing enam bit.

Keywords : Mikrokontroler Arduino, labview, real time kontroler, protokol fermata

I. Pendahuluan
Sejak 1990-an, industri komputer berbasis PC, perangkat I/O, perangkat pemantauan, kontrol
jaringan yang terdiri dari sistem otomasi berbasis PC telah berkembang pesat dan menjadi
realisasi cara penting untuk murah pada otomasi industri. Hampir semua perusahaan besar
dibidang industri menghapus pengendali analog dan digital untuk kemudian beralih ke bentuk
sistem kontrol PC. Sebagai PC berbasis pengendali terbukti dapat diandalkan sebagai
peralatan pengoperasian. Sistem kontrol berbasis PC mudah untuk diinstal dan digunakan,
dengan kemampuan diagnostik canggih untuk sistem integrator untuk memberikan pilihan
yang lebih fleksibel, dari perspektif, sistem kontrol PC jangka panjang dan biaya perawatan
yang rendah.

1
1.1 Board Arduino
Arduino merupakan platform pengembangan mikrokontroler yang banyak digunakan untuk
berbagai macam kalangan di seluruh dunia. Penggunaannya yang terbilang mudah menjadi
daya tarik tersendiri bagi seluruh kalangan yang membutuhkan teknologi otomasi namun
tidak menginginkan faktor kerumitan yang berlebih.

Pengguna mikrokontroler yang sudah familiar dengan arsitektur yang digunakan (seperti
8051, PIC, AVR) tentu akan mempertimbangkan kenapa harus beralih menggunakan
Arduino. Beberapa alasan yang dapat dijadikan sebagai pertimbangan utama adalah sebagai
berikut:
1. Penggunaan yang mudah dari Arduino tidak menuju kepada pembuatan sistem jadi yang
asal-asalan. Namun sebaliknya, dengan kemudahan tersebut pengembangan sistem dapat
difokuskan kepada alur kerja sistem yang lebih kompleks. Pengembang sistem tidak lagi
perlu dan selalu direpotkan dengan pengaturan-pengaturan register, fusebit, dan lain-lain.
2. Hardware Arduino memiliki standar unik yaitu Shield form factor. Dengan standar ini,
proses untuk menghubungkan Arduino dengan modul eksternal (modul sensor, modul
GPS, modul Ethernet, modul I/O, dll.) menjadi jauh lebih mudah ditambah tidak perlu
lagi menggunakan kabel, karena modul-modul eksternal tersebut dapat dihubungkan
hanya dengan menumpuknya di atas modul Arduino.
3. Bahasa pemrograman Arduino relatif mudah, yaitu menggunakan bahasa pemrograman
tingkat tinggi yang sudah mendukung fitur OOP (Object Oriented Programming). OOP
ditujukan untuk mempermudah serta membuat susunan pemrograman menjadi lebih
terstruktur.
4. Arduino bersifat open source serta memiliki dukungan yang luar biasa dari komunitas
penggunanya. Karena Arduino bersifat open source, maka modifikasi/hack dapat
dilakukan sewaktu-waktu apabila diperlukan. Komunitas Arduino merupakan wadah kita
untuk bertukar informasi mengenai berbagai macam project Arduino dengan seluruh
penggunanya.

Arduino Leonardo adalah papan mikrokontroler berbasis ATmega32U4 (datasheet


ATmega32U4). Arduino Leonardo memiliki 20 digital pin input/output (yang mana 7 pin

2
dapat digunakan sebagai output PWM dan 12 pin sebagai input analog), 16 MHz kristal
osilator, koneksi micro USB, jack power suplai tegangan, header ICSP, dan tombol reset. Ini
semua yang diperlukan untuk mendukung mikrokontroler. Namun pin tersebut bekerja secara
bit atau indipenden terhadap pin yang lain (tidak bekerja secara Byte/Port). Cukup dengan
menghubungkannya ke komputer melalui kabel USB atau power dihubungkan dengan adaptor
AC-DC atau baterai untuk mulai mengaktifkannya.

Leonardo berbeda dari semua papan Arduino yang lainnya karena ATmega32U4 secara
terintegrasi (built-in) telah memiliki komunikasi USB, sehingga tidak lagi membutuhkan
prosesor sekunder (tanpa chip ATmega16U2 sebagai konverter USB-to-serial). Hal ini
memungkinkan Arduino Leonardo yang terhubung ke komputer digunakan sebagai mouse
dan keyboard, selain bisa digunakan sebagai virtual (CDC) serial/COM port.

Arduino diciptakan untuk para pemula bahkan yang tidak memiliki dasar bahasa pemograman
sama sekali karena menggunakan bahasa C++ yang telah dipermudah melalui library.
Arduino menggunakan software processing yang digunakan untuk menulis program kedalam
Arduino. Processing sendiri merupakan penggabungan antara bahasa C++ dan Java. Software
Arduino ini dapat di-install di berbagai operating system (OS) seperti : LINUX, Mac OS,
Windows.

1.2 LabVIEW (Laboratory Virtual Instrumentation Engineering Workbench)


LabVIEW adalah produk dari National Instruments yang berupa software pengembangan
program aplikasi dan hardware input-output untuk keperluan akusisi dan pengendalian.
Perangkat lunak (software) ini dapat dijalankan pada sistem operasi Linux, Unix, Mac OS X
dan Windows.

Berbeda dengan pemograman berbasis teks dimana instruksi-instruksi menentukan eksekusi


program pada sistem kendali, LabVIEW merupakan pemograman aliran data dimana aliran
data menentukan eksekusi dari program. LabVIEW software merupakan sebuah bahasa
pemograman graphical yang menggunakan simbol (ikon) untuk membuat aplikasi. Sedangkan
Visual Instruments (VIs) adalah program LabVIEW yang menirukan instrumen sebenarnya
dalam bentuk simbol-simbol. Untuk membuat tampilan program aplikasi LabVIEW,

3
digunakan tools dan objek. Tampilan aplikasi ini kemudian dikenal dengan jendela front
panel.

Dari tampilan jendela front panel kemudian ditambahkan kode yang direpresentasikan oleh
simbol dari fungsi untuk mengatur objek. Sedangkan source code simbol tersebut ada dalam
tampilan jendela block diagram. LabVIEW software terdiri dari 3 (tiga) komponen utama,
yaitu :
1. Front panel merupakan penghubung (Antarmuka) antara pengguna (user) dengan
program aplikasi. Didalam front panel terdapat kontrol (input) dan indikator (output)
sebagai masukan atau keluaran instrumen. Kontrol adalah instrumen mekanisme masukan
yang menyuplai data dari block diagram yang mencakup knop, push button, dial dan
mekanisme masukan lainnya. Sedangkan indikator adalah instrument mekanisme
keluaran yang menampilkan data dari block diagram, mencakup grafik, LED, tank dan
tampilan keluaran lainnya.
2. Block diagram merupakan jendela tempat menuliskan perintah dan fungsi, berisikan
source code berupa simbol-simbol, node dan garis sebagai data flow untuk mengeksekusi
program termasuk kode dari front panel. Pada block diagram juga tersedia function
palette yang berisi fungsi-fungsi yang digunakan untuk memanipulasi input, contohnya
fungsi array, matematika, fungsi IO dan sebagainya. Pada block diagram, tool palette
juga dipakai untuk mengatur dan menghubungkan ikon.
3. Dalam membuat aplikasi VIs, harus diperhatikan tipe data tiap simbol agar data flow
dapat berjalan semestinya. Tipe data yang tersedia yaitu numerik, boolean dan string.
Tipe data dari sebuah simbol dapat diketahui dari warna node atau warna kabel ketika
dihubungkan ke simbol lainnya. Untuk tipe data numerik ditandai dengan warna oranye
(untuk bilangan float) atau biru (untuk bilangan integer), tipe data Boolean ditandai
dengan warna hijau dan tipe data string ditandai dengan warna merah muda.

LabVIEW banyak digunakan karena memiliki kelebihan. Beberapa kelebihan LabVIEW


antara lain pembuatan program di LabVIEW jelas dan mudah dipahami, karena berbentuk
grafis, dengan instruksi berbentuk ikon-ikon, yang dihubungkan dengan garis untuk
menunjukkan aliran data seperti halnya flowchart. Pembuatan program yang mudah, yaitu
hanya dengan menarik keluar ikon instruksi yang sudah tersedia di palet (kotak instruksi), dan

4
menghubungkannya dengan garis ke ikon lain. Garis ini sama seperti variabel pada bahasa
pemograman teks. Dengan cara ini, LabVIEW menyederhanakan pembuatan program, karena
garis tersebut hanya akan terhubung apabila tipe datanya sesuai sehingga menghilangkan
kebutuhan manajemen memori dan deklarasi tipe data setiap variabel seperti dalam bahasa
pemograman teks. Juga tidak perlu mengingat nama instruksi, karena semua ditampilkan pada
palet, mempersingkat waktu pembuatan program karena mudah dipahami dan mudah dibuat,
LabVIEW didesain sebagai sebuah bahasa program paralel (multicore) yang mampu
menangani beberapa instruksi sekaligus dalam waktu bersamaan.

Hal tersebut di atas sangat sulit dilakukan dalam bahasa program teks, karena biasanya bahasa
program teks mengeksekusi instruksinya secara berurutan per baris, satu demi satu. Dengan
LabVIEW, pengguna dapat membuat aplikasi eksekusi paralel ini secara mudah dengan
menempatkan beberapa struktur loop secara terpisah dalam block diagram. Sifat modular
LabVIEW memungkinkan pengguna untuk membuat program yang kompleks dan rumit
menjadi sederhana, yaitu dengan cara membuat sub program yang dalam LabVIEW disebut
subVI. Ikon-ikon dalam LabVIEW sebenarnya merupakan subVI. Beberapa subVI dapat
digabungkan menjadi sebuah subVI. Sub-sub gabungan tersebut dapat digabungkan lagi
menjadi sebuah subVI lain, demikian seterusnya dengan tingkat hierarki yang tidak terbatas.

II. Perancangan Sistem


Pembuatan realtime kontrol dan monitoring sebenarnya bukan hal baru didunia elektronik
maupun informatika. Berbagai software dan hardware banyak digunakan. Board Arduino
banyak digunakan pada sistem kontrol stand alone maupun real time sistem. Pada tulisan ini
dirancang sistem realtime kontrol dengan board Arduino sebagai Antarmuka, sedangkan
tampilan di layar komputer menggunakan software LabVIEW. Protokol yang digunakan
dalam berkomunikasi antara komputer dan Arduino menggunakan LabVIEW dapat
menggunakan komunikasi serial biasa maupun firmata.

2.1 Komunikasi Arduino dan LabVIEW


Interaksi Arduino dengan LabVIEW melalui komunikasi serial diantara keduanya. Interaksi
ini tidak menggunakan komunikasi paralel karena tidak lebih aman dari komunikasi serial dan
kebanyakan komputer ataupun laptop saat ini sudah tidak menyediakan port paralel, hanya

5
port USB (Universal Serial Bus) saja. Disamping itu, alasan yang lain adalah hampir semua
mikrokontroler saat ini telah dilengkapi fungsi built-in serial UART (Universal Asynchronous
Receiver-Transmitter).

UART adalah bagian perangkat keras komputer yang menerjemahkan antara bit-bit paralel
data dan bit-bit serial. Mikrokontroler Arduino sudah dilengkapi USB serial di dalam
rangkaiannya sehingga membuat komunikasi serial antara Arduino dengan komputer melalui
port USB lebih mudah. Ada dua komunikasi yang bisa diterapkan, yaitu komunikasi serial
biasa dan komunikasi serial Firmata.

2.1.1 Komunikasi Serial Biasa (LIFA)


Komunikasi serial biasa yaitu komunikasi yang harus memprogram dari kedua sisi yaitu dari
sisi Arduino dan sisi LabVIEW. Kecepatan komunikasi (baud rate) dari sisi Arduino maupun
LabVIEW haruslah sama yaitu sebesar 9.600 bps (bit per second). LabVIEW Interface for
Arduino atau disingkat LIFA, menyediakan antarmuka antara LabVIEW dengan Arduino
(gambar 1).

Pada awalnya LIFA dikembangkan dan diujikan pada board Arduino Uno, namun juga dapat
bekerja dengan baik pada hampir semua hardware board Arduino yang compatible. LabVIEW
Interface for Arduino mencakup open source firmware untuk Arduino beserta juga dengan
lebih dari 100 VIs untuk akses fungsi dan kendali Arduino dari LabVIEW. LIFA merupakan
solusi dan dibutuhkan dalam sambungan koneksi data antara LabVIEW dengan board
Arduino. Biasanya komunikasi data dilakukan via USB tapi dapat juga dilakukan dengan
menggunakan Xbee atau juga dengan bluetooth.

Gambar 2.1. Pemograman LabView untuk komunikasi LIFA


6
2.1.2 Komunikasi Serial Firmata
Komunikasi serial Firmata adalah sebuah protokol yang ditulis pada mikrokontroler, salah
satunya adalah mikrokontroler Arduino. Firmata ini ditulis untuk memudahkan komunikasi
Arduino dengan perangkat lunak yang lain termasuk LabVIEW (Gambar 2). Firmata ini dapat
memudahkan kita dalam membuat program karena tidak lagi dilakukan di kedua sisi, tetapi
hanya di satu sisi yaitu sisi perangkat lunak komputer saja (LabVIEW). Firmata memiliki
keuntungan, diantaranya adalah :
1. Kecepatan komunikasi yang bisa mencapai 115.200 bps, lebih cepat dibandingkan
dengan kecepatan default komunikasi serial yang hanya 9.600 bps.
2. Firmata ini membuat Arduino seperti layaknya sebuah DAQ card, dimana semua kaki I/O
(input-output) Arduino telah difungsikan secara tetap, sehingga hanya tinggal
memasukkannya pada program di perangkat lunak komputer. Dengan cara seperti ini,
setiap kali program dimodifikasi, atau butuh penambahan kaki I/O, tidak perlu lagi
memprogram Arduino, tetapi cukup memprogram di sisi komputer saja.
3. Untuk aplikasi komunikasi serial yang membutuhkan penggunaan kaki I/O Arduino yang
cukup banyak, baik difungsikan sebagai masukan maupun keluaran, digital maupun
analog, atau yang membutuhkan penambahan fungsi-fungsi komunikasi yang lebih rumit,
maka penggunaan Firmata lebih menguntungkan, karena semuanya sudah tersedia
fungsinya, hanya tinggal mengaktifkannya. Sebaliknya bila tanpa Firmata maka akan
berurusan dengan penulisan kode program yang panjang.

Kerugian Firmata yaitu kaki I/O Arduino tidak lagi fleksibel, karena telah difungsikan secara
tetap, sehingga untuk aplikasi-aplikasi khusus atau untuk fungsi fungsi yang belum tersedia,
seperti pembacaaan sensor ultrasonik, membutuhkan pembacaan pulsa yang sangat cepat,
sehingga hal ini akan sulit dilakukan.

Gambar 2.2. Pemograman LabView untuk komunikasi Firmata

2.2 Gambaran Besar dari Sistem


7
Sistem yang akan dibangun terdiri dari aktuator berupa subsistem dengan masukan biner dan
komputer sebagai kontrol dan monitor, diantara kedua subsistem tersebut ada jembatan atau
Antarmuka berupa board mikrokontrol Arduino. Mikrokontrol merupakan sistem komputer
kecil yang memiliki hardware dan software dimana software dapat menterjemahkan perintah
yang datang dari komputer selanjutnya data tersebut diolah dan kemudian dikirim ke port I/O
pada hardware mikrokontroler. Secara hardware gambaran besar sisten dapat dilihat pada
gambar 2.3.

Gambar 2.3. Gambaran Besar dari Sistem

III. Perancangan Software


Masalah timbul ketika pengaturan aktuator membutuhkan serangkaian angka biner (lebih dari
satu bit), Arduino tidak mengenal pengaturan I/O satu port sekaligus seperti mikrokontroler
ATMEL (MCS51 maupun AVR). Pada mikrokontroler ATMEL dalam bahasa assembler
dapat diatur setiap masukan maupun keluaran dalam pengalamatan per bit atau per byte/port,
sedangkan pada board Arduino yang tidak menggunakan bahasa assembler melaikan bahasa C
pada Arduino IDE. Dengan beberapa fakta tersebut maka pengaturan ataupun pengkonversi
pengalamatan bit ke pengalamatan port harus dilakukan diluar Arduino dalam paper ini tentu
saja dilakukan di LabVIEW.

Gambar 3.1. Blok diagram konversi desimal ke biner

8
Dalam mengontrol keluaran dari I/O port Arduino maka numerik yang diharapkan menjadi
output perlu di konversikan kedalam binner ole LabView. Setiap digit angka biner di
deklarasikan mewakili satu pin didalam board Arduino. LabVIEW tidak memiliki fitur
konversi desimal ke biner maka perlu dibangun fungsi konversi yang dilakukan secara
manual. Fungsi konversi dibangun dengan metode matematis layaknya konversi yang
dilakukan diatas kertas dengan kata lain metode tersebut melakukan pembagian dua pada
angka desimal dan menyimpan sisa bagi per setiap proses pembagian terus hingga hasil
baginya kurang dari dua. Hasil konversi adalah urutan sisa bagi dari yang paling akhir hingga
paling awal. Karena jumlah pin pada Arduino terbatas maka untuk setiap angka keluaran
desimal hanya terbatas hingga 63 atau setara dengan 111111 biner (enam pin).

Gambar 3.2. Front panel konversi desimal ke biner

Pada gambar 3.1 angka yang akan dikeluarkan menjadi output pada board Arduino dimasukan
dalam form numeric yang kemudian angka tersebut akan dibagi dua sebanyak enam kali atau
kurang. Keluaran dari fungsi pembagian ada dua yaitu hasil dan sisa. Hasil pembagian akan
dibagi dua lagi untuk digit berikutnya dan sisa pembagian akan dibandingkan apakah hasilnya
satu atau nol. Jika sisa pembagian satu maka pin Arduino akan tinggi dan jika sisa pembagian
hasilnya nol maka pin Arduino akan rendah. Pada gambar 3.2 front panel dari LabVIEW
ketika numeric nol maka semua pin pada keluaran board Arduino akan rendah. Gambar 3.3
merupakan integrasi pemograman seluruh subsistem di LabVIEW, dimana terdapat pin yang
dideklarasi sebagai port. Pin tersebut berjumlah dua belas dan dibagi dua port masing-masing
enam pin. Karena sistem memiliki dua port maka fungsi konversi desimal ke biner juga harus
dua buah.

9
Gambar 3.3. pemograman labview integrasi seluruh subsistem
IV. Kesimpulan
1. Pemograman komunikasi antarmuka antara aktuator dan komputer dapat dilakukan
dengan board Arduino sebagai antarmuka dan LabVIEW sebagai GUI pada komputer.
2. Protokol firmata lebih memudahkan dalam pemograman dibandingkan dengan protokol
LIFA karena pemograman hanya di sisi LabVIEW sedangkan pemograman board
Arduino hanya dilakukan satu kali.
3. Board Arduino memiliki 20 pin yang tidak memiliki fitur pengalamatan port, namun
dapat dialamati seolah-olah memiliki dua buah port yang masing-masing memiliki lima
pin dengan pemograman dilakukan di LabVIEW.
4. Konversi bilangan desimal ke biner dapat dilakukan di LabVIEW dengan metode
matematis, hal ini dilakukan karena LabVIEW tidak memiliki fitur konversi bilangan.

UCAPAN TERIMA KASIH


Terima kasih kami sampaikan pada penerbit atas kesempatan mempublikasikan hasil
penelitian ini. Ucapan yang sama ingin kami sampaikan pada rekan-rekan dari Transportation
Department, Research Centre for Electrical Power and Mechatronics, Indonesian Institute of
Sciences Aam Muharam, Bambang Wahono, Naili Huda, Arifin Nur, Amin, yanuandri P,
Achmad P, Mulia Pratama W. Budi S, yang telah memberikan bantuan dalam penelitian ini.

DAFTAR PUSTAKA
1. Muhammad Luthfil, 2014, Sistem Kontrol Industri Berbasis PC (Ch.11-Sistem Kontrol Proses)
2. Team Inovative Elektronics,Training Arduino, diakses july 2015
http://learn.innovativeelectronics.com/index.php?pg=learn-ie-arduino
3. Banzi, Massimo. 2009. Getting Started With Arduino. Amerika: O’Reilly.

10
4. Munadi, ANALISA FORWARD KINEMATIC PADA SIMULATOR ARM ROBOT 5 DOF YANG
MENGINTEGRASIKAN MIKROKONTROLER ARDUINO-UNO DAN LABVIEW, Rotasi Jurnal
Teknik Mesin, Available online at Website http://ejournal.undip.ac.id/index.php/rotasi
5. Dian Artanto, 2012, Interaksi Arduino dan LabView mengulas mikrokontroler paling populer saat ini,
Penerbit PT Elex Media Komputindo, Jakarta
6. LabVIEW, 1998, “Data Acquisition Basics Manual,” National Instruments Corporation, Texas.

11

Anda mungkin juga menyukai