How to Make Radar Using Arduiino, Servo + Ultrasonic | Mudah Sekali, Sudah Pakai Bahasa Indonnesia, Bisa Desain Sendiri

Asalamualaikum, selamat datang di blog ini.

Mungkin kalian ingin membuat radar sendiri dirumah, ini langkah-langkahnya:

Saya mau berbagi cara termudah untuk membuat radar pakai arduino uno, servo dan ultrasonic sebagai sensornya, sebenarnya semua arduino bisa digunakan, tidak hanya arduino uno saja, kebetulan saja saya pakai arduino uno.

rangkai dulu arduinonya seperti gambar dibawah:


Noted: 
  1. Pin triger pada sensor ultrasonic pada pin 10 arduino board.
  2. Pin Echo pada sensor ultrasonic pada pin 11 di arduino board.
  3. wire merah Positif.
  4. Wire hitam negatif Gnd.


Langkah berikutnya bukan arduino softwere dan sambungkan arduino ke usb di laptop serta pastikan com pada arduino sesuai. setelah selesei itu semua, masukan program dibawah pada arduino kalian, inget ada coment pada program yang bisa kalian utak atik untuk custom sesuai dengan yang kalian inginkan.

#include <Servo.h>
const int trigPin = 10; // Custom pin triger ke arduino board pin 10 di digital PWM pin dan bisa diganti pinnya
const int echoPin = 11; // Custom pin echo ke arduino board pin 11 di digital PWM pin dan bisa diganti pinnya
long duration;
int distance;
Servo myServo;
void setup() 
{
  pinMode(trigPin, OUTPUT); 
  pinMode(echoPin, INPUT); 
  Serial.begin(9600);
  myServo.attach(12); // Pin Sinyal warna orange di kabel servo di pin 12 digital PWM dan bisa di custom pinnya 
}
void loop()
{
  // pergerakan servo dari 0 hingga 180 derajat
  for(int i=0;i<=180;i++){ // Custom putaran servo dari 0 hingga 180 derajat, bisa di ganti sudutnya sesuai selera, maximal sudut servo 180 derajat
  myServo.write(i);
  delay(30);
  distance = calculateDistance();
  
  Serial.print(i); 
  Serial.print(","); 
  Serial.print(distance); 
  Serial.print("."); 
  }
  // pergerakan servo dari 180 hingga 0 derajat
  for(int i=180;i>0;i--){  // Custom putaran servo dari 180 hingga 0 derajat, bisa di ganti sudutnya sesuai selera, maximal sudut servo 180 derajat
  myServo.write(i);
  delay(30);
  distance = calculateDistance();
  Serial.print(i);
  Serial.print(",");
  Serial.print(distance);
  Serial.print(".");
  }
}
int calculateDistance(){ 
  
  digitalWrite(trigPin, LOW); 
  delayMicroseconds(2);
 
  digitalWrite(trigPin, HIGH); 
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH); 
  distance= duration*0.034/2;
  return distance;
}
   

Setelah itu buka softwere procecing dan masukan program dibawah ke prosecing softwere tersebut, inget! pastikan anda membaca coment yang sudah saya buat di bahasa program.

import processing.serial.*; 
import java.awt.event.KeyEvent; 
import java.io.IOException;
Serial myPort;
// 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 (1300, 750); 
 smooth();
 myPort = new Serial(this,"COM3", 9600); // ganti com tersebut dan pastikan sama dengan com yang kalian gunakan di arduino board
 myPort.bufferUntil('.');
}
void draw() {
  
  fill(255,255,255);
  noStroke();
  fill(0,4); 
  rect(0, 0, width, height-height*0.065); 
  
  fill(255,255,255); //warna putih, untuk warna lingkaran pada tampilan monitor radar
  drawRadar(); 
  drawLine();
  drawObject();
  drawText();
}
void serialEvent (Serial myPort) { 
  data = myPort.readStringUntil('.');
  data = data.substring(0,data.length()-1);
  
  index1 = data.indexOf(","); 
  angle= data.substring(0, index1); 
  distance= data.substring(index1+1, data.length()); 
  
  // converts the String variables into Integer
  iAngle = int(angle);
  iDistance = int(distance);
}
void drawRadar() {
  pushMatrix();
  translate(width/2,height-height*0.074); 
  noFill();
  strokeWeight(2);
  stroke(255,255,255);// warna putih, kalian bisa custom warna ini sesuai dengan yang kalian inginkan
  
  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);
  line(-width/2,0,width/2,0);
  line(0,0,(-width/2)*cos(radians(0)),(-width/2)*sin(radians(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(0,0,(-width/2)*cos(radians(180)),(-width/2)*sin(radians(180)));
  line((-width/2)*cos(radians(30)),0,width/2,0);
  popMatrix();
}
void drawObject() {
  pushMatrix();
  translate(width/2,height-height*0.074);
  strokeWeight(9);
  stroke(255,10,10); //warna merah untuk objek yang di deteksi, kalian bisa custom warna yang kalian inginkan
  pixsDistance = iDistance*((height-height*0.1666)*0.025); 
  // jarak maksimal hanya 40cm
  if(iDistance<40){
  
  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(0,255,240);// ini warna biru tosca yang digunakan untuk swing pada radar monitor
  translate(width/2,height-height*0.074); 
  line(0,0,(height-height*0.12)*cos(radians(iAngle)),-(height-height*0.12)*sin(radians(iAngle))); 
  popMatrix();
}
void drawText() { 
  
  pushMatrix();
  if(iDistance>40) {
  noObject = "Out of Range";
  }
  else {
  noObject = "In Range";
  }
  fill(0,0,0);// warna hitam
  noStroke();
  rect(0, height-height*0.0648, width, height);
  fill(98,245,31);// warna hijau untuk text
  textSize(25);//ukuran text
  
  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);
  text("10cm",width-width*0.650,height-height*0.0833);
  text("20cm",width-width*0.750,height-height*0.0833);
  text("30cm",width-width*0.850,height-height*0.0833);
  text("40cm",width-width*0.950,height-height*0.0833);
  textSize(25);
  text("Subscribe Vanza Maylonda thanks :) ", width-width*0.875, height-height*0.0277); //bisa custom tulisan yang kalian inginkan
  text("Angle: " + iAngle +" °", width-width*0.48, height-height*0.0277);
  text("Distance: ", width-width*0.29, height-height*0.0277);
  if(iDistance<40) {
  text("        " + iDistance +" cm", width-width*0.225, height-height*0.0277);
  }
  textSize(25);
  fill(245,239,62); // warna kuning untuk sudut dialnya
  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(); 

Setelah itu langsung raunnig program tersebut dan kalian akan melihat tambilannya seperti dibawah ini:


Selain saya berbagi pemikiran melalui tulisan di blog ini, saya juga berbagi pemikiran pada platform youtube pribadi saya Klick Here! tentu di platform youtube saya tidak hanya berbagi pemikiran saja, tetapi berbagi apa saja yang pantas dan layak untuk saya bagikan, jangan lupa di support yaa teman-teman, dan di follow sosial mediaku juga linknya Klick Here! mari kita berteman di sosial media dan silaturahim disana.

Terimakasih. Ini tutorialnya:


 


Komentar