Penggunaan Multi Sensor Ultrasonik HC-SR04 Untuk Deteksi Obstacles

Table of Contents
Pada ulasan lalu, saya pernah membahas mengenai bagaimana mengukur jarak benda menggunakan sensor ultrasonik HC-SR04 atau SRF05. Namun, sebatas pada penggunakan sensor ultrasonik tunggal atau 1 buah sensor saja. Padahal kenyataan sebenarnya berbicara lain, seringkali dalam membuat robot yang mampu mendeteksi obstacle atau halangan yang berada di lingkungan sekitar robot, dibutuhkan setidaknya minimal 4 buah sensor ultrasonik yang diletakkan disebelah kanan, kiri, depan dan belakang badan robot. Jika menggunakan 1 buah sensor ultrasonik saja, tentu hasil deteksi obstacle menjadi tidak maksimal. 


Contoh robot yang sering dijumpai memiliki banyak komponen sensor ultrasonik adalah robot pemadam api beroda maupun berkaki. Robot ini setiap tahunnya, menjadi icon dalam Kontes Robot Indonesia (KRI) yang diikuti oleh hampir semua kampus di Indonesia. Sensor ultrasonik pada robot pemadam api berfungsi untuk mencegah robot agar tidak menabrak tembok batas lintasan ketika robot mencari titik api. Gambar 1 menunjukkan bahwa multi sensor ultrasonik terpasang di beberapa titik badan robot. 

Gambar 1 Robot Pemadam Api Beroda dan Berkaki
Atas dasar itulah pada proyek kali ini, saya akan menjelaskan bagaimana menggunakan multi sensor ultrasonik HC-SR04 pada arduino uno untuk deteksi obstacles atau benda-benda yang berada di sekitar robot. Maka, saya menggunakan 3 buah sensor ultrasonik HC-SR04 yang nantinya dirangkai sedemikian rupa pada arduino. Hasil deteksi obtascle berupa jarak dalam ukuran centimeter antara benda dan sensor yang ditampilkan melalui serial monitor arduino. 

Adapun komponen-komponen yang diperlukan dalam proyek ini antara lain : 
  1. Arduino Uno
  2. Project Board
  3. Sensor Ultrasonik HC-SR04 sebanyak 3 buah
  4. Kabel jumper secukupnya
Agar lebih mudah dalam menjelaskan, 3 buah sensor ultrasonik saya namakan sebagai sensor ultrasonik1, sensor ultrasonik2 dan sensor ultrasonik3. Rangkaian ketiga sensor ultrasonik pada arduino dapat dilihat pada gambar 2 berikut : 

Gambar 2 Rangkaian multi sensor ultrasonik pada arduino
  1. Pada sensor ultrasonik1, pin trigger terhubung dengan dengan pin 9, sementara pin echo terhubung dengan pin 8 arduino. 
  2. Pada sensor ultrasonik2, pin trigger terhubung dengan dengan pin 5, sementara pin echo terhubung dengan pin 4 arduino. 
  3. Untuk sensor ultrasonik3, pin trigger terhubung dengan dengan pin 3, sementara pin echo terhubung dengan pin 2 arduino. 
  4. Kemudian, semua pin GND dan VCC sensor ultrasonik dihubungkan dengan project board, lalu dari project board dihubungkan ke GND dan 5V arduino. 
Gambar 3 menunjukkan rangkaian komponen yang telah terpasang sesuai dengan ketentuan diatas. Setelah itu, lanjut ke proses pemrograman arduino .

Gambar 3 Rangkaian Proyek Arduino 5
berikut ini adalah kode program untuk deteksi obtacles menggunakan multi sensor ultrasonik HC-SR04.
const int UltrasonikTrig1 = 9;
const int UltrasonikEcho1 = 8;

const int UltrasonikTrig2 = 5;
const int UltrasonikEcho2 = 4;

const int UltrasonikTrig3 = 3;
const int UltrasonikEcho3 = 2;


void setup() {
  Serial.begin(9600);
  pinMode(UltrasonikTrig1, OUTPUT);
  pinMode(UltrasonikTrig2, OUTPUT);
  pinMode(UltrasonikTrig3, OUTPUT);

  pinMode(UltrasonikEcho1, INPUT);
  pinMode(UltrasonikEcho2, INPUT);
  pinMode(UltrasonikEcho3, INPUT);
}

long duration1, duration2, duration3 ; 
long inchi1, inchi2, inchi3;
long cm1, cm2, cm3 ;
 
void loop()
{
 
  digitalWrite(UltrasonikTrig1, LOW);
  digitalWrite(UltrasonikTrig1, HIGH);
  
  digitalWrite(UltrasonikTrig2, LOW);
  digitalWrite(UltrasonikTrig2, HIGH);
  
  digitalWrite(UltrasonikTrig3, LOW);
   digitalWrite(UltrasonikTrig3, HIGH);
   
  delayMicroseconds(10);
  
  digitalWrite(UltrasonikTrig1, LOW);
  duration1 = pulseIn(UltrasonikEcho1, HIGH);
  
  digitalWrite(UltrasonikTrig2, LOW);
  duration2 = pulseIn(UltrasonikEcho2, HIGH);
  
  digitalWrite(UltrasonikTrig3, LOW);
  duration3 = pulseIn(UltrasonikEcho3, HIGH);
  
  inchi1 = microsecondsKeInchi(duration1);
  inchi2 = microsecondsKeInchi(duration2);
  inchi3 = microsecondsKeInchi(duration3);
  
  cm1 = microsecondsKeCenti(duration1);
  cm2 = microsecondsKeCenti(duration2);
  cm3 = microsecondsKeCenti(duration3);

  Serial.print("Ultrasonik1 : ");
  Serial.print(inchi1);
  Serial.print(" in, ");
  Serial.print(cm1);
  Serial.print(" cm");
  Serial.print(" || ");

  Serial.print("Ultrasonik2 : ");
  Serial.print(inchi2);
  Serial.print(" in, ");
  Serial.print(cm2);
  Serial.print(" cm");
  Serial.print(" || ");

  Serial.print("Ultrasonik3 : ");
  Serial.print(inchi3);
  Serial.print(" in, ");
  Serial.print(cm3);
  Serial.print(" cm");
  Serial.print(" || ");
  Serial.println();

  delay(100);
}

long microsecondsKeInchi(long microseconds)
{
  return microseconds / 74 / 2;
}

long microsecondsKeCenti(long microseconds)
{
  return microseconds / 29 / 2;
}

Pada program diatas, ketiga sensor ultrasonik diperintahkan untuk memancarkan gelombang ultrasonik melalui output trigger kemudian diterima oleh input echo. Hasil deteksi obyek di lingkungan robot ditunjukkan melalui jarak antara benda terdeteksi dengan sensor ultrasonik dalam satuan cm dan ichi.

Gambar 3 Penggunaan Multi Sensor Ultrasonik untuk Deteksi Obyek
Sebagaimana yang terlihat pada gambar 3, masing-masing sensor ultrasonik dihadapkan dengan arah yang berbeda, yaitu arah depan, samping kiri dan samping kanan. Hasilnya, ketiga sensor ultrasonik akan mendeteksi obtacles sesuai dengan arah hadap masing-masing. 

Gambar 4 Hasil pengukuran dan deteksi benda masing-masing sensor ultrasonik













Sebagaimana yang terlihat pada gambar 4, hasil deteksi benda di lingkungan sensor ditunjukkan dengan ukuran jarak antara sensor dengan benda yang di deteksi dalam satuan cm dan inchi pada sensor ultrasonik1, ultasonik2 maupun ultrasonik3.

Dalam pengembangan selanjutnya, penggunaan multi sensor ultrasonik ini dapat diterapkan pada robot pemadam api beroda, robot untuk pemetaan ruangan, robot pendeteksi halangan, dan lain sebagainya, Tergantung dari kreativitas rekan-rekan semua.

Akhir kata, semoga ulasan sederhana ini bermanfaat bagi rekan-rekan untuk dapat dikembangan menjadi robot yang bermanfaat bagi kehidupan manusia.

3 comments

Terima kasih telah mampir di blog kami. Jika ingin menghubungi penulis, silakan kirim pesan via email di kitainformatika@gmail.com atau via WA di 087750503014. Jika mood penulis lagi baik, biasanya fast respon.
Comment Author Avatar
September 10, 2016 at 7:34 PM Delete
Mungkin kalau ada dokumentasi code programnya akan lebih seru belajarnya master.. :)
Comment Author Avatar
September 10, 2016 at 10:18 PM Delete
Ngapunten mas najib, saya perlu belajar banyak ke njenengan.. (^_^)
Comment Author Avatar
April 14, 2019 at 8:09 PM Delete
Kalo mau tambah buzzer dan sensor api gmna ya mas