Anda di halaman 1dari 7

Desain Penglamatan Port Mikrokontrol Arduino dengan Protokol Firmata pada

Antarmuka Komputer yang Berbasiskan LABVIEW


Kristian Ismail 1) Agus Risdianto2)

1,2)
Pusat Penelitian Tenaga Listrik dan Mekatronik,
Lembaga Ilmu Pengetahuan Indonesia
Komp. LIPI Gd.20, Jl. Cisitu No.21/154D, Bandung 4015
Indonesia
riesdian@ yahoo.com2), ksansan@yahoo.com1)

Abstraksi

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, refferensinya banyak, dan semua softwarependukung 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 grafic user interface (GUI ) menggunakan
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 yakni board hanya memiliki
fasilitas pengalamatan per bit, untuk aktuator yang bersifat on/off tidak terjadi masalah namun ketikan
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, firmata

1. 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 otomasi industri. Hampir semua perusahaan besar dibidang industri menghapus pengendali
analog dan digital kemudian beralih untuk membentuk sistem kontrol PC industri. 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 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:

1. Penggunaan yang mudah dari Arduino tidak menuju kepada pembuatan sistem jadi yang asal-
asalan. Namun sebaliknya, dengan kemudahan tersebut pengembangan sistem dapat difokuskan

1
kepada alur kerja sistem yang lebih kompleks. Pengembang sistem tidak lagi perlu dan selalu
direpotkan dengan pengaturan-pengaturan register, fusebit, dll.
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 mudah. Arduino 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 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, 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

2
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, mirip flowchart,
Pembuatan program yang mudah, yaitu hanya dengan menarik keluar ikon instruksi yang sudah tersedia di
palet (kotak instruksi), dan 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 ini 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 mudahdengan 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 subprogram, atau di LabVIEW
disebut subVI. Ikon-ikon dalam LabVIEW sebenarnya merupakansubVI. Beberapa subVI dapat
digabungkan menjadi sebuah subVI. subVI-subVI gabungan tersebut dapat digabungkan lagi menjadi
sebuah subVI lain, demikian seterusnya dengan tingkat hirerarki yang tidak terbatas.

2. PERANCANNGAN SISTEM
Pembuatan realtime kontrol dan monitoring sebenarnya bukan hal baru didunia elektronik maupun
informatika. Berbagai software dan harware 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 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.

3
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 1. Pemograman LabView untuk komunikasi LIFA


2.1.2Komunikasi 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 IO (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 IO, tidak perlu lagi memprogram Arduino, tetapi cukup memprogram
di sisi komputer saja.
3. Untuk aplikasi komunikasi serial yang membutuhkan penggunaan kaki IO 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 IO 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, akan sulit dilakukan.

Gambar 2. Pemograman LabView untuk komunikasi Firmata

2.2 Gambaran Besar dari Sistem


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

4
tersebut diolah dan kemudian dikirim ke port i/o pada hardware mikrokontroler. Secara hardware gambaran
besar sisten dapat dilihat pada gambar dibawah ini.

Gambar 3 Gambaran Besar dari Sistem


2.3 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 4 Blok diagram konversi desimal ke biner


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 seitap 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 5. Front panel konversi desimal ke biner

5
Pada gambar 4 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 dibangingkan 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 5
front panel dari LabView ketika numeric nol maka semua pin pada keluaran board arduino akan rendah.
Gambar 6 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.

Gambar 6. pemograman labview integrasi seluruh subsistem

3. KESIMPULAN
- Pemograman komunikasi antara antarmuka antara aktuator dan komputer dapat dilakukan dengan
board arduino sebagai antarmuka dan LabView sebagai GUI pada komputer.
- Protokol firmata lebih memudahkan dalam pemograman dibandingkan dengan protokol LIFA karena
pemograman hanya di sisi LabView sedangkan pemograman board arduino hanya dilakukan satu kali.
- Board arduino memiliki 20 pin yang tidak memiliki fitur pengalamatan port dapat dialamati seolah
olah memiliki dua buah port yang masing-masing memiliki lima pin dengan pemograman dilakukan di
LabView.
- Konversi bilangan desimal ke biner dapat dilakukan di LabView dengan metode matematis hal ini
dilakukan karena LabView tidak memiliki fitur konversi bilangan.

4. SARAN
- Pemograman sebaiknya jangan dilakukan sekaligus seluruh sistem sekali jalan alangkah lebih baik
dilakukan pembagian secara subsistem seperti pemograman komunikasi serial firmata, pemograman
konversi bilangan dan pemograman sisi board arduino
- Software aplikasi LabView merupakan software dengan berbagai jenis fungsi dan plugin maka
terkadang diperlukan instalasi tambahan jika ada beberapa fungsi yang belum berfungsi seperti LIFA,
VISA dan Firmata.

6
5. 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.

6. 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.
[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.

Anda mungkin juga menyukai