Prototyping ANALISIS DAN PEMBAHASAN
duino UNO 1 unit
ATMega 328P
ro Servo 2 unit
Tower Pro
zer 1 unit
-
ect Board 1 unit
-
bel
-
rai 4 unit
ABC
include Servo.h Servo myservo;
Servo myservo2; int pos = 0;
============ const int PINGPin = 7;
const int speakerPin = 8; void setup {
Serial.begin9600; myservo.attach9;
myservo2.attach10; }
void loop {
pinModespeakerPin, OUTPUT; digitalWritespeakerPin, LOW; sound buzzer is defalut
switched off myservo2.write0;
delay500; myservo.write0;
delay500; servo atas dan bawah 0 derajat depanambil data
pickData; myservo.write90;
delay1000; servo atas 90 derajat kiriambil data
pickData; myservo.write180;
delay1000; servo atas 180 derajat belakangambil 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.begin9600;
myservo.attach9; myservo2.attach10;
} myservo2.write90;
delay1000; 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 {
pinModespeakerPin, OUTPUT; digitalWritespeakerPin, LOW; sound buzzer is defalut
switched off myservo2.write0;
myservo.write0; servo atas dan bawah 0 derajat depanambil data
pickData0; delay 1000;
myservo.write45; servo atas 90 derajat kiriambil data
pickData315; delay1000;
myservo.write90; servo atas 180 derajat belakangambil data
pickData270; delay1000;
myservo.write135; servo atas 135 derajat kiriambil data
pickData225; delay1000;
myservo.write180; servo atas 180 derajat belakangambil data
pickData180; delay1000;
myservo2.write45; servo bawah 225 derajat kananambil data
pickData135; delay1000;
myservo2.write90; servo bawah 270 derajat kananambil data
pickData90; delay1000;
myservo2.write135; servo bawah 315 derajat kananambil data
pickData45; delay1000;
}
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 180
o
.
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 perhatikan source code berikut.
Void pickDatalong sudut{ long duration, cm;
pinModePINGPin, OUTPUT; digitalWritePINGPin, LOW;
delayMicroseconds2; digitalWritePINGPin, HIGH;
delayMicroseconds5; digitalWritePINGPin, LOW;
convert the time into a distance cm = microsecondsToCentimetersduration;
ifcm 200 { pinModespeakerPin, OUTPUT;
digitalWritespeakerPin, HIGH; delay1000;
digitalWritespeakerPin, LOW; delay200;
pinModespeakerPin, OUTPUT; digitalWritespeakerPin, HIGH;
delay100; digitalWritespeakerPin, LOW;
delay200; pinModespeakerPin, OUTPUT;
digitalWritespeakerPin, HIGH; delay1000;
digitalWritespeakerPin, LOW; }
Serial.printsudut; Serial.print,;
Serial.printcm; Serial.println;
delay100; }
long microsecondsToIncheslong 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 secara continue sampai 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 dalam centimeter.
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 code dapat 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 Java Library. Library ini 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 terdapat source 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.