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

Sabtu, 06 Februari 2016

Robot Line Follower Digital Menggunakan Arduino (Simple Robot Line Tracking Arduino)



Skema Lengkap Line follower Digital IC Komparator

Pada skema lengkap robot line follower didesain dengan posisi sensor di atas permukaan putih. Dua buah sistem sensor di pasang pada pin Analog Input A0 dan A1, sedangkan sistem actuator motor DC dipasang pada Port 9 dan 6 untuk motor kiri, PORT 5 dan 3 untuk motor kanan. Prinsip kerja robot line follower berikut adalah saat sistem sensor berada di atas permukaan putih, akan ada pantulan cahaya dari LED yang akan mengenai sensor cahaya LDR sehingga resistansi sensor LDR berkurang sehingga arus bergerak melalui LDR. Kondisi tersebut menyebabkan arus output sensor menuju IC komparator LM 393 menjadi minimum, oleh IC LM 393, arus di non-inverting sehingga output menuju pin Arduino menjadi LOW (0). Sebaliknya, saat sistem sensor berada di atas garis hitam, tidak akan ada pantulan cahaya dari LED yang akan mengenai sensor cahaya LDR sehingga resistansi sensor LDR sangat besar sehingga arus tidak akan melalui LDR. Kondisi tersebut menyebabkan arus output sensor menuju IC komparator LM 393 menjadi maksimum, oleh IC LM 393, arus di non-inverting sehingga output menuju pin Arduino menjadi HIGH (1). Oleh Arduino data logika pin tersebut kemudian diolah untuk mengerakan motor, motor akan bergerak jika kedua pin motor tersebut memiliki beda polaritas. Selengkapnya mengenai logika gerak robot dapat dilihat pada Tabel 1 dan 2.

Tabel 21Kondisi Gerak Motor dan pengaruh Sensor
Kondisi
A0 = 0
A0 =1
A1 = 0
Maju
Belok Kiri
A1 = 1
Belok Kanan
Mundur

Tabel 2 Kondisi Gerak Motor dan Kondisi Logika Tiap Pin Motor
Kondisi
PORT 9
PORT 6
PORT 5
PORT 3
Maju
LOW
HIGH
LOW
HIGH
Belok Kiri
HIGH
LOW
LOW
HIGH
Belok Kanan
LOW
HIGH
HIGH
LOW
Mundur
HIGH
LOW
HIGH
LOW
 Gambar 1 Desain simulasi Proteus robot line follower digital

Gambar 1 adalah desain lengkap robot line follower digital dengan dua sensor cahaya dan komparator menggunakan board Arduino Uno. Sensor cahaya dihubungkan pada PORT Analog Input A0 dan A1 board Arduino, sedangkan input motor driver IC L293D terhubung dengan PORT yaitu 9, 6, 5, dan 3 Board Arduino.

Membuat Program Robot Line Follower Digital Menggunakan IDE Arduino

1    Susun rangkaian robot line follower digital menggunakan dua buah sensor seperti gambar berikut:

Gambar 2 Desain Fritzing rangkaian robot line follower digital

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

//ROBOT LINE FOLLOWER DIGITAL
//DILENGKAPI LCD DAN KOMUNIKASI SERIAL

#include
LiquidCrystal lcd(13,12,11,10,8,7);
int kiriA = 9;
int kiriB = 6;
int kananA = 5;
int kananB = 3;

void setup()
{
  lcd.begin(16,2);
  Serial.begin(9600);
  pinMode(kiriA,OUTPUT);
  pinMode(kiriB,OUTPUT);
  pinMode(kananA,OUTPUT);
  pinMode(kananB,OUTPUT);
  pinMode(A0,INPUT);
  pinMode(A1,INPUT);

}

void loop()
{
  int kiri = digitalRead(A0);
  int kanan = digitalRead(A1);

 //HIGH=hitam, LOW=putih

  if ((kiri==HIGH)&&(kanan==LOW))
  {
    digitalWrite(kiriA,HIGH);
    digitalWrite(kiriB,LOW);
    digitalWrite(kananA,LOW);
    digitalWrite(kananB,HIGH);

    //LCD Program
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("i=hitam a=putih");
    lcd.setCursor(0,1);
    lcd.print("BELOK KIRI");

    //Serial Program
    Serial.println("Sensor Kiri Hitam & Sensor Kanan Putih");
    Serial.println("BELOK KIRI");
  }
  else if ((kiri==LOW)&&(kanan==HIGH))
  {
    digitalWrite(kiriA,LOW);
    digitalWrite(kiriB,HIGH);
    digitalWrite(kananA,HIGH);
    digitalWrite(kananB,LOW);
    //LCD Program
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("i=putih a=hitam");
    lcd.setCursor(0,1);
    lcd.print("BELOK KANAN");

    //Serial Program
    Serial.println("Sensor Kiri Putih & Sensor Kanan Hitam");
    Serial.println("BELOK KANAN");
  }
  else if ((kiri==HIGH)&&(kanan==HIGH))
  {
    digitalWrite(kiriA,HIGH);
    digitalWrite(kiriB,LOW);
    digitalWrite(kananA,HIGH);
    digitalWrite(kananB,LOW);
    //LCD Program
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("i=hitam a=hitam");
    lcd.setCursor(0,1);
    lcd.print("MUNDUR");

    //Serial Program
    Serial.println("Sensor Kiri Hitam & Sensor Kanan Hitam");
    Serial.println("MUNDUR");
  }

  else
  {
    digitalWrite(kiriA,LOW);
    digitalWrite(kiriB,HIGH);
    digitalWrite(kananA,LOW);
    digitalWrite(kananB,HIGH);
    //LCD Program
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("i=putih a=putih");
    lcd.setCursor(0,1);
    lcd.print("MAJU");

    //Serial Program
    Serial.println("Sensor Kiri Putih & Sensor Kanan Putih");
    Serial.println("MAJU");
  }

}

3. Pilih Board dan Serial PORT yang digunakan di menu Tools. 
4. Tekan tombol Verify dipojok kiri toolbar. Setelah muncul pesan “Done Compiling”, selanjutnya tekan tombol Upload yang ada di kanan tombol Verifysampai muncul pesan “Done Uploading”
.
Gambar 3 Output program robot line follower menggunakan Arduino Uno

Saat kedua sensor berada dipermukaan putih maka robot akan bergerak maju, jika sensor kiri berada diatas garis hitam sedangkan sensor kanan di permukaan putih maka robot akan berbelok ke kiri, begitupula saat jika sensor kanan berada diatas garis hitam sedangkan sensor kiri di permukaan putih maka robot akan berbelok ke kanan, sehingga robot akan senantiasa berada menelusuri garis hitam.

Bentuk Robot Line Follower Digital Berbasis Sensor Cahaya

Gambar 4 Bentuk jadi robot line follower menggunakan Mikrokontroler Arduino
Share:
Read More