Anda di sini

Elektronika

Ploting Data Arduino Menggunakan Processing

Kusuma Wardana - 15 Februari 2016 22:16:16 0

Pendahuluan

Visualisasi merupakan salah satu proses yang penting dalam memaknai suatu data. Data yang divisualkan dalam berbagai bentuk grafik yang sesuai (grafik garis, batang, pie, dsb.) dapat mempermudah pengguna dalam menganalisis data tersebut, misalnya mengamati kecenderungan perubahan data dari waktu ke waktu, dsb. Program untuk melakukan visualisasi data sudah banyak tersedia. Dalam kaitannya dengan Arduino, kita dapat memvisualisasikan data tersebut menggunakan Processing.

Pada ulasan kali ini, kita akan menggunakan sebuah Arduino Uno dan potensiometer sebagai sensor. Potensiometer dapat digunakan untuk memodelkan penggunaan semua jenis sensor analog.

Ploting Gelombang Sinus dari Arduino

Sebagai langkah awal, mari kita coba membangkitkan sebuah gelombang sinus pada Arduino dan memvisualisasikannya pada Processing. Gelombang sinus memiliki nilai yang dapat bergerak dari -1 sampai 1 dengan nilai 0 sebagai sumbu tengah. Karena nilai yang akan kita kirim memiliki nilai dari 0 sampai 1023 (ingat, resolusi ADC pada Arduino Uno 10-bit, dan 2^10 = 1024), maka kita akan coba menggesernya agar semua komponen memiliki nilai positif. Sumbu utama (nilai 0) akan kita geser menjadi 511 (hampir setengah dari nilai maksimal), dan selanjutnya gelombang akan bergerak dari 0 sampai mendekati 1023. Tulislah program pada sisi Arduino dan Processing, sebagai berikut:

Program Arduino

double x,y;
void setup() {
  Serial.begin(9600);
  x = 0;
}

void loop() {
Serial.flush();
  y = 511+511*sin(x);  
  Serial.println(y);
  x += 0.05;
 
  if(x >= 2*3.14)
  x = 0;
  delay(100);
}

Program Processing

import processing.serial.*;
Serial portSerial;
int dataSekarang;
int inByte;
int[] nilaiY;
int w;

void setup()
{
  size (700,400);
  w = width-10;
  strokeWeight(3);
  smooth();
  nilaiY = new int[w];
  //sesuikan dengan nomer COM kita
  portSerial = new Serial(this, "COM5", 9600);  
}

void draw()
{
    String inString = portSerial.readStringUntil('\n');
    if(inString != null){
    inString = trim(inString);
    inByte = int(inString);
    println(inByte);    
    dataSekarang = int(map(inByte, 0, 1023, 0+10, height-50));
    
    dataSekarang = height-dataSekarang;   
    background(0);
   
    for(int i = 1; i < w; i++) {
      nilaiY[i-1] = nilaiY[i];
    }
     
    nilaiY[w-1] = dataSekarang;

    textSize(32);    
    text(inByte, 10, 30);
        
    stroke(255);
    line(w, dataSekarang, width, dataSekarang);
    strokeWeight(1);
    line(0, dataSekarang, width, dataSekarang);
    strokeWeight(3);
 
    for(int i=2; i<w; i++) {
      strokeWeight(3);
      stroke(220, 10, nilaiY[i]);     
      line(i, nilaiY[i-1], i, nilaiY[i]);    
    }
  }
}

Run-lah program Processing tersebut dan amatilah grafik yang dihasilkan, sebagai berikut:

Ploting Nilai Sensor dari Arduino

Sekarang, mari kita ubah program pada bagian Arduino, yaitu menggantinya dengan pembacaan pada pin A2 (atau di pin analog lainnya). Pasanglah sebuah potensiometer pada pin A2 tersebut, seperti yang diperlihatkan pada gambar berikut:

Program Arduino

void setup() {
  Serial.begin(9600);
}

void loop() {
  int nilaiSensor = analogRead(A2);  
  Serial.println(nilaiSensor);
  delay(100);
}

Program Processing

Sama dengan program Processing di atas

Run-lah program Processing tersebut dan amatilah grafik yang dihasilkan sambil memutar-mutar potensiometer. Amatilah contohnya sebagai berikut:

Seperti yang telah dibahas sebelumnya, penggunaan potensiometer dapat diganti dengan berbagai jenis sensor analog lainnya, misalnya sensor suhu, sensor cahaya, sensor denyut jantung, dsb. Semoga tutorial ini bermanfaat.

Referensi

Processing: Rolling Graph http://pastebin.com/kSrU3nVH. Diakses pada tanggal 15 Februari 2016 pukul 22:14 WITA

4.398
Image

Kusuma Wardana

I Nyoman Kusuma Wardana, yang akrab dipanggil Kusuma, lahir dan besar di Bali. Ia tinggal di Desa Wisata Ubud, dan lebih banyak melaksanakan aktivitasnya di Denpasar. Profesinya adalah sebagai staf pengajar di Jurusan Teknik Elektro, Politeknik Negeri Bali. Saat ini Ia menjadi salah satu penulis di tutorkeren.com.

Artikel Menarik Lainnya
Mari Gabung

Halo Emo 51 , Ada yang ingin disampaikan? Jangan sungkan untuk gabung diskusi ini. Silahkan Login dulu atau Daftar baru.