Cara membuat Radar Arduino kompetibel semua monitor


Cara membuat Radar Arduino kompetibel dengan semua monitor


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 sederhana 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

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 kode program untuk processing IDE

Bagian 1 sampai 4 itu sama dengan tutorial sebelumnya (Bisa baca disini) tetapi kaliini ada perubahan kode program untuk processing IDE. Kode program ini berfungsi untuk supaya tampilan radar bisa kompetibel dengan semua layar jadi kita tidak perlu lagi untuk mengubah size kalau kita ingin pindah ke layar yang lebih besar atau lebih kecil.

Dengan kode program ini si dia ini bisa langsung menyesuaikan ukurannya dengan layar tampilan, sebelum kita masuk pada kode programnya bagi teman-teman yang belum ada aplikasi processing IDE bisa download di sini.

/* Arduino Radar Project

import processing.serial.*; // imports library for serial communication
import java.awt.event.KeyEvent; // imports library for reading the data from the serial port
import java.io.IOException;

Serial myPort; // defines Object Serial
// defubes variables
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); // ***CHANGE THIS TO YOUR SCREEN RESOLUTION***
smooth();
myPort = new Serial(this,"COM4", 9600); // starts the serial communication
myPort.bufferUntil('.'); // reads the data from the serial port up to the character '.'. So actually it reads this: angle,distance.
orcFont = loadFont("OCRAExtended-30.vlw");
}

void draw() {

fill(98,245,31);
textFont(orcFont);
// simulating motion blur and slow fade of the moving line
noStroke();
fill(0,4);
rect(0, 0, width, height-height*0.065);

fill(98,245,31); // green color
// calls the functions for drawing the radar
drawRadar();
drawLine();
drawObject();
drawText();
}

void serialEvent (Serial myPort) { // starts reading data from the Serial Port
// reads the data from the Serial Port up to the character '.' and puts it into the String variable "data".
data = myPort.readStringUntil('.');
data = data.substring(0,data.length()-1);

index1 = data.indexOf(","); // find the character ',' and puts it into the variable "index1"
angle= data.substring(0, index1); // read the data from position "0" to position of the variable index1 or thats the value of the angle the Arduino Board sent into the Serial Port
distance= data.substring(index1+1, data.length()); // read the data from position "index1" to the end of the data pr thats the value of the distance

// converts the String variables into Integer
iAngle = int(angle);
iDistance = int(distance);
}

void drawRadar() {
pushMatrix();
translate(width/2,height-height*0.074); // moves the starting coordinats to new location
noFill();
strokeWeight(2);
stroke(98,245,31);
// draws the arc lines
arc(0,0,(width-width*0.0625),(width-width*0.0625),PI,TWO_PI);
arc(0,0,(width-width*0.27),(width-width*0.27),PI,TWO_PI);
arc(0,0,(width-width*0.479),(width-width*0.479),PI,TWO_PI);
arc(0,0,(width-width*0.687),(width-width*0.687),PI,TWO_PI);
// draws the angle lines
line(-width/2,0,width/2,0);
line(0,0,(-width/2)*cos(radians(30)),(-width/2)*sin(radians(30)));
line(0,0,(-width/2)*cos(radians(60)),(-width/2)*sin(radians(60)));
line(0,0,(-width/2)*cos(radians(90)),(-width/2)*sin(radians(90)));
line(0,0,(-width/2)*cos(radians(120)),(-width/2)*sin(radians(120)));
line(0,0,(-width/2)*cos(radians(150)),(-width/2)*sin(radians(150)));
line((-width/2)*cos(radians(30)),0,width/2,0);
popMatrix();
}

void drawObject() {
pushMatrix();
translate(width/2,height-height*0.074); // moves the starting coordinats to new location
strokeWeight(9);
stroke(255,10,10); // red color
pixsDistance = iDistance*((height-height*0.1666)*0.025); // covers the distance from the sensor from cm to pixels
// limiting the range to 40 cms
if(iDistance<40 o:p="">
// draws the object according to the angle and the distance
line(pixsDistance*cos(radians(iAngle)),-pixsDistance*sin(radians(iAngle)),(width-width*0.505)*cos(radians(iAngle)),-(width-width*0.505)*sin(radians(iAngle)));
}
popMatrix();
}

void drawLine() {
pushMatrix();
strokeWeight(9);
stroke(30,250,60);
translate(width/2,height-height*0.074); // moves the starting coordinats to new location
line(0,0,(height-height*0.12)*cos(radians(iAngle)),-(height-height*0.12)*sin(radians(iAngle))); // draws the line according to the angle
popMatrix();
}

void drawText() { // draws the texts on the screen

pushMatrix();
if(iDistance>40) {
noObject = "Out of Range";
}
else {
noObject = "In Range";
}
fill(0,0,0);
noStroke();
rect(0, height-height*0.0648, width, height);
fill(98,245,31);
textSize(25);

text("10cm",width-width*0.3854,height-height*0.0833);
text("20cm",width-width*0.281,height-height*0.0833);
text("30cm",width-width*0.177,height-height*0.0833);
text("40cm",width-width*0.0729,height-height*0.0833);
textSize(40);
text("Object: " + noObject, width-width*0.875, height-height*0.0277);
text("Angle: " + iAngle +" °", width-width*0.48, height-height*0.0277);
text("Distance: ", width-width*0.26, height-height*0.0277);
if(iDistance<40 o:p="">
text(" " + iDistance +" cm", width-width*0.225, height-height*0.0277);
}
textSize(25);
fill(98,245,60);
translate((width-width*0.4994)+width/2*cos(radians(30)),(height-height*0.0907)-width/2*sin(radians(30)));
rotate(-radians(-60));
text("30°",0,0);
resetMatrix();
translate((width-width*0.503)+width/2*cos(radians(60)),(height-height*0.0888)-width/2*sin(radians(60)));
rotate(-radians(-30));
text("60°",0,0);
resetMatrix();
translate((width-width*0.507)+width/2*cos(radians(90)),(height-height*0.0833)-width/2*sin(radians(90)));
rotate(radians(0));
text("90°",0,0);
resetMatrix();
translate(width-width*0.513+width/2*cos(radians(120)),(height-height*0.07129)-width/2*sin(radians(120)));
rotate(radians(-30));
text("120°",0,0);
resetMatrix();
translate((width-width*0.5104)+width/2*cos(radians(150)),(height-height*0.0574)-width/2*sin(radians(150)));
rotate(radians(-60));
text("150°",0,0);
popMatrix();
}


Nah itulah cara membuat radar mengguakan arduino yang bisa kometibel dengan semua layar. mungki sekian dulu artikel untuk kali ini semoga bermanfaat untuk kita semua saya akhiri 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