PENYELEKSI BOLA PINGPONG BERDASARKAN WARNA
PENYELEKSI BOLA PINGPONG BERDASARKAN WARNA
Emilia Novasari1, Irvan
Maulana M2, Wisnu Giri
Kencono3, Samuel BETA.4
Mahasiswa dan Dosen Program Studi Teknik Elektronika, Jurusan Teknik Elektro,
Politeknik Negeri Semarang
Jl. Prof. H. Soedarto,
SH, Tembalang, Semarang, Indonesia
|
Intisari
-- Dalam
pembacaan warna dibutuhkan alat pendeteksi warna yaitu dengan menggunakan
sensor warna. Maka dalam penelitian ini dibuatlah aplikasi Arduino menggunakan masukan sensor warna TCS3200 dengan luaran suara (DFPlayer dan speaker).
Kata Kunci : Arduino, Sensor Warna
(TCS3200), DFPlayer, Speaker
Abstract— In reading the color required color detection tool by using a color sensor.
So in this study was made using the Arduino application TCS3200 color sensor input with
voice output (DFPlayer and speakers).
Keyword :
Arduino, TCS3200 Color sensor, DFPlayer, Speaker
1. PENDAHULUAN
1.1
Latar Belakang
Seiring dengan perkembangan teknologi dan ilmu
pengetahuan, akhir-akhir ini bidang elektronika mengalami kemajuan yang pesat.
Dengan kemajuan tersebut, membuat manusia selalu berusaha memanfaatkan
teknologi yang ada untuk mempermudah kehidupannya. Karena tidak setiap manusia
memiliki kemampuan untuk mangenali warna, maka dari itu kami membuat alat
pembaca warna otomatis dengan output suara yang ditujukan untuk membantu
penyandang tunanetra dan buta warna dan juga bisa digunakan sebagai modul
pembelajaran.
1.2 Tujuan
Tujuan pembuatan alat ini adalah :
1.
Sebagai modul pembelajaran
2.
Sebagai alat pembantu pembacaan warna bagi penyandang tunanetra
dan buta warna.
1.3
Rumusan Masalah
Berdasarkan
latar belakang, akan ditentukan beberapa rumusan masalah, yaitu:
1.
Bagaimana cara kerja sensor TCS3200 sebagai pendeteksi
warna?
2.
Bagaimana cara menampilkan output suara?
3.
Bagaimana cara kerja motor servo SG90?
1.4
Pembatasan Masalah
Adapun yang
membatasi alat ini adalah :
1.
Membaca warna dengan sensor warna TCS3200
2.
Menggunakan suara (DFplayer dan speaker) untuk
keluarannya
3.
Mengetahui cara kerja dari motor servo SG90
1.5
Metodologi
Target proyek ini menjalankan
program yang dapat diimplementasikan langsung terhadap alat. Langkah- langkah
pembuatan Proyek Arduino dapat didefinisikan sebagai berikut :
1.
Studi pustaka alat dan bahan
2.
Perancangan perangkat lunak dan program
3.
Implementasi program
4.
Pengujian perangkat lunak dan perangkat keras
5.
Analisa
6.
Laporan
1.
TINJAUAN PUSTAKA
Penjelasan dan uraian teori penunjang
yang digunakan dalam membuat alat ini diperlukan untuk mempermudah pemahaman
tentang cara kerja rangkaian maupun dasar-dasar perencanaan pembuatan alat.
1.1
Arduino
Gambar 2.1 Papan Arduino
Arduino adalah papan mikrokontroler berdasarkan ATmega328 (datasheet).
Arduino ini berisi semua yang diperlukan untuk mendukung mikrokontroler, untuk
mengaktifkan cukup menghubungkannya ke komputer dengan kabel USB dengan adaptor
AC-DC atau baterai.
“Arduino Uno beroperasi pada tegangan eksternal dari 6-20
volt. ATmega328 ini memiliki memori sebesar 32 KB (0,5 KB dari memori tersebut
digunakan untuk bootloader) dan juga memiliki memori sebesar 2 KB dari SRAM dan
1 KB dari EEPROM.
Arduino
menggunakan software processing tersendiri penggabungan dari bahasa C++ dan
Java.” Arif (2012:1)
”Software Arduino dapat diinstal di berbagai sistem operasi seperti: LINUX,
Mac OS, Windows. Software IDE Arduino terdiri dari 3(tiga) bagian:
1.
Editor Program, untuk menulis program
dalam bahasa processing. Listing program pada Arduino disebut sketch.
2.
Compiler, modul yang berfungsi mengubah
bahasa prosesing (kode program) kedalam kode biner karena kode biner adalah
satu satunya bahasa program yang dipahami oleh mikrokontroler.
3. Uploader,
modul yang berfungsi memasukan kode biner kedalam memori mikrokontroler.
Arduino Uno
memiliki 14 digital input / output pin (dimana 6 dapat digunakan sebagai output
PWM), 6 input analog, resonator keramik 16 MHz, koneksi USB, jack listrik,
header ICSP, dan tombol reset. Ini berisi semua yang diperlukan untuk mendukung
mikrokontroler, hanya terhubung ke komputer dengan kabel USB atau kekuasaan itu
dengan adaptor atau baterai AC-to-DC untuk memulai.
Uno berbeda
dari semua papan sebelumnya dalam hal itu tidak menggunakan FTDI chip driver
USB-to-serial. Sebaliknya, fitur Atmega16U2 (Atmega8U2 sampai versi R2)
diprogram sebagai konverter USB-to-serial.
Uno memiliki
resistor menarik garis 8U2 HWB ke tanah, sehingga lebih mudah untuk dimasukkan
ke dalam mode DFU . memiliki fitur baru sebagai berikut:
1. Pin out: tambah SDA dan
pin SCL yang dekat dengan pin AREF dan dua pin baru lainnya ditempatkan dekat
dengan pin RESET, yang IOREF yang memungkinkan perisai untuk beradaptasi dengan
tegangan yang disediakan dari papan. Di masa depan, perisai akan kompatibel
dengan kedua papan yang menggunakan AVR, yang beroperasi dengan 5V dan dengan
Arduino Karena yang beroperasi dengan 3.3V. Yang kedua adalah pin tidak
terhubung, yang dicadangkan untuk tujuan masa depan.
2. Sirkuit RESET kuat.
3. 16U2 atmega menggantikan
8U2.
1.2 Sensor
TCS3200
TCS3200 and TCS3210
merupakan konverter yang diprogram untuk mengubah warna menjadi frekuensi yang
tersusun atas konfigurasi silicon photodiode dan konverter arus ke frekuensi
dalam IC CMOS monolithic yang tunggal. Keluaran dari sensor ini adalah
gelombang kotak (duty cycle 50%) frekuensi yang berbanding lurus dengan
intensitas cahaya (irradiance).
Di dalam
TCS3200, konverter cahaya ke frekuensi membaca sebuah array 8x8 dari
photodioda, 16 photodioda mempunyai penyaring warna biru, 16 photodioda
mempunyai penyaring warna merah, 16 photodioda mempunyai penyaring warna hijau,
dan 16 photodioda untuk warna terang tanpa penyaring.
4 tipe warna
dari photodiode telah diintegrasikan untuk meminimalkan efek ketidak seragaman
dari insiden irradiance. Semua photodiode dari warna yang sama telah terhubung
secara parallel. Pin S2 dan S3 digunakan untuk memilih grup dari
photodiode(merah, hijau, biru, jernih) yang telah aktif.
Fitur Sensor
TCS3200 antara lain :
1.
Konversi Tinggi Resolusi Intensitas Cahaya ke Frekuensi
2.
Warna Diprogram dan Full Skala Frekuensi Keluaran
3.
Berkomunikasi Langsung Dengan Microcontroller
4.
Pasokan tunggal Operasi (2,7 V sampai 5,5 V)
5.
Mempunyai Power Down Fitur
6.
Kesalahan Nonlinier Biasanya 0,2% pada 50 kHz
7.
Stabil 200 ppm / ° C Koefisien Suhu
8.
Bebas Timbal (Pb) dan RoHS-Kompatibel Paket “Surface
Mount”
Catatan
Penggunaan :
•
Tegangan,VDD = 6V
•
Jarak tegangan masukan, Semua masukan,Vi = −0.3 V to VDD
+ 0.3 V
•
Suhu untuk beroperasi = −40°C to 85°C
•
Suhu untuk penyimpanan = −40°C to 85°C
•
Temperatur maksimum penyolderan sesuai dengan JEDEC
J-STD-020A = 260°C
1.3 DFplayer
DFPlayer adalah modul audio
sederhana yang berfungsi untuk mentransmisikanfile audio dari SD Card ke mikrokontroller arduino.
Dfplayer ini juga bisa berdiri sendiri hanya dengan dipasang baterai , speaker
dan tombol. Modul ini juga bisa dikombinasikan dengan Arduino Uno atau
mikrikontroller lainnya dengan kemampuan
Receiver (RX) / Transmitter (Tx).
DFPlayer adalah sebuah modul yang cukup sempurna yang terintegrasi modul
decoding, yang mendukung format audio yang umum seperti Mp3, Wav, dan WMA.
Selain itu juga mendukung kartu TF dengan sistem file FAT16 dan FAT32.
Gambar 2.6 DFPlayer
Pin out
DFPlayer:
1. Pin 1 = VCC 9.
Pin 9 = BUSY
2. Pin 2 = RX 10.
Pin 10 = USB -
3. Pin 3 = TX 11.
Pin 11 = USB +
4. Pin 4 = DAC_R 12.
Pin 12 = ADKEY_2
5. Pin 5 = DAC_I 13.
Pin 13 = ADKEY_1
6. Pin 6 = SPK_1 14.
Pin 14 = IO_2
7. Pin 7 = GND 15.
Pin 15 = GND
8. Pin 8 = SPK_2 16.
Pin 16 = IO_1
1.4 Speaker
Pengeras
suara (loud
speaker atau speaker) adalah transduser yang mengubah sinyal
elektrik ke frekuensi audio (suara) dengan cara
menggetarkan komponennya yang berbentuk membran untuk menggetarkan udara
sehingga terjadilah gelombang suara sampai di kendang telinga kita dan dapat
kita dengar sebagai suara.
Dalam setiap sistem
penghasil suara (loud speaker), pengeras suara merupakan juga menentukan
kualitas suara di samping juga peralatan pengolah suara sebelumnya yang masih
berbentuk listrik dalam rangkaian penguat amplifier.
Sistem pada pengeras
suara adalah suatu komponen yang mengubah kode sinyal elektronik terakhir
menjadi gerakan mekanik.
Gambar 2.7 Speaker
Gambar 2.8 Bagian-bagian Speaker
Pada gambar diatas, dapat kita lihat bahwa pada
dasarnya Speaker terdiri dari beberapa komponen utama yaitu Cone, Suspension,
Magnet Permanen, Voice Coil dan juga Kerangka Speaker.
Dalam rangka menterjemahkan sinyal listrik menjadi
suara yang dapat didengar, Speaker memiliki komponen Elektromagnetik yang
terdiri dari Kumparan yang disebut dengan Voice Coil untuk membangkitkan medan
magnet dan berinteraksi dengan Magnet Permanen sehingga menggerakan Cone
Speaker maju dan mundur. Voice Coil adalah bagian yang bergerak sedangkan
Magnet Permanen adalah bagian Speaker yang tetap pada posisinya. Sinyal listrik
yang melewati Voice Coil akan menyebabkan arah medan magnet berubah secara
cepat sehingga terjadi gerakan “tarik” dan “tolak” dengan Magnet Permanen.
Dengan demikian, terjadilah getaran yang maju dan mundur pada Cone Speaker.
Cone adalah komponen utama Speaker yang bergerak. Pada
prinsipnya, semakin besarnya Cone semakin besar pula permukaan yang dapat
menggerakan udara sehingga suara yang dihasilkan Speaker juga akan semakin
besar.
Suspension yang terdapat dalam Speaker berfungsi untuk
menarik Cone ke posisi semulanya setelah bergerak maju dan mundur. Suspension
juga berfungsi sebagai pemegang Cone dan Voice Coil. Kekakuan (rigidity),
komposisi dan desain Suspension sangat mempengaruhi kualitas suara Speaker itu
sendiri.
1.5 Motor Servo SG90
Motor servo adalah
sebuah motor DC dengan sistem umpan balik tertutup di mana posisi rotor-nya akan diinformasikan kembali ke
rangkaian kontrol yang ada di dalam motor servo.
Motor ini terdiri dari sebuah motor DC, serangkaian gear, potensiometer, dan
rangkaian kontrol. Potensiometer berfungsi untuk menentukan batas sudut dari
putaran servo. Sedangkan sudut dari
sumbu motor servo diatur berdasarkan
lebar pulsa yang dikirim melalui kaki sinyal dari kabel motor servo.
Gambar 2.9 Motor
Servo SG90
3.
METODE PEMBUATAN
ALAT
Dalam perancangan dalam pembuatan
penelitian ini yaitu alat pembaca warna, terdiri atas perancangan mekanik
(hardware) yang meliputi perancangan elektrik, dan perancangan perangkat lunak (software). Perancangan
ini mempunyai gambaran perancangan hardware, yang didalamnya ada beberapa
rangkaian elektrik yang medukung alat ini.
3.1 Perangkat keras dan Rangkaian Elektronika
Adapun sistem yang digunakan yaitu :
- Arduino Uno
- SensorWarna TCS3200
- Motor Servo
- Speaker
- DFPlayer
3.3 Perancangan Perangkat Lunak
Perangkat lunak ini berfungsi untuk mengatur kinerja secara keseluruhan
dari sistem. Perangkat lunak untuk alat ini menggunakan software
Arduino. Untuk memberikan gambaran umum jalannya program dan memudahkan
pembuatan perangkat lunak maka dibuatlah diagram alir sebagai berikut:
Gambar 3.1 Diagram Blok Perancangan alat
1. Perancangan
hardware
Perancangan dan pembuatan
elektrik ini meliputi pembuatan sensor warna dan suara (DFPlayer dan Speaker) serta
motor servo. DFPlayer ini
memiliki 16 pin dan bekerja pada tegangan 5v. Speaker memiliki 2 buah pin yaitu pin positif (+)
dan negatif (-) dengan sumber tegangan 5v.
2. Perancangan
software
Untuk diagram alir,
program aplikasi Arduino menggunakan masukan sensor warna dengan keluaran suara (DFPlayer
dan Speaker) dan motor servo.
Gambar 3.2 Diagram Alir
3. Pembuatan alat
Dalam pembuatan alat ini dapat dilakukan dengan beberapa tahap, yaitu:
1.
Membuat perencanaan bagan alat
2.
Membuat skema pengawatan
3.
Menyusun rangkaian sesuai skema pengawatan
4.
Membuat program untuk arduino menggunakan software
Arduino uno
5.
Pembuatan kerangka alat
6.
Pemasangan rangkaian pada kerangka alat
7.
Kalibrasi alat
4.
HASIL DAN
PEMBAHASAN
4.1 List Program
#include
<Servo.h>
#include
<SoftwareSerial.h> // Library
SofwareSerial
#include
<DFPlayer_Mini_Mp3.h> // Library
DF Player Mini
Servo pemisah;
Servo penendang;
#define S0 2
// Pin S0 Sensor TCS3200
#define S1 3 // Pin S1 Sensor TCS3200
#define S2 4 // Pin S2 Sensor TCS3200
#define S3 5 // Pin S3 Sensor TCS3200
#define
sensorOut 6 // Pin Sensor Out Sensor TCS3200
SoftwareSerial
mySerial(7, 8);// RX TX
int R, // Variabel penyimpan hasil pembacaan
frekuensi warna Merah
G,
// Variabel penyimpan hasil pembacaan frekuensi warna Hijau
B;
// Variabel penyimpan hasil pembacaan frekuensi warna Biru
void setup() {
// put your setup code here, to run once:
Serial.begin(9600); // Set baudRate 9600
pemisah.attach(9); // Set servo Pemisah Jalur kanan/kiri
penendang.attach(10); // Set servo Penendang
mySerial.begin(9600); // Inisialisasi Software Serial
mp3_set_serial(mySerial); // atur softwareSerial untuk modul mp3
DFPlayer
pinMode(S0, OUTPUT); // atur pin S0 sebagai Luaran
pinMode(S1, OUTPUT); // atur pin S1 sebagai Luaran
pinMode(S2, OUTPUT); // atur pin S2 sebagai Luaran
pinMode(S3, OUTPUT); // atur pin S3 sebagai Luaran
pinMode(sensorOut, INPUT); // atur pin SensorOut sebagai Masukan
digitalWrite(S0, HIGH); // keluarkan Logika Tinggi ke pin S0
digitalWrite(S1, LOW); // keluarkan Logika Rendah ke pin S0
delay(1); // tunda
mp3_set_volume(60); // atur volume modul ke nilai 30
(maksimal)
delay(500); // Tunda
pemisah.write(40); // keluarkan perintah terhadap servo
pemisah
penendang.write(90); // keluarkan perintah terhadap seervo
penendang
// tunda 500 milidetik
}
void loop() {
// put your main code here, to run
repeatedly:
baca_warna();
if ( (R >= 70 && R <= 200) &&
(G >= 140 && G <= 240)
&& (B >= 110 && B <= 200) ) { // Simpan Hasil Pembacaan
Warna putih
delay(800); // tunda 800 milidetik untuk
memulai pembacaan Warna Bola
//penendang.write(135);
Serial.println("PUTIH"); // Tampilkan pesan ke Serial Monitor
mp3_play(1); // mainkan berkas suara nomor
1
delay(3000); // tunda 3 detik untuk
memainkan suara
pemisah.write(20); // Keluarkan Perintah pada Servo
Pemisah jalur bola pingpong
penendang.write(170); // Keluarkan Perintah pada Servo
Penendang bola
delay(4000); // tunda 4 detik untuk
mengembalikan servo kembali semula
pemisah.write(40); // Keluarkan Perintah untuk
mengembalikan Servo Pemisah pada keadaan semula
penendang.write(90); // Keluarkan Perintah untuk
mengembalikan Servo Penendang pada keadaan semula
}
if ( (R >= 60 && R <= 170 )
&& (G >= 120 && G
<= 200 ) && (B >= 200 && B <= 270) ) { // Simpan Hasil
Pembacaan Warna Kuning
delay(800);
Serial.println("KUNING"); // Tampilkan pesan ke Serial Monitor
mp3_play(2); // mainkan berkas suara nomor
2
delay(3000); // tunda 3 detik untuk
memainkan suara
pemisah.write(60); // Keluarkan perintah pada servo
pemisah jalur bola pingpong
penendang.write(170); // Keluarkan perintah pada servo
penendang bola
delay(4000); // tunda 4 detik untuk
mengembalikan servo kembali semula
pemisah.write(40); // keluarkan perintah untuk
mengembalikan servo pemisah pada keadaan semula
penendang.write(90); // keluarkan perintah untuk
mengembalikan servo penendang pada keadaan semula
}
}
void
baca_warna() {
// aktifkan filter Merah TCS3200
digitalWrite(S2, LOW); // beri logika Rendah ke pin S2
digitalWrite(S3, LOW); // beri logika Rendah ke pin S3
R = pulseIn(sensorOut, LOW); // simpan frekuensi pembacaan Merah ke
variabel R
Serial.print("R= "); // Tampilkan pesan "R= " ke
Serial Monitor
Serial.print(R); // Tampilkan frekuensi R ke
Serial Monitor
Serial.print(" "); // Tampilkan spasi
// aktifkan filter Hijau TCS3200
digitalWrite(S2, HIGH); // beri logika Tinggi ke pin S2
digitalWrite(S3, HIGH); // beri logika Tinggi ke pin S3
G = pulseIn(sensorOut, LOW); // simpan frekuensi pembacaan Hijau ke
variabel G
Serial.print("G= "); // Tampilkan pesan "G= " ke
Serial Monitor
Serial.print(G); // Tampilkan frekuensi G ke
Serial Monitor
Serial.print(" "); // Tampilkan spasi
delay(50); // tunda 150 milidetik
// aktifkan filter Biru TCS3200
digitalWrite(S2, LOW); // beri logika Rendah ke pin S2
digitalWrite(S3, HIGH); // beri logika Tinggi ke pin S3
B = pulseIn(sensorOut, LOW); // simpan frekuensi pembacaan Biru ke
variabel B
Serial.print("B= "); // Tampilkan pesan "B= " ke
Serial Monitor
Serial.print(B); // Tampilkan frekuensi B ke
Serial Monitor
Serial.println(" "); // Tampilkan spasi
delay(50); // tunda 150 milidetik
}
//putoh + hitam
-
4.2.1
Pembahasan
Program
Pada program
arduino ini akan digunakan untuk menunjukkan warna dengan DFPlayer mini. Untuk
mengontrol DFPlayer mini, sketch memanfaatkan pustaka DFPlayer_Mini_Mp3.h yang kita tambahkan pada software arduino. Itulah sebabnya, di
sketch terdapat perintah :
#include
<DFPlayer_Mini_Mp3.h> // Library
DF Player Mini
Di sketch
terdapat baris :
// Library DF Player Mini
Oleh arduino,
semua tulisan yang dimulai dengan tanda // hingga akhir baris diperlakukan sebagai komentar. Komentar adalah
keterangan yang ditujukan untuk pembaca maupun pembuat sketch. Kode seperti itu
tidak diterjemahkan ke dalam binary sketch. Pernyataan di sketch selalu
diakhiri dengan titik koma.
Pernyataan
adalah instruksi lengkap yang dapat dibayangkan seperti kalimat yang digunakan
oleh manusia. Bukankah kalimat selalu diakhiri dengan titik? Nah, bedanya,
pernyataan di bahasa arduino diakhiri dengan titik koma.
Pernyataan #define
S0 2 // Pin S0 Sensor TCS3200; digunakan untuk
mendefinisikan nama konstanta (konstanta so terletak di pin 2 pada arduino).
Dalam hal ini const menyatakan bahwa s0 adalah konstanta dan int menyatakan tipe
data untuk konstanta tersebut. Pada bahasa arduino, int berarti integer atau bilangan bulat.
Konstanta ini akan dikenal semua bagian yang terletak sesudah konstanta
tersebut didefinisikan.
Pernyataan Int R, //Variabel penyimpan hasil pembacaan
frekuensi warna Merah; berfungsi untuk mendeklarasikan variabel bernama R
dengan tipe data berupa int. Dalam hal ini,
int menyatakan tipe data bilangan bulat. Dengan demikian hanya bilangan bulat
yang bisa disimpan di dalam variabel tersebut.
Pernyataan SoftwareSerial mySerial(11,10); // RX, TX digunakan untuk
menyatakan komunikasi serial.
Untuk menentukan
baudrate (kecepatan) pembacaan data terdapat pada pernyataan Serial.begin(9600);
Kode berikutnya
mengandung 2 fungsi. Fungsi adalah kumpulan pernyataan yang diberi nama. Pada contoh
sketch di atas, setup dan loop adalah nama nama fungsi. Kedua fungsi
tersebut selalu ada di sketch. Isinya saja yang membedakan antara satu sketch
dengan sketch lain.
Suatu fungsi
diawali dengan tipe data nilai yang dihasilkan oleh fungsi. Nilai yang
dihasilkan oleh fungsi biasa disebut sebagai nilai balik. void berarti “tidak ada nilai balik”.
Fungsi setup() adalah nama fungsi yang telah
disediakan oleh arduino untuk menyatakan fungsi yang akan dijalankan pertama
kali. Fungsi ini berisi kode-kode untuk kepentingan inisialisasi.
Selanjutnya,
pernyataan-pernyataan yang berada di setup() berupa:
void
setup(){
Serial.begin(9600); //
Inisialisasi Serial
mySerial.begin(9600); //
Inisialisasi Software Serial
mp3_set_serial(mySerial); // atur
softwareSerial untk modul mp3
DFPlayer
pinMode(S0,OUTPUT); //
atur pin S0 sebagai Luaran
pinMode(S1,OUTPUT); //
atur pin S1 sebagai Luaran
pinMode(S2,OUTPUT); //
atur pin S2 sebagai Luaran
pinMode(S3,OUTPUT); //
atur pin S3 sebagai Luaran
pinMode(sensorOut,INPUT); // atur pin SensorOut sebagai Masukan
digitalWrite(S0,HIGH); //
keluarkan Logika Tinggi ke pin S0
digitalWrite(S1,LOW); //
keluarkan Logika Rendah ke pin S0
pinMode(13,OUTPUT);
delay(1); //
tunda 100 milidetik untk atur volume modul
mp3_set_volume(30); // atur volume modul kenilai
30(maksimal)
delay(500); //
tunda 500 milidetik
digitalWrite(13,HIGH);
}
Fungsi loop() adalah fungsi yang secara otomatis
dijalankan oleh arduino setelah fungsi setup() dieksekusi. Seluruh kode yang ada di fungsi dengan sendirinya akan diulang
secara terus menerus. Satu-satunya yang bisa menghentikan eksekusi loop() adalah berhentinya pasokan catu daya ke
papan arduino. Dan pernyataan-pernyataan yang berada di loop() berupa:
/*
* Program
Utama
*/
void loop() {
baca_warna(); // Baca Warna
//
Bandingkan hasil pembacaan sensor dengan referensi warna BIRU MUDA
if( (R >= 90 && R <= 120) &&
(G >= 60 && G <= 80) && (B >= 20 && B <=
30) ){
Serial.println("BIRU MUDA");
// Tampilkan pesan ke Serial Monitor
mp3_play(1); //
mainkan berkas suara nomor 1
delay(3000); // tunda 3 detik utk memainkan suara
}
//
Bandingkan hasil pembacaan sensor dengan referensi warna BIRU
if( (R >= 250 && R <= 320)
&& (G >= 180 && G <= 210) && (B >= 50
&& B <= 70) ){
Serial.println("BIRU"); // Tampilkan pesan ke Serial Monitor
mp3_play(2); //
mainkan berkas suara nomor 2
delay(3000); //
tunda 3 detik untuk memainkan suara
}
//
Bandingkan hasil pembacaan sensor dengan referensi warna HIJAU
if( (R >= 180 && R <= 250)
&& (G >= 150 && G <= 200) && (B >= 55
&& B <= 90) ){
Serial.println("HIJAU");
// Tampilkan pesan ke Serial Monitor
mp3_play(3); //
mainkan berkas suara nomor 3
delay(3000); //
tunda 3 detik untuk memainkan suara
}
//
Bandingkan hasil pembacaan sensor dengan referensi warna KUNING
if( (R >= 50 && R <= 70) &&
(G >= 50 && G <= 80) && (B >= 20 && B <=
30) ){
Serial.println("KUNING");
// Tampilkan pesan ke Serial Monitor
mp3_play(4); //
mainkan berkas suara nomor 4
delay(3000); //
tunda 3 detik untuk memainkan suara
}
//
Bandingkan hasil pembacaan sensor dengan referensi warna MERAH
if( (R >= 110 && R <= 135)
&& (G >= 330 && G <= 355) && (B >= 60
&& B <= 80) ){
Serial.println("MERAH");
// Tampilkan pesan ke Serial Monitor
mp3_play(5); //
mainkan berkas suara nomor 5
delay(3000); // tunda
3 detik untuk memainkan suara
}
//
Bandingkan hasil pembacaan sensor dengan referensi warna UNGU
if( (R >= 130 && R <= 160)
&& (G >= 130 && G <= 170) && (B >= 20
&& B <= 40) ){
Serial.println("UNGU");
// Tampilkan pesan ke Serial Monitor
mp3_play(6); //
mainkan berkas suara nomor 6
delay(3000); // tunda
3 detik untuk memainkan suara
}
//
Bandingkan hasil pembacaan sensor dengan referensi warna ORANYE
if( (R >= 80 && R <= 110) &&
(G >= 160 && G <= 200) && (B >= 40 && B <=
60) ){
Serial.println("ORANYE");
// Tampilkan pesan ke Serial Monitor
mp3_play(7); //
mainkan berkas suara nomor 7
delay(5000); //
tunda 3 detik untuk memainkan suara
}
//
Bandingkan hasil pembacaan sensor dengn referensi warna MERAH MUDA
if( (R >= 50 && R <= 90) &&
(G >= 80 && G <= 110) && (B >= 10 && B <=
40) ){
Serial.println("MERAH MUDA"); // Tampilkan pesan ke Serial
Monitor
mp3_play(8); //
mainkan berkas suara nomor 8
delay(5000); // tunda 3 detik untk memainkan suara
}
//
Bandingkan hasil pembacaan sensor dengan referensi warna COKELAT
if( (R >= 190 && R <= 220)
&& (G >= 270 && G <= 295) && (B >= 70
&& B <= 90) ){
Serial.println("COKELAT");
// Tampilkan pesan ke Serial Monitor
mp3_play(9); //
mainkan berkas suara nomor 9
delay(5000); // tunda 3 detik untk memainkan suara
}
//
Bandingkan hasil pembacaan sensor dengan referensi warna HITAM
if( (R >= 400 && R <= 550)
&& (G >= 400 && G <= 470) && (B >= 130 &&
B <= 150) ){
Serial.println("HITAM");
// Tampilkan pesan ke Serial Monitor
mp3_play(10); //
mainkan berkas suara nomor 10
delay(5000); //
tunda 3 detik untuk memainkan suara
}
}
/*
* Sub
program baca warna
*/
void baca_warna(){
//
aktifkan filter Merah TCS3200
digitalWrite(S2,LOW); //
beri logika Rendah ke pin S2
digitalWrite(S3,LOW); //
beri logika Rendah ke pin S3
R =
pulseIn(sensorOut,LOW); // simpan f
pembacaan Merah kevariabel R
Serial.print("R= ");
// Tampilkan pesan "R= “ ke SerialMonitor
Serial.print(R); // Tampilkan frekuensi R ke SerialMonitor
Serial.print(" "); // Tampilkan spasi
delay(50); //
tunda 150 milidetik
//
aktifkan filter Hijau TCS3200
digitalWrite(S2,HIGH); //
beri logika Tinggi ke pin S2
digitalWrite(S3,HIGH); //
beri logika Tinggi ke pin S3
G =
pulseIn(sensorOut,LOW); // simpan f pembacaan Merah kevariabel R
Serial.print("G= "); //
Tampilkan pesan "G= " ke SerialMonitor
Serial.print(G); //
Tampilkan frekuensi G ke SerialMonitor
Serial.print(" "); // Tampilkan spasi
delay(50); //
tunda 150 milidetik
//
aktifkan filter Biru TCS3200
digitalWrite(S2,LOW); //
beri logika Rendah ke pin S2
digitalWrite(S3,HIGH); //
beri logika Tinggi ke pin S3
B =
pulseIn(sensorOut,LOW); // simpan f pembacaan Merah ke variabel R
Serial.print("B= "); //
Tampilkan pesan "B= " ke SerialMonitor
Serial.print(B); //
Tampilkan frekuensi B ke SerialMonitor
Serial.println("
"); // Tampilkan spasi
delay(50); //
tunda 150 milidetik
}
4.3 Pembahasan
Sensor TCS3200
digunakan sebagai detektor warna dengan memanfaatkan 4 buah filter warna yaitu
clear, merah, hijau dan biru. Dari warna warna yang dideteksi oleh sensor
menghasilkan range panjang gelombang yang berbeda-beda meliputi komposisi warna
Red, Green dan Blue. Output dari sensor warna berupa frekuensi yang akan dibaca
oleh arduino. Frekuensi yang dihasilkan oleh masing-masing warna akan
menentukan suara yang akan diputar oleh DFPplayer.
Output suara
pada DFplayer dapat diputar secara urut maupun acak dengan menggunakan nilai
frekuensi yang telah dihasilkan oleh masing-masing warna. Agar suara yang
dihasilkan sesuai dengan warna yang dideteksi digunakan fungsi if pada program.
Salah satu hal yang harus diperhatikan untuk mengaktifkan DFplayer yaitu
penempatan file suara yang akan diputar.
Cara menggunakan
DFPlayer :
1.
Modul DFPlayer menggunakan memory microSD sebagai tempat
penyimpanan file rekaman suara nama warna. Module DFPlayer mendukung memory
microSD hingga kapasitas 32GB, namun lebih baik menggunakan microSD dengan
kapasitas maksimal 8GB.
2.
Perekaman nama warna dapat dilakukan dengan memanfaatkan
aplikasi perekam suara pada handphone atau tape recorder, setelah itu disimpan
pada memory SDcard.
Selanjutnya dilakukan
inisialisasi dengan dua sevo sebagai penendang bola dan pengarah jalur pada
bola pingpong.
4.5.1 Pengujian alat
Dalam proyek
yanng kami buat, perlu diuji untuk menentukan keakuratan alat sebagai alat deteksi, adapun langkah - langkah
cara pengujian yang akan kami lakukan adalah :
1.
Mengkalibrasi alat yang akan diukur, apakah sudah sesuai
dengan program yang dibuat atau belum.
2.
Memasukkan input berupa 2 warna bola pingpong untuk
dibaca sensor kemudian diproses oleh Arduino yang kemudian ditampilkan output
berupa suara (DFplayer dan Speaker).
1.
KESIMPULAN
1.
Sensor warna berfungsi untuk mendeteksi warna sesuai
dengan kertas warna yang di berikan
2.
Penggunaan sensor warna sebagai inputan menggunakan
analog dan digital
3.
Hasil yang akan ditampilkan ke DFPlayer dan Speaker berupa suara yang akan berbunyi sesuai dengan
warna bola yang diberikan
2.
DAFTAR PUSTAKA
Gambar Perkawatan Luar |
Lampiran :
Emilia Novasari. Penulis dilahirkan di Kudus, tanggal 06 Agustus 1997. Penulis telah menempuh
pendidikan formal di SD N 2
Pasuruhan Lor, SMP N 1 Jati
Kudus, dan SMA N 2 Kudus. Tahun 2015 penulis telah menyelesaikan pendidikan
SMA. Pada
tahun 2015 penulis mengikuti
seleksi mahasiswa baru diploma (D3) dan diterima menjadi mahasiswa baru diploma
(D3) di kampus Politeknik Negeri Semarang (Polines) dengan Program Studi D3
Teknik Elektronika, Jurusan Teknik Elektro. Penulis terdaftar dengan NIM.
3.32.15.2.05. Apabila ada kritik, saran dan pertanyaan
mengenai penelitian ini, bisa melalui via email: novasariemilia@gmail.com
Irvan Maulana Muharram. Penulis dilahirkan di Blora, tanggal 26 Mei 1997. Penulis telah menempuh pendidikan formal di SD N Palebon 04-05, SMP IT Harapan Bunda Semarang, dan SMA Islam Sultan Agung 1 Semarang. Tahun 2015 penulis telah menyelesaikan pendidikan SMA. Pada tahun 2015 penulis mengikuti seleksi mahasiswa baru diploma (D3) dan diterima menjadi mahasiswa baru diploma (D3) di kampus Politeknik Negeri Semarang (Polines) dengan Program Studi D3 Teknik Elektronika, Jurusan Teknik Elektro. Penulis terdaftar dengan NIM. 3.32.15.2.09. Apabila ada kritik, saran dan pertanyaan mengenai penelitian ini, bisa melalui via email: m_irvan026@yahoo.com
Nama penulis Wisnu Giri Kencono. Penulis dilahirkan di Boyolali tanggal 09 Juli 1997. Penulis telah menempuh pendidikan formal di SDN 2 Manggis Boyolali, SMPN 4 Boyolali, dan SMA N 3 Boyolali. Tahun 2015 penulis telah menyelesaikan pendidikan SMA. Pada tahun 2015 penulis mengikuti seleksi mahasiswa baru diploma (D3) dan diterima menjadi mahasiswa baru diploma (D3) di kampus Politeknik Negeri Semarang (Polines) dengan Program Studi D3 Teknik Elektronika, Jurusan Teknik Elektro. Penulis terdaftar dengan NIM. 3.32.15.2.22. Apabila ada kritik, saran dan pertanyaan mengenai penelitian ini, bisa melalui via email : wisnugiri025@gmail.com
2. Diagram Alir : Klik disini
3. Program Arduino :Klik disini
4. Diagram Perkawatan Dalam :Klik disini
5. Diagram Blok :Klik disini
6. Diagram Perkawatab Luar :Klik disini
7. Gambar Rangkaian :Klik disini
No comments:
Post a Comment