Sabtu, 13 Februari 2016

Interface Menghidupkan LED Menggunakan Arduino dan Processing 2.2.1 (Terbaru Processing 3.0.1)

Pada postingan ini, akan dibahas bagaimana mengendalikan LED menggunakan interface komputer berbasis software opensource IDE Arduino dan Processing 2.2.1 (Terbaru Versi 3.01) Metode dalam menghidupkan dan mematikan LED ini dapat diaplikasikan untuk membangun sebuah smart home, yang dapat mengontrol secara otomatis sistem penerangannya.

Program dan Rangkaian Kontrol LED Secara Serial

Gambar 1 Desain menghidupkan LED menggunakan keyboard komputer/laptop

Untuk membuat program kendali LED menggunakan keyboard komputer PC/laptop, ada beberapa tahapan yang harus dilakukan:
1. Susun rangkaian seperti Gambar 2
Gambar 2 Desain Fritzing kontrol LED menggunakan keyboard komputer

2. Hubungkan Arduino ke komputer dengan kabel USB.
3. Buka software Arduino, dan ketik program berikut:



 

 // kontrol LED menggunakan PC

int led = 13;
int out;

void setup()
{
  Serial.begin(9600);
  pinMode(led, OUTPUT);
}

void loop()
{
  if (Serial.available()>0)
  {
    int baca = Serial.read();
    if (baca =='a')
    {
    out=1;
    }
    if (baca =='b')
    {
    out=0;
    }
       if(out==1)
       {
       digitalWrite(led,HIGH);
       Serial.println("LED NYALA");
       }
       else if(out==0)
       {
       digitalWrite(led,LOW);
       Serial.println("LED MATI");
       }
  }
}

4. Pilih Board dan Serial PORT yang digunakan di menu Tools.
5. Tekan tombol Verify dipojok kiri toolbar.
6. Setelah muncul pesan “Done Compiling”, selanjutnya tekan tombol Upload yang ada di kanan tombol Verify sampai muncul pesan “Done Uploading”.
7. Uji komunikasi serial dengan membuka Serial Monitor ujung kanan IDE Arduino, kemudian tekan huruf “a” maka LED merah akan menyala, tekan huruf “b” maka LED merah akan mati.               
Gambar 3 Simulasi menghidupkan LED menggunakan keyboard komputer


Sebelumnya telah dibahas, menghidupkan LED menggunakan kendali keyboard komputer/laptop. Maka dalam bagian berikut ini akan dibuat GUI (Graphical User Interface) menggunakan Processing 2.2.1 untuk mengendalikan LED.

Interface Processing untuk Kontrol LED

Sebagaimana telah dibahas sebelumnya yaitu menyalakan dan mematikan LED menggunakan keyboard PC, komunikasi data serial antara komputer PC/Laptop dan Arduino dapat menggunakan fasilitas Serial Monitor Pada IDE Arduino, Maka sekarang kita akan membuat tampilan sendiri dengan menggunakan software Processing 2.2.1. Dengan menggunakan Processing 2.2.1 kita dapat membuat sistem interfacing untuk mengontrol arah kondisi menyala dan mati dari LED dengan tampilan yang lebih menarik dan mudah digunakan.
1. Bukalah program Processing 2.2.1 yang dapat didownload secara free pada alamat: https://processing.org/download/
Gambar 4 Tampilan start-up Processing 2.2.1

2. Setelah di buka, maka akan muncul tampilan sketch seperti berikut ini
Gambar 5 Tampilan sketch Processing 2.2.1

3. Buatlah program berikut pada sketch

import processing.serial.*;
Serial comPort;
boolean ledState=false; //kondisi awal LED mati
void setup(){
 //Membuka COM komunikasi serial dengan arduino
 //Isi sesuai COM yang tertera pada Device Manager
  comPort = new Serial(this, "COM19", 9600);
 background(255,0,0); //Warna Awal tombol merah
}
void draw(){
}
void mousePressed() {
 //Kondisi tombol
 ledState=!ledState;
  //Jika ledState adalah True - maka mengirim karakter "a"
 if(ledState){
 background(0,255,0); //Berubah warna menjadi hijau
 comPort.write('a');//mengirim "a" untuk menyalakan LED.
 // jika selainnya
 }else{
 background(255,0,0); //warna berubah merah
 comPort.write('b'); //mengirim "b" untuk mematikan LED.
 }
}

Berikut adalah data karakter yang akan dikirimkan oleh Interface Processing ke mikrokontroler Arduino.

Tabel 1 Karakter yang dikirimkan komputer ke Arduino
No
Kondisi LED
Karakter
1
Nyala
a
2
Mati
b

Untuk membuat interface maka gunakanlah program komunikasi serial sebagaimana telah dibahas pada bab mengakses komunikasi PC dan Arduino. Kemudian dibuat pengiriman perintah berupa karakter tertentu yang akan diterjemahkan oleh mikrokontroler untuk menyalakan ataupun mematikan LED..

4. Setelah membuat program, kemudian tekan toolbar save misalnya kontrol_led, Selanjutnya, hubungkan board Arduino robot dengan komputer kemudian klik run pada kontrol_led maka akan muncul tampilan berikut dan sistem siap untuk dilakukan pengujian. Saat pertama kali tombol merah ditekan, maka tombol akan berubah warna menjadi hijau dan LED menyala sedangkan saat tombol ditekan kembali maka tombol akan berubah menjadi berwarna merah kembali dan LED akan mati.
                                                       (a)                                (b)
Gambar 6 Interface untuk kontrol LED

5. Untuk board Arduino yang berbeda, lakukan juga pengujian kondisi LED dengan terlebih dahulu mengisi/mengganti COM pada file program sesuai seperti yang tertera pada Device Manager dan Baudrate sesuai dengan Arduino yang digunakan pada program Processing diatas.

Share:
Read More

Minggu, 07 Februari 2016

Robot Obstacle Avoider Ultrasonic HC-SR04 Arduino (Robot Anti Penghalang)



Ultrasonik, sebutan untuk jenis suara diatas batas suara yang bisa didengar manusia. Seperti diketahui, telinga manusia hanya bisa mendengar suara dengan frekuensi 20 Hz sampai 20KHz. Lebih dari itu hanya beberapa jenis binatang yang mampu mendengarnya, seperti kelelawar dan lumba-lumba. Lumba-lumba bahkan memanfaatkan ultrasonik untuk mengindera benda-benda di laut. Dengan cara mengirimkan sebuah suara dan mengitung lamanya pantulan suara tersebut maka dapat diketahui jarak kapal selam dengan benda tersebut. Mula-mula suara dibunyikan, kemudian dihitung lama waktu sampai terdengar suara pantulan. Jarak dapat dihitung dengan mengalikan kecepatan suara dengan waktu pantulan. Kemudian hasilnya dibagi 2. Misalnya lama waktu pantulan adalah 1 detik, maka jaraknya adalah (344,424m/detik x 1 detik)/2 = 172m.

HC-SR04 Ultrasonic Range Finder, adalah modul pengukur jarak dengan ultrasonic dengan harga yang cukup murah yang didesain khusus untuk teknologi robotika. Dengan ukurannya yang cukup kecil (2,1cm x 4,5cm), sensor seharga 59 Ribu rupiah ini dapat mengukur jarak antara 2 cm sampai 500 cm dengan resolusi 0.3 cm.



Gambar 1 Sensor ultrasonic HC-SR04

Pada dasanya, sensor ultrasonik HC-SR04 terdiri dari sebuah chip pembangkit sinyal 40KHz, sebuah speaker ultrasonik dan sebuah mikropon ultrasonik. Speaker ultrasonik mengubah sinyal 40 KHz menjadi suara sementara mikropon ultrasonik berfungsi untuk mendeteksi pantulan suaranya. Pada modul sensor ultrasonik HC-SR04 terdapat 4 pin yang digunakan untuk jalur power supply (+5V), ground, Trigger, dan Echo. Pin Trigger berfungsi untuk mengirimkan sinyal ultrasonik, sedangkan Pin Echo berfungsi untuk menerima sinyal ultrasonic ketika didepan sensor ada penghalang.

Berikut adalah skematik robot obstacle avoider dengan sensor ultrasonic:
Gambar 2 Skema lengkap robot obstacle avoider sensor ultrasonic

Gambar 2 adalah desain lengkap robot obstacle avoider anti penghalang menggunakan Arduino Uno. Sensor ultrasonic HC-SR04 memiliki 4 pin, yaitu pin Ground, pin Vcc, Pin Trigger yang dihubungkan dengan Pin A1 dan Pin Echo terhubung dengan Pin A0 Board Arduino. Sedangkan motor driver untuk motor DC terhubung dengan Port Board Arduino yaitu PORT 9, 6, 5, dan 3.

Program IDE Arduino Robot Obstacle Avoider Ultrasonic

Untuk membuat program robot obstacle avoider berbasis sensor ultrasonic HC-SR04, kita dapat menggunakan Library yang tersedia pada IDE Arduino. Berikut adalah langkah pembuatan dan pemrograman robot obstacle avoider:
1. Susun rangkaian robot obstacle avoider seperti Gambar 3 berikut:
Gambar 3 Desain Fritzing rangkaian robot obstacle avoider sensor ultrasonic
2.  Hubungkan Arduino ke komputer dengan kabel USB.  Buka software Arduino, sesuai dengan Library Sensor Ultrasonik dan ketik program berikut:

//ROBOT ANTI PENGHALANG
// sensor ultrasonic

const int pingPin = A1;
const int echoPin = A0;

//motor DC

int kiriA = 9;
int kiriB = 6;
int kananA = 5;
int kananB = 3;

void setup()
{
  Serial.begin(9600);
  pinMode(kiriA,OUTPUT);
  pinMode(kiriB,OUTPUT);
  pinMode(kananA,OUTPUT);
  pinMode(kananB,OUTPUT);
}

void loop()
{

 long duration, inches, cm;

  pinMode(pingPin, OUTPUT);
  digitalWrite(pingPin, LOW);
  delayMicroseconds(2);
  digitalWrite(pingPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(pingPin, LOW);

  pinMode(echoPin, INPUT);
  duration = pulseIn(echoPin, HIGH);

  // konversi waktu ke jarak
  inches = microsecondsToInches(duration);
  cm = microsecondsToCentimeters(duration);

  // SERIAL DEBUG
  Serial.print(inches);
  Serial.print("in, ");
  Serial.print(cm);
  Serial.print("cm");
  Serial.println();
  delay(100);

  if (cm <=50)
  {
  analogWrite(kiriA,255);
  analogWrite(kiriB,0);
  analogWrite(kananA,0);
  analogWrite(kananB,255);
  }
  else
  {
  analogWrite(kiriA,0);
  analogWrite(kiriB,255);
  analogWrite(kananA,0);
  analogWrite(kananB,255);
  }

}

long microsecondsToInches(long microseconds)
{
  return microseconds / 74 / 2;
}
long microsecondsToCentimeters(long microseconds)
{
  return microseconds / 29 / 2;
}


3. Pilih Board dan Serial PORT yang digunakan di menu Tools. 
4.Tekan tombol Verify dipojok kiri toolbar. 
5. Setelah muncul pesan “Done Compiling”, selanjutnya tekan tombol Upload yang ada di kanan tombol Verify sampai muncul pesan “Done Uploading”.
6. Untuk menguji sistem yang dibuat dapat dibuat simulasi berikut, jika jarak objek yang terdeteksi kurang dari 50 cm, maka robot akan berbelok arah, sedangkan jika jarak objek lebih dari 50 cm, maka robot akan bergerak lurus ke depan.
Gambar 4 Pengujian simulasi robot obstacle avoider ultrasonic HC-SR04


Gambar 5 Prototipe robot hexapod obstacle avoider ultrasonic HC-SR04
Share:
Read More