MASIGNALPHAS2101
6680671983845063762

Cara Membuat Alat Pendeteksi Warna dengan Visual Studio

Cara Membuat Alat Pendeteksi Warna dengan Visual Studio
Add Comments
1/06/2021


Alat Pendeteksi Warna adalah alat yang dirancang untuk dapat membedakan objek, agar objek dapat dipisahkan dan dihitung berdasarkan tempat yang telah disediakan.
Sementara itu, objek yang berhasil dideteksi akan ditampilkan melalui aplikasi yang dibuat khusus untuk melihat berapa objek yang berhasil dideteksi oleh alat dan juga kontrol alat akan dibuat secara keseluruhannya menggunakan aplikasi yang dirancang menggunakan Microsoft Studio Visual Studio 2010 atau bisa dengan menggunakan Visual Basic 6.

Hardware
Perancangan Alat Pendeteksi Warna ini sangat mudah, namun perlu ketelitian dalam membangun sistem mekanik, hardware dan software, sehingga dalam perancangan, maupun proses perakitan tidak terjadi kendala. berikut ini adalah hardware yang dibutuhkan:
  1. Arduino Uno R3,
  2. Sensor LDR,
  3. Motor Servo 2 pcs,
  4. Resistor 330,
  5. Power Supply,
  6. Acrilic 3 mm
  7. Tabung kaca diameter 2 cm,
  8. Kayu lapis 3 mm,
  9. Baut dan mur,
  10. Spacer.
Software
Software yang digunakan adalah :
  1. IDE Arduino (Integrated Developtment Enviroenment), Software processing yang digunakan untuk menulis program kedalam perangkat keras yaitu Arduino. Processing sendiri merupakan penggabungan antara bahasa C++ dan Java.
  2. EAGLE (Easily Applicable Graphical Layout Editor), merupakan sebuah aplikasi gratis untuk mendesain skematik elektronika maupun PCB (Printed Circuit Board).
  3. Microsoft Visual Studio 2010, merupakan aplikasi yang dapat digunakan untuk membuat aplikasi, baik itu aplikasi bisnis, aplikasi personal, ataupun komponen aplikasinya, dalam bentuk aplikasi console, aplikasi Windows, ataupun aplikasi Web.
Perbedaan Visual Basic dengan Visual Studio adalah Visual Basic mengacu langsung pada satu bahasa pemrograman, sedangkan Visual Studio mengacu kepada banyak bahasa pemrograman. Atau lebih bisa dikatakan bahwa Visual Basic merupakan bagian dari Visual Studio
Blok Diagram
Adapun tahapan-tahapan perancangan alat yang akan dijelaskan pada Diagram berikut ini: 
Blok Diagram
Ket:
  • Aplikasi PC yang didesain untuk mengontrol benda berdasarkan warna. Aplikasi dapat berjalan jika sudah terhubung dengan alat. Jika tidak terhubung, aplikasi hanya dapat dibuka dan tidak dapat dijalankan. 
  • Sensor pendeteksi warna merupakan bagian utama dalam pembuatan alat ini. Sensor digunakan untuk memberikan input yang akan dibaca oleh mikrokontroler Arduino Uno.
  • Perancangan alat ini menggunakan dua motor servo yaitu Motor servo 1 berperan untuk mengarahkan objek ke sensor. Motor servo 2 digunakan untuk mengarahkan objek ketempat penampungan objek
Tempat penampungan warna diletakkan dibagian bawah sehingga objek dapat bergerak leluasa sesuai gravitasi setelah mendapat dorongan dari motor servo dua. Sementara itu aplikasi akan terus menghitung dan mendeteksi objek sesuai warna jika alat masih ada objek. Alat akan bekerja otomatis sampai objek yang melewati sensor tidak dikenali warnanya dan akan menampilkan peringatan pada aplikasi.

Flowchart
Berikut ini adalah diagram alir atau flowchart dari perancangan perangkat lunak yang akan dibuat:
Flowchart
Ket:
Pada Gambar diatas menunjukkan cara kerja sistem melalui diagram alir. Program akan melakukan koneksi ke aplikasi kontrol warna melalui port USB. Apabila ditemukan, alat akan bisa langsung dioperasikan. Jika data yang diterima dari aplikasi adalah 8, maka alat bisa langsung menjalankan proses selanjutnya. Jika data yang diterima adala 9, proses alat selesai. Hal ini akan ditampilkan pada aplikasi kontrol warna. Kemudian proses selanjutnya motor servo atas akan mengambil benda dan membawa benda kearah sensor. Jika sensor sudah mendeteksi warna benda, maka arduino akan mengirimkan data ke aplikasi. Proses pembacaan warna adalah jika warna yang terdeteksi adalah warna merah, maka servo akan bergerak 45º. Jika tidak, maka sensor mendeteksi warna hijau dan servo bergerak 60º, dan seterusnya hingga warna tidak terdeteksi . Jika warna tidak terdeteksi, maka proses selesai.

Desain
Berikut ini adalah desain dari alat pendeteksi warna:




Prototype alat dibuat dengan menggunakan akrilik yang didesain dengan menggunakan alat pembengkok akrilik. Tiang penyangga antara box atas dan box panel dibuat dengan menggunakan stick es cream yang dibungkus menggunakan sticker. Tiang ini dibuat sekokoh mungkin agar dapat menyangga box atas. Semua komponen yang sudah dirancang diletakkan di dalam box bawah. Sementara itu motor servo diletakkan untuk memutarkan objek menuju sensor pendeteksi warna yang berada didalam box atas. 

Schematich
Berikut ini adalah schematich rangkaian dari alat yang akan kita buat:
Schematich Rangkaian
Agar lebih memahami cara kerja dari rangkaian alat diatas dapat mempelajari pada artikel berikut:
Baca:
Program
Setelah merangkai program diatas, selanjutnya dapat memasukkan program dibawah ini:
Program_pendeteksi_warna.ino - Download
/* Program sensor warna
   Oleh   : HESTECH.ID for WULANDARI
   update : 19 Maret 2019
*/

#include <Servo.h>
#include "Wire.h"

int sensorPin = A5;
int LedBiru =2; // Led warna biru digital pin 3
int LedHijau=3; // Led warna hijau digital pin 4
int LedMerah=4; // Led warna merah digital pin 5
int hasil,hasilb,hasilm,hasilh;
int k=8;  // toleransi warna

Servo servo_atas;
Servo servo_bawah;

int warna = 0;
int data, freq = false;

void setup() {
  Serial.begin(9600);
  pinMode(LedBiru,OUTPUT);
  pinMode(LedMerah,OUTPUT);
  pinMode(LedHijau,OUTPUT);  
  digitalWrite(LedBiru,LOW);
  digitalWrite(LedMerah,LOW);
  digitalWrite(LedHijau,LOW);
  
  servo_atas.attach(8);
  servo_bawah.attach(9);
  servo_atas.write(140);
  delay(10);
  }
  
  void loop() {
    data = Serial.read();
    delay(10);
    if ( data == '8')
    {
      freq = true;
      }
      if ( data =='9')
      {
        freq = false;
        }
        if ( freq == true)
        {
          jalankan_alat();
          }
          if ( freq == false)
          {
            matikan_alat();
            }
            }

void jalankan_alat()
{
  delay(500);
  for(int i = 150; i > 78; i--) {
    servo_atas.write(i);
    delay(5);
    }
    delay(500);
    warna = baca_warna();
    delay(50);
    
    switch (warna) {
    case 1:
    servo_bawah.write(45);
    Serial.println(1);
    break;
    
    case 2:
    servo_bawah.write(60);
    Serial.println(2);
    break;
    
    case 3:
    servo_bawah.write(72);
    Serial.println(3);
    break;
    
    case 4:
    servo_bawah.write(88);
    Serial.println(4);
    break;
    
    case 5:
    servo_bawah.write(102);
    Serial.println(5);
    break;
    
    case 6:
    servo_bawah.write(120);
    Serial.println(6);
    break;
    
    default:
    Serial.println(0);
    break;
    }
    delay(300);
  
  
  for(int i = 55; i > 20; i--) {
    servo_atas.write(i);
    delay(5);
  } 
  delay(200);
  
  for(int i = 20; i < 120; i++) {
    servo_atas.write(i);
    delay(5);
  }
  warna=0;
}

void matikan_alat()
{
  servo_atas.write(servo_atas.read());
  servo_bawah.write(servo_bawah.read());
}

// membaca warna
int baca_warna() {
  
  // nyalakan LedMerah
  digitalWrite(LedMerah,HIGH);
  //delay 150 ms agar LDR baca stabil
  delay(150);
  // baca data sensor
  hasil= analogRead(sensorPin);
  hasilm=map(hasil,0,1023,0,255);
  Serial.print("R,G,B = ");
  Serial.print(hasilm); 
  digitalWrite(LedMerah,LOW);    
  delay(150);

  // nyalakan LedHijau
  digitalWrite(LedHijau,HIGH);
  //delay 150 ms agar LDR baca stabil
  delay(150);
  // baca data sensor
  hasil= analogRead(sensorPin);
  hasilh=map(hasil,0,1023,0,255);  
  Serial.print(",");
  Serial.print(hasilh); 
  digitalWrite(LedHijau,LOW);    
  delay(150);
  
  // nyalakan LedBiru
  digitalWrite(LedBiru,HIGH);
  //delay 150 ms agar LDR baca stabil
  delay(150);
  // baca data sensor
  hasil= analogRead(sensorPin);
  hasilb=map(hasil,0,1023,0,255);  
  Serial.print(",");
  Serial.println(hasilb); 
  digitalWrite(LedBiru,LOW);  
  delay(150);

  // cek warna dibandingkan dengan nilai hasil kalibrasi
  if(abs(hasilm-215)<k && abs(hasilh-214)<k && abs(hasilb-224)<k){
    warna = 1; // orange
    } else
    
  if(abs(hasilm-232)<k && abs(hasilh-219)<k && abs(hasilb-168)<k){
    warna = 2; // Hijau
    } else
    
  if(abs(hasilm-225)<k && abs(hasilh-162)<k && abs(hasilb-210)<k){
    warna = 3; //Kuning
    }  else  
     
  if(abs(hasilm-218)<k && abs(hasilh-172)<k && abs(hasilb-211)<k){
    warna = 4; // ungu
    } else
    
  if(abs(hasilm-214)<k && abs(hasilh-174)<k && abs(hasilb-221)<k){
    warna = 5; // merah
    } else
    
  if(abs(hasilm-238)<k && abs(hasilh-189)<k && abs(hasilb-197)<k){
    warna = 6; // abu abu
    }  else  
        Serial.println(" -> ???\n");
    return warna;
}
Setelah diupload, kemudian bukalah serial monitor untuk mengambil nilai objek yang ingin dikalibrasi. Misalnya yang akan di kalibrasi adalah warna merah. Letakan objek warna merah tersebut di depan sensor, lihatlah hasil di serial monitor, maka akan tampil seperti gambar berikut:
Kemudian nilai RGB diatas dituliskan pada program seperti ini:

Upload ulang program diatas kedalam arduino. Kode program diatas adalah untuk kode warna merah, jika nanti sensor LDR mendeteksi warna dengan nilai diambang batas 157, 165, dan 134, maka serial monitor akan menampilkan warna seperti berikut:
Aplikasi
Microsoft Visual Studio merupakan sebuah perangkat lunak lengkap (suite) yang dapat digunakan untuk melakukan pengembangan aplikasi, baik itu aplikasi bisnis, aplikasi personal, ataupun komponen aplikasinya, dalam bentuk aplikasi console, aplikasi Windows, ataupun aplikasi Web. Visual Studio mencakup kompiler, SDK, Integrated Development Environment (IDE), dan dokumentasi (umumnya berupa MSDN Library). Kompiler yang dimasukkan ke dalam paket Visual Studio antara lain Visual C++, Visual C#, Visual Basic, Visual Basic .NET, Visual InterDev,Visual J++, Visual J#, Visual FoxPro, dan Visual SourceSafe.
Tampilan Awal M. Visual Studio 2010
Sebelum membuat aplikasi, pastikan sudah menginstal terlebih dahulu aplikasi Microsoft Visual Studio 2010 atau bisa juga dengan menggunakan aplikasi Visual Basic 6. 

Setelah menginstal aplikasi tersebut, selanjutnya adalah membuka aplikasi dan membuat project baru dengan cara klik menu file – new – project seperti gambar berikut:
Membuat Project Baru
Selanjutnya klik new project, maka akan tampil jendela new Project seperti gambar dibawah ini:
Windows Form Application
Kemudian menambah beberapa komponen seperti pada gambar dibawah ini:
Menambah Komponen
Setelah menambah komponen seperti pada gambar diatas, kemudian klik ganda pada komponen sehingga akan tampil seperti gambar berikut:
Form Program
File program Visual Studio dapat di unduh disini.
Gambar diatas merupakan form yang berisikan program, sehingga kita dapat menuliskan program sesuai dengan kebutuhan. Selanjutnya adalah menambahkan beberapa komponen tambahan seperti pada gambar berikut:
Menambah Komponen Pendukung
Desain tampilan tatap muka dibuat sesederhana mungkin agar mudah di operasikan oleh pengguna. Desain secara keseluruhan dapat dilihat seperti pada gambar berikut:
Desain Tampilan Aplikasi
Setelah mendesain tampilan keseluruhan, langkah selanjutnya adalah membuat aplikasi dengan format .exe. Langkahnya adalah Pilih menu Project - Nama Project > Properties seperti pada gambar berikut:
Jendela Properties
Kemudian pilih menu Publish.
Publish Project
Pilih Publish Now dan tunggu hingga Visual Studio selesai mempublish project menjadi file setup.exe. untuk melihat hasil publish cara bukanya di < nama project>/bin/debug/app.publish, seperti gambar berikut ini:
File Setup.exe
Setelah mempunyai file setup.exe dari aplikasi yang dibuat, selanjutnya adalah menginstal pada komputer dengan mengklik ganda pada file setup yang ada.
Instal Aplikasi
Kemudian klik install pada tampilan berikut:
Security Warning
Setelah aplikasi berhasil diinstal, untuk membukanya klik Start kemudian cari aplikasi kontrol warna seperti pada gambar berikut:
Aplikasi Berhasil Diinstal
Sampai tahap ini pembuatan aplikasi sudah selesai.

Hasil
Adapun hasil rangkaian alat secara keseluruhan dapat dilihat pada gambar di bawah ini:
Desain Box Alat Pendeteksi Warna
Desain Aplikasi
Langkah Pengoperasian
Untuk melakukan pengoperasian, ikuti langkah berikut ini:
  1. Catu Daya (Power Supply) yang digunakan adalah menggunakan kabel data dari USB.
  2. Setelah alat terhubung dengan arduino, maka alat pendeteksi warna sudah bisa di jalankan.
  3. Selanjutnya, buka aplikasi control warna yang sudah diinstal. Caranya adalah klik Start - Kontrol Warna. Maka, akan tampil seperti pada gambar berikut:
  4. Selanjutnya, pilih port yang digunakan,
  5. Jika sudah dipilih, maka alat siap untuk dijalankan, langkahnya adalah dengan cara menghubungkan terlebih dahulu alat dan aplikasi control warna dengan cara meng-klik hubungkan pada button aplikasi
  6. Selanjutnya, klik jalankan pada button aplikasi, seperti terlihat pada gambar berikut:
  7. Setelah aplikasi dijalankan, maka alat akan aktif sesuai dengan intruksi program yang sudah dimasukkan kedalam arduino. Kemudian motor servo 1 akan mengambil bola warna seperti pada gambar berikut:
  8. Kemudian aplikasi akan menampilkan warna dan jumlah warna yang terdeteksi.
Ketika objek yang ingin dibaca dari aplikasi, maka motor servo I akan mengarahkan objek tersebut untuk dibaca oleh sensor LDR. Ketika sensor membaca warna yang akan dieskusi maka diberikan delay pada motor servo I untuk memberikan waktu kepada sensor LDR untuk membaca warna objek yang akan diarahkan kepenampungan. Setelah sensor membaca warna objek maka motor servo II akan mengarahkan objek tersebut akan diarahkan ke penampungan yang sudah dirancang. Objek yang telah dibaca oleh alat akan terdata diaplikasi yang digunakan dan akan tampil jumlah objek yang akan diterdeteksi oleh alat diapliksi yang digunakan.

SELESAI
Alat ini masih ada kekuarangan diantaranya yaitu pembacaan objek dengan menggunakan sensor LDR kurang akurat, perlu ditambahkan cover penutup pada sekeliling sensor LDR agar cahaya bias tidak mengganggu sensor pada saat pembacaan warna.

Selamat Bereksperimen...! 
Jika ada yang ingin ditanyakan silahkan tulis dikolom komentar.
Hestech Indonesia

Innovasi di bidang Teknologi, Listrik, Teknik Komputer dan gaya Hidup. Info lainnya tentang praktik konservasi berbasis Sains, inovasi, dan kearifan lokal