bab iii metode penelitian 3.1. metode penelitiansir.stikom.edu/id/eprint/2521/5/bab_iii.pdfdari...

13
45 BAB III METODE PENELITIAN 3.1. Metode Penelitian Metode Penelitian digunakan pada pembuatan alat baik perangkat keras maupun perangkat lunak yaitu dengan studi pustaka. Penulis berusaha mendapatkan dan mengumpulkan data data, informasi, dan konsep konsep yang bersifat teori dari jurnal, buku, internet, dan bahan bahan materi kuliah yang berkaitan dengan penelitian ini. Dari data data yang diperoleh maka dapat disusun perancangan perangkat keras. Dalam pengujian perangkat keras dilakukan pengujian yang didukung dengan program yang telah dibuat. Selanjutnya tahapan pembuatan perangkat lunak dan terakhir penggabungan perangkat keras dengan perangkat lunak menjadi sebuah alat. Gambar 3.1 Blok Diagram Sistem Dari Gambar 3.1 menggambarkan blok diagram sistem, yang terdiri dari Raspberry Pi 3 sebagai mini komputer, kamera sebagai media pengambilan citra

Upload: dodan

Post on 02-Mar-2019

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BAB III METODE PENELITIAN 3.1. Metode Penelitiansir.stikom.edu/id/eprint/2521/5/BAB_III.pdfDari flowchart pada Gambar 3.2 terdapat 4 proses utama, yaitu : 1. ... Listing program dapat

45

BAB III

METODE PENELITIAN

3.1. Metode Penelitian

Metode Penelitian digunakan pada pembuatan alat baik perangkat keras

maupun perangkat lunak yaitu dengan studi pustaka. Penulis berusaha mendapatkan

dan mengumpulkan data – data, informasi, dan konsep – konsep yang bersifat teori

dari jurnal, buku, internet, dan bahan – bahan materi kuliah yang berkaitan dengan

penelitian ini.

Dari data – data yang diperoleh maka dapat disusun perancangan perangkat

keras. Dalam pengujian perangkat keras dilakukan pengujian yang didukung

dengan program yang telah dibuat. Selanjutnya tahapan pembuatan perangkat lunak

dan terakhir penggabungan perangkat keras dengan perangkat lunak menjadi

sebuah alat.

Gambar 3.1 Blok Diagram Sistem

Dari Gambar 3.1 menggambarkan blok diagram sistem, yang terdiri dari

Raspberry Pi 3 sebagai mini komputer, kamera sebagai media pengambilan citra

Page 2: BAB III METODE PENELITIAN 3.1. Metode Penelitiansir.stikom.edu/id/eprint/2521/5/BAB_III.pdfDari flowchart pada Gambar 3.2 terdapat 4 proses utama, yaitu : 1. ... Listing program dapat

46

gambar, Servo sebagai penggerak saat kamera tracking, Modem GSM sebagai

media mengirim informasi berupa SMS kepada pengguna. Spesifikasi alat pada

Gambar 3.1 dapat dilihat pada Lampiran 3.

3.1.1. Kamera

Kamera digunakan sebagai media untuk mengambil citra gambar. Raspberry

Pi Camera dapat menangkap gambar dengan sudut 90o. Untuk mengakses kamera

Raspberry Pi Camera diperlukan setting manual terlebih dahulu untuk

menghasilkan gambar yang diinginkan. Beberapa hal yang dapat dilakukan setting

pada kamera yaitu FPS, ISO, Exposure, format gambar, mode, dan Resolusi

Gambar. Pada penelitian ini penulis menggunakan setting FPS 20, Exposure 0,

format gambar gray dan resolusi gambar 640*480. Untuk mengambil citra gambar

melalui kamera diperlukan pemanggilan pada program. Sehingga program dapat

terus mengambil gambar dari kamera. Beberapa cuplikan program untuk setting

kamera dan pengambilan gambar dapat dilihat di bawah ini :

#Program Setting Kamera

raspicam::RaspiCam_Cv camera;

camera.set(CV_CAP_PROP_EXPOSURE, 0);

camera.set(CV_CAP_PROP_FRAME_WIDTH, 640);

camera.set(CV_CAP_PROP_FRAME_HEIGHT, 480);

camera.set(CV_CAP_PROP_FORMAT, CV_8UC1);

camera.set(CV_CAP_PROP_MODE, 0);

camera.set(CV_CAP_PROP_FPS, 20);

#Program Mengambil Gambar dari Kamera

camera.grab();

camera.retrieve(img);

src = new IplImage(img);

Untuk program lengkapnya dapat dilihat pada Lampiran 1.

Page 3: BAB III METODE PENELITIAN 3.1. Metode Penelitiansir.stikom.edu/id/eprint/2521/5/BAB_III.pdfDari flowchart pada Gambar 3.2 terdapat 4 proses utama, yaitu : 1. ... Listing program dapat

47

3.1.2. Raspberry Pi 3

Raspberry Pi 3 terdapat port GPIO yang digunakan sebagai output untuk

mengendalikan Motor Servo. Pin PWM pada Motor Servo dapat disambungkan

langsun g pada port GPIO Raspberry Pi 3 karena tegangan yang dihasilkan sebesar

+5V. Memory yang digunakan pada Raspberry Pi menggunakan memory mikroSD.

Raspberry Pi 3 menggunakan memory sebagai tempat menyimpan OS, file dan

media. Pada penelitian ini penulis menggunakan memory 16GB pada Raspberry Pi

3. Selain itu pada Raspberry Pi 3 digunakan untuk tempat memproses program dan

kendali Motor Servo, Modul GSM dan Kamera. Program yang digunakan pada

penelitian ini yaitu background subtraction dan face detection. Program

background subtraction digunakan sebagai pendeteksi gerakan. Ketika nilai rata –

rata pixel yang berubah lebih besar dari threshold maka Raspberry Pi 3 akan

mengirimkan perintah kirim SMS pada Modem GSM. Program face detection

digunakan sebagai pendeteksi wajah. Pendeteksian menggunakan face detection

menghasilkan banyak obyek terdeteksi dan koordinat. Ketika obyek terdeteksi

Raspberry Pi mengirimkan perintah kirim SMS pada Modem GSM dan melakukan

perubahan sudut pada Motor Servo sesuai koordinat deteksi. Berikut ini merupakan

program yang terdapat pada Raspberry PI :

A. Background Subtraction

Background Subtraction merupakan metode untuk mencari nilai gerakan yang

terjadi pada kamera. Penjelasan lengkapnya dapat dilihat pada Bab 2 Landasan

Teori 2.2. Flowchart program dapat dilihat pada Gambar 3.2 :

Page 4: BAB III METODE PENELITIAN 3.1. Metode Penelitiansir.stikom.edu/id/eprint/2521/5/BAB_III.pdfDari flowchart pada Gambar 3.2 terdapat 4 proses utama, yaitu : 1. ... Listing program dapat

48

Gambar 3.2 Flowchart Background Subtraction

Dari flowchart pada Gambar 3.2 terdapat 4 proses utama, yaitu :

1. Membandingkan gambar sekarang dengan gambar sebelumnya

Pada proses ini bertujuan untuk mencari nilai selisih antara gambar sekarang

dengan gambar sebelumnya. Hasil dari selisih tersebut digunakan untuk

membentuk gambar selisih, yang nantinya digunakan untuk menghitung seberapa

besar gerakan. Beberapa cuplikan program untuk mencari gambar selisih sebagai

berikut :

//Program Konversi RGB ke GRAY

cvAbsDiff(gray, buff, output);

Page 5: BAB III METODE PENELITIAN 3.1. Metode Penelitiansir.stikom.edu/id/eprint/2521/5/BAB_III.pdfDari flowchart pada Gambar 3.2 terdapat 4 proses utama, yaitu : 1. ... Listing program dapat

49

2. Mencari nilai rata – rata terhadap NULL

Pada proses ini nantinya akan didapatkan nilai seberapa besar gerakan yang

terjadi. Proses ini menggunakan nilai rata – rata antara gambar selisih dengan

NULL. Output akan berupa nilai bertipe float untuk nantinya digunakan untuk

menentukan nilai ambang batas gerakan manusia dengan benda lain. Beberapa

cuplikan program untuk mencari nilai rata – rata dari hasil selisih sebagai berikut :

//Program Konversi RGB ke GRAY

rata2 = cvAvg(output, NULL);

3. Kirim SMS

Pada proses ini Raspberry Pi akan mengirimkan perintah kirim SMS pada Modem

GSM ketika nilai rata pixel yang berubah lebih besar 31. Listing program dapat

dilihat pada Lampiran 2.

4. Simpan Gambar

Pada proses ini dilakukan penyimpanan gambar ketika terdeteksi gerakan yang

memiliki nilai lebih besar 31.

B. Face Detection

Face detetction merupakan program untuk mendeteksi wajah yang tertangkap

oleh kamera. Pendeteksian dilakukan menggunakan metode Haar Classifier.

Penjelasan lengkapnya dapat dilihat pada Bab 2 Landasan Teori 2.3. Flowchart

program dapat dilihat pada Gambar 3.3:

Page 6: BAB III METODE PENELITIAN 3.1. Metode Penelitiansir.stikom.edu/id/eprint/2521/5/BAB_III.pdfDari flowchart pada Gambar 3.2 terdapat 4 proses utama, yaitu : 1. ... Listing program dapat

50

Gambar 3.3 Flowchart Deteksi Wajah

Pada flowchart Gambar 3.3 didapatkan 6 proses utama yaitu :

1. Memanggil HaarCascade

Pada proses ini digunakan untuk memanggil HaarCascade yang akan digunakan

untuk mendeteksi obyek. HaarCascade dapat diambil pada folder hasil dari instalasi

OpenCV. Variable yang digunakan untuk menyimpan HaarCascade ini adalah

CvHaarClassifierCascade. Berikut cuplikan program untuk memanggil

HaarCascade :

//Program Memanggil HaarCascade

CvHaarClassifierCascade*face=(

CvHaarClassifierCascade*)cvLoad("haarcascade_fullbody.xml");

Page 7: BAB III METODE PENELITIAN 3.1. Metode Penelitiansir.stikom.edu/id/eprint/2521/5/BAB_III.pdfDari flowchart pada Gambar 3.2 terdapat 4 proses utama, yaitu : 1. ... Listing program dapat

51

2. Mendeteksi obyek berdasarkan Cascade

Pada proses ini dilakukan penghitungan atau penyamaan sebuah obyek pada

gambar dengan Cascade yang digunakan. Untuk mendeteksi sebuah obyek

diperlukan kalibrasi terhadap obyek yang akan dideteksi. Kalibrasi dilakukan

dengan memberikan gambar bukan obyek yang akan dideteksi dan gambar obyek

yang akan dideteksi. Jika perhitungan dilakukan dengan sangat teliti maka akan

berpengaruh pada kecepatan penghitungan ataupun kecepatan program dalam

menjalankan 1 perintah. Pada header yang telah disediakan OpenCV yaitu

cvHaarDetectObject() memiliki kemampuan untuk kebutuhan kalibrasi, mulai

dari menentukan besar pixel terkecil obyek yang akan dideteksi kemudian

menentukan metode dalam pendeteksian. Beberapa cuplikan program untuk

melakukan pendeteksian yaitu seperti berikut :

//Program Mendeteksi Obyek

CvSeq *face_src = cvHaarDetectObjects(gray, face, storage, 1.2, 2, 0, cvSize(30,

30));

3. Kirim SMS

Pada proses ini Raspberry Pi akan mengirimkan perintah kirim SMS pada

Modem GSM ketika terdeteksi obyek wajah pada kamera. Listing program dapat

dilihat pada Lampiran 2.

4. Mengambil koordinat deteksi

Pada proses ini dilakukan setelah obyek terdeteksi sehingga dari

pendeteksian muncul nilai koordinat suatu obyek yang terdeteksi. Nilai koordinat

dari hasil pendeteksian tidak bisa langsung digunakan karena diperlukan

perhitungan lagi. Perhitungan dilakukan dengan mengambil elemen variabel yang

Page 8: BAB III METODE PENELITIAN 3.1. Metode Penelitiansir.stikom.edu/id/eprint/2521/5/BAB_III.pdfDari flowchart pada Gambar 3.2 terdapat 4 proses utama, yaitu : 1. ... Listing program dapat

52

ada pada hasil deteksi HaarCascade. Berikut cuplikan program dalam mengambil

koordinat obyek yang terdeteksi :

//Program Koordinat Deteksi

face_rect = (CvRect *)cvGetSeqElem(face_src, i);

pt1.x = face_rect->x;

pt2.x = face_rect->x + face_rect->width;

koordinatX = pt1.x + (face_rect->width / 2);

5. Kendali sudut motor servo

Proses ini dilakukan ketika terdapat obyek yang terdeteksi. Raspberry Pi

mengirimkan perintah perubahan sudut Motor Servo berdasarkan koordinat yang

terdeteksi. Nilai 320 merupakan nilai tengah 640 dari lebar pixel gambar. Ketika

koordinat pixel X yang dihasilkan dari pendeteksian lebih besar 320 maka sudut

normal servo dikurangi 10 sampai koordinat pixel X = 320, sebaliknya ketika

koordinat lebih kecil 320 maka sudut motor servo ditambah 10 sampai koordinat

pixel X = 320.

6. Simpan gambar

Pada proses ini dilakukan penyimpanan gambar ketika terdeteksi wajah.

3.1.3. Modem GSM

Modem GSM digunakan sebagai media untuk mengirimkan SMS kepada user.

Pada Raspberry PI, modem GSM menggunakan port USB sebagai jalur

komunikasi. Komunikasi serial digunakan untuk menghubungkan Raspberry Pi

dengan modem GSM. Penjelasan lengkap terdapat pada Bab 2 Landasan Teori 2.8.

Raspberry Pi melakukan perintah pengiriman SMS ketika program background

subtraction mendeteksi gerakan pada kamera atau program face detection

Page 9: BAB III METODE PENELITIAN 3.1. Metode Penelitiansir.stikom.edu/id/eprint/2521/5/BAB_III.pdfDari flowchart pada Gambar 3.2 terdapat 4 proses utama, yaitu : 1. ... Listing program dapat

53

mendeteksi obyek wajah pada kamera. Sehingga terdapat peringatan pada user

ketika terjadi hal mencurigakan. Untuk mengakses Modem GSM, pada Raspberry

PI menggunakan perintah AT-Command modem GSM. Perintah yang digunakan

untuk mengirim SMS dapat dilihat pada Bab 2 Landasan Teori Tabel 2.4 Listing

program dapat dilihat pada Lampiran 2.

3.1.4. Motor Servo

Motor Servo yang digunakan penulis yaitu Motor Servo dengan angle 90o.

Sebagai penggerak kamera, Motor Servo dikendalikan oleh Raspberry PI dengan

merubah nilai PWM. Penjelasan lengkap Motor Servo dapat dilihat pada Bab 2

Landasan Teori 2.6. Range nilai PWM untuk mengendalikan Motor Servo yaitu 0

– 1000 pada program. Berikut beberapa cuplikan program untuk pengendalikan

Motor Servo ketika terdeteksi wajah pada kamera :

void Servo()

{

if(koorX < 320) servo = servo + 10;

else if(koorX > 320) servo = servo - 10;

else{}

last_error = error_pixel;

if(servo > 1000) servo = 1000;

else if(servo < 0) servo = 0;

softServoWrite(14,servo);

}

Motor Servo bergerak ketika program face detection mendeteksi obyek. Hasil

pendeteksian menghasilkan koordinat pixel obyek yang terdeteksi. Dari koordinat

obyek didapat dibandingkan dengan koordinat tengah pixel gambar. Lebar gambar

yang digunakan 640 dengan nilai koordinat tengah 320. Sehingga untuk

Page 10: BAB III METODE PENELITIAN 3.1. Metode Penelitiansir.stikom.edu/id/eprint/2521/5/BAB_III.pdfDari flowchart pada Gambar 3.2 terdapat 4 proses utama, yaitu : 1. ... Listing program dapat

54

Raspberry Pi Camera

Motor Servo

Raspberry Pi Camera

Motor Servo

mengendalikan Motor Servo dilakukan ketika besar pixel koordinat lebih besar atau

lebih kecil dari nilai koordinat tengah. Listing program untuk mengendalikan Motor

Servo berdasarkan pendeteksian dapat dilihat pada Lampiran 1.

3.2. Perangkat Keras

3.2.1. Mekanik

Gambar 3.4 Desain Mekanik Tampak Belakang

Pengerjaan desain mekanik penulis menggunakan mekanik yang sederhana

agar alat ini bisa digunakan dimanapun. Selain itu dengan alat yang sederhana alat

ini tidak akan memakan tempat yang banyak.

Gambar 3.5 Desain Mekanik Tampak Bawah

Page 11: BAB III METODE PENELITIAN 3.1. Metode Penelitiansir.stikom.edu/id/eprint/2521/5/BAB_III.pdfDari flowchart pada Gambar 3.2 terdapat 4 proses utama, yaitu : 1. ... Listing program dapat

55

Kamera ditopang oleh arm servo agar bisa tracking pada obyek yang

dideteksi seperti pada Gambar 3.4 dan Gambar 3.5. Putaran Motor Servo

berdasarkan sumbu X dengan sumbu 90o dengan total jangkauan kamera 90o.

Peletakan servo diatas Raspberry bertujuan agar penggunaan kabel tidak terlalu

panjang, baik kabel CSI untuk kamera maupun kabel dari servo.

Gambar 3.6 Foto Alat

Pada Gambar 3.6 merupakan hasil perancangan alat mulai dari mekanik

tracking dan penempatan Raspberry PI. Mekanik tracking berada di atas Raspberry

Pi dan modem GSM terhubung ke port USB.

3.2.2. Switch Otomatis

Gambar 3.7 Rangkaian Switch Otomatis

Page 12: BAB III METODE PENELITIAN 3.1. Metode Penelitiansir.stikom.edu/id/eprint/2521/5/BAB_III.pdfDari flowchart pada Gambar 3.2 terdapat 4 proses utama, yaitu : 1. ... Listing program dapat

56

Terdapat dua sumber daya untuk menghidupkan alat, yaitu dari colokan

listrik dan baterai. Saat kondisi normal maka yang mensuplay daya yaitu dari listrik

dan kondisi baterai sedang mengisi. Saat listrik padam, yang dipakai yaitu daya

baterai. Rangkaian otomatisnya dapat dilihat pada Gambar 3.7.

Relay sebagai kontrol daya antara daya listrik dan baterai. Kondisi normal

belum ada daya dari baterai maupun listrik kondisi relay menghubungkan suplay

baterai dengan saklar Raspberry. Ketika ada daya listrik maka relay akan

mendapatkan trigger yang membuat daya listrik bisa terhubung ke saklar Raspberry

dan memutus daya dari baterai seperti pada Gambar 3.8.

Gambar 3.8 Foto Switch Auto

3.3. Perancangan Pengujian

Untuk mengetahui hasil dari sistem maka dilakukan pengujian. Terdapat 4

pengujian yaitu pengujian program Background Subtraction, pengujian program

Face Detection, pengujian pengiriman SMS, pengujian switch auto dan pengujian

sudut Motor Servo.

Page 13: BAB III METODE PENELITIAN 3.1. Metode Penelitiansir.stikom.edu/id/eprint/2521/5/BAB_III.pdfDari flowchart pada Gambar 3.2 terdapat 4 proses utama, yaitu : 1. ... Listing program dapat

57

Pengujian program Background Subtraction yaitu dengan memberikan

gerakan obyek di depan kamera. Obyek yang digunakan mulai dari obyek kecil dan

obyek besar. Sehingga dapat diketahui program dapat membedakan gerakan

manusia dengan bukan manusia.

Pengujian program Face Detection dilakukan dengan memberikan obyek

wajah didepan kamera dengan sudut hadap yang sama. Selain itu progam digunakan

untuk mendetiksi wajah ketika ada aksesoris (topi, kerudung dan kacamata)

dikepala. Sehingga dapat diketahui program dapat mendeteksi obyek wajah dan

bukan wajah.

Pengujian pengiriman SMS dilakukan pada ruangan yang terdapat sinyal.

Pengujian ini dilakukan pada pengujian keseluruhan sistem ketika terdeteksi

gerakan atau terdeteksi obyek wajah pada kamera.

Pengujian switch auto dilakukan dengan membuat simulasi listrik padam dan

menghitung ketahanan baterai. Dengan percobaan ini sehingga dapat diketahui

sistem dapat berjalan ketika listrik padan dan lama ketahanan baterai.

Pengujian Motor Servo dilakukan dengan memberikan PWM tertentu dan

melihat sudut yang dihasilkan. Sehingga dapat diketahui selisih sudut yang

diinginkan dan sudut yang dihasilkan.

Pengujian keseluruhan sistem digunakan untuk mengetahui hasil keseluruhan

kerja alat. Pengujian dilakukan dengan memberikan obyek yang sama pada kamera.

Hasil dari percobaan keseluruhan sistem yaitu sistem dapat mendeteksi gerakan

atau obyek, tracking obyek dan mengirimkan SMS.