teknik antarmuka matlab dan arduino -...
TRANSCRIPT
TEKNIK ANTARMUKA MATLAB DAN ARDUINO
Membangun Interaksi antara Bahasa Komputasi Teknis dengan Platform Berbasis Mikrokontroler
I Nyoman Kusuma Wardana
Penerbit Vaikuntha International Publication
ii
Teknik Antarmuka MATLAB dan Arduino Membangun Interaksi antara Bahasa Komputasi Teknis
dengan Platform Berbasis Mikrokontroler
Hak cipta dilindungi undang-undang
© 2016 pada Penulis
ISBN 978-602-73078-4-1
xvi + 411 hlm. ; 14,8 × 21 cm
Penulis : I Nyoman Kusuma Wardana
Editor : Tim Robotics & Embedded Systems (RADE)
STMIK STIKOM Bali
Desain Sampul : I Nyoman Kusuma Wardana
Penerbit:
Vaikuntha International Publication
Jalan Veteran No.29, Denpasar, Bali, Indonesia
Tel: +62 85 738 647 717
Bekerjasama dengan:
Miarana DIY
Jalan Raya Singapadu-Angantaka, Banjar Kutri,
Singapadu Tengah, Sukawati, Gianyar, Bali Indonesia 80525
Tel: +62 81 339 345 239
www.tutorkeren.com
iii
iv
v
KATA PENGANTAR
PENGANTAR DARI PENULIS Sejak kelahirannya sekitar tahun 2005, penggunaan platform Arduino benar-benar mendunia, baik produk official-nya, maupun
unofficial-nya. Saat ini, berbagai shield dan produk yang
mendukung penggunaan Arduino telah hadir secara luas. Arduino
menyajikan bagaimana menyenangkan dan mudahnya memprogram sebuah mikrokontroler. Berkat kemunculan Arduino,
mikrokontroler yang dulunya hanya dipelajari oleh kalangan
tertentu saja, kini telah diminati oleh berbagai kalangan, baik dari
pelajar dan mahasiswa berbagai jurusan, akademisi, praktisi dan
para penggemar dunia mikrokontroler.
MATLAB merupakan bahasa komputasi teknis yang andal. Saat ini,
MATLAB telah merilis pustaka yang memungkinkan kita untuk
menghubungkan MATLAB dan Arduino dengan sangat mudah.
Arduino dapat sepenuhnya dikontrol dengan menggunakan
MATLAB. Penggunaan pustaka ini menjadi salah satu pokok
bahasan utama dalam buku ini. Namun demikian, Penulis mengamati bahwa tidak semua kasus cocok diselesaikan
menggunakan pustaka ini. Oleh karena itu, untuk kasus-kasus
tertentu, akan lebih praktis jika kita memanfaatkan fungsi
komunikasi serial biasa yang telah disediakan MATLAB, bukan
menggunakan pustaka.
Buku ini akan mengulas teknik antarmuka MATLAB dan Arduino,
serta konsep-konsep dasar yang melatarbelakangi topik tersebut.
Namun demikian, buku ini tidak mengulas bagaimana
memprogram Arduino dan MATLAB mulai dari nol secara detail.
Penulis mengasumsikan bahwa Pembaca memiliki sedikit dasar
mengenai kedua bahasa pemrograman tersebut. Namun demikian, Penulis menyajikan penjelasan yang lebih rinci tentang bagaimana
suatu sistem bekerja. Pemahaman terhadap suatu topik tertentu
dalam buku inilah yang menjadi fokus Penulis.
vi
Karena luasnya cakupan materi dan aplikasi terkait MATLAB dan
Arduino, Penulis menyadari bahwa buku ini belum mengulas
semua topik tersebut. Ada berbagai topik yang belum bisa Penulis
sampaikan melalui buku ini, baik karena faktor keterbatasan
pengalaman, maupun keterbatasan pengetahuan yang dimiliki oleh
Penulis. Penulis berharap dapat mengulas topik-topik penting lainnya pada edisi buku selanjutnya. Namun demikian, Penulis
tetap berharap bahwa buku ini dapat memberikan manfaat untuk
Pembaca. Melalui buku ini, Penulis berharap dapat memberikan
gambaran awal penggunaan MATLAB dan Arduino untuk berbagai
penerapan.
STRUKTUR PENULISAN BUKU Buku ini ditulis berdasarkan struktur yang Penulis harapkan dapat menuntun Pembaca pada suatu pemahaman mengenai topik yang
sedang dibahas. Berikut susunan bab yang dirancang oleh Penulis:
BAB 1. Mikrokontroler dan Arduino : mengantarkan pembaca
untuk memahami dasar kedua istilah ini, yaitu
mikrokontroler dan Arduino.
BAB 2. Pengenalan MATLAB : mengantarkan pembaca tentang
pengenalan lingkungan kerja MATLAB dan dasar
pemrogramannya.
BAB 3. Konsep Antarmuka MATLAB dan Arduino :
menjelaskan filosofi mengapa MATLAB dan Arduino
dihubungkan.
BAB 4. Instalasi Pustaka Arduino : menjelaskan langkah-
langkah dalam instalasi pustaka MATLAB pada Arduino
beserta isu-isu penting terkait penggunaan pustaka ini.
BAB 5. Pengantar Teknik Antarmuka : bab ini akan
mengantarkan pembaca untuk memulai membuat antarmuka menggunakan MATLAB.
BAB 6. Antarmuka Sensor : mengantarkan pembaca bagaimana
membuat antarmuka sensor, baik sensor analog maupun
digital.
vii
BAB 7. Antarmuka Aktuator : menjelaskan beberapa
antarmuka aktuator, seperti relai, motor DC, motor
stepper, motor servo dan LCD.
BAB 8. Komunikasi I2C : membahas dasar teori dari protokol
I2C, beserta penerapannya pada Arduino
BAB 9. Komunikasi SPI : mengulas dasar teori dari protokol SPI, beserta penerapannya pada Arduino.
BAB 10. Streaming Data Online : membahas streaming data
secara online menggunakan fasilitas Plotly.
BAB 11. Bekerja dengan Database : menjelaskan bagaimana
membangun database menggunakan MySQL dan Microsoft Access
BAB 12. Menggunakan Fasilitas Report Generator : membahas
bagaimana mencetak hasil logger sensor kedalam bentuk
laporan
Jika Pembaca mengamati tanda “ << ”, maka hal tersebut berarti
bahwa penulisan dilakukan pada jendela Command Window pada
MATLAB. Tanda << sendiri bukan merupakan bagian dari program,
namun merupakan tanda yang muncul ketika kita menuliskan
perintah MATLAB melalui Command Window. Skrip yang ditulis tanpa tanda “ << ” adalah skrip yang ditulis pada jendela Editor.
BAGI PARA PEMBACA Buku ini disusun menggunakan MATLAB versi 2014a. Semua
percobaan yang dilakukan di dalam buku ini telah dicoba dan diuji
berdasarkan MATLAB versi tersebut. Secara umum, skrip dalam buku ini dapat dicoba di MATLAB versi yang lain. Namun demikian,
penulis sangat menyarankan bagi para Pembaca untuk
menggunakan MATLAB dengan versi minimal 2014a.
Jenis Arduino yang dicobakan dalam buku ini adalah Arduino Uno
R3. Selain Uno, Pembaca juga dapat mencoba papan bertipe Mega.
Namun demikian, Pembaca diharuskan untuk mengubah sedikit sintaks pada buku ini, dan menyesuaikannya dengan tipe papan
Arduino yang digunakan.
viii
Walaupun buku ini membahas pemrograman MATLAB dan
Arduino, buku ini tidak membahas secara detail mengenai dua
pokok berikut:
1. Bagaimana memprogram Arduino mulai dari dasar
2. Bagaimana memprogram MATLAB mulai dari dasar
Dalam buku ini, Penulis hanya akan mengantarkan sekilas mengenai kedua pokok pembahasan tersebut. Penulis berharap
Pembaca dapat mencari referensi lainnya yang memang
diperuntukkan untuk kedua pokok bahasan tersebut.
Untuk mempelajari Arduino lebih jauh, Penulis menyarankan
Pembaca untuk mengunjungi laman web resmi dari Arduino, yaitu di www.arduino.cc. Bagi Pembaca yang ingin mengetahui produk
terbaru dari MATLAB, bertukar informasi dengan pengguna
MATLAB yang lain, menonton video serta contoh-contoh
pemrograman, Penulis menganjurkan untuk mengunjungi laman
web resmi dari MATLAB yaitu di www.mathworks.com. Pada buku
ini, Penulis juga mewajibkan Pembaca untuk membuat akun di situs tersebut, karena akan digunakan pada proses instalasi
pustaka MATLAB untuk keperluan antarmuka dengan Arduino.
Semua skrip yang digunakan dalam buku ini dapat diunduh secara
gratis oleh Pembaca melalui tautan yang disertakan pada bagian
akhir dari buku ini. Pembaca dapat menggunakan dan memodifikasi skrip tanpa memerlukan izin tertulis dari Penulis.
Namun demikian, sesuai etika, sebaiknya Pembaca menyertakan
sumber aslinya.
Penulis mengucapkan terima kasih kepada rekan-rekan yang telah
membantu proses penulisan dan penerbitkan buku ini. Dengan
segala kerendahan hati, Penulis juga sangat mengharapkan kritik, saran, masukan serta pertanyaan dari Pembaca. Hal ini sangat
berguna untuk perbaikan bagi Penulis dan buku ini selanjutnya.
Bagi Pembaca yang ingin menghubungi Penulis, silahkan hubungi:
Email : [email protected]
Website : tutorkeren.com
Denpasar, September 2015
Penulis
ix
UCAPAN TERIMA KASIH
Segala pujian kepada Tuhan Yang Maha Esa. Segala pujian kepada
Sri Guru dan Sri Gaurangga. Hanya atas karunia Beliaulah buku
ini dapat diterbitkan. Selanjutnya, Penulis menyampaikan ucapan
terima kasih yang setulus-tulusnya kepada:
1. Para Guru di sekolah dasar dan menengah. Para Dosen dan
almamater tercinta: Jurusan Teknik Fisika UGM, Magister
Sistem Teknik UGM, Rekayasa Pertambangan ITB, serta
Politecnico di Torino, Italia. Buku ini secara khusus
didedikasikan untuk para guru, dosen dan almamater.
2. Kedua orang tua dan kedua kakak Penulis yang selalu
mendoakan dan memberikan dukungan penuh kepada Penulis.
3. Segenap civitas akademika STMIK STIKOM Bali yang telah
banyak membantu Penulis untuk berkarya. Tidak lupa kepada
Politeknik Negeri Bali, yang selanjutnya menjadi tempat bagi
penulis untuk mengabdi.
4. Anggota tim Narayana Instruments dan Miarana DIY yang telah
memberi masukan secara teknis. Secara khusus penulis
ucapkan terima kasih kepada I Wayan Aditya Suranata yang
telah memfasilitasi penerbitan dan publikasi.
5. Anggota Grup Riset Robotics and Embedded Systems (RADE) STMIK STIKOM Bali yang telah menjadi tempat Penulis untuk
berbagi. Secara khusus kepada I Komang Agus Ady Aryanto
dan Soni Wijaya Santoso, yang telah banyak membantu
penyusunan materi dalam buku ini.
6. Keluarga besar ISKCON yang selalu memberi semangat dan
bimbingan kepada Penulis.
7. Pihak penerbit yang membantu merealisasikan buku ini
sehingga sampai ke tangan Pembaca.
8. Para Pembaca buku ini, dan rekan-rekan lain yang tidak dapat
Penulis sebutkan namanya satu-persatu, yang telah memberi
saran, semangat dan doa. Terima kasih untuk semuanya.
Semoga buku ini bermanfaat.
x
xi
DAFTAR ISI
KATA PENGANTAR v
Pengantar dari Penulis ............................................................... v Struktur Penulisan Buku .......................................................... vi Bagi para Pembaca .................................................................. vii
UCAPAN TERIMA KASIH ix DAFTAR ISI xi
BAB 1 MIKROKONTROLER DAN ARDUINO 1
Mikrokontroler vs Mikroposesor ................................................. 1 Sistem Tertanam ....................................................................... 3 Physical Computing ................................................................... 4 Mikrokontroler dan Arduino ....................................................... 7
Memori pada Arduino ................................................................ 9 Papan (Board) Arduino ............................................................. 10
IDE Arduino ............................................................................ 13 Struktur Pemrograman Arduino ............................................... 15
setup() .................................................................................. 15 loop() .................................................................................... 16 Komentar ............................................................................. 16 Kurung Kurawal ................................................................... 17 Tanda Titik Koma ................................................................. 17
Variabel pada Pemrograman Arduino ....................................... 17 Fungsi pada Pemrograman Arduino ......................................... 20
BAB 2 PENGENALAN MATLAB 21
Apa itu MATLAB? .................................................................... 21 Proses Instalasi MATLAB ......................................................... 22 Lingkungan Pengembangan MATLAB ....................................... 26 Bekerja dengan MATLAB .......................................................... 29
Bekerja pada Command Window .......................................... 29 Bekerja dengan Jendela Editor ............................................. 30
Dasar Matriks .......................................................................... 31
xii
Membentuk Matriks ............................................................. 31 Indexing Matriks .................................................................. 32 Membentuk dan Mengakses Cell .......................................... 35
Statemen Kontrol .................................................................... 35 Kontrol if, elseif, else ............................................................ 36
Kontrol for ........................................................................... 36 Kontrol While ....................................................................... 37
Bekerja dengan Grafik ............................................................. 38 MATLAB dan Perkembangannya .............................................. 41
BAB 3 KONSEP ANTARMUKA MATLAB DAN ARDUINO 43
Mengapa Menghubungkan MATLAB dengan Arduino? ............. 43 Komunikasi Serial ................................................................... 45
Dasar Komunikasi Serial ...................................................... 46 Komunikasi MATLAB - Arduino ............................................... 49
Komunikasi Menggunakan fungsi serial ............................... 50
Instalasi Pustaka Arduino pada MATLAB .............................. 51 Isu Penting Penggunaan Pustaka ............................................. 53
BAB 4 PUSTAKA ARDUINO PADA MATLAB 55
Hardware Support Packages .................................................... 55 Instalasi Pustaka secara Online ............................................... 56 Uji Koneksi ............................................................................. 60 Fungsi Dasar Pustaka Arduino ................................................ 62
Menghubungkan MATLAB-Arduino ...................................... 63
Membaca dan Menulis Pin Digital ........................................ 64 Memainkan Nada ................................................................. 67 Membaca dan Menulis Pin Analog ........................................ 68
Instalasi Mutlak Diperlukan? .................................................. 71 Memanfaatkan Fasilitas Help .................................................. 72
BAB 5 PENGANTAR TEKNIK ANTARMUKA 75
Dasar Visualisasi Data ............................................................ 75 Visualisasi Gelombang Sinus ............................................... 76
Mengambil Data Sensor ....................................................... 81 Visualisasi Data Secara Simultan ......................................... 85
Bekerja dengan Komponen GUI Dasar ..................................... 89 Perancangan Hardware ........................................................ 90
xiii
Perancangan Software .......................................................... 90 Bekerja dengan Grafik ........................................................... 105
BAB 6 ANTARMUKA SENSOR 123
Antarmuka Sensor Analog ..................................................... 123 Pengenalan ADC ................................................................. 123 Konfigurasi Sensor Analog .................................................. 126 Pemrograman Sensor Analog .............................................. 130
Antarmuka Sensor Digital ...................................................... 130 Bekerja dengan Sensor Ultrasonik ...................................... 131
BAB 7 ANTARMUKA AKTUATOR 141
Antarmuka Relai .................................................................... 141 Prinsip kerja Relai .............................................................. 142
Pemrograman Relai ............................................................ 143 Antarmuka motor DC ............................................................ 144
Prinsip Dasar ..................................................................... 144 Pulse Width Modulation...................................................... 145 Mengatur Kecepatan dan Arah Putar Motor DC ................... 148
Membangkitkan PWM pada MATLAB .................................. 152 Rancangan GUI untuk Mengontrol Motor DC ...................... 154
Antarmuka Motor Servo ......................................................... 159 Prinsip Kerja ...................................................................... 159 Pemrograman Motor Servo .................................................. 161 Pemrograman GUI untuk Motor Servo ................................ 165
Antarmuka Motor Stepper ...................................................... 174 Prinsip Kerja ...................................................................... 174 Tipe Koneksi Koil pada Stepper ........................................... 179 Pemrograman GUI untuk Motor Stepper ............................. 181
Antarmuka LCD .................................................................... 198 Konfigurasi Perangkat Keras ............................................... 199 Rancangan GUI untuk Mengirimkan Data Ke LCD .............. 200
BAB 8 KOMUNIKASI I2C 211
Pendahuluan ......................................................................... 211 Arsitektur Komunikasi I2C ..................................................... 212
Skema Komunikasi I2C .......................................................... 213 Format Paket dalam I2C ........................................................ 215
xiv
Format Paket Alamat ......................................................... 215 Format Paket Data ............................................................. 217
I2C pada Arduino .................................................................. 218 Pin-pin I2C pada Arduino ................................................... 219 Konfigurasi Master-Slave pada I2C ..................................... 219
Pemrograman I2C ................................................................. 221 Pemrograman Slave ........................................................... 222 Rangkaian Perangkat Keras ............................................... 225 Pemrograman MATLAB untuk I2C ...................................... 226
Pemrograman GUI ................................................................. 229 Pemrograman Slave ........................................................... 230
Pemrograman MATLAB ...................................................... 231
BAB 9 KOMUNIKASI SPI 245
Pendahuluan ........................................................................ 245 Arsitektur Komunikasi SPI .................................................... 246
Skema Komunikasi SPI ......................................................... 248 Menulis Melalui SPI ............................................................... 250 Membaca Melalui SPI ............................................................ 251 SPI pada Arduino .................................................................. 252
Pin-pin SPI pada Arduino ................................................... 252 Konfigurasi Master-Slave pada SPI ..................................... 253
Pemrograman SPI .................................................................. 254 Konfigurasi Perangkat Keras .............................................. 254 Pemrograman Slave ........................................................... 255 Pemrograman Master ......................................................... 257
Pemrograman GUI ................................................................. 259
BAB 10 STREAMING DATA ONLINE 271
Membuat Akun pada Plotly .................................................... 272 Plotly untuk MATLAB ............................................................ 273 Memulai Streaming Data ....................................................... 279 Streaming Data dari Arduino ................................................. 284
BAB 11 BEKERJA DENGAN DATABASE 301
Membangun Basis Data Menggunakan MySQL ...................... 302
Instalasi XAMPP ................................................................ 303 Membuat Database MySQL ................................................ 306
xv
Membangun koneksi MySQL pada MATLAB ........................ 313 Pemrograman database MySQL melalui MATLAB ................ 320 Koneksi MySQL menggunakan GUI .................................... 329
Membangun Database Menggunakan Microsoft Access ........... 352 Mempersiapkan Database................................................... 352
Menghubungkan database Dengan MATLAB ....................... 356 Pemrograman Database melalui MATLAB ........................... 360 Antarmuka Basis Data Menggunakan GUI .......................... 363
BAB 12 MENGGUNAKAN FASILITAS REPORT GENERATOR 385
Memulai Report Generator ..................................................... 385 Merancang Layout Laporan .................................................... 388 Memodifikasi Skrip Report ..................................................... 394 Merancang Antarmuka Report ............................................... 397
DAFTAR BACAAN 405 LAMPIRAN 409
File Penyerta .......................................................................... 409 TENTANG PENULIS 411
xvi
1
BAB 1 MIKROKONTROLER DAN
ARDUINO
Pada bab ini, konsep dasar yang membedakan istilah
mikrokontroler dengan mikroprosesor akan diperkenalkan. Selain
itu, Pembaca akan diperkenalkan dua istilah penting, yaitu embedded system dan physical computing. Selanjutnya, pembaca
akan diantarkan untuk membedakan istilah mikrokontroler dan
Arduino. Banyak yang beranggapan bahwa Arduino adalah mikrokontroler. Namun, secara konsep, Arduino dan
mikrokontroler adalah dua istilah yang berbeda. Di akhir bab,
Pembaca akan diantarkan mengenai IDE Arduino dan struktrur
pemrograman Arduino. Namun demikian, Penulis menyadari
bahwa bab ini hanya sebagai pengantar. Penulis sangat menganjurkan pembaca untuk mendalami lebih jauh pemrograman
Arduino dari berbagai sumber lainnya.
MIKROKONTROLER VS MIKROPOSESOR Sebelum membahas tentang Arduino, kita akan mengulas sedikit
mengenai konsep dasar mikrokontroler. Mungkin kita sering
mendengar istilah prosesor atau mikroprosesor, dan disatu sisi
kita juga mengenal istilah mikrokontroler. Mungkin banyak diantara kita yang masih kebingungan dengan perbedaan istilah-
istilah tersebut. Nah, sebenarnya apasih perbedaan antara prosesor
dan mikrokontroler?
Prosesor, atau mikroprosesor, atau lebih dikenal sebagai CPU (Central Processing Unit) adalah sebuah chip yang berfungsi sebagai
unit pemrosesan pusat dari suatu komputer. Beberapa contoh
2
mikroprosesor seperti keluarga Intel x86 (contoh: mikroprosesor
8086, 80286, 80386, 80486 dan Pentium) tidak memiliki RAM,
ROM atau komponen I/O (input/output) dalam satu chip.
Komponen-komponen tambahan ini diletakkan secara terpisah dari
chip mikroprosesor. Mikroprosesor sendiri belum dapat
menjalankan fungsi layaknya sebuah komputer. Suatu fungsi komputer baru dapat dijalankan ketika semua komponen ini
bergabung menjalankan tugasnya masing-masing. Oleh karena itu, mereka dikenal juga dengan istilah general-purpose microprocessor,
atau prosesor dengan tujuan umum.
Disisi lain, mikrokontroler adalah sebuah chip yang memiliki
mikroprosesor di dalamnya, serta komponen pendukung lainnya seperti RAM, ROM, port I/O serta timer yang terintegrasi dalam satu chip (atau IC, integrated circuit). Dengan kata lain, jika
keseluruhan komponen utama sebuah komputer ditempatkan
dalam sebuah chip tunggal, maka chip tersebut dikenal dengan
istilah mikrokontroler. Untuk memperjelas perbedaan kedua istilah
ini, kita bisa amati Gambar 1.1.
Gambar 1.1 Perbandingan Arsitektur (a) Sistem Mikroprosesor dan (b) Sistem Mikrokontroler
3
Dari segi harga, tentunya konfigurasi mikroposesor dengan
komponen eksternalnya (RAM, ROM, I/O, dan sebagainya) akan
membuat harga menjadi jauh lebih mahal daripada sebuah
mikrokontroler. Dari sudut pandang performa, sudah jelas bahwa
konfigurasi CPU dengan komponen eksternalnya akan jauh lebih
baik daripada sebuah mikrokontroler. Namun demikian, mikrokontroler dapat menjadi pilihan utama, terutama untuk aplikasi yang mempertimbangkan ukuran, harga serta portability
(mudah dibawa kemana-mana).
Pada Gambar 1.1 (b), kita dapat mengamati bahwa salah satu
komponen menarik yang dimiliki oleh mikrokontroler adalah ADC (analog-to-digital converter). ADC adalah komponen yang digunakan
untuk mengubah sinyal analog menjadi sinyal digital. Penerapan
ADC sangat penting, misalnya ketika kita menggunakan
mikrokontroler untuk aplikasi-aplikasi yang melibatkan sensor
analog.
SISTEM TERTANAM Mikrokontroler memiliki peranan yang signifikan dalam dunia
elektronik, salah satunya dalam dunia sistem tertanam. Sistem tertanam, atau sistem terbenam adalah istilah umum yang biasa
digunakan untuk menyebut suatu istilah dalam bahasa Inggris,
yaitu embedded system. Mikroprosesor dan mikrokontroler
merupakan komponen yang banyak digunakan pada produk-produk embedded system. Produk embedded system dikontrol oleh
mikroprosesor (atau mikrokontroler) yang telah ditanamkan pada alat tersebut. Ada banyak produk embedded system disekitar kita,
seperti printer, remote control, telepon, TV, mesin cuci, dan
sebagainya. Pada umumnya, ROM pada suatu produk embedded
system akan ditanamkan program yang secara khusus digunakan
hanya untuk menjalankan sebuah fungsi. Ambilah contoh sebuah
printer. Printer dilengkapi dengan mikroprosesor yang secara
khusus menjalankan fungsi sebuah printer, yaitu mengambil data dari komputer dan mencetaknya. Berbeda halnya dengan sebuah PC (personal computer), PC dapat menjalankan berbagai fungsi
sesuai dengan program aplikasi yang telah terinstal di dalamnya. Sebuah PC terdiri dari berbagai produk embedded system, seperti
keyboard, mouse, printer, modem dan sebagainya. Setiap
komponen pendukung dari sebuah PC ini memiliki mikrokontroler
4
di dalamnya. Sebagai contoh, kita bisa amati sebuah mouse.
Mikrokontroler menjalankan fungsinya yaitu mencari posisi mouse
dan mengirimnya ke PC.
Saat ini, perkembangan penggunaan mikrokontroler untuk produk embedded system sudah sangat banyak, terutama dikalangan
Pelajar, Mahasiswa, Praktisi serta Umum. Di kalangan Mahasiswa,
penggunaan mikrokontroler baik untuk skripsi dan proyek lainnya tidak hanya didominasi oleh Mahasiswa Jurusan Teknik dan Sains
tertentu (seperti Teknik Elektro, Teknik Fisika, Elektronika dan
Instrumentasi, Ilmu Komputer dan sebagainya), tetapi juga telah
meluas ke jurusan-jurusan lain. Salah satu meluasnya
penggunaan mikrokontroler adalah dengan lahirnya produk yang berlabel Arduino.
PHYSICAL COMPUTING Setelah membahas peranan mikrokontroler dalam dunia embedded system, mari kita membahas istilah lainnya, yaitu physical computing. Apa kaitannya mikrokontroler dengan physical computing?
Physical Computing atau komputasi fisik adalah usaha untuk
membuat suatu sistem yang dapat menghubungkan dunia nyata (physical world) dengan dunia virtual pada komputer. Sistem yang
dibangun merupakan kombinasi perangkat keras (hardware) dan perangkat lunak (software) yang bersifat interaktif, yaitu dapat
menerima rangsangan dari lingkungan luar dan merespon balik. Physical computing adalah sebuah konsep untuk memahami
hubungan yang manusiawi antara lingkungan yang sifat alaminya
adalah analog dengan komputer yang bekerja secara digital.
Physical computing adalah suatu pendekatan dari proses interaksi
antara manusia-komputer yang berawal dari bagaimana manusia mengekspresikan diri mereka secara fisik. Tubuh manusia dan
segala kemampuannya menjadi titik awal atau „starting point‟, dan
selanjutnya diusahakan merancang suatu antarmuka, baik secara hardware maupun software yang dapat merasakan dan merespon
apa saja yang manusia bisa lakukan secara fisik.
Karena berawal dari kemampuan seseorang, maka usaha untuk mewujudkan suatu skema physical computing memerlukan
pemahaman tentang bagaimana caranya agar komputer dapat
5
merasakan aksi fisik. Ketika kita melakukan aksi, kita
menyebabkan berbagai perubahan bentuk energi. Sebagai contoh,
suara yang dihasilkan oleh pita suara yang dirambatkan melalui
udara akan menyebabkan perubahan tekanan udara. Demikian pula dalam physical computing, parameter-parameter alam seperti
suhu, tekanan, kelembaban, dan sebagainya akan ditangkap oleh sensor dan selanjutnya melalui rangkaian elektronika yang tepat
akan diolah oleh komputer digital. Komputer selanjutnya memberi
respon ke dunia fisik melalui penggunaan berbagai aktuator, misalnya motor, valve, dan sebagainya. Amatilah Gambar 1.2.
Physical computing adalah sebuah konsep untuk memahami
hubungan yang manusiawi antara lingkungan yang sifat alaminya adalah analog dengan dunia komputer yang sifatnya adalah
digital. Umumnya, alat yang biasa digunakan sebagai „komputer‟
untuk mengolah segala sesuatu adalah mikrokontroler.
Mikrokontroler dapat dipasang sensor untuk merasakan
parameter-parameter alam dan selanjutnya dapat diolah dan
memberikan aksi ke lingkungan menggunakan aktuator, misalnya menghidupkan lampu, motor, kipas dan sebagainya.
Pembuatan purwarupa (prototype) atau prototyping adalah kegiatan
yang sangat penting dalam proses physical computing. Pada tahap
inilah seorang perancang melakukan eksperimen dan uji coba dari
berbagai jenis komponen, ukuran, parameter, program komputer
dan sebagainya secara berulang-ulang. Kegiatan ini dilakukan sampai diperoleh kombinasi yang dirasa paling tepat. Pada tahap prototyping inilah kemampuan programming serta analisis dari
perancang akan dieksplorasi. Kesuksesan tidak semata-mata
dipengaruhi oleh kemampuan memprogram sebuah
mikrokontroler, tetapi juga memerlukan pengetahuan mengenai
fenomena alam, pemodelan dalam rumus-rumus matematika, serta analisis terhadap rangkaian elektronika. Sering kali terjadi error
pada proses ini, baik dikarenakan oleh kesalahan dalam program,
kesalahan dalam perhitungan matematis, maupun kesalahan pada
perangkat keras yang sangat membutuhkan berbagai kemampuan
seperti yang disebutkan sebelumnya. Terkadang, proses inilah yang
membuat kita menjadi frustasi. Namun demikian, proses dan pengalaman inilah yang sering membuat seseorang bisa menjadi mahir dalam membuat suatu sistem physical computing.
6
Gambar 1.2 Interaksi Dunia Fisik dan Virtual yang
Dijembatani oleh Penggunaan Sensor dan Aktuator
Proses prototyping komponen perangkat keras merupakan suatu
proses merangkai berbagai komponen elektronika, seperti resistor,
transistor, kapasitor, dan sebagainya dengan suatu aturan tertentu
sesuai peruntukan rangkaian elektronikanya. Komponen-
komponen tersebut dihubungkan melalui jalur tembaga pada suatu papan yang dikenal dengan istilah printed circuit board (PCB). Tidak
semua orang memiliki keahlian yang sama dalam merancang PCB yang tepat. Oleh karena itu, terkadang proses prototyping dalam
sistem physical computing menjadi suatu yang sangat melelahkan
dan berbiaya mahal.
Saat ini, ketika teknologi mikroprosesor telah berkembang, proses prototyping dapat dikerjakan dengan lebih menyenangkan.
Mengapa demikian? Sebab saat ini telah hadir beberapa platform prototyping yang beredar di pasaran. Platform ini hadir tidak hanya
dalam bentuk hardware, namun juga software. Perancang akan
sangat dimudahkan dalam mendesain sesuatu.
Gambar 1.3 Ilustrasi Proses Prototyping