PROCESSING
BAB I
1
Gambar 3. Salah satu pesan error : tidak menuliskan tanda semicolon di akhir skrip
Mari kita kembangkan program kita agar menjadi lebih menarik. Ketiklah skrip
berikut dan amatilah hasilnya.
void setup(){
size(500, 300);
smooth();
}
void draw(){
3
Ada kalanya kita ingin menjalankan sketch tanpa perlu membuka Processing lagi.
Atau, kita ingin membagikan hasil karya kita dengan yang lain. Untuk merealisasikan
hal ini, kita dapat mengeksport hasil kerja kita. Caranya, pilihlah menu File aExport
Application... , atau cukup menekan tombol Ctrl+Shift+E. Selanjutnya akan muncul
jendela Export Options. Pilihlah sesuai dengan Sistem Operasi yang digunakan, dan
selanjutnya tekan tombol Export. Pada sistem operasi Windows, file yang dihasilkan
berformat .exe. File ini secara default akan diletakkan
di \Documents\Processing\NamaFile\versiWindows
Penulisan NamaFile dan versiWindows pada tautan di atas tergantung dari nama file
yang kita tulis, serta versi Windows (32 atau 64-bit).
BAB II
5
Konsep Piksel
Suatu karya menarik dapat diawali dari sebuah objek yang sederhana. Dengan konsep
karya yang menarik, sebuah objek dapat dipadupadankan dengan objek yang lain.
Selanjutnya, objek-objek ini dapat dibuatkan animasi. Lebih jauh lagi, objek-objek
selain dapat dianimasikan, objek-objek ini dapat berinteraksi dengan lingkungan di
luar komputer.
Menggambar pada layar komputer sama halnya dengan menggambar pada kertas.
Kita harus memulai suatu objek dari suatu sudut atau titik tertentu pada bidang kerja.
Pada layar komputer, elemen-elemen terkecil pembentuk bidang kerja dikenal
sebagai piksel. Piksel ini dapat diilustrasikan seperti grid kertas kotak.
Posisi dari tiap-tiap kotak ditentukan oleh koordinat x dan y-nya. Pada Processing,
koordinat-x adalah jarak dari sisi kiri jendela display (Display Window), dan
koordinat-y adalah jarak dari sisi atas jendela display.
Amatilah di atas. Pada Gambar tersebut, piksel (0,0) diawali dari sisi kiri-atas, dan
akan berakhir pada sisi kanan-bawah. Indeks dimulai dari 0, bukan dari 1. Misal, jika
kita memiliki layar berukuran 200 x 300 piksel, maka sudut kiri-atas memiliki
koordinat (0,0), dan sudut kanan-bawah memiliki koordinat (199 x 299). Pada
ukuran 200 x 300 piksel, nilai 200 menyatakan Lebar layar, sedangkan nilai 300
menyatakan Tinggi layar.
Jendela kerja dapat dibentuk dengan fungsi size(). Fungsi ini terdiri dari dua
masukan, yaitu nilai piksel untuk lebar dan nilai piksel untuk tinggi.
Membuat Jendela Kerja
1 size(80,100);
Menggambar Titik
Titik dapat digambar menggunakan fungsi point(). Masukkan fungsi ini adalah nilai
koodinat. Dengan demikian, fungsi point() hanya berukuran 1 piksel.
Menggambar Titik
size(200, 100);
1
point(50, 60);
2
Menggambar garis
Menggambar Garis
1 size(250, 150);
2 line(10, 10, 200, 100);
1 size(250, 150);
2 line(10, 10, 200, 100);
3 line(200, 100, 230, 50);
Amatilah bahwa titik pusat atau titik awal dari suatu objek dapat dibuat di luar
koordinat layar tanpa mengalami error. Demikian pula ketika ukuran hasil objek
melebihi ukuran layar. Amati pula bahwa objek yang dibuat belakangan (skrip berada
lebih di bawah) akan menumpuk objek sebelumnya (skrip berada lebih di atas).
Dengan kata lain, komputer akan mengeksekusi skrip dari atas dan berurutan akan
bergerak ke bawah.
Processing Menggambar Busur
1 size(620, 140);
2 arc(15, 60, 100, 100, 0, HALF_PI);
3 arc(150, 60, 100, 100, 0, PI + HALF_PI);
4 arc(270, 60, 100, 100, HALF_PI, 3.14);
5 arc(360, 60, 100, 100, HALF_PI, 3.14, PIE);
6 arc(450, 60, 100, 100, HALF_PI, 3.14, CHORD);
7 arc(500, 60, 100, 100, HALF_PI, 3.14, OPEN);
8 arc(550, 60, 100, 100, 1.57, 7);
Menggambar busur mungkin menjadi lebih rumit daripada objek dasar yang lain. Dua
masukan pertama dari fungsi ellipse() menunjukkan posisi pusat elips. Masukan
9
ketiga dan keempat menunjukkan lebar dan tinggi busur. Masukkan kelima dan
keenam menandakan sudut dimulai dan diakhirinya perputaran busur. Sudut ini
memiliki satuan radian, dan bukan dalam derajat. Sudut radian bergerak
dari 0 sampai 2p, dengan nilai p = 3,14. Nilai-nilai PI, QUARTER_PI, HALF_PI,
dan TWO_PI dapat digunakan untuk menggantikan satuan 180o, 45o, 90o, dan 360o.
Masukan fungsi arc() yang terakhir adalah mode busur. Mode PIE akan membentuk
juring yang melalui titik pusat busur. Mode CORD akan menghubungkan titik-titik
busur secara langsung tanpa melalui pusat elips. Mode OPEN sama dengan CORD,
namun tidak terdapat garis yang menghubungkan titik-titik busur.
Selain dalam radian, busur juga dapat dibuat dalam derajat, namun perlu dikonversi
menggunakan fungsi radians().
Processing Busur Dalam Derajat
1 size(340, 120);
2 arc(15, 60, 100, 100, radians(0), radians(90));
3 arc(150, 60, 100, 100, radians(45), radians(180));
4 arc(270, 60, 100, 100, radians(180), radians(450));
BAB III
10
Mengatur Properti
Beberapa fungsi seperti smooth(), strokeWeight(), strokeJoin(),
dan strokeCap() dapat digunakan untuk mengatur properti dari objek kita.
Fungsi smooth()
Fungsi smooth() dapat digunakan untuk memperhalus sudut-sudut objek.
Secara default, fungsi ini akan diaktifkan. Untuk menonaktifkan, gunakanlah
fungsi noSmooth(). Berbeda dengan versi sebelumnya, fungsi smooth() pada
Processing 3 hanya dideklarasikan sekali saja di awal program. Fungsi smooth() dan
noSmooth() tidak dapat dideklarasikan secara bersamaan di dalam satu sketch.
Contoh: Menggunakan fungsi smooth()
1 size(160, 120);
2 smooth();
3 ellipse(80, 60, 90, 90);
Contoh: Menggunakan fungsi noSmooth()
1 size(160, 120);
2 noSmooth();
3 ellipse(80, 60, 90, 90);
Fungsi strokeWeight()
Fungsi ini berguna untuk mengatur ketebalan garis. Secara default, tebal garis dari
objek yang dih=gambar adalah sebesar 1 piksel. Dengan menggunakan fungsi ini, kita
dapat mengatur ketebalan yang kita inginkan.
Contoh: Menggunakan fungsi strokeWeight()
1 size(460, 120);
2 strokeWeight(1);
3 ellipse(60, 60, 80, 80);
4 strokeWeight(5);
5 ellipse(170, 60, 80, 80);
6 strokeWeight(10);
7 ellipse(280, 60, 80, 80);
8 strokeWeight(15);
9 ellipse(390, 60, 80, 80);
Fungsi strokeJoin()
11
Fungsi ini digunakan untuk mengatur sudut pertemuan dari dua buah garis. Terdapat
tiga jenis mode, yaitu MITER, BEVEL dan ROUND. Amatilah perbedaannya dengan
menggunakan program berikut:
Contoh: Menggunakan fungsi strokeJoin()
1 size(420, 170);
2 strokeWeight(15);
3
4 strokeJoin(MITER);
5 rect(60, 40, 80, 80);
6
7 strokeJoin(BEVEL);
8 rect(170, 40, 80, 80);
9
10 strokeJoin(ROUND);
11 rect(280, 40, 80, 80);
Fungsi strokeCap()
Fungsi ini digunakan untuk mengatur sudut akhir dari suatu garis. Terdapat tiga jenis
mode, yaitu SUARE, PROJECT dan ROUND. Amatilah perbedaannya dengan
menggunakan program berikut:
Contoh: Menggunakan fungsi strokeCap()
1 size(230, 150);
2 strokeWeight(15);
3
4 strokeCap(ROUND);
5 line(40, 30, 80, 100);
6
7 strokeCap(SQUARE);
8 line(90, 30, 130, 100);
9
10 strokeCap(PROJECT);
11 line(140, 30, 180, 100);
Memainkan Warna
Terdapat beberapa fungsi yang dapat digunakan untuk memainkan warna pada
objek, diantaranya stroke(), fill(), dan background().
Fungsi stroke()
12
Fungsi ini berguna untuk mengatur warna garis dari objek yang akan digambar.
Gunakanlah fungsi noStroke() untuk menonaktifkan fungsi ini.
Contoh: Menggunakan fungsi stroke()
1 size(440, 120);
2 strokeWeight(10);
3
4 // dalam skala keabuan
5 stroke(100);
6 rect(30, 30, 60, 60);
7
8 // dalam format RGB
9 stroke(200, 50, 80);
10 rect(110, 30, 60, 60);
11
12 // dalam format heksa
13 stroke(#292CD3);
14 rect(190, 30, 60, 60);
15
16 // penulisan lain format heksa
17 stroke(0xFFD152BA);
18 rect(270, 30, 60, 60);
19
20 // tanpa stroke
21 noStroke();
22 rect(350, 30, 60, 60);
Fungsi fill()
Jika fungsi stroke()Fungsi ini digunakan untuk memberi warna pada garis objek kita,
maka fungsi fill() akan mewarnai bagian dalam dari objek kita. Metode pemberian
warna pada fungsi fill() sama dengan fungsi stroke().
Contoh: Menggunakan fungsi fill() skala keabuan
1 size(380, 270);
2 noStroke();
3 fill(150);
4 ellipse(170, -30, 210, 210);
5 fill(250);
6 ellipse(0, 270, 480, 480);
7 fill(80);
8 ellipse(282, 115, 160, 160);
Nilai masukan dari fungsi fill() dapat berupa warna keabuan (0 sampai 255), atau
menggunakan format RGB maupun HSV. Kombinasi dari fungsi fill() strokeWeight()
13
dan stroke() juga dapat dilakukan untuk menghasilkan objek yang bervariasi.
Amatilah contoh berikut:
Contoh: Menggunakan fungsi fill() format RGB
1 ize(400, 370);
2 smooth();
3 stroke(50);
4 strokeWeight(8);
5
6 fill(255, 80, 120);
7 ellipse(170, 180, 300, 300);
8
9 fill(217, 127, 229);
10 ellipse(170, 180, 200, 200);
11
12 fill(255, 200, 100);
13 ellipse(70, 60, 80, 80);
14
15 fill(60, 150, 200);
16 ellipse(300, 200, 150, 150);
17
18 fill(210, 240, 24);
19 ellipse(100, 300, 100, 100);
Fungsi background()
Jika fungsi background()Fungsi ini digunakan untuk memberi warna latar
(background) dari layar kita. Cara pemberian warna juga serupa dengan fungsi fill()
atau stroke(). Amatilah contoh berikut:
Contoh: Menggunakan fungsi background()
1 size(380, 270);
2 background(255, 204, 0);
3 noStroke();
4
5 fill(180);
6 ellipse(170, -30, 210, 210);
7
8 fill(250);
9 ellipse(0, 270, 480, 480);
10
11 fill(40);
12 ellipse(282, 115, 160, 160);
15
BAB IV
MENGGUNAKAN VARIABEL DAN FUNGSI PADA PEMROGRAMAN
PROCESSING
Variabel
Sebuah variabel akan menyimpan suatu nilai bertipe tertentu di dalam memori, dan
selanjutnya nilai ini dapat dipergunakan di bagian lain di dalam program. Salah satu
keuntungan menggunakan variabel adalah efisiensi dalam penulisan skrip program.
Dengan menggunakan variabel, nilai suatu data dapat diubah (di-update) sekali tanpa
harus mengubah seluruh data yang sama di dalam program tersebut. Selain itu, logika
pemrograman dapat dibentuk dengan lebih baik jika menggunakan variabel.
Contoh : Menggunakan variabel
1 size(480, 200);
2 int x = 60;
3 int y = 100;
4 int d = 90;
5 ellipse(x, y, d, d+10);
6 ellipse(x+120, y, d, d+20);
7 ellipse(x+240, y, d, d+40);
8 ellipse(x+360, y, d, d+60);
Pengulangan
Pengulangan akan mempermudah pekerjaan, terutam jika kita harus menulis skrip
program yang serupa satu-persatu. Pada Processing, pengulangan (iterasi) yang
dapat dimanfaatkan adalah bentuk for dan while.
Fungsi for
Fungsi for memiliki sintaks:
1 for (insialisasi; cek; perbarui) {
2 pernyataan
3 }
Ilustrasi fungsi for ditunjukkan pada gambar berikut:
17
Fungsi
Keberadaan fungsi sangat penting terutama ketika terdapat bagian-bagian dari
program yang sering dipanggil, misalnya rumus matematika, atau pembuatan suatu
objek yang rumit, yang dipanggil berkali-kali.
19
9 diameter = cariDiameter(10000);
10 ellipse(200, 100, diameter, diameter);
11 }
12
13 float cariDiameter(int luasLingkaran){
14 float d = 2*sqrt(luasLingkaran/3.14);
15 return d;
16 }
Pada contoh di atas, kita menggunakan fungsi return untuk mendapatkan nilai balik
dari fungsi kita, pada kasus ini adalah nilai d (diameter lingkaran). Kata void kita
hilangkan, dan diganti dengan tipe data apa yang kita inginkan (dalam hal ini float).
Contoh: Animasi lingkaran berdasarkan perbedaan diameter
1 float diameter = 0;
2 int luas = 0;
3
4 void setup(){
5 size(400, 300);
6 strokeWeight(3);
7 }
8
9 void draw(){
10 background(204);
11 luas = luas + 2000;
12 diameter = cariDiameter(luas);
13 if (luas >= 40000){
14 luas = 0;
15 }
16 ellipse(200, 150, diameter, diameter);
17 delay(200);
18 }
19
20 float cariDiameter(int luasLingkaran){
21 float d = 2*sqrt(luasLingkaran/3.14);
22 return d;
23 }
10 }
11
12 void ulat(int x, int y){
13 pushMatrix();
14 translate(x, y);
15
16 //segmen badan 1
17 fill (#03480F);
18 ellipse(200, 80, 70, 30);
19
20 //segmen badan 2
21 fill (#109026);
22 ellipse(180, 80, 70, 60);
23
24 //segmen badan 3
25 fill (#20B239);
26 ellipse(160, 100, 70, 100);
27
28 //segmen badan 4
29 fill (#109026);
30 ellipse(120, 120, 80, 80);
31
32 // segmen badan 5
33 fill (#20B239);
34 ellipse(100, 100, 100, 120);
35
36 //muka
37 fill (#3AD627);
38 ellipse(90, 75, 110, 80);
39
40 //mata kanan
41 fill(0);
42 ellipse(100, 70, 15, 20);
43
44 //mata kiri
45 ellipse(70, 65, 15, 20);
46 popMatrix();
47 }
Pada program di atas, karakter ulat dimunculkan sebanyak tiga kali dengan posisi
yang berbeda-beda. Jika kita mengetikkan program yang sama berkali-kali untuk
membuat karakter ulat, maka skrip program kita menjadi sangat panjang. Hal ini
tentulah tidak efisien. Oleh karena itu, penggunaan fungsi menjadi sangat penting
untuk kasus ini.
Fungsi translate() pada program di atas digunakan untuk menggeser objek relatif
terhadap posisi (0, 0) pada Display Window. Dengan menggunakan fungsi ini, kita
dapat menggeser-geser posisi karakter yang kita buat secara utuh.
23
43
}
BAB V
MENYERTAKAN GAMBAR DAN TULISAN PADA PEMROGRAMAN
PROCESSING
Memasukkan Gambar
Processing dilengkapi dengan fasilitas yang memungkinkan kita dapat memasukkan
gambar ke Display Window. Terdapat tiga langkah yang dapat dilakukan, yaitu
sebagai berikut:
1. Import gambar ke folder data sketch
2. Buat variabel PImage untuk menyimpan gambar
3. Load gambar ke dalam variabel dengan fungsi loadImage()
Import File Gambar
Kliklah Sketch - Add File... , kemudian pilih gambar yang ingin dimasukkan ke dalam
sketch. Setelah memilih, tekanlah tombol Open. Selanjutnya, layar akan kembali ke
jendela awal.
1 PImage gambar;
2 void setup(){
3 size(740, 380);
4 gambar = loadImage("jagannath.jpg");
5 }
6 void draw(){
7 image(gambar, 0, 0);
8 }
Contoh berikut digunakan untuk menampilkan gambar lebih dari satu pada jendela
Display:
Contoh: Menampilkan Gambar Lebih dari Satu
1 PImage gambar1;
2 PImage gambar2;
3 void setup(){
4 size(850, 330);
5 gambar1 = loadImage("Koala.jpg");
6 gambar2 = loadImage("Penguins.jpg");
7 }
8 void draw(){
9 image(gambar1, 10, 10);
10 image(gambar2, 430, 10);
11 }
Menampilkan Tulisan
Kita dapat menambahkan tulisan pada Display Window kita. Langkah pertama yang
harus dilakukan adalah melakukan konversi salah satu jenis font yang ada di
komputer kita menjadi berformat VLW (Video Linkwell Document). Konversi ini
dilakukan untuk mengubah tulisan menjadi gambar. Untuk melakukan hal ini,
carilah Tools - Create Fonts.
Selanjutnya, akan muncul jendela Create Font. Pilihlah salah satu font yang ingin
digunakan. Perhatikanlah menentukan ukuran font yang akan digunakan. Semakin
besar ukuran tulisan, maka akan semakin besar pula ukuran file dalam format VLW.
Setelah melakukan konversi, buatlah sebuah variabel PFont yang akan digunakan
untuk menyimpan font kita. Muati (load) font ke variabel menggunakan
fungsi loadFont(). Gunakanlah fungsi textFont() untuk melakukan seting terhadap
font.
26
BAB VI
MEMAINKAN MUSIK (LAGU) PADA PEMROGRAMAN PROCESSING
Memainkan Musik
Saat ini, Processing telah di support oleh berbagai developer dengan hadirnya
berbagai pustaka (library). Dengan adanya berbagai pustaka ini, pemrograman
Processing akan menjadi lebih menyenangkan. Pada tutorial ini, kita akan memainkan
musik dan menampilkan muka gelombang (waveform) dari musik tersebut. Pustaka
yang akan kita gunakan adalah minim. Cek informasi penggunaan pustaka ini pada
tautan berikut.
Pertama, kita harus mengimpor pustaka yang diperlukan, yaitu minim. Bukalah
Processing dan carilah pada Sketch - Import Library... - Add Library... - Minim.
Tunggulah beberapa saat untuk menginstal file tersebut secara online. Sudah tentu,
kita membutuhkan koneksi internet.
Kemudian, pilihlah lagu atau voice yang ingin diputar dengan cara memilih Sketch -
Add File - Lokasi lagu yang diinginkan
Jika sudah, import-lah pustaka minim kita, dengan memilih Sketch - Import Library... -
Minim. Jika segala sesuatunya lancar, maka akan muncul import ddf.minim.*; pada
bagian atas layar sketch. Kemudian, ketiklah skrip berikut:
Contoh: Memainkan lagu
1 import ddf.minim.*;
2
3 AudioPlayer lagu;
4 Minim minim;
5
6 void setup()
7 {
8 minim = new Minim(this);
9 lagu = minim.loadFile("Gagal Bersembunyi - The Rain.mp3");
10 lagu.play();
11 }
12
13 void draw()
14 {
15 }
16
17 void stop()
18 {
19 lagu.close();
20 minim.stop();
21 super.stop();
28
22 }
Jangan lupa untuk menuliskan judul lagu yang benar pada fungsi minim.loadFile. Jika
di Run, maka lagu akan dimaikan. Menarik, bukan?
Memainkan Musik dan Menampilkan Muka Gelombang
Mari kita modifikasi program di atas. Kita akan tambahkan muka gelombang
(waveform) sebagai efek visual agar tampilan menjadi menarik. Ketiklah skrip
berikut:
Contoh: Memainkan lagu dan menampilkan waveform-nya
1 import ddf.minim.*;
2
3 AudioPlayer lagu;
4 Minim minim;
5
6 void setup()
7 {
8 size(500, 200);
9 minim = new Minim(this);
10 lagu = minim.loadFile("Gagal Bersembunyi - The Rain.mp3");
11 lagu.play();
12 }
13
14 void draw()
15 {
16 background(0);
17 stroke(255);
18 for(int i = 0; i < lagu.bufferSize() - 1; i++)
19 {
20 line(i, 100 + lagu.right.get(i)*50, i+1, 100 + lagu.right.get(i+1)*50);
21 }
22 }
23
24 void stop()
25 {
26 lagu.close();
27 minim.stop();
28 super.stop();
29 }
Referensi
Minim Library Developer
Website: http://code.compartmental.net/tools/minim/quickstart/
29
BAB VII
MEMBUAT ANIMASI PADA PEMROGRAMAN PROCESSING
BAB VIII
MENGHUBUNGKAN PROCESSING DENGAN ARDUINO
Bahasa Java memulai indeks dari 0. Port COM1 memiliki indeks 0, COM3 memiliki
indeks 1, COM29 memiliki indeks 2, dan COM33 memiliki indeks 3. Karena port yang
digunakan Penulis adalah port COM33, maka indeks yang digunakan adalah 3, seperti
yang tertulis pada skrip String namaPort = Serial.list()[3].
Jika kita mengetahui dengan pasti nomer port Com yang digunakan, kita dapat
menuliskan secara langsung nomer yang digunakan. Amatilah contohnya, sebagai
berikut:
Contoh: Kode Processing - Menulis Langsung Port COM
1 import processing.serial.*;
2 Serial portSerial;
3 String stringKu;
4
5 void setup(){
6 portSerial = new Serial(this, "COM33", 9600);
7 }
8
9 void draw()
10 {
11 if ( portSerial.available() > 0)
12 {
13 stringKu = portSerial.readStringUntil('\n');
14 }
15 println(stringKu);
16 delay(100);
17 }
Mengirim Data dari Processing ke Arduino
Setelah berhasil mengirim data dari Arduino ke Processing, selanjutnya kita balikkan
arah komunikasi. Kita akan mengirim data dari Processing ke Arduino.
Contoh: Kode Arduino - Menerima Data
1 char val;
2 int ledPin = 13;
3
4 void setup() {
5 pinMode(ledPin, OUTPUT);
6 Serial.begin(9600);
7 }
8
9 void loop() {
10 if (Serial.available())
11 {
12 val = Serial.read();
13 }
14 if (val == '1')
15 {
34
16 digitalWrite(ledPin, HIGH);
17 } else {
18 digitalWrite(ledPin, LOW);
19 }
20 delay(10);
21 }
Pada Processing, ketiklah skrip berikut:
Contoh: Kode Processing - Mengirim Data
1 import processing.serial.*;
2 Serial portSerial;
3
4 void setup(){
5 size(200,200);
6 portSerial = new Serial(this, "COM33", 9600);
7 }
8
9
10 void draw() {
11 background(204);
12 if (mousePressed == true)
13 {
14 portSerial.write('1');
15 background(255, 0, 0);
16 } else
17 {
18 portSerial.write('0');
19 }
20 }
Tekanlah jendela display menggunakan mouse. Jika ditekan, layar akan berwarna
merah dan LED pada pin 13 akan menyala.
Mengatur Objek Melalui Arduino
Untuk dapat mengatur objek pada Processing melalui Arduino, tipe data yang
diterima Processing haruslah sesuai, misalnya bertipe data int atau float. Kita tidak
dapat mengatur objek jika tipe data yang dikirmkan berupa string.
Sintaks print atau println pada Arduino akan mengirim data ke Processing dalam
format ASCII. Format ini tidak cocok jika langsung diambil tanpa melakukan konversi
terlebih dahulu.
Selain print atau println, kita dapat menggunakan fungsi write. Fungsi write akan
mengirim data dalam format byte. Byte yang diterima selanjutnya akan diubah
menjadi format int. Amatilah contoh berikut ini.
Tempatkanlah sebuah potensiometer di pin A0. Pada Arduino, ketiklah skrip berikut:
Contoh: Kode Arduino - Mengirim Data Sensor ke Processing
35
Sekarang, mari kita buat objek elips dengan diameter yang dapat diatur sesui dengan
nilai putaran potensiometer yang dibaca oleh Arduino. Letakkanlah potensiometer di
pin A0, dan ketiklah sintaks berikut:
Contoh: Kode Arduino - Mengirim Data untuk Mengatur Ellips
1 const int analogInPin = A0;
2 int nilaiSensor = 0;
3 int nilaiOutput = 0;
4
5 void setup() {
6 Serial.begin(9600);
7 }
8
9 void loop() {
10 nilaiSensor = analogRead(analogInPin);
11 nilaiOutput = map(nilaiSensor, 0, 1023, 0, 255);
12 Serial.write(nilaiOutput);
13 delay(30);
14 }
Pada Processing, ketiklah skrip berikut:
Contoh: Kode Processing - Menerima data untuk mengatur elips
1 import processing.serial.*;
2 Serial portKu;
3 int inByte;
4
5 void setup(){
6 size(400, 400);
7 portKu = new Serial(this, "COM33", 9600);
8 }
9
10 void draw(){
11 background(204);
12 while (portKu.available() > 0) {
13 inByte = portKu.read();
38
14 println(inByte);
15 }
16
17 //atur elips sesuai nilai sensor
18 ellipse(200, 200, inByte, inByte);
19 delay(100);
20 }
Kita juga dapat mengatur warna yang kita inginkan. Modifikasilah program
Processing kita sebelumnya.
Contoh: Kode Processing - Mengatur warna dan diameter elips
1 import processing.serial.*;
2 Serial portKu;
3 int inByte;
4
5 void setup(){
6 size(400, 400);
7 portKu = new Serial(this, "COM33", 9600);
8 }
9
10 void draw(){
11 background(204);
12 while (portKu.available() > 0) {
13 inByte = portKu.read();
14 println(inByte);
15 }
16
17 //atur warna ellips
18 Fill(inByte, 100, 100);
19 //atur elips sesuai nilai sensor
20 ellipse(200, 200, inByte, inByte);
21 delay(100);
22 }