BAB III PERANCANGAN ALAT DAN PROGRAM
3.1.
Arsitektur Perancangan
Gambar 3.1 Flowchart Perancangan
32 http://digilib.mercubuana.ac.id/
Dalam perancangan Radar, diawali dengan pembuatan Sketch pada arduino untuk menjalankan sensor ping dan motor servo. Motor servo akan berputar sesuai yang diperitahkan Arduino dan juga memberikan data ke arduino untuk memberitahu pisisi terakhir. Untuk sensor ping, Arduino memberikan tegangan yang akan diteruskan oleh transmitter berbentuk gelombang ultrasonik dan receiver akan menerima pantulan gelombang untuk dihitung jarak nya objek. Sensor ping akan memberikankan data yang terisi jarak objek kepada arduino. Arduino akan mengolahnya dan melanjutkan kepada Processing untuk ditampilkan di monitor. Berikut terlampir flowchart perancangan radar ultrasonik: 3.2.
Perangkat keras (Hardware) Secara garis besar dalam perancangan tugas akhir ini menggunakan perangkat
keras (hardware) yang banyak dipasaran dan mudah mengoperasikannya. Berikut alat-alat yang akan digunakan: 1. Sensor Ultrasonik HC-SR04 2. Motor Micro Servo 9G 3. Arduino Uno R3 4. Breadboard 5. Kabel Jumper 6. Kabel USB
33 http://digilib.mercubuana.ac.id/
3.2.1. Sensor Ultrasonik HC-SRO4 Modul Ultrasonik umumnya berbentuk papan elektronik ukuran kecil dengan beberapa rangkaian elektronik dan 2 buah transducer. Dari 2 buah transducer ini, salah satu berfungsi sebagai transmitter dan satu lagi sebagai receiver. Modul Ultrasonik ini bekerja dengan cara menghasilkan gelombang suara pada frekuensi tinggi, yang kemudian dipancarkan oleh bagian transmitter. Pantulan gelombang suara yang mengenai objek di depannya akan ditangkap oleh bagian receiver. Dengan mengetahui lamanya waktu antara dipancarkannya gelombang suara sampai ditangkap kembali, akan dapat terhitung jarak objek yang ada di depan modul tersebut. Kita mengetahui kecepatan suara adalah 340m/s. Lamanya waktu tempuh gelombang suara dikalikan kecepatan suara, kemudian dibagi 2 akan menghasilkan jarak antara modul ultrasonic dengan objek didepannya.
Gambar 3.2 Sensor Ultrasonik HC-SRO4 34 http://digilib.mercubuana.ac.id/
Dalam Sensor Ultrasonik HC-SRO4 terdapat 4 pin, yaitu VCC, TRIG, ECHO dan GND. Untuk menghubungkan sensor ultrasonic dengan board Arduino Uno R3 cukup menghubungkan pin VCC dan GND ke +5 V dan GND arduino. Pin Trigger dan Echo terhubung dengan pin 10 dan pin 11 pada arduino. Untuk lebih jelasnya bisa dilihat skemanya dibawah ini:
Gambar 3.3 Skema Sensor ultrasonic dengan Board Arduino
3.2.2. Motor Micro Servo SG90 Motor servo ini merupakan pilihan akuator terbaik bagi, kenapa? karena bentuk yang kecil, ekonomis dan mudah didapatkan. Daya kerja motor servo ini pun tidak kalah dengan motor servo lainnya. Fungsi motor servo dalam perancangan ini adalah untuk menggerakkan sensor ultrasonic.
35 http://digilib.mercubuana.ac.id/
Gambar 3.4 Motor Micro Servo SG90 Tabel 3.1 Spesifikasi Motor Micro Servo SG-90 Dimensi (p x l x t)
22 x 11,5 x 27 mm
Berat
10,6 gram
Torsi maksimum
1,2 kg
Rentang sudut putaran
180°
Catu daya operasional
4 ~ 7,2 Volt DC
Kecepatan (tanpa beban)
0,12 sec/60° (57,6 rpm)
Panjang kabel
248 mm
Tipe konektor
Universal "S" (Futaba / JR / Berg / dll)
Bahan gir
Plastik
Motor Micro Servo SG90 masuk dalam jenis motor servo standar yang rotasinya hanya 180⁰. Motor servo ini mempunyai 3 buah pin yang terdiri dari: 1. Pin VCC dengan kabel warna merah merupakan kabel power yang berfungsi untuk mengkoneksikan dengan tegangan 5V pada board arduino 2. Pin GND dengan kabel warna coklat/hitam merupakan kabel ground yang nantinya akan dihubungkan dengan ground yang ada pada board arduino.
36 http://digilib.mercubuana.ac.id/
3. Pin SIGNAL dengan kabel orange yang merupakan kabel pin signal servo yang akan dihubungkan dengan pin 12 pada board arduino.
Gambar 3.5 Skema motor servo dengan Arduino
3.2.3. Arduino Uno R3 Pemilihan Board Arduino Uno R3 untuk Tugas Akhir ini, dikarnakan alat ini merupakan mikrokontroler yang mudah didapatkan dan sederhana dalam pemprogramannya. Penggunaannya tidak harus seorang programmer atau pun profesional, Arduino mudah digunakan untuk para pemula karena Arduino menggunakan bahasa C yang disederhanakan. Banyak refrensi website atau komunitas yang memberi pengajaran-pengajaran dari kelebihan dan fungsi Arduino.
37 http://digilib.mercubuana.ac.id/
Board Arduino UNO R3 disini berfungsi sebagai otak dari semua perangkat keras (Hardware) yang digunakan untuk perancangan Prototype Radar. Arduino UNO akan menjalankan fungsi sensor dan servo serta mengolah data Analog to Digital Converter (ADC), data tersebut untuk dikirimkan melalui komunikasi serial Tx/Rx atau serial USB. Dalam perancangan alat harus mengetahui fungsi komponen-komponen dari board arduino Uno R3 dikarenakan banyaknya komponen yang ada di board agar tidak terjadi kesalahan yang mengakibatkan kerusakan pada Board ataupun pada Hardware eksternal yang akan digunakan. Berikut keterangan dari komponen – komponen dalam board Arduino:
Gambar 3.6 Fungsi Komponen pada Board Arduino Uno R3 38 http://digilib.mercubuana.ac.id/
Perancangan dilanjutkan dengan menggabungkan tiap perangkat keras (Hardware) lainnya. Untuk Power Motor Servo dan Sensor Ultrasonik dapat menggunakan Pin Power 5 Volt.
Gambar 3.7 Skema Radar Ultrasonik dengan board Arduino
3.2.4. Breadboard Menciptakan suatu rangkaian pada elektronika itu memang membutuhkan waktu yang cukup lama, mulai dari pembuatan skematik, analisa, pembuatan prototype, dan berbagai proses yang semuanya membutuhkan waktu yang tidak sebentar. Diantara proses pembuatan rangkaian tersebut ada proses yang cukup unik dan menarik yaitu proses prototyping. Proses ini merupakan proses awal untuk menganalisis kinerja dari rangkaian dan proses pencarian kekurangan dan kesalahan rangkaian. Prototyping membutuhkan beberapa perangkat wajib yang harus tersedia. Salah satu komponen yang wajib ada adalah breadboard. Breadboard adalah sebuah perangkat yang digunakan untuk membuat rangkaian sementara atau rangkaian
39 http://digilib.mercubuana.ac.id/
prototype yang sama sekali tidak membutuhkan proses penyolderan. Cara seperti ini akan menghemat waktu dan biaya. Skema untuk breadboard bisa dilihat dibawah ini:
Gambar 3.8 Skema Breadboard
3.2.5. Kabel Jumper Kabel jumper atau kabel penghubung merupakan perlengkapan untuk uji coba rangkaian. Fungsi kabel jumper inilah yang akan menghubungkan kaki-kaki komponen IC, resistor, kapasitor, diode, dan komponen-komponen elektronika lainnya termasuk papan Breadboard.
Gambar 3.9 Kabel Jumper 40 http://digilib.mercubuana.ac.id/
3.2.6. Kabel USB Kabel USB adalah sebuah kabel serabut yang digunakan untuk menghubungkan perangkat luar kedalam CPU atau dengan komputer. Kabel USB memiliki 2 ujung yang pada satu ujung berupa soket USB yang nanti nya akan dicolokkan ke post USB pada komputer dan di ujung lain memiliki adapter atau soket bermacam-macam, mulai dari soket HMDI, VGA, atau tersambung langsung pada perangkat luar. Fungsi kabel USB yaitu sesuai namanya USB yang merupakan singkatan dari Universal Serial Bus. Kabel USB memiliki 4 inti kabel atau 4 jalur kabel yang masing-masing memiliki fungsi tidak sama. Salah satu kabel sebagai media transmisi data, kabel lainnya sebagai sumber daya listrik DC dan Grounding.
Gambar 3.10 Kabel USB
41 http://digilib.mercubuana.ac.id/
3.3.
Software Dalam menciptakan suatu bentuk alat yang dapat berkerja dibutuhkan suatu
ide untuk merancang. Di zaman modern ini hampir semua perancangan sudah menggunakan software. Dengan software pengguna bisa membuat alat berfungsi sesuai yang diinginkan. Begitupun dalam perancangan Prototype Radar Ultrasonik, project ini menggunakan 2 software, yaitu: Arduino IDE dan Processing IDE. 3.3.1. Arduino IDE Arduino IDE merupakan satu paket dengan Arduino Uno R3, Software ini dapat di download pada website resminya secara gratis. Project ini menggunakan IDE ter-update dari Arduino. Perancangan Sketch pada Arduino ada beberapa tahap yang harus di perhatikan khususnya perintah-perintah fungsi. Terdapat 2 unit perangkat keras yang harus di perintah. Dibawah ini adalah sketch Arduino beserta keterangan yang sudah tersusun dan sudah bisa digunakan. // file header untuk membuat dan menggunakan fungsi pada library #include <Servo.h>. // mendefinisikan pin Trig and pin Echo pada 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 motor void setup() { // menjalankan fungsi awal pinMode(trigPin, OUTPUT); // Menetapkan Pin trig sebagai output
42 http://digilib.mercubuana.ac.id/
pinMode(echoPin, INPUT); // Menetapkan Pin echo sebagai input Serial.begin(9600); // berfungsi agar arduino bisa berkomunikasi dengan komputer, 9600 adalah salah satu nilai yang dipilih untuk komunikasi myServo.attach(12); // mendefinisikan letak pin yang terpasang untuk motor servo } void loop() { // menjalankan fungsi berulang-ulang // merotasi motor servo dari 15 derajat hingga 165 derajat for(int i=15;i<=165;i++){ myServo.write(i); delay(30); // waktu jeda distance = calculateDistance();// fungsi untuk menghitung jarak oleh sensor ultrasonik untuk setiap derajatnya Serial.print(i); // fungsi untuk mengirim kepastian derajat ke serial port Serial.print(","); // Mengirimkan karakter tambahan di sebelah nilai sebelumnya saat diperlukan processing IDE untuk hasilnya Serial.print(distance); // mengirim nilai jarak ke serial port Serial.print("."); } // fungsi untuk membalikan fungsi sebelumnya for(int i=165;i>15;i--){ myServo.write(i); delay(30); distance = calculateDistance(); Serial.print(i); Serial.print(","); Serial.print(distance); Serial.print("."); } } // fungsi untuk mengkalkulasi jarak oleh sensor ultrasonik int calculateDistance(){ digitalWrite(trigPin, LOW); delayMicroseconds(2); // menetapkan pin trig delay 10 micro seconds pada saat HIGH digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); // Reads the echoPin, returns the sound wave travel time in microseconds distance= duration*0.034/2; // perhitungan jarak return distance; }
43 http://digilib.mercubuana.ac.id/
3.3.2. Processing Processing dalam penggunaan di project ini berfungsi sebagai output visual. Sketch Processing tidak berbeda jauh dengan Sketch Arduino dikarenakan menggunakan bahasa C yang disederhanakan. Tahap awal perancangan, Processing harus mengambil data dari Arduino dengan menggunakan fungsi import dimana fungsi ini untuk mengolah data dari board arduino. 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;
Perancangan dilanjutkan dengan membuat sketch sudut pandang dan garis batas Radar. Dalam pembuatannya dapat menggunakan fungsi drawRadar() yang terdiri dari arc() dan line(). Dapat dilihat pada gambar 3.11. void drawRadar() { pushMatrix(); translate(960,1000); // moves the starting coordinats to new location noFill(); strokeWeight(2); stroke(98,245,31); // draws the arc lines 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); // draws the angle lines 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);
44 http://digilib.mercubuana.ac.id/
popMatrix(); }
Gambar 3.11 Sudut pandang dan garis jarak
Untuk menggambar garis yang bergerak sepanjang radar menggunakan fungsi drawline(). Pusat rotasinya diatur dengan fungsi translate() dan mengunakan fungsi line() dimana setiap sudut pandang akan ditarik garis lurus. Gambar 3.12. void drawLine() { pushMatrix(); strokeWeight(9); stroke(30,250,60); translate(960,1000); // moves the starting coordinats to new location line(0,0,950*cos(radians(iAngle)),-950*sin(radians(iAngle))); // draws the line according to the angle popMatrix(); }
45 http://digilib.mercubuana.ac.id/
Gambar 3.12 Garis lurus untuk sinyal
Untuk membuat gambar objek yang terdeteksi, dapat mengunakan fungsi drawObject(). Fungsi ini akan mengambil data jarak dari sensor ultrasonic, merubahnya menjadi pixel yang dikombinasikan dengan sudut pandang dan gambaran objek yang terdeteksi. Gambar 3.13. 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 cm if(iDistance<40){ // draws the object according to the angle and the distance line(pixsDistance*cos(radians(iAngle)),-pixsDistance*sin(radians(iAngle)),(widthwidth*0.505)*cos(radians(iAngle)),-(width-width*0.505)*sin(radians(iAngle))); } popMatrix(); }
46 http://digilib.mercubuana.ac.id/
Gambar 3.13 Garis lurus untuk sinyal yang terdeteksi
Dalam penggunaan Teks pada layar, dapat mengunakan fungsi drawText() untuk teks dilokasi tertentu. Semua fungsi akan di jalankan berulang-ulang dengan meletakkan fungsi draw() pada sketch utama. Penggunakan fungsi fill() dengan 2 parameter untuk simulasi blur and slow fade of the moving line. 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(); }
47 http://digilib.mercubuana.ac.id/