Rabu, 17 Juni 2015

Menampilkan Grafik Sensor Ultrasonik dari Arduino Menggunakan MATLAB


Halo semua... saya telah menuliskan artikel tentang bagaimana cara menampilkan data secara real time dari sensor ultrasonik menggunakan MATLAB. Sensor yang digunakan adalah HC-SR04. Tampilan jarak yang ditangkap oleh sensor adalah berupa grafik batang. Nilai sensor dikirim dari Arduino ke MATLAB hanya jika ada request. Oleh karena itu, nilai jarak yang ditampilkan adalah nilai jarak yang diperoleh ketika itu. Untuk beberapa kasus, terjadi kesalahan umum, yaitu data dikirim terus-menerus ke MATLAB dan akan menumpuk di buffer (memori), sehingga data yang ditampilkan menjadi tidak real-time.

Simak tutorial selengkapnya di blog edukasi saya:

Semoga bermanfaat :)

Rabu, 29 April 2015

Pengenalan Fuzzy Logic



Saya telah mengulas dengan cukup lengkap tentang logika fuzzy di web edukasi saya. Pertama tetang matematika sederhana dari logika fuzzy, dan kedua tetang penerapannya di MATLAB menggunakan Fuzzy Logic Toolbox.

Silahkan dicek bagi yang berminat untuk belajar. Sengaja saya pilihkan studi kasus yang cukup sederhana. Semoga bisa dipahami dengan mudah.

Untuk pengenalan logika fuzzy bisa dilihat di link berikut: Pengenalan Logika Fuzzy
Untuk penerapannya di MATLAB bisa dilihat di link berikut: Fuzzy Logic Toolbox

Senin, 09 Februari 2015

Website Edukasi di Bidang Embedded Systems

Karena keinginan untuk terus berkarya, saya dan rekan membuat suatu website yang mengulas berbagai hal di bidang embedded systems, seperti mikrokontroler dan mikrokomputer. Beberapa topik lainnya seperti pemrograman Android, pemrosesan citra, pemrosesan suara, dan hal-hal lain terkait perkembangan ilmu pengetahuan dan teknologi akan diulas. 

Semoga hadirnya website ini menambah khasanah pengetahuan dan meningkatkan minat baca serta kreativitas anak bangsa di bidang ilmu pengetahuan dan teknologi, terutama di bidang embedded systems. 

Silahkan kunjungi web kami, dan kita saling berbagai :)


Kunjungi website edukasi kami di www.blog.miarana.com


Simulink untuk Pemrograman Mikrokontroler

Simulink adalah bahasa pemrograman grafis untuk memodelkan aliran data dan program. Dengan segala ketangguhan yang dimilikinya, kini Simulink dapat terintegrasi dengan Arduino untuk menunjang berbagai project di bidang embedded systems untuk berbagai bidang keilmuan, seperti signal processing, artificial intelligent, control systems, image processing, dan sebagainya.

Simaklah ulasan berikut tentang bagaimana peranan Simulink dalam bidang embedded systems, khususnya untuk mikrokontroler di web edukasi saya berikut.




Mengirim Data dari Arduino dan Memploting Secara Real-Time di MATLAB

Ulasan berikut akan menampilkan bagaimana caranya mengirim data dari Arduino dan menampilkannya secara real-time melalui grafik. Data yang dikirim dari Arduino dapat berupa data yang diperoleh dari sensor, atau nilai tertentu yang dibangkitkan oleh mikrokontroler itu sendiri.

Simak ulasan lebih lengkapnya di web edukasi saya berikut.


Instalasi Pustaka Arduino pada MATLAB

Bagi kalian penggemar MATLAB dan Simulink sekaligus hobi memprogram Arduino, simaklah tutorial bagaimana cara instalasi pustaka secara online di web blog saya. Kita bisa temukan banyak hal yang menarik, terutama bagi kalian yang tertarik di bidang pemodelan dan visualisasi data menggunakan MATLAB dan Simulink.

Bagi yang tertarik, silahkan kunjungi web edukasi saya berikut.


Rabu, 13 Agustus 2014

Kabar Gembira!!! ... PID Library kini hadir untuk Arduino

Kini semakin banyak komunitas yang berlomba-lomba mengembangkan kemampuan Arduino, salah satunya dibidang kontrol. Kontrol 'klasik' namun sangat tangguh yang sampai saat ini masih banyak digunakan adalah Kontrol PID (Proportional Integral Derivative). Terkadang memprogram PID pada mikrokontroler menjadi tantangan tersendiri. Mungkin akan banyak kesulitan yang dihadapi dalam mengimplementasikan algoritma PID pada mikrokontroler. Namun, saat ini telah dibuat pustaka untuk memprogram PID pada Arduino, sehingga pekerjaan kita akan jauh dipermudah.



Gambar. Skematik Pengontrol PID


Apa itu PID?
PID adalah kependekan dari Proportional-Integral-Derivativeyaitu suatu algoritma kontrol yang sangat populer. PID akan menghitung nilai error, yaitu perbedaan antara nilai input (nilai yang diinginkan) dengan nilai output. Pengontrol akan mencoba untuk mengurangi error dengan cara mengatur nilai output yang dihasilkan oleh sistem. Dengan kata lain, pengontrol PID akan berusaha membawa nilai input sama dengan nilai output. 

Proses Tunning
Tantangan yang paling utama pada pengontrol PID adalah mengatur parameter dari PID tersebut agar nilai error menjadi sekecil mungkin. Dari asal katanya, PID terdiri dari parameter pengontrol proporsional (Kp), integral (Ki) dan derivative (Kd). Skematik sistem kontrol PID diperlihatkan seperti pada gambar di atas. Mengontrol parameter ini akan membuat perilaku sistem akan berbeda-beda dalam merespon output, misalnya seberapa cepat? seberapa lambat? seberapa besar perubahan error? dsb... akan tergantung nilai Kp. Ki. dan Kd yang ditetapkan.
Nah, pertanyaannya sekarang, berapa nilai yang terbaik untuk tiap-tiap parameter tersebut? Jawabannya, tidak ada. Sebab, kata terbaik ini akan sangat tergantug dari desainer kontrolnya. Selain alasan teknis, respon sistem yang nantinya akan dihasilkan oleh pengontrol juga harus mempertimbangkan kenyamanan. Contoh, percepatan pergerakan yang mendadak ketika mobil balap digas akan berbeda dengan percepatan pada lift, sebab percepatan yang terlalu besar akan sangat mempengaruhi kenyamanan penumpang lift. 

Kapan Menggunakan PID?
Pertanyaan yang sangat bagus!! Tidak semua yang canggih cocok untuk hal yang seharusnya bisa diselesaikan dengan sangat sederhana. Jika kita tidak perlu algoritma kontrol untuk mengendalikan sesuatu, maka semestinya kita tidak perlu repot-repot menggunakan PID. Berikut dua 'kaidah' yang dapat dijadikan patokan kapan menggunakan PID.
  1. Apakah kita memerlukan usaha lebih untuk menyelesaikan sesuatu? Jika kasus dapat diselesaikan dengan sistem sederhana, maka tidak ada alasan menggunakan kontrol PID. Contoh, mungkin kontrol ON-OFF saja sudah cukup untuk menyelesaikan masalah otomasi menghidupkan dan mematikan pompa di rumah kita. Cukup pasang sensor level air pada tangki, masalah akan terselesaikan dengan tepat sasaran. Sensor level ini bekerja dengan sangat sederhana, yaitu akan ON ketika level air sudah kurang, dan OFF jika level air dalam tangki masih cukup.
  2. Apakah sistem kita sering melakukan perulangan keadaan? Jika ya, Anda dapat melirik ke kontrol PID. PID memerlukan perulangan (repeatability). Jika output berubah dari keadaan A ke keadaan B, paling tidak ada keadaan yang terjadi berulang-kali. Contoh, ketika kita mengendarai mobil. Kita akan menginjak pedal gas setiap saat, terkadang menginjak gas agak dalam, terkadang sedikit saja, dsb. Injakan gas yang kita lakukan harus direspon dengan sangat baik oleh mobil kita, jika tidak, mmmm....

Pustaka PID
Silahkan bagi Anda yang tertarik mencoba pustaka ini.. silahkan download disini 
Berikut cuplikan program yang diberikan oleh si pembuat pustaka. Program ini diigunakan untuk membaca analog input pada pin A0 dan mengeluarkan besaran nilai PWM pada output 3

/********************************************************
* PID Basic Example  
* Reading analog input 0 to control analog PWM output 3  
********************************************************/
#include
//Define Variables we'll be connecting to
double Setpoint, Input, Output;
//Specify the links and initial tuning parameters
PID myPID(&Input, &Output, &Setpoint,2,5,1, DIRECT);
void setup()
{
  //initialize the variables we're linked to
  Input = analogRead(0);
  Setpoint = 100;
  //turn the PID on
  myPID.SetMode(AUTOMATIC);
}
void loop()
{
  Input = analogRead(0);
  myPID.Compute();
  analogWrite(3,Output);
}

Minggu, 10 Agustus 2014

RADE Research Group


Saya, rekan-rekan Mahasiswa dan pihak kampus STMIK-STIKOM Bali membentuk grup riset di bidang robotika dan embedded systems. Kami namai dengan RADE (Robotics AnD Embedded systems).

Saya berharap RADE dapat menjadi wadah untuk berkreasi, memperdalam keilmuan, mencoba hal-hal yang baru serta belajar berosisialisasi dan mengutarakan gagasan. Semoga sikap ini lahir dari sebuah ketulusan untuk mengembangkan diri dan kemauan untuk memajukan kampus STIKOM Bali. 

Jaya RADE !!!

Kamis, 07 Agustus 2014

Konsep Dasar Jaringan Saraf Tiruan

Saraf Biologis Otak Manusia
Otak manusia terdiri dari milyaran sel saraf  (neuron). Masing-masing neuron terhubung secara langsung sampai 200.000 koneksi dengan sel saraf yang lain (Nelson dan Illingworth, 1991). Sel-sel saraf ini mampu mengolah berbagai informasi yang pernah dan sedang dialami oleh manusia. Ketika manusia berpikir, aktivitas-aktivitas yang terjadi adalah aktivitas mengingat, memahami, menyimpan, maupun memanggil kembali informasi-informasi yang pernah dipelajari oleh otak (Puspitaningrum, 2006). Tiap-tiap sel bekerja seperti suatu prosesor sederhana (Kusumadewi,2004).
Sel-sel saraf secara umum dapat dibagi menjadi tiga bagian penting, yaitu sebagai berikut:
  1. Badan sel (soma), merupakan bagian neuron dimana inti sel terletak di dalamnya. Inti sel berfungsi sebagai tempat terjadinya pemrosesan informasi.
  2. Dendrit, merupakan bagian neuron yang berfungsi sebagai bagian yang menerima ransangan dari neuron lain. Dendrit bercabang banyak dan terhubung dengan banyak akson neuron lain
  3. Akson, merupakan bagian neuron yang mengantarkan ransangan ke neuron lainnya. Akson akan terhubung dengan dendrit neuron lain yang menjadi tujuannya.
Suatu sinyal yang dihantarkan oleh dendrit akan mengalami pemrosesan informasi pada bagian badan sel. Informasi hasil olahan selanjutnya dikirim ke neuron lain melalui akson. Akson suatu neuron akan terhubung dengan dendrit neuron lainnya. Pertemuan antara dendrit dan akson disebut sinapsis. Dendrit bercabang-cabang dan terhubung dengan banyak akson dari neuron yang lain. 


Gambar 1. Neuron Biologis Manusia

Suatu sinyal yang melewati sinapsis akan bertindak sebagai input untuk neuron yang lain dan seolah-olah mengalami pembobotan (weighted). Oleh karena itu, beberapa sinyal kemungkinan memiliki kekuatan yang berbeda dengan sinyal yang lain. (Nelson dan Illingworth, 1991). Seluruh sinyal yang mengalami pembobotan ini selanjutnya dijumlahkan, dan apabila lebih besar dari suatu nilai ambang (threshold) maka neuron akan menghasilkan suatu nilai input tertentu (teraktivasi).
Konsep Dasar Jaringan Saraf Tiruan
Jaringan saraf tiruan (JST) mengambil prinsip kerja dari neuron biologis manusia. Analogi kinerja JST dan neuron biologis diperlihatkan pada Gambar 2. Suatu impuls input (x1, x2 dan x3) akan diteruskan dengan membawa nilai bobot tertentu (w1j, w2j, dan w3j). Semua sinyal input diproses dan dijumlahkan untuk menghasilkan nilai u


Gambar 2. Analogi Kinerja JST dan Neuron Biologis

Hasil penjumlahan selanjutnya dibandingkan dengan nilai ambang melalui suatu fungsi transfer S(U). Neuron hanya akan menghasilkan output ketika input melewati suatu nilai ambang (threshold) tertentu.
Fungsi Transfer
Terdapat beberapa fungsi transfer (juga biasa disebut sebagai fungsi aktivasi) yang biasa digunakan untuk membangun suatu jaringan saraf tiruan, antara lain:
Fungsi Undak Biner (Hard Limit)
Fungsi ini membatasi input agar menghasilkan output dengan keluaran biner (0 atau 1). Jika input n lebih kecil dari 0, maka output akan bernilai 0, dan sebaliknya output akan bernilai  1 jika input n lebih besar atau sama dengan 0. Bahasa pemrograman MATLAB menyediakan fungsi ini dengan nama hardlim

Fungsi Linear
Output fungsi ini akan sama dengan nilai inputnya. Bahasa pemrograman MATLAB menyediakan fungsi ini dengan nama purelin.

Fungsi Sigmoid Biner
Fungsi ini membatasi rentang output antara 0 dan 1. Bahasa pemrograman MATLAB menyediakan fungsi ini dengan nama logsig.
Fungsi Sigmoid Bipolar
Fungsi ini adalah fungsi sigmoid dengan pembatasan output dengan rentang antara 1 sampai -1. Bahasa pemrograman MATLAB menyediakan fungsi ini dengan nama tansig.


Arsitektur Jaringan Saraf Tiruan
Arsitektur pada jaringan saraf tiruan dapat diklasifikasi berdasarkan jumlah lapisan (layer) yang membangun jaringan. Terdapat dua istilah, yaitu jaringan dengan lapisan tunggal (a layer of neurons) dan jaringan dengan banyak lapisan (multiple layers of neurons).
JST Lapis Tunggal (a Layer of Neurons)
Misalkan didefinisikan jaringan dengan jumlah input R dan jumlah neuron S.  Masing-masing elemen input vektor p terhubung dengan masing-masing neuron input dengan pembobotanW. Pada tiap-tiap neuron ke-i, terjadi proses penjumlahan sinyal input terbobot, dan diteruskan ke suatu fungsi transfer f untuk menghasilkan output a.


Gambar 3. JST Lapis Tunggal

JST Lapis Banyak (Multiple Layers of Neurons)
Contoh arsitektur jaringan ini dapat dilihat pada Gambar 4. Lapisan 1,2,3 dan seterusnya merupakan lapisan-lapisan yang membangun jaringan. Multilapis dapat dibayangkan sebagai satu lapis yang tersusun banyak. Kinerja arsitektur ini mirip dengan arsitektur satu lapisan, hanya saja tiap-tiap output dari satu lapisan akan  menjadi input untuk lapisan di depannya. Lapisan yang menghasilkan output akhir jaringan dikenal dengan istilah output layer, sedangkan lapisan lainnya dikenal sebagai lapisan tersembunyi (hidden layer). Tiga lapisan pada Gambar 4 terdiri dari satu output layer (lapisan 3) dan dua hidden layers(lapisan 1 dan lapisan 2). 

Gambar 4. JST dengan Tiga Lapisan

Referensi
Kusumadewi, S., 2004, Membangun Jaringan Syaraf Tiruan (Menggunakan Matlab dan Exel Link), Yogyakarta , Graha Ilmu.
Kusuma, W., 2008, Identifikasi Intonasi Ucapan Bahasa Indonesia untuk Sistem Monitoring dan Pengendalian Perangkat Listrik Menggunakan Jaringan Saraf Tiruan, Skripsi Jurusan Teknik Fisika Universitas Gadjah Mada, Yogyakarta
Nelson, M.M., 1991, llingworth, W.T., A Practical Guide to Neural Nets, Addison-Wesley Publishing Company, Massachusetts.
Puspitaningrum, D., 2006, Pengantar Jaringan Saraf Tiruan, Andi Offset, Yogyakarta.

Rabu, 09 Juli 2014

Ada Cinta Dibalik Kerumitan ...

Walau kita menggemari elektronika... kita tidak egois.. kita tidak kaku...
kita bukan tanpa rasa humor... atau tanpa keinginan bersosialita
Sebaliknya, kita dipenuhi rasa seni, cinta dan kasih sayang....