Fakultas Ilmu Komputer
Universitas Brawijaya
859
Sistem Deteksi Gerakan Kepala sebagai Kontrol Kursor Mouse dengan
Metode Complementary Filter
Latief Nurrohman Alfansuri1, Dahnial Syauqy2 Mochammad Hannats Hanafi Ichsan3
Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya Email: 1latief.nurrohman@gmail.com, 2dahnial87@ub.ac.id, 3hanas.hanafi@ub.ac.id
Abstrak
Berkembangnya teknologi membuat manusia menginginkan berkomunikasi dengan komputer secara semakin natural, salah satu media komunikasi manusia dengan komputer adalah menggunakan mouse sebagai perangkat input untuk mengendalikan komputer, mouse konvensional yang umum dipakai dirasa kurang natural, terutama bagi mereka yang memiliki kekurangan pada bagian tubuh (disabilitas). Berdasarkan itu dibutuhkan sistem yang mampu menggendalikan kursor mouse berdasarkan pergerakan alami dari tubuh manusia, sistem ini yang nantinya mampu membaca nilai pergerakan kepala dari pengguna dan menggunakannya sebagai nilai input untuk menggerakkan kursor mouse, untuk membaca pergerakan kepala akan menggunakan sensor MPU6050 danarduino nano sebagai mikrokontrolernya, pengiriman data pada sistem ini akan dilakukansecara wireless oleh karena itu akan menggunakan modul nRF24L01 dan arduno leonardo yang akan digunakan untuk mengedalikan kursor mouse.
Complementary filter akan digunakan untuk mengurangi nilai error yang terjadi, Complementary filter
akan diuji dengan membandingkan nilai hasil menggunakan filter dengan nilai yang tanpa menggunakan filter. Nilai error yang dihasilkan oleh perhitungan Complementary filter kurang dari 2o. Dari pengujian
secara korespoden, sistem mampu mendapakan rata-rata kategori baikberdasarkan umpan balik dari 30 orang pengguna.
Kata kunci: kendali kursor, deteksi gerakan kepala, complementary filter Abstract
The development of technology makes people want to communicate with computers more natural, one way people communicate with computers is to use the mouse as an input device to control the computer, conventional mouse commonly used is less natural, especially for those who have deficiencies in the body (disability). Based on that required a system capable of controlling the mouse cursor based on the natural movement of the human body, this system which later can read the value of the head movement of the user and use as the input value to move the mouse cursor, to read the movement of the head will use MPU6050 and Arduino Nano as microcontroller, data transmissionson this system will be done wirelessly therefore will use nRF24L01 and arduino leonardo modules which will be used to control the mouse cursor. Complementary filter will be used to reduce the error value, Complementary filter will be tested by comparing with system output value without using filter. The error value generated by Complementary filter calculation is less than 2o. From corespodent testing, the system was able to obtain a good category average based on feedback from 30 users.
Keywords: cursor control, head movement, complementary filter
1. PENDAHULUAN
Perkembangan teknologi komputer sudah semakin pesat terutama pada teknologi bidang komunikasi. Baik itu komunikasi manusia dengan manusian ataupun manusian dengan komputer atau teknologi lainnya. Semakin pesatnya perkembangan teknologi menyebabkan
manusia mengingikan komunikasi dengan komputer atau teknologi lainnya lebih natural atau sesuai dengan pergerakan tubuh manusia. Salah satu media komunikasi yang digunakan oleh manusia agar terhubung dengan komputer adalah mouse, Mouse merupakan kategori unit input pada komputer, dengan mouse manusia mampu memberikan perintah pada komputer
untuk membuka dokumen, menjalankan aplikasi, bermain game dan lain-lain (Utomo & Purwidiantoro, 2015).
Penggunaan mouse konvensinal adalah dengan cara menggeser perangkat mouse konvensional pada bidang datar menggunakan tangan manusia, hal ini dirasakurang natural apa bila dibandingka dengan pergerakan dari tubuh manusia, hal ini juga merupakan kekurangan dari perangkat mouse konvesional, apabila orang tersebut memiliki kekurangan pada anggota badannya terutamabagian tangan atau difabel maka orang tersebut tidak dapat menggunakan
mouse konvensional. oleh karena itu telah
dilakukan beberapa penelitian seperti “Speech Recognition Sebagai Fungsi Mouse Untuk Membantu Pengguna Komputer Dengan Keterbatasan Khusus” yang dilakukan oleh (Andriana, 2016), fokus pada penelitian itu adalah mengendalikan kursor mouse
berdasarkan suara pengguna yang digunakan sebagai input perintah untuk menggerakkan kursor dan penelitian yang berjudul ” Penerapan HandMotion Tracking Pengendali Pointer Pada Virtual Mouse Dengan Metode Optical Flow” yang dilakukan oleh (Umami, 2017), pada penelitian itu akan mendeteksi pergerakan kepala menggunakankamera dan memanfaatkan kedipan mata untuk melakukan event klik
mouse. Kedua penelitian tersebut akan
digunakan sebagai dasar untuk dilakukan penelitian ini.
Pada penelitian ini akan memanfaatkan pergerakan kepala terahadap sumbu X, Y dan Z. Untuk membaca perubahan posisi kepala akan menggunakan sensor MPU6050, sensor ini merupakan gabungan dari dua sensor yaitu sensor accelerometer dan gyroscope
(arduino.cc, 2014), data yang dibaca oleh sensor ini akan diprosesoleh arduino nano dan akan menghasilkan data dari perubahan posisi kepala. Akan tetapi data yang dihasilkan oleh pembacaan sensor MPU6050 akan terdapat banyak error danjuga akan terjadi fenomena
dritf pada hasil pembacaan gyroscope, oleh
karena itu pada penelitian ini akan menggunakan
complementary filter untuk mengurangi nilai
error dan meminimalisir terjadinya fenomena
drift yang dihasilkan pada proses pembacaan
oleh sensor MPU6050.
Complementary filter sendiri merupakan
gabungan dari low-pass filter dan high-pass
filter, low-pass filter dilakukan pada nilai yang didapat dari pembacaan gyroscope dan
high-pass filter dilakukan pada hasil pembacaan oleh
accelerometer (Colton, 2007). Dengan
memanfaatkan dua hasil pembacaan tersebut
complementary filter mampu saling menutupi
kekurangan dari hasil pembacaan oleh
acceleromter maupun hasil pembacaan
gyroscope.
Data hasil pembacaan tersebut akan dikirimkan secara nirkabel ke arduno leonardo yang berfungsi sebagai pemroses untuk menggerakkan kursor mouse, untuk mengirimkan data tersebut akan menggunakan modul nRF24L01, modul tersebut akan terhubung pada arduino nano yang terpasang pada kepala pengguna dan arduino leonardo yangterhubung pada komputer, pengujian pada penelitian ini nantinya akan menggunakandata yang berasal dari umpan balikpengguna, data tersebut akan diproses menggunakan skala likert, skalalikert adalah tipe skalaangket yang ditentukan distribusi dari respon setuju dan tidak setuju (Risnita, 2012).
Sistem ini nantinya akan mendeteksi pergerakan kepala dan menetukan gerakan tersebut kedalamgesture yang telah disediakan
sebelumnya, pergerakan kepala yang dapat diproses adalah mendongakkeatas, menunduk kebawah, menoleh kekanan dan kekiri, dan miring kekanan dan kekiri.
2. PERANCANGAN DAN IMPLEMENTASI
Berikut adalah proses perancangan dan implementasi dari sistem.
2.1. Perancangan Sistem
Perancangan sistem akan terbagi menjadi perancangan hardware dan perancangan
software.
2.1.1. Perancangan Hardware
Sistem akan dirancang menggunakan sensor MPU6050 sebagai pembaca perubahan posisi kepala, arduino nano, sebagai pemroses data dari MPU6050, modul nRF24L01 sebagai media untuk mengirimkan data secara wireless dan arduino leonardo sebagai pemroses untuk menggerakkan kursor mouse, sistem ini akan membaca perubahan posisi kepala dari titik netralnya dan memproses datatersebut menjadi sudut derajat, data tersebut akan dikirim secara wireless, dan berdasarkan data tersebut akan menggerakkan kursor mouse.
Gambar 1 Diagram Block Hardware Pada Gambar 1, sensor MPU6050 dihubungkan pada Arduino nano menggunakan protocol I2C, data pembacaan sudut dari MPU6050 diproses oleh Arduino nano menggunakan complementary filter untuk mengurangi error dan menyetabilkan hasil keluaran, data tersebut dikirimkan ke Arduino Leonardo menggunakan modul nRF24L01. Data yang diterima oleh Arduino Leonardo akan diproses untuk menggerakkan kursor dan melakukan operasi klik kiri dan klik kanan. 2.1.2. Perancangan Software
Proses perancangan software akan terbagi pada perancangan software kendali kursor dan perancangan software deteksi gerak kepala. Berikut alur perancangan program dapat dilihat pada flowchart dibawah ini:
Gambar 2 Perancangan Software Kendali Kursor
Berdasakan Gambar 2, alur perancangan
software dimulai dengan menginisialisasi
variable dan library yang digunakan dilanjutkan
dengan mengambil data dari Arduino nano, data tersebut akan digunakan untuk menggerakkan kursor dan melakukan operasi klik kiri dan klik kanan.
Gambar 3 Perancangan Software Deteksi Gerak Kepala
Berdasarkan Gambar 3, perancangan
software deteksi gerak kepala diawali dengan
inisialisasi variabel, dilanjutkan dengan membaca nilai accelerometer dan gyroscope, selanjutnya memasukkan nilai accelerometer kedalam persaamaan untuk mendapatkan nilai
roll dan pitch sedangkan untuk nilai gyroscope
akan diubah kedalam derajat dari yang awalnya radian. Nilai roll, pitch dan gyroscope akan dimasukkan ke dalam persamaan
complementary filter dan akan menghasilkan
nilai perubahan pada sumbu X dan Y sedangkan untuk nilai Z akan memanfaatkan nilai dari
gyroscope, nilai-nilai tersebut akan dikirimkan
ke Arduino Leonardo untuk mengendalikan kursor.
2.2. Implementasi Sistem
Implementasi sistem akan terbagi menjadi implementasi hardware dan implmentasi
software.
2.2.1. Implementasi Hardware
Hasil dari implementasi hardware setelah melakukan perancangan pada Gambar 4 dan Gambar 5.
Gambar 4. Hasil Implementasi Hardware Deteksi Gerak Kepala
Pada Gambar 4, sistem dipasangkan pada sebelah kiri kepala dari pengguna, sistem harus dipasangkan pada posisi sejajar dengan kepala pengguna, hal ini dikarenakan akan mempengarui hasil pembacaan dari pergerakan kepala pengguna.
Gambar 5. Hasil Implementasi Hardware Kendali Kursor
Pada Gambar 5, sistem dihubungkan pada komputer melalui port USB, fungsi dari sistem kendali kursor adalah untuk menerima data dari Arduino Nano dan memprosesnya yang akan digunakan untuk mengendalikan kursor.
2.2.3. Implementasi Software
Implementasi software berupa program dan beberapa library tambahan yang dibutuhkan oleh sistem yang diupload kedalam arduino nano dan arduno leonardo. Library yang digunakan antara lain MPU6050, RF24.h dan Mouse.h. 3. PENGUJIAN DAN ANALISIS
Pengujian terbagi atas pengujian sensor, pengujian complementary filter, pengujian sistem dan pengujian koresponden.
3.1. Pengujian Sensor
Pada pengujian ini dilakukan untuk mengetaui apakah sensor mampu membaca perubah sudut, pengujian ini memanfaat serial monitor pada Arduino IDE. Hasil pengujian dapat dilihat pada Tabel 1 dan Tabel 2.
Tabel 1. Hasil Pengujian Sensor Pada Sumbu X
No. Sudut Sebenarnya (Derajat) Keluaran Sensor (Derajat) Deviasi (Derajat) 1 120 121,29 -1,29 2 120 121,33 -1,33 3 120 120,7 -0,70 4 120 121,8 -1,80 5 120 120,18 -0,18 6 120 121,06 -1,06 7 120 120,18 -0,18 8 120 120,49 -0,49 9 120 119,88 0,12 10 120 120,17 -0,17 RMSE 0,92
Tabel 2. Hasil Pengujian Sensor Pada Sumbu Y
No. Sudut Sebenarnya (Derajat) Keluaran Sensor (Derajat) Deviasi (Derajat) 1 45 46,15 -1,15 2 45 45,93 -0,93 3 45 46,2 -1,20 4 45 46,24 -1,24 5 45 45,36 -0,36 6 45 46,9 -1,90 7 45 45,63 -0,63 8 45 45,83 -0,83 9 45 45,33 -0,33 10 45 46,91 -1,91 RMSE 1,17
Hasil dari pengujian menunjukkan bahwa sensor mampu membaca sudut dengan nilai error kurang dari 1o akan tetapi karena pembacaan
hanya berdasarkan accelerometer atau
gyroscepe maka nilai yang dihasilkan akan
dipenuhi error dan akan terjadi fenomena drift. 3.2. Pengujian Complementary filter
Pada pengujian ini akan dua grafik yaitu pengujian sudut 45o dan -90o pada sumbu X dan
sudut 20o dan 80o pada sumbu Y.
Gambar 4 Grafik hasil pengujian
Gambar 5 Grafik hasil pengujian
complementary filter sudut -90o pada sumbu X
Berdasarkan hasil pengujian sumbu X pada Gambar 4 dan Gambar 5, nilai error yang didapat sebesar 0,028 o pada sudut 45o dan nilai error sebesar 0,23o pada sudut -90o, berdasarkan
grafik tersebut nilai complementary filter lebih mendekati nilai sebenarnya dari pada hasil pembacaan sensor tanpa menggunakan
complementary filter.
Gambar 6 Grafik hasil pengujian
complementary filter sudut -20o pada sumbu Y
Gambar 7 Grafik hasil pengujian
complementary filter sudut -20o pada sumbu Y
Berdasarkan hasil pengujian sumbu Y pada Gambar 6 dan Gambar 7, nilai error yang didapat sebesar 0,55 o pada sudut 20o dan nilai
error sebesar 0,053o pada sudut -80o,
berdasarkan grafik tersebut nilai complementary
filter lebih mendekati nilai sebenarnya dari pada
hasil pembacaan sensor tanpa menggunakan
complementary filter.
3.3. Pengujian Sistem
Pengujain sistem bertujuan untuk mengetahui apakah sistem mampu membaca perubahan sudut pada saat digerakkan, pengujian akan dilakukan pada setiap sumbu.
Berikut adalah tabel hasil pengujian sistem. Tabel 3 Pengujian Sistem pada Sumbu X
No. Sudut Uji (Derajat) Compementary Filter (Derajat) Deviasi (Derajat) 1 0 - 30 31,43 1,43 2 0 - 30 31,69 1,69 3 0 - 30 32,15 2,15 4 0 - 30 32,29 2,29 5 0 - 30 31,91 1,91 6 0 - (-110) -112,15 2,15 7 0 - (-110) -112,37 2,37 8 0 - (-110) -111,87 1,87 9 0 - (-110) -111,42 1,42 10 0 - (-110) -111,52 1,52 RMSE 1,90
Berdasarkan hasil pengujian pada Tabel 3, sistem mampu membaca perubahan nilai pada sumbu X saat sistem miring kekiri dan miring kekanan dengan nilai error sebesar 1,90o.
Tabel 4 Pengujian Sistem pada Sumbu Y
No. Sudut Uji (Derajat) Compementary Filter (Derajat) Deviasi (Derajat) 1 0 - 40 42,43 2,43 2 0 - 40 42,49 2,49 3 0 - 40 42,53 2,53 4 0 - 40 41,57 1,57 5 0 - 40 41,60 1,60 6 0 - (-90) -90,83 0,83 7 0 - (-90) -91,28 1,28 8 0 - (-90) -91,31 1,31 9 0 - (-90) -91,32 1,32 10 0 - (-90) -90,52 0,52 RMSE 1,72
Berdasarkan hasil pengujian pada Tabel 4, sistem mampu membaca perubahan nilai pada sumbu Y saat sistem mendongak keatas dan kebawah dengan nilai error sebesar 1,72o.
Tabel 5 Pengujian Sistem pada Sumbu Z
No. Sudut Uji (Derajat) Sumbu Z (Derajat) Deviasi (Derajat) 1 0 - 20 16 4 2 0 - 20 16 4 3 0 - 20 16 4 4 0 - 20 16 4 5 0 - 20 16 4 6 0 - 60 48 12 7 0 - 60 48 12 8 0 - 60 48 12 9 0 - 60 48 12
10 0 - 60 48 12
RMSE 8,94
Berdasarkan data hasil pengujian pada Tabel 5, sistem mampu membaca perubahan nilai saat sistem digerakkan menoleh kekiri dan menoleh kekanan akan tetapi dengan nilai error yang dihasilkan oleh sistem cukup besar yaitu sebesar 8,94o, hal ini dikarenakan pembacaan pada
sumbu Z hanya berdasarkan nilai dari gyroscope, selain itu nilai pada sumbu Z akan mengalami fenomena drift, oleh karena itu dibutuhkan modifikasi pada program untuk mengurangi terjadinya fenomena tersebut.
3.4 Pengujian Sistem Korespondensi
Pada pengujian dilakukan dengan mencoba sistem kepada 30 orang pengguna dan mengumpalkan umpan balik dari hasil percobaan tersebut. Untuk mendapat nilai dari percobaan sistem korespondensi menggunakan persamaan pada skala likert yaitu:
Rumus Indeks % = Total Skor / Y x 100 Y adalah nilai skor tertinggi yang dapat diperoleh dari pertanyaan yang diberikan. Berikut adalah tabel hasil pengujian sistem korespondesi.
Tabel 6. Hasil Pengujian Sistem Korespondesi
No Kategori Pertanyaan Nilai Ket
1 Kesesuaian Apakah penggunaan mampu menggunakan head mouse? 67,5% Baik 2 Apakah penggunaan head mouse ini sudah bagus dibandingkan dengan menggunakan mouse konvensional? 3
Dalam penggunaan head mouse dan mouse konvensional manakah yang anda sukai?
4
Nilai
Pada saat penggunaan head mouse,
bagaimana tingkat kestabilan dari head mouse tersebut?
71,94% Baik 5
Pada saat penggunaan head mouse,
bagaimana tingkat sensitifitas dari head mouse tersebut saat digunakan untuk menoleh ke kanan dan kekiri?
6
Pada saat penggunaan head mouse,
bagaimana tingkat sensitifitas dari head
mouse tersebut saat digunakan untuk mendongak keatas dan kebawah?
7
Kemudahan
Apakah dalam penggunaan head mouse ini mudah digunakan?
71,38% Baik 8
Pada saat
menggunakan head mouse, apakah mudah saat mengendalikan pergerakan menoleh ke kiri dan ke kanan?
9
Pada saat
menggunakan head mouse, apakah mudah saat mengendalikan pergerakan
mendongak keatas dan ke kebawah?
10
Perasaan
Apakah anda senang saat menggunakan head mouse untuk mengendalikan kursor mouse?
73,61% Baik 11
Apakah penggunaan head mouse untuk mengendalikan kursor sudah baik saat digunakan?
12
Apakah anda merasa nyaman saat menggunakan head mouse untuk mengendalikan kursor?
Hasil pengujian berdasarkan Tabel 6 sistem mampu mendapatkan nilai baik pada setiap setiap kategori yang ditanyakan.
4. KESIMPULAN
Berdasarkan hasil tahapan perancangan, implementasi dan pengujianserta analisis dapat ditarikkesimpulan sebagai berikut :
Modul sensor IMU MPU-6050 yang merupakan gabungan dari dua sensor yaitu sensor accelerometer dan gyroscope yang digunakan untuk membaca perubahan sudut pada setiap sumbu.
Complementary filter merupakan sebuah
metode penyaring noise yang terdiri dari gabungan low-pass filter dan high-pass filter.
Berdasarkan hasil pengujian, nilai
complementary filter lebih mendekati nilai
sebenarnya dibandingkan dengan nilai hasil pembacaan sensor tanpa menggunakan
complementary filter.
Berdasarkan hasil pengujian koresponden, sistem mampu medapatkannnilai BAIK pada setiap kategoriyang diberikan yaitu, kesesuaian,
nilai, kemudahan danperasaan. 5. DAFTAR PUSTAKA
Andriana, O. V., 2016. Speech Recognition Sebagai Fungsi Mouse Untuk Membantu Pengguna Komputer Dengan Keterbatasan Khusus. Seminar Nasional Sains dan
Teknologi 2016. arduino.cc, 2014. playground.arduino.cc. [Online] Available at: https://playground.arduino.cc/Main/MPU-6050 [Accessed 06 June 2018].
Colton, S., 2007. The Balance Filter, s.l.: s.n. Risnita, 2012. PENGEMBANGAN SKALA
MODEL LIKERT. Edu-Bio, Volume 3. Umami, R., 2017. Penerapan Hand Motion
Tracking Pengendali Pointer Pada Virtual Mouse Dengan Metode Optical Flow. Utomo, F. S. & Purwidiantoro, M. H., 2015.
Virtual Mouse Menggunakan Algoritma Haarcascade Dan Hough Transform Sebagai Media Interaksi Manusia Dengan Komputer Bagi Penyandang Disabilitas.