Disusun Oleh :
I Made Widyaputra
1210191027
3 D4 TEKNIK TELEKOMUNIKASI A
2020/2021
MATERI 2
ANALOG INPUT DAN AUDIO PROCESSING
I. TUJUAN
1. Membaca data yang masuk pada pin Analog Input Arduino.
2. Memvisualisasikan data dari pin Analog Input dalam bentuk grafik.
3. Memvisualisasikan data file audio dalam bentuk grafik.
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. Dalam
kaitannya dengan Arduino, pengguna dapat memvisualisasikan data tersebut
menggunakan Processing. Menggunakan sebuah Arduino Uno dan potensiometer
sebagai sensor. Potensiometer digunakan untuk memodelkan penggunaan semua
jenis sensor analog. Baca sensor atau perangkat input dan kirim nilainya sebagai
byte melalui protokol serial ke PC ke Processing. Potensiometer untuk mengatur
obyek pada Processing melalui Arduino
B. Konsep Pixel
Sebuah obyek dapat dipadukan dengan obyek yang lain. Selanjutnya, obyek -
obyek ini dapat dibuatkan animasi. Lebih jauh lagi, obyek - obyek ini dapat
berinteraksi dengan lingkungan di luar komputer. Menggambar pada layar
komputer sama halnya dengan menggambar pada kertas. Harus memulai suatu
obyek 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.
Gambar 1. Konsep Pixel
Pada Gambar 1, piksel (0,0) diawali dari sisi kiri-atas, dan akan berakhir pada sisi
kanan-bawah. Indeks dimulai dari 0, bukan dari 1. 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.
a. Baca sensor atau perangkat input, pembacaan pada pin A2 (atau di pin
analog lainnya).
b. Memvisualisasikan data dari pin Analog Input dalam bentuk grafik.
c. Mengatur grafik pada Processing menggunakan Potensiometer
3. Ploting Data Audio Dari File
a. Baca data audio dari file .mp3.
b. Memvisualisasikan data dari file .mp3 dalam bentuk grafik.
c. Grafik data dinamis sesuai perubahan data yang diterima
d. Perintah load file lagu dan play:
e. ”lagu = minim.loadFile(”nama_lagu.mp3"); ” ”lagu.play();”
III. PERALATAN
1. Arduino Uno Board
2. Softwarre Processing
3. Potensiometer
IV. RANGKAIAN
a. 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);
}
}
b. 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];
void draw() {
inString = trim(inString);
inByte = int(inString);
println(inByte);
background(0);
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);
}
2. Ploting Nilai Sensor dari Arduino
a. Program Arduino
void setup() {
Serial.begin(9600);
}
void loop() {
b. 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];
}
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);
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);
a. Program Procesing
import ddf.minim.*;
AudioPlayer lagu;
Minim minim; void
setup() {
size(400,200);
minim = new Minim(this);
lagu = minim.loadFile(“Asal.mp3”);
lagu.play();
}
void draw() {
background(0);
stroke(255);
Program Processing
Rangkaian
2. Plotting Nilai Sensor dari Arduino
Program Arduino
Program Processing
Rangkaian
1. Buatlah eksperimen dengan meggunakan Analog Input Arduino dan Potensiometer. Data hasil
pembacaan divisualisasikan dengan software processing seperti gambar di samping.
Program Arduino
Program processing
Rangkaian
Program Arduino
Program Processing
Rangkaian
VIII. ANALISA
Pada praktikum kali ini yang berjudul “ANALOG INPUT DAN AUDIO
PROCESSING”. Visualisasi merupakan salah satu proses yang penting dalam memaknai suatu
data. Data yang divisualkan dalam berbagai bentuk grafik yang sesuai dapat mempermudah
pengguna dalam menganalisa data. Percobaan kali ini kita akan membuat program untuk
menampilkan data berupa grafik.
Percobaan pertama yaitu membuat gelombang sinus, pada percobaan pertama ini
Arduino mengirim data ke processing berupa hasil dari persamaan y = 511+511*sin(x), 511
merupakan setengah nilai dari 210 yaitu 1024 dan x merupakan nilai phase yang setiap 100 detik
bertambah sebesar 0.05, dan jika nilai x lebih dari 2*3.14 atau 2phi atau 360 derajat, maka nilai
x kembali 0. Dalam program processing sendiri hasil pengirim data dari Arduino akan ditangkap
oleh variabel inString yang bertipe string yang lalu dimana dirubah menjadi integer, lalu di
println agar hasil muncul dalam bagian bawah software processing, untuk grafiknya sendiri akan
berupa grafik sinus yang setiap nilai sumbu y memiliki warna yang berbeda beda.
Percobaan selanjutnya yaitu percobaan plotting nilai sensor dari Arduino. Pada
percobaan ini kita akan mengirim data ke processing yang dimana data tersebut didapatkan dari
potensiometer yang variabelnya dirubah. Nilai dari potensiometer akan ditangkap oleh variabel
nilaiSensor yang bertipe integer secara analog, lalu data tersebut dikirimkan ke processing
dengan delay 50 micro second. Pada program processing sama seperti percobaan awal hanya
berbeda pada data yang dikirimkan ke processing, sehingga bentuk grafik berbeda, jika bentuk
grafik data percobaan pertama berupa sinus maka grafik percobaan kedua ini akan sesuai dengan
nilai pada potensiometer.
Pada percobaan ketiga yaitu plotting data audio dari file. Pada percobaan ketiga ini kita
hanya memerlukan software processing. Pertama kita import dulu library ddf.minim.*; agar
dapat memanggil file audio selanjutnya untuk memanggil file audio nya diperlukan program
lagu = minim.loadFile(“namalagu.mp3”);
Program itu akan memanggil file mp3 yang berada pada folder program processing disimpan,
jika anda menyimpan lagu diluar folder program processing disimpan maka lagu tidak akan
dapat ditampilkan. Pada saat dijalankan akan muncul window baru yang berisikan grafik dari
lagu tersebut. jika bernada tinggi maka grafik akan melebar, begitu pula sebaliknya.
IX. KESIMPULAN
Pada praktikum kali ini dapat kita ambil sebuah kesimpulan bahwa untuk mengplot sebuah
grafik kita dapat menggunakan software processing, dan kita juga dapat membuat grafik sesuai dengan
apa yang sensor kita baca, sehingga hasil dari pembacaan sensor tersebut dapat divisualisasikan dengan
baik.