Cara membuat Radar Arduino


Cara membuat Radar Arduino


Teknologi.
Assalamu’alaikum.
Bagaimana keadaan teman-teman semua muda-mudahan selalu dalam keadaan sehat dan selalu diberi keselamatan oleh yang mahakuasa, bagi teman-teman yang kurang sehat semoga cepat sembuh supaya bisa mengerjakan pekerjaan sehari-hari seperti sedia kala amin.

Pada Artikel kali ini kita akan membahas sebuah proyek dari sensor ultrasonik yaitu “RADAR”. Menurut wikipedia radar adalah suatu sistem gelombang elektromagnetik yang berguna untuk mendeteksi, mengukur jarak dan membuat map benda-benda seperti pesawat terbang, berbagai kendaraan bermotor dan informasi cuaca (hujan).

Panjang gelombang yang dipancarkan radar bervariasi mulai dari milimeter hingga meter. Gelombang radio/sinyal yang dipancarkan dan dipantulkan dari suatu benda tertentu akan ditangkap oleh radar. Dengan menganalisis sinyal yang dipantulkan tersebut, pemantul sinyal dapat ditentukan lokasinya dan melalui analisis lebih lanjut dari sinyal yang dipantulkan dapat juga ditentukan jenisnya. Meskipun sinyal yang diterima relatif lemah/kecil, tetapi radio sinyal tersebut dapat dideteksi dan diperkuat oleh penerima radar.

Untuk proyek ini, kita hanya perlu dua komponen bersama dengan papan Arduino, dan itu adalah sensor ultrasonik dan motor servo. Rentang radar dapat disesuaikan hingga 4 meter dengan rotasi 180 derajat. untuk lebih jelas mari kita ikuti sampai tuntas dan pas.

Baca Juga

1.        Fitur WA atau Wahatsapp

Bagian pertama alat dan bahan

     1.     Arduino bisa semua jenis (Beli disini)
     2.     motor servo (Beli disini)
     3.     sensor ultrasonik (Beli disini)
     4.     papan percoabaa bila perlu (Beli disini)
     5.     Jumper secukupnya (Beli disini)
     6.     Glue Gun (Beli disini)

* Ini adalah tautan afiliasi. mohon dukung kami dengan cara belanja dengan tautan yang tertera di atas, setiap kalai teman-teman belanja dengan tautan diatas itu sangat berarti bagi kami dan kami sangat menghargai setiap dukungan yang teman-teman berikan*

Bagian kedua gambar rangkaian alat


Bagian ketiga cara perakitan
     1.     Rangkai setiap komponen seperti gambar diatas.
     2.     Untuk posisi ultrasonik berada tepat di atas motor servo.
     3.     Untuk dudukan sensor ultrasonik bisa menggunakan gabus.


Bagian keempat kode program Arduino

Sekarang kita perlu membuat kode dan mengunggahnya ke Arduino yang akan memungkinkan interaksi antara Arduino dan IDE. Sebelum masuk ke kode program kita harus mendownload terlebih dahulu sebuah librarry untuk mendownload librarry bisa di sini.


#include .

// Menentukan pin Tirg dan Echo dari Sensor Ultrasonik
const int trigPin = 10;
const int echoPin = 11;
// Variabel untuk durasi dan jarak
long duration;
int distance;

Servo myServo; // Membuat objek servo untuk mengendalikan motor servo

void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
myServo.attach(12);
}
void loop() {
// memutar motor servo dari 15 hingga 165 derajat
for(int i=15;i<=165;i++){
myServo.write(i);
delay(30);
distance = calculateDistance();//Memanggil fungsi untuk menghitung jarak yang diukur oleh sensor Ultrasonik untuk setiap derajat

Serial.print(i);
Serial.print(",");
Serial.print(distance);
Serial.print(".");
}

// Mengulangi baris sebelumnya dari 165 hingga 15 derajat
for(int i=165;i>15;i--){
myServo.write(i);
delay(30);
distance = calculateDistance();
Serial.print(i);
Serial.print(",");
Serial.print(distance);
Serial.print(".");
}
}
// Berfungsi untuk menghitung jarak yang diukur oleh sensor Ultrasonic
int calculateDistance(){

digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Sets the trigPin on HIGH state for 10 micro seconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH); //Membaca echoPin, mengembalikan waktu tempuh gelombang suara dalam mikrodetik
distance= duration*0.034/2;
return distance;
}


Bagian kelima membuat radar dengan  Processing

Bagi teman-teman yang belum ada aplikasi prosesing bisa download disini.

Sekarang kita akan menerima nilai untuk sudut dan jarak yang diukur oleh sensor dari Arduino menggunakan fungsi SerialEvent() yang membaca data dari Port Serial dan kita akan meletakkan nilai sudut dan jarak ke dalam variabel iAngle dan iDistance. Variabel ini akan digunakan untuk menggambar radar, garis, objek yang terdeteksi, dan beberapa teks.

Untuk menggambar radar saya membuat fungsi drawRadar () yang terdiri dari fungsi arc () dan line ().



void drawObject() {
pushMatrix();
translate(960,1000); // memindahkan koordinat awal ke lokasi baru
strokeWeight(9);
stroke(255,10,10); // warna merah
pixsDistance = iDistance*22.5; // mencakup jarak dari sensor dari cm ke piksel
// membatasi jarak hingga 40 cm
if(iDistance<40 o:p="">
// menggambar objek sesuai dengan sudut dan jarak
line(pixsDistance*cos(radians(iAngle)),-pixsDistance*sin(radians(iAngle)),950*cos(radians(iAngle)),-950*sin(radians(iAngle)));
}
popMatrix();
}



Untuk teks di layar kita membuat fungsi drawText () yang menggambar teks di lokasi tertentu.
Semua fungsi ini disebut dalam fungsi draw () yang berulang-ulang dan menggambar layar. Juga di sini kita menggunakan fungsi fill () ini dengan 2 parameter untuk mensimulasikan gerakan kabur dan memudar lambat pada garis bergerak.
void draw() {

fill(98,245,31);
textFont(orcFont);
// mensimulasikan gerakan kabur dan memudar lambat dari garis yang bergerak
noStroke();
fill(0,4);
rect(0, 0, width, 1010);

fill(98,245,31); // warna hijau
// memanggil fungsi untuk menggambar radar
drawRadar();
drawLine();
drawObject();
drawText();
}


Setelah semua kode diatas selesai di copy maka radar akan terbentuk seperti pada gambar di bawah ini.


Kode lengkap radar Arduino :



import processing.serial.*; // mengimpor perpustakaan untuk komunikasi serial
import java.awt.event.KeyEvent; // mengimpor perpustakaan untuk membaca data dari port serial
import java.io.IOException;

Serial myPort; // mendefinisikan Object Serial
String angle="";
String distance="";
String data="";
String noObject;
float pixsDistance;
int iAngle, iDistance;
int index1=0;
int index2=0;
PFont orcFont;

void setup() {

size (1920, 1080);
smooth();
myPort = new Serial(this,"COM6", 9600); // memulai komunikasi serial
myPort.bufferUntil('.'); // membaca data dari port serial hingga karakter '.'.sudut, jarak.
orcFont = loadFont("OCRAExtended-30.vlw");
}

void draw() {

fill(98,245,31);
textFont(orcFont);
// mensimulasikan gerakan kabur dan memudar lambat dari garis yang bergerak
noStroke();
fill(0,4);
rect(0, 0, width, 1010);

fill(98,245,31); // warna hijau
// memanggil fungsi untuk menggambar radar
drawRadar();
drawLine();
drawObject();
drawText();
}

void serialEvent (Serial myPort) { // mulai membaca data dari Port Serial
// membaca data dari Port Serial hingga karakter '.' dan memasukkannya ke dalam variabel String "data".
data = myPort.readStringUntil('.');
data = data.substring(0,data.length()-1);

index1 = data.indexOf(","); // temukan karakter ',' dan masukkan ke dalam variabel "index1"
angle= data.substring(0, index1); // baca data dari posisi "0" ke posisi variabel index1 distance= data.substring(index1+1, data.length()); // baca data dari posisi "index1" hingga akhir data, itulah nilai jaraknya
// mengubah variabel String menjadi Integer
iAngle = int(angle);
iDistance = int(distance);
}

void drawRadar() {
pushMatrix();
translate(960,1000); // memindahkan koordinat awal ke lokasi baru
noFill();
strokeWeight(2);
stroke(98,245,31);
// menggambar garis lengkung
arc(0,0,1800,1800,PI,TWO_PI);
arc(0,0,1400,1400,PI,TWO_PI);
arc(0,0,1000,1000,PI,TWO_PI);
arc(0,0,600,600,PI,TWO_PI);
// menggambar garis sudut
line(-960,0,960,0);
line(0,0,-960*cos(radians(30)),-960*sin(radians(30)));
line(0,0,-960*cos(radians(60)),-960*sin(radians(60)));
line(0,0,-960*cos(radians(90)),-960*sin(radians(90)));
line(0,0,-960*cos(radians(120)),-960*sin(radians(120)));
line(0,0,-960*cos(radians(150)),-960*sin(radians(150)));
line(-960*cos(radians(30)),0,960,0);
popMatrix();
}

void drawObject() {
pushMatrix();
translate(960,1000); // memindahkan koordinat awal ke lokasi baru
strokeWeight(9);
stroke(255,10,10); // warna merah
pixsDistance = iDistance*22.5; // mengubah jarak dari sensor cm ke piksel
// membatasi jarak hingga 40 cm
if(iDistance<40 o:p="">

line(pixsDistance*cos(radians(iAngle)),-pixsDistance*sin(radians(iAngle)),950*cos(radians(iAngle)),-950*sin(radians(iAngle)));
}
popMatrix();
}

void drawLine() {
pushMatrix();
strokeWeight(9);
stroke(30,250,60);
translate(960,1000); // memindahkan koordinat awal ke lokasi baru
line(0,0,950*cos(radians(iAngle)),-950*sin(radians(iAngle))); // menggambar garis sesuai dengan sudutnya
popMatrix();
}

void drawText() { // menggambar teks di layar

pushMatrix();
if(iDistance>40) {
noObject = "Out of Range";
}
else {
noObject = "In Range";
}
fill(0,0,0);
noStroke();
rect(0, 1010, width, 1080);
fill(98,245,31);
textSize(25);
text("10cm",1180,990);
text("20cm",1380,990);
text("30cm",1580,990);
text("40cm",1780,990);
textSize(40);
text("Object: " + noObject, 240, 1050);
text("Angle: " + iAngle +" °", 1050, 1050);
text("Distance: ", 1380, 1050);
if(iDistance<40 o:p="">
text(" " + iDistance +" cm", 1400, 1050);
}
textSize(25);
fill(98,245,60);
translate(961+960*cos(radians(30)),982-960*sin(radians(30)));
rotate(-radians(-60));
text("30°",0,0);
resetMatrix();
translate(954+960*cos(radians(60)),984-960*sin(radians(60)));
rotate(-radians(-30));
text("60°",0,0);
resetMatrix();
translate(945+960*cos(radians(90)),990-960*sin(radians(90)));
rotate(radians(0));
text("90°",0,0);
resetMatrix();
translate(935+960*cos(radians(120)),1003-960*sin(radians(120)));
rotate(radians(-30));
text("120°",0,0);
resetMatrix();
translate(940+960*cos(radians(150)),1018-960*sin(radians(150)));
rotate(radians(-60));
text("150°",0,0);
popMatrix();
}

Nah itulah cara membuat radar dengan menggunakan sensor ultrasonik. ingat disini kita menggunakan 2 aplikasi yaitu aplikasi arduino IDE dan aplikasi Processing IDE, pasti ada di antara kita yang baru mengenal aplikasi Processing IDE ini termasuk saya sendiri juga baru mengenali aplikasi ini ketika membuat proyek ini hehehehehe.

Mungkin artikel berikutnya kita akan membahas tentang apa kegunaan alikasi Processing IDE ini dan apa hubungan nya dengan arduino IDE mungkin sekian dulu untuk artikel kali ini, seperti biasa saya akhri dengan salam teknologi dan wassalam.



**Terimasih telah berkunjung semoga dapat menambah wawasan kita bersama, untuk dukungan teman-teman bisa berdonasi pada link berikut (Klik Dini) Sebanyak apapun donasi dari teman-teman itu sangat berarti bagi kami dan juga kalau ada dari teman-teman yang ingin mengajukan pertanyaan atau request tema seputar teknologi bisa langsung saja tulis pada kolom pesan di link donasi yang sudah ter sedia.**


EmoticonEmoticon