Sabtu, 23 Juni 2018

Tutorial Arduino Radar

Dalam proyek ini, saya akan menunjukkan kepada Anda bagaimana merancang Aplikasi Radar sederhana menggunakan Arduino dan Memproses. Proyek Arduino Radar ini diimplementasikan dengan bantuan Aplikasi Pengolahan.

Radar adalah sistem pendeteksi objek jarak jauh yang menggunakan gelombang radio untuk menetapkan parameter tertentu dari suatu objek seperti jangkauan, kecepatan, dan posisinya. Teknologi radar digunakan dalam pesawat terbang, misil, laut, ramalan cuaca dan mobil.
Meskipun judulnya mengatakan Arduino Radar Project, secara teknis proyek ini didasarkan pada teknologi Sonar karena saya akan menggunakan Sensor Ultrasonik untuk menentukan keberadaan objek apa pun dalam kisaran tertentu.
Arduino Radar Project Image 1

Ulasan Proyek

Arduino Radar Project lebih merupakan proyek visual daripada implementasi sirkuit. Tentu saja, saya akan menggunakan perangkat keras yang berbeda seperti Arduino UNO, HC-SR04 Ultrasonic Sensor dan Servo Motor tetapi aspek utamanya adalah representasi visual dalam Aplikasi Pengolahan.
Jika Anda ingat, saya sudah menggunakan Aplikasi Pemrosesan di salah satu Proyek Arduino sebelumnya yang melibatkan Sensor MPU-6050.Saya menyarankan Anda untuk melihat proyek itu sebelum melanjutkan (Anda tidak harus benar-benar melaksanakan proyek tetapi memahami cara penerapannya).
Dalam Proyek MPU-6050, saya telah menggunakan Arduino untuk membaca data dari MPU-6050 Sensor dan mengirimkannya ke Aplikasi Pengolahan melalui COM Port (Serial Communication).
Berdasarkan informasi yang diterima, sketsa dalam Pengolahan akan mengubah orientasi pesawat model.
Mengambil konsep yang sama di sini, saya akan mengumpulkan informasi dari Ultrasonic Sensor dengan bantuan Arduino dan menyebarkannya ke Pengolahan di mana aplikasi Grafik sederhana diimplementasikan untuk meniru Layar Radar.

Diagram Sirkuit Proyek Arduino Radar

Diagram rangkaian Proyek Radar ini sangat sederhana karena melibatkan sangat sedikit perangkat keras.
Arduino Radar Project Circuit Diagram

Komponen Diperlukan

Perangkat keras

  • Arduino UNO
  • Sensor Ultrasonik HC-SR04
  • TowerPro SG90 Servo Motor
  • Mounting Bracket for Ultrasonic Sensor (opsional)
  • Menghubungkan Kabel
  • Kabel jumper
  • 5V Power Supply
  • Kabel USB (untuk Arduino)

Perangkat lunak

  • Arduino IDE
  • Memproses Aplikasi

Desain Sirkuit

Jika Anda melihat diagram sirkuit, desain rangkaian untuk proyek ini sangat sederhana. Pin kontrol servo terhubung ke Pin 11 dari Arduino sementara TRIG dan ECHO Pins dari Ultrasonic Sensor terhubung ke Pin 9 & 10 dari Arduino.
Arduino Radar Project Image 2
Catu daya 5V terpisah (dengan GND umum) diberikan ke Servo Motor dan Ultrasonic Sensor.

Menyiapkan Perangkat Keras

Setelah membuat koneksi, ada satu langkah penting dalam konstruksi yang perlu Anda lakukan (tidak wajib). Karena Ultrasonic Sensor harus menyapu busur 180 0(dengan bantuan Servo), saya telah menggunakan braket pemasangan seperti yang ditunjukkan pada gambar di bawah untuk memperbaiki Ultrasonic Sensor.
Arduino Radar Project Mounting Bracket
Setelah memperbaiki sensor, braket dudukan disekrupkan ke motor servo seperti ditunjukkan di bawah ini. Saat braket dan Sensor Ultrasonik menambah bobot servo, pastikan untuk menggunakan double-sided-tape untuk memperbaiki Servo dengan kuat ke permukaan.
Langkah ini opsional dan Anda dapat membuat struktur sederhana dengan kardus untuk menahan Ultrasonic Sensor dengan kuat ke Servo.
Arduino Radar Project Servo

Pengingat tentang Pemrosesan

Jika Anda baru dalam pemrosesan, itu adalah perangkat lunak berbasis seni visual untuk belajar kode.Untuk mengunduh aplikasi, kunjungi tautan berikut dan pilih platform Anda.
Setelah mengunduh file Zip (dengan asumsi platformnya adalah Windows 64-bit), ekstrak konten file zip dan Anda dapat menemukan aplikasi pemrosesan (file .exe).
Langkah selanjutnya adalah mengunduh pustaka khusus bernama "Toxi"  .Setelah mengunduh file zip "toxiclibs-complete-0020", ekstrak isinya ke folder dengan nama yang sama dan pindahkan folder itu ke direktori pustaka Pemrosesan (sesuatu seperti C: \ Users \ Ravi \ Documents \ Processing \ libraries).

Kode

Ada dua kode untuk proyek ini: satu untuk Arduino UNO dan yang lainnya untuk Pengolahan.

Arduino Code

Kode untuk Arduino UNO diberikan di bawah ini.
#include <Servo.h>
const int trigPin = 9;
const int echoPin = 10;
long duration;
int distinCM;
Servo radarServo;
void setup()
{
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
radarServo.attach(11);
}
void loop()
{
for(int i=0;i<=180;i++)
{
radarServo.write(i);
delay(50);
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distinCM = duration*0.034/2;
Serial.print(i);
Serial.print("*");
Serial.print(distinCM);
Serial.print("#");
}
for(int i=180;i>=0;i--)
{
radarServo.write(i);
delay(50);
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distinCM = duration*0.034/2;
Serial.print(i);
Serial.print("*");
Serial.print(distinCM);
Serial.print("#");
}
}
view rawArduino_Radar_Arduino_Code.inohosted with ❤ by GitHub

Memproses Kode

Kode untuk Aplikasi Pengolahan diberikan di bawah ini.
import processing.serial.*;
import processing.opengl.*;
import toxi.geom.*;
import toxi.processing.*;
ToxiclibsSupport gfx;
Serial port;
String serialAngle;
String serialDistance;
String serialData;
float objectDistance;
int radarAngle, radarDistance;
int index=0;
void setup()
{
size (1280, 720);
gfx = new ToxiclibsSupport(this);
smooth();
//println(Serial.list());
//String portName = Serial.list()[0];
String portName = "COM4";
port = new Serial(this, portName, 9600);
//port = new Serial(this,"COM4", 9600);
port.bufferUntil('#');
}
void draw()
{
//fill(10,255,10);
noStroke();
fill(0,4);
rect(0, 0, 1280, 720);
fill(10,255,10);
//Radar Arcs and Lines
pushMatrix();
translate(640,666);
noFill();
strokeWeight(2);
stroke(10,255,10);
arc(0,0,1200,1200,PI,TWO_PI);
arc(0,0,934,934,PI,TWO_PI);
arc(0,0,666,666,PI,TWO_PI);
arc(0,0,400,400,PI,TWO_PI);
strokeWeight(4);
line(-640,0,640,0);
line(0,0,-554,-320);
line(0,0,-320,-554);
line(0,0,0,-640);
line(0,0,320,-554);
line(0,0,554,-320);
popMatrix();
//Ultrasonic Lines
pushMatrix();
strokeWeight(5);
stroke(10,255,10);
translate(640,666);
line(0,0,640*cos(radians(radarAngle)),-640*sin(radians(radarAngle)));
popMatrix();
//Object Detection Lines
pushMatrix();
translate(640,666);
strokeWeight(5);
stroke(255,10,10); // red color
objectDistance = radarDistance*15;
if(radarDistance<40)
{
line(objectDistance*cos(radians(radarAngle)),-objectDistance*sin(radians(radarAngle)),633*cos(radians(radarAngle)),-633*sin(radians(radarAngle)));
}
popMatrix();
}
void serialEvent (Serial port)
{
serialData = port.readStringUntil('#');
serialData = serialData.substring(0,serialData.length()-1);
index = serialData.indexOf("*");
serialAngle= serialData.substring(0, index);
serialDistance= serialData.substring(index+1, serialData.length());
radarAngle = int(serialAngle);
radarDistance = int(serialDistance);
}
view rawArduino_Radar_Processing_Code.pdehosted with ❤ by GitHub

Kerja

Awalnya, unggah kode ke Arduino setelah membuat koneksi. Anda dapat mengamati penyapuan servo dari 0 0 hingga 180 0 dan kembali lagi ke 0 0 . Karena Ultrasonic Sensor dipasang di atas Servo, ia juga akan berpartisipasi dalam aksi sweeping.
Sekarang, buka aplikasi pemrosesan dan tempel sketsa yang diberikan di atas. Dalam Sketsa Pemrosesan, buat perubahan yang diperlukan dalam pemilihan Port COM dan ganti dengan nomor Port COM yang terhubung dengan Arduino Anda.
Jika Anda perhatikan Pengolahan Sketsa, saya telah menggunakan ukuran tampilan output sebagai 1280 × 720 (dengan asumsi hampir semua komputer sekarang-a-hari memiliki resolusi minimal 1366 × 768) dan membuat perhitungan sehubungan dengan resolusi ini.
Di masa depan, saya akan mengunggah sketsa Pengolahan baru di mana Anda dapat memasukkan resolusi yang diinginkan (seperti 1920 × 1080) dan semua perhitungan akan secara otomatis disesuaikan dengan resolusi ini.
Sekarang, jalankan sketsa di Pemrosesan dan jika semuanya berjalan dengan baik, jendela Pemrosesan baru akan terbuka seperti yang ditunjukkan di bawah ini.
Output Pengolahan Proyek Radar Arduino
Representasi grafis dari data dari Ultrasonic Sensor direpresentasikan dalam tampilan tipe Radar. Jika Ultrasonic Sensor mendeteksi objek apa pun dalam jangkauannya, hal yang sama akan ditampilkan secara grafis di layar.

Tidak ada komentar:

Posting Komentar