Aplikasi UAS (Parkir Otomatis Menggunakan sensor Ultrasonik)





Laporan Akhir Praktikum

"Alat Parkir Otomatis untuk Kendaraan Roda Empat"

1. Tujuan [kembali]
  1. Praktikan dapat merancang sebuah sistem secara detail sehingga rancangan tersebut dapat menjadi sebuah alat
  2. Praktikan dapat mengkombinasikan berbagai sensor, akuator dan display
  3. Praktikan dapat membuat sebuah sistem menggunakan mikrokontroler           
2. Alat dan Bahan [kembali]
  • Arduino Uno
  • LCD
  • Sensor Ultrasonik
  • Buzzer
  • Potensiometer
  • LED
  • Breadboard
  • Jumper 
  • Modul Wireless nRF24L01
3. Landasan Teori [kembali]

A. Arduino

     Arduino adalah kit elektronik atau papan rangkaian elektronik open source yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis AVR dari perusahaan Atmel. Arduino yang kita gunakan pada prkatikum ini adalah arduino mega yang menggunakan chip AVR ATmega 2560 yang memiliki fasilitas PWM, komunikasi serial, ADC, timer, interupt, SPI dan I2C. Sehingga Arduino bisa digabungkan bersama modul atau alat lain dengan protocol yang berbeda-beda. Bahasa pemograman yang digunakan adalah bahasa C. Tetapi bahasa ini sudah dipermudah menggunakan fungsi-fungsi yang sederhana sehingga lebih mudah dalam memprogramnya. Dalam memprogram arduino, kita bisa menggunakan serial komunikasi agar arduino dapat berhubungan dengan komputer ataupun aplikasi lain.

B. LCD

    Liquid Crystal Display (LCD) adalah sebuah peralatan elektronik yang berfungsi untuk menampilkan output sebuah sistem dengan cara membentuk suatu citra atau gambaran pada sebuah layar. Secara garis besar komponen penyusun LCD terdiri dari kristal cair (liquid crystal) yang diapit oleh 2 buah elektroda transparan dan 2 buah filter polarisasi (polarizing filter).

     Sebuah citra dibentuk dengan mengombinasikan kondisi nyala dan mati dari pixel-pixel yang menyusun layar sebuah LCD. Pada umumnya LCD yang dijual di pasaran sudah memiliki integrated circuit tersendiri sehingga para pemakai dapat mengontrol tampilan LCD dengan mudah dengan menggunakan mikrokontroler untuk mengirimkan data melalui pin-pin input yang sudah tersedia.
  

C. Sensor Ultrasonik

 
Sensor ultrasonik PING terdiri dari tiga bagian utama yaitu :
  • Transmitter Gelombang Ultrasonik
  • Receiver Gelombang Ultrasonik
  • Rangkaian kontrol

Transmitter berfungsi sebagai pemancar gelombang ultrasonik. Gelombang yang dipancarkan memiliki frekuensi 40KHz. Gelombang ini akan dipancarakan dengan kecepatan 344.424m/detik atau 29.034uS per centimeter. Jika didepan terdapat halangan atau objek maka gelombang tersebut akan memantul. Pantulan gelombang akan dideteksi oleh receiver. Rangkaian kontrol akan mendeteksi pantulan gelombang dan menghitung lama waktu saat gelombang dipancarkan dan gelombang terdeteksi pantulannya. Lama waktu pemantulan gelombang ini akan dikonversi menjadi sinyal digital dalam bentuk pulsa. Sinyal inilah yang nantinya diolah oleh mikrokontroler atau mikroprosesor sehingga didapat nilai jarak antara objek dan sensor. Nilai jarak dapat diperoleh melalui rumus berikut ini :

Jarak (cm) = Lama Waktu Pantul (uS) / 29.034 / 2

Rumus jarak didapat dari pembagian lama waktu pantul dengan kecepatan gelombang ultrasonik dan dibagi 2 karena pada saat pemantulan terjadi dua kali jarak tempuh antara sensor dengan objek. Yaitu pada saat gelombang dipancarkan dari transmitter ke objek dan pada saat gelombang memantul ke receiver ultrasonik.
Berikut adalah visualisasi dari sinyal yang dikirimkan oleh sensor HC-SR04

Gambar pewaktu pada sensor hc-sr04
Gambar sistem pewaktu pada sensor HC-SR04

D. Buzzer

     Buzzer adalah sebuah komponen elektronika yang mengubah energy listrik menjadi energy Mekanik atau getaran. Energy getaran ini akan mengahasilkan suara. Buzzer juga biasanya digunakan untuk indicator suara untuk alarm, input keypad, dan pemberitahuan kerusakan pada sebuah system electronic, seperti di mother board computer.

E. Potensiometer

    Potensiometer adalah resistor tiga terminal dengan sambungan geser yang membentuk pembagi tegangan dapat disetel.[1] Jika hanya dua terminal yang digunakan (salah satu terminal tetap dan terminal geser), potensiometer berperan sebagai resistor variabel atau Rheostat. Potensiometer biasanya digunakan untuk mengendalikan peranti elektronik seperti pengendali suara pada penguat. Potensiometer yang dioperasikan oleh suatu mekanisme dapat digunakan sebagai transduser, misalnya sebagai sensor joystick.

F. LED


LED adalah suaatu semikonduktor yang memancarkan cahaya,  LED mempunyai kecenderungan polarisasi. LED mempunyai kutub positif dan negatif (p-n) dan hanya akan menyala bila diberikan arus maju. Ini dikarenakan LED terbuat dari bahan semikonduktor yang hanya akan mengizinkan arus listrik mengalir ke satu arah dan tidak ke arah sebaliknya. Bila LED diberikan arus terbalik, hanya akan ada sedikit arus yang melewati  LED. Ini menyebabkan LED tidak akan mengeluarkan emisi cahaya.

G. Breadboard

    Breadboard adalah board yang digunakan untuk membuat rangkaian elektronik sementara dengan tujuan uji coba atau prototipe tanpa harus menyolder. Dengan memanfaatkan breadboard, komponen-komponen elektronik yang dipakai tidak akan rusak dan dapat digunakan kembali untuk membuat rangkaian yang lain. Breadboard umumnya terbuat dari plastik dengan banyak lubang-lubang diatasnya. Lubang-lubang pada breadboard diatur sedemikian rupa membentuk pola sesuai dengan pola jaringan koneksi di dalamnya.

H. Jumper

     Jumper digunakan sebagai konektor antar modul satu dengan modul lainnya. Jumper terdiri dari jumper male-male, male-female, dan female-female dimana penggunaanya disesuaikan terhadap rangkaian yang ada.



I. Module Wireless nRF24L01 

Module Wireless nRF24L01 merupakan module yang mempunyai fungsi untuk komunikasi jarak jauh atau nirkabel yang memanfaatkan gelombang RF 2.4 GHz yang biasanya diaplikasikan untuk Scientific , Industrial, maupun Medical. 

Pada modul ini menggunakan antarmuka SPI (Serial Parallel Interface) untuk berkomunikasi dengan mikrokontroler dalam hal ini Arduino. Tegangan operasional normal untuk mengakses module ini yaitu 3.3Vdc, yang biasanya dibantu dengan regulator AMS1117. 

Module nRF24L01 memiliki perangkat keras yang berupa baseband logic Enhanced ShockBurst dan protocol accelerator yang memungkinan untuk berkomunikasi dalam kecepatan tinggi. 

Selain itu, module ini juga memiliki fitur true ULP solution, yang berfungsi sebagai penghemat konsumsi daya sehingga hemat energi.  Dan bisa digunakan juga sebagai pembuatan perangkat fitnes dan olahraga, pendukung PC, mainan anak-anak, piranti perangkat untuk permainan, dan lainnya. 

Kesimpulan dari beberapa fitur Modul Wireless RF nRF24L01 :

  • Data rate mencapai 2Mbps
  • Penanganan transaksi paket otomatis
  • Beroperasi pada pada pita ISM 2.4 GHZ
  • Konsumsi daya yang rendah
  • Penanganan paket data otomatis
  • Jarak komunikasinya 1100 meter

Pin Out dari Modul Wireless RF nRF24L01

4. Listing Program [kembali]
MASTER
//MASTER
#include <LiquidCrystal.h>
#include <Wire.h>
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
int trig = 13;
int echo = 12;
int trig1 = 11;
int echo1 = 8;
int trig2 = A0;
int echo2 = A3; 
int ledg1 = A1;
int ledr1 = A2;
int ledg2 = A4;
int ledr2 = A5;
int jarak,durasi, jarak1, durasi1, jarak2, durasi2;

RF24 radio(9, 10); // CE, CSN
const byte addresses[][6] = {"00298", "00910"};
char data;

void setup() {
  lcd.begin(16,2);
  pinMode(trig, OUTPUT);    // set pin trig menjadi OUTPUT
  pinMode(echo, INPUT);     // set pin echo menjadi INPUT
  pinMode(trig1, OUTPUT);    // set pin trig menjadi OUTPUT
  pinMode(echo1, INPUT);     // set pin echo menjadi INPUT
  pinMode(trig2, OUTPUT);    // set pin trig menjadi OUTPUT
  pinMode(echo2, INPUT);     // set pin echo menjadi INPUT
  pinMode(ledg1, OUTPUT);
  pinMode(ledr1, OUTPUT);
  pinMode(ledg2, OUTPUT);
  pinMode(ledr2, OUTPUT);
  Serial.begin(115200);
  radio.begin();
  radio.openWritingPipe(addresses[1]); // 00001
  radio.openReadingPipe(1, addresses[0]); // 00002
  radio.setPALevel(RF24_PA_MAX);

}

void loop()
{
  int durasi;
  delay(50);
  // program dibawah ini agar trigger memancarakan suara ultrasonic
  digitalWrite(trig, LOW);
  delayMicroseconds(8);
  digitalWrite(trig, HIGH);
  delayMicroseconds(8);
  digitalWrite(trig, LOW);
  delayMicroseconds(8);

  durasi = pulseIn(echo, HIGH); // menerima suara ultrasonic
  int jarak = (durasi / 2) / 29.1;  // mengubah durasi menjadi jarak (cm)
  Serial.print(jarak);
  Serial.print('\t');
  delay(200);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Jarak =");
  lcd.setCursor(9,0);
  lcd.print(jarak);
  lcd.setCursor(14,0);
  lcd.print("cm");
  delay(200);
  radio.stopListening();
  if (jarak > 30 ) {
    data = '1';
    lcd.setCursor(0,1);
    lcd.print("Mundur Lagi");
    delay(100);
    radio.write(&data, sizeof(data));
    Serial.println(data);
    delay(200);
  }
  else if (jarak > 10 && jarak <= 30)
  {
    data = '2';
    lcd.setCursor(0,1);
    lcd.print("Sudah Pas");
    delay(100);
    radio.write(&data, sizeof(data));
    Serial.println(data);
    delay(200);
  }
  else {
    data = '3';
    lcd.setCursor(0,1);
    lcd.print("Berhenti!!");
    delay(100);
    radio.write(&data, sizeof(data));
    Serial.println(data);
    delay(200);
  }
  delay(500);
 
  digitalWrite(trig1, LOW);
  delayMicroseconds(8);
  digitalWrite(trig1, HIGH);
  delayMicroseconds(8);
  digitalWrite(trig1, LOW);
  delayMicroseconds(8);
 
  durasi1 = pulseIn(echo1, HIGH); // menerima suara ultrasonic
  jarak1 = (durasi1 / 2) / 29.1;  // mengubah durasi menjadi jarak (cm)
   if (jarak1 > 10){
      digitalWrite(ledg2, HIGH);
      digitalWrite(ledr2, LOW);
  }
  else{
      digitalWrite(ledg2, LOW);
      digitalWrite(ledr2, HIGH);
  }
  delay(500);
 
  digitalWrite(trig2, LOW);
  delayMicroseconds(8);
  digitalWrite(trig2, HIGH);
  delayMicroseconds(8);
  digitalWrite(trig2, LOW);
  delayMicroseconds(8);

  durasi2 = pulseIn(echo2, HIGH); // menerima suara ultrasonic
  jarak2 = (durasi2 / 2) / 29.1;  // mengubah durasi menjadi jarak
   if (jarak2 > 10){
      digitalWrite(ledg2, HIGH);
      digitalWrite(ledr2, LOW);
  }
  else{
      digitalWrite(ledg2, LOW);
      digitalWrite(ledr2, HIGH);
  }
  delay(500);
}

SLAVE
//Slave
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

#define ledy 4  //Definisi pin led
#define ledg 5  //Definisi pin led
#define ledr 6  //Definisi pin led
#define buzzer 7  //Definisi pin Buzzer

char data;
RF24 radio(9, 10); // CE, CSN
const byte addresses[][6] = {"00298", "00910"};

void setup() {
  Serial.begin(115200);
  pinMode(ledy, OUTPUT);
  pinMode(ledg, OUTPUT);
  pinMode(ledr, OUTPUT);
  pinMode(buzzer, OUTPUT);
  radio.begin();
  radio.openWritingPipe(addresses[1]); // 00001
  radio.openReadingPipe(1, addresses[0]); // 00002
  radio.setPALevel(RF24_PA_MAX);

  delay(5);
}

void loop() {
// Menjalankan perintah untuk menghasilkan output
  delay(100);
  radio.startListening();
  while (!radio.available()) {
    Serial.println("No Data Received");
  }
  radio.read(&data, sizeof(data));
  Serial.print("Data Received : ");
  Serial.println(data);
  switch (data) {
    case '1' :
      digitalWrite(ledy, HIGH);
      digitalWrite(ledg, LOW);
      digitalWrite(ledr, LOW);
      digitalWrite(buzzer, LOW);
      break;
    case '2' :
      digitalWrite(ledy, LOW);
      digitalWrite(ledg, HIGH);
      digitalWrite(ledr, LOW);
      digitalWrite(buzzer, LOW);
      break;
    case '3' :
      digitalWrite(ledy, LOW);
      digitalWrite(ledg, LOW);
      digitalWrite(ledr, HIGH);
      digitalWrite(buzzer, HIGH);
      break;
  }
  radio.stopListening();
  delay(300);
}
5. Flowchart [kembali]
MASTER

 SLAVE

6. Rangkaian Simulasi [kembali]

7. Rangkaian Percobaan [kembali]







8. Video Simulasi [kembali]



9. Video Percobaan [kembali]

10. Analisa [kembali]

Pada modul 4 mikro kami membuat alat dengan judul “Alat Parkir Otomatis untuk Kendaraan Roda Empat”. Disini ada beberapa komponen alat yang digunakan yaitu adalah   Arduino Uno, LCD, Sensor Ultrasonik, Buzzer, Potensiometer, LED, Breadboard, dan Jumper. Alat ini menggunakan SPI dan wireless sebagai komunikasi antar Arduino. Jadi Arduino ada 2 yang satu berperan sebagai master yang mentranfer data dan yang Arduino lain sebagai slave yang berperan menjalankan data yang diberikan oleh master. Prinsip kerja dari alat ini, pertama-tama sensor yang berfungsi mendeteksi jarak yang dibacanya terhadap kendaraan roda 4, nantinya hasilnya akan mengeluarkan dua output yaitu, LED sebagai output analog dan LCD sebagai output digital. Nilainya akan ditampilkan dalam 3 kondisi. Yang pertama adalah ketika nilainya berada pada jarak lebih dari 30  cm maka LED kuning akan menyala dan LCD akan mengeluarkan nilai jarak dan memberitahukan untuk "Mundur Lagi", jika jaraknya berkisar antara 15 cm sampai 30 cm maka LED hijau akan menyala dan LCD akan menampilkan "Sudah Pas", dan jika nilainya berada pada jarak dibawah 15 cm maka LED merah akan menyala dan buzzer akan berbunyi, LCD akan menampilkan "Berhenti!!".
Karena pada rangkaian alat terdapat 3 buah sensor ultrasonik yang 2 lagi berfungsi untuk mendeteksi alat yang berada di samping kiri dan kanan kendaraan. Kondisi masing-masingnya sama jika sensor ultrasonik mendeteksi jarak lebih dari 10 cm maka LED hijau akan menyala, dan jika kurang dari 10 cm maka LED merah akan menyala menandakan bahwa jaraknya terlalu dekat .

11. Link Download [kembali]

1. File HTML
    Download File
2. Video simulasi
    Download File
3. video Rangkaian
    Download File
4. File rangkaian simulasi
    Download File
5.Kode Program
    Download File
6. Library Proteus Sensor Ultrasonik
    Download File
7. Library Proteus Arduino Uno
    Download File
8. Library Proteus Wifi NRF24L01
    Download File
9. Data Sheet Sensor Ultrasonik
    Download File
10. Data Sheet WIFI NRF24L01
    Download File
11. Data Sheet Arduino
    Download File
12. Flowchart
    Download File

Tidak ada komentar:

Posting Komentar