• Tidak ada hasil yang ditemukan

BAB IV HASIL DAN PEMBAHASAN

4.1 Pengembangan Prototipe

4.1.2 Membangun Prototyping

a. Diagram Blok dan Cara Kerja

Untuk lebih memudahkan proses perakitan dan cara kerja masing – masing rangkaian maka akan dibuat suatu diagram blok terlebih dahulu. Hal ini sangat penting, karena dalam pembuatan suatu alat setiap rangkaian saling berhubungan dan mempengaruhi kinerja alat lainnya. Sehingga hasil yang didapat sesuai dengan keinginan dan teori yang berlaku. Berikut gambar blok diagram rancangan alat yang akan dibuat dapat dilihat seperti pada gambar 3.1

Gambar 4.1 Diagram Blok

Fungsi dan kegunaan masing–masing blok adalah sebagai berikut :

1. Sensor PING berfungsi sebagai pengukur jarak terhadap suatu benda dan mengirimkan sinyal ke mikrokontroler arduino.

2. Mini Servo berfungsi sebagai penggerak sensor, agar sensor dapat bergerak memutar 360 derajat, agar dapat bergerak mini servo ini dihubungkan ke mikrikontroler dan di program bersamaan dengan sensor.

3. Arduino Uno R3 berfungsi menerima sinyal dari sensor PING, dan sebagai pengendali mini servo beserta buzzer.

Arduino Uno R3 Sensor PING Mini Servo Buzzer Pemrograman Java

secara terus menerus sesuai dengan besar sudut dengan bantuan penggerak micro servo.

2. Dua buah micro servo akan bergerak memutar 360 derajat berlawanan dengan arah jarum jam, micro servo ini akan bergerak per 45 derajat, dikarenakan sensor PING akan membaca objek setiap 45 derajat. 3. Arduino Uno R3 menerima sinyal dari pin SIG sensor, dan

mengendalikan perputaran dua buah micro servo serta pengirim sinyal sensor PING ke buzzer.

4. Buzzer akan berbunyi ketika sinyal yang terdeteksi oleh sensor PING kurang dari 200 cm.

5. Hasil yang terdeteksi oleh sensor dikirim ke arduino kemudian dibaca melalui komunikasi serial port arduino dengan Java dan ditampilkan dalam bentuk grafik polar.

b. Prototyping

Untuk memulai sebuah proyek, peneliti membuat prototipe sederhana dengan gambar menggunakan aplikasi bernama Fritzing. Prototipe ini berupa rangkaian jalur elektronika yang membangun sistem agar bisa bekerja secara efektif. Bahan–bahan yang diperlukan dalam perancangan yaitu :

Tabel 4.1 Alat dan Bahan

a lah Tipe/ merek

duino UNO 1 unit ATMega 328P

ro Servo 2 unit Tower Pro

zer 1 unit

-ect Board 1 unit

-bel

#include <Servo.h> Servo myservo; Servo myservo2; int pos = 0; //============

const int PINGPin = 7; const int speakerPin = 8; void setup() { Serial.begin(9600); myservo.attach(9); myservo2.attach(10); } void loop() { pinMode(speakerPin, OUTPUT);

digitalWrite(speakerPin, LOW); // sound buzzer is defalut switched off

myservo2.write(0); delay(500);

myservo.write(0); delay(500);

/* servo atas dan bawah 0 derajat (depan)ambil data */ pickData();

myservo.write(90); delay(1000);

/* servo atas 90 derajat (kiri)ambil data */ pickData();

myservo.write(180); delay(1000);

/* servo atas 180 derajat (belakang)ambil data */ pickData();

Kode program “#include <servo.h>” merupakan library khusus agar bisa memuat kode intruksi untuk servo. Sedangkan pada kode program “servo myservo; servo myservo2;” merupakan pembeda yang mendefinisikan bahwa program ini menggunakan dua buah servo.

Kode 1.

const int PINGPin = 7; const int speakerPin = 8;

Pada kode 1 berfungsi untuk mendefinisikan pin yang digunakan oleh sensor PING dan buzzer pada board arduino.

Kode 2. void setup() { Serial.begin(9600); myservo.attach(9); myservo2.attach(10); } myservo2.write(90); delay(1000);

/* servo bawah 90 derajat (kanan) ambil data */

pickData(); }

Pada kode 2 berfungsi sebagai inisiasi yang digunakan dalam program, dalam hal ini inisiasi komunikasi serial pada 9600 bps, serta untuk dua buah servo yang menggunakan pin 9 dan pin 10. Void setup dalam pemrograman arduino merupakan fungsi wajib yang harus disertakan dalam memprogram arduino, jika tidak maka akan menghasilkan eror, isi void setup bisa juga kosong.

Kode 3.

void loop() {

pinMode(speakerPin, OUTPUT);

digitalWrite(speakerPin, LOW); // sound buzzer is defalut switched off

myservo2.write(0); myservo.write(0);

/* servo atas dan bawah 0 derajat (depan)ambil data */ pickData(0);

delay (1000); myservo.write(45);

/* servo atas 90 derajat (kiri)ambil data */ pickData(315);

delay(1000);

myservo.write(90);

/* servo atas 180 derajat (belakang)ambil data */ pickData(270);

delay(1000);

myservo.write(135);

/* servo atas 135 derajat (kiri)ambil data */ pickData(225);

myservo.write(180);

/* servo atas 180 derajat (belakang)ambil data */ pickData(180);

delay(1000);

myservo2.write(45);

/*servo bawah 225 derajat (kanan)ambil data */ pickData(135);

delay(1000);

myservo2.write(90);

/*servo bawah 270 derajat (kanan)ambil data */ pickData(90);

delay(1000);

myservo2.write(135);

/*servo bawah 315 derajat (kanan)ambil data */ pickData(45);

delay(1000); }

Pada kode 3 void loop () berfungsi sebagai tempat menaruh source code yang akan diproses, void loop ini akan dijalankan setelah void setup selesai. Sekali dijalankan, maka void loop ini akan berualang secara terus menerus sampai catu daya di lepaskan.

Kode program “pinMode (speakerPin, OUTPUT)” berfungsi untuk mendeklarasikan bahwa pin speaker sebagai output. Ketika sebuah pin dijadikan sebagai output, pin tersebut dapat dijadikan HIGH (ditarik menjadi 5V) atau LOW

(diturunkan menjadi ground) dengan menuliskan kode “digitalWrite (speakerPin, HIGH).

Pada kode program “myservo.write()” dan “myservo2.write()” berfungsi untuk meggerakan kedua servo sesuai sudut yang dituliskan dalam tanda (), micro servo ini dapat berputar hingga 180o.

Kode program “pickData” merupakan kode program yang berfungsi untuk pengambilan data. Kode program ini di deklarasikan secara khusus di dalam “void pickData()”, di dalamnya berisi pengaturan untuk sensor dan buzzer. Untuk lebih jelasnya perhatikansource codeberikut.

Void pickData(long sudut){ long duration, cm; pinMode(PINGPin, OUTPUT); digitalWrite(PINGPin, LOW); delayMicroseconds(2); digitalWrite(PINGPin, HIGH); delayMicroseconds(5); digitalWrite(PINGPin, LOW);

// convert the time into a distance

if(cm < 200) { pinMode(speakerPin, OUTPUT); digitalWrite(speakerPin, HIGH); delay(1000); digitalWrite(speakerPin, LOW); delay(200); pinMode(speakerPin, OUTPUT); digitalWrite(speakerPin, HIGH); delay(100); digitalWrite(speakerPin, LOW); delay(200); pinMode(speakerPin, OUTPUT); digitalWrite(speakerPin, HIGH); delay(1000); digitalWrite(speakerPin, LOW); } Serial.print(sudut); Serial.print(","); Serial.print(cm); Serial.println(); delay(100); }

long microsecondsToInches(long microseconds) {

Kode program “pinMode (PINGPin, OUTPUT)” berfungsi untuk mendeklarasikan bahwa pin sensor PING sebagai output. Pin tersebut ditarik menjadi menjadi 5V “digitalWrite (PINGPin, HIGH) dan diturunkan menjadi ground“digitalWrite (PINGPin, LOW).

Pada kode “if (cm >200) { pinMode (speakerPin, OUTPUT) …” berfungsi untuk mengatur suara yang dihasilkan buzzer, dalam hal ini, ketika sensor ,membaca jarak kurang dari 200 cm, maka buzzer akan berbunyi sebanyak 3 kali secaracontinuesampai sensor berhenti membaca jarak kurang dari 200 cm.

Pada kode program “serial.printIn()” berfungsi untuk mencetak hasil pada serial monitor, dalam hal ini hasil dalam serial monitor di tampilkan dalam bentuk besar sudut dan jarak yang terbaca ( dalamcentimeter).

Setelah alat berhasil dirancang, penulis melanjutkan penelitian dengan membuat interface (GUI) dengan menggunakan bahasa pemrograman Java menggunakan software Netbeans. Source code yang dibuat terbagi dalam dua nama file yaitu ConnectionSoket.java dan main.java. Kedua file ini disimpan dalam satu paket (package) grafikjava (source codedapat dilihat dalam lampiran).

File ConnectionSoket.java di dalamnya berisi program inti yang menghubungkan antara arduino dengan program java, sehingga program ini dapat membaca hasil melalui komunikasi serial port dengan Arduino. Untuk dapat mengakses komunikasi dengan arduino, pada program ini di beri tambahan library berupa RXTX JavaLibrary. Libraryini sangat mirip dengan Java Communication

API. Nantinya kita dapat menyesuaikan COM port yang digunakan oleh port Arduino. Selain itu, file ini berisi beberapa perintah yang nantinya dapat diakses oleh file main.java.

Pada file main.java di dalamnya berisi source code untuk menampilkan GUI (Graphical User Interface). Dalam file ini terdapatsource code:

public ConnectionSoket = c new ConnectionSoket ();

hal ini berarti class main dapat mengakses class ConnectionSoket. File ini akan menampilkan output berupa grafik, keterangan jarak dan keterangan sudut.

Dokumen terkait