HALAMAN JUDUL
TUGAS AKHIR – TE 5561
KONTROL PIRANTI LISTRIK DENGAN GESTURE TANGAN MENGGUNAKAN GELANG
Sibghah Rakasiwiii NRP 2213030051
Dosen Pembimbing Fajar Budiman, ST., M.Sc. PROGRAM STUDI D3 TEKNIK ELEKTRO Fakultas Teknologi Industri Institut Teknologi Sepuluh Nopember Surabaya 2017
i
ii
HALAMAN JUDUL
FINAL PROJECT – TE 5561
CONTROL OF ELECTRICAL DEVICE USING HAND GESTURE WITH BRACELET
Sibghah Rakasiwi Fiddihaq NRP 2213030051
Advisor Fajar Budiman, ST., M.Sc. ELECTRICAL ENGINEERING D3 STUDY PROGRAM Faculty of Industrial Technology Institut Teknologi Sepuluh Nopember Surabaya 2017
iii
iv
PERNYATAAN KEASLIAN AKHIR
PERNYATAAN KEASLIAN TUGAS
Dengan ini saya menyatakan bahwa isi sebagian maupun keseluruhan Tugas Akhir saya dengan judul “Kontrol Piranti Listrik Dengan Gesture Tangan Menggunakan Gelang” adalah benar-benar hasil karya intelektual mandiri, diselesaikan tanpa menggunakan bahanbahan yang tidak diijinkan dan bukan merupakan karya pihak lain yang saya akui sebagai karya sendiri. Semua referensi yang dikutip maupun dirujuk telah ditulis secara lengkap pada daftar pustaka. Apabila ternyata pernyataan ini tidak benar, saya bersedia menerima sanksi sesuai peraturan yang berlaku.
Surabaya, 10 Januari 2017
Sibghah Rakasiwi Fiddihaq NRP 2213030058
ANPENGESAHAN
v
-----Halaman ini sengaja dikosongkan-----
HALAMAN PENGESAHAN
vi
-----Halaman ini sengaja dikosongkan-----
viii
KONTROL PIRANTI LISTRIK DENGAN GESTURE TANGAN MENGGUNAKAN GELANG Nama : Sibghah Rakasiwi Fiddihaq Pembimbing : Fajar Budiman, ST., M.Sc.
ABSTRAK Kebutuhan manusia yang ingin serba mudah dan praktis saat ini memungkinkan untuk menciptakan dan menerapkan teknologi berupa alat elektronik yang mampu mengontrol piranti-piranti listrik dengan menggunakan remote control seperti pengendali televisi, pendingin ruangan, kipas angin dan lainnya. Namun, remote control yang ada masih kurang praktis. Oleh karena itu, pada Tugas Akhir ini akan dibuat sebuah prototype teknologi pengendali piranti listrik dengan menggunakan gesture tangan yang diimplementasikan ke gelang agar lebih praktis. Gelang tersebut merupakan sebuah remote dari piranti listrik dan dapat diletakkan dibagian lengan dekat pergelangan tangan. Cara kerja dari gelang adalah dengan menggerakkan tangan. Didalam gelang terdapat sensor gyrocope yang telah dihubungkan dengan mikrokontroler dan modul pengiriman tanpa kabel berupa bluetooth. Mikrokontroler tersebut telah dihubungkan dengan saklar sehingga dapat mengontrol piranti listrik. Dengan demikian, gelang dapat mengontrol piranti listrik tanpa melakukan kontak fisik dengan saklar. Dengan adanya gelang yang dapat mengontrol piranti listrik, penggunaan dalam mengontrol piranti listrik dapat lebih mudah. Dari hasil pengukuran, Gelang ini dapat digunakan mengontrol lampu dan kipas angina hingga jarak kurang lebih 40 meter. Namun penggunaan gelang disarankan berada pada ruangan yang sama dengan piranti yang hendak dikontrol agar komunikasi alat tidak terganggu. Untuk kedepannya digunakan komponen SMD agar lebih handy dan wearable. Kata Kunci : bluetooth, sensor gyroscope, gesture, gelang
ix
-----Halaman ini sengaja dikosongkan-----
x
CONTROL OF ELECTRICAL DEVICE USING HAND GESTURE WITH BRACELET
Name : Sibghah Rakasiwi Fiddihaq Advisor : Fajar Budiman, ST., M.Sc.
ABSTRACT People want every thing is easy and convenient. It lead to a chance to built technology in form of electronic device that is capable to control electronic devices at home. A remote control is used to control a TV, air conditioning, fan and other devices. However, the existing remote controls are still less convenient and not wearable. Therefore, in this final project, a wearable device acting as a remote control is developed using hand gesture implemented to bracelet. The developed bracelet placed at the arm near the wrist is a device to remote the electronic and electrical devices. The bracelet works regarding to the movement of user hand. Inside the bracelets, a gyro sensor that has been connected to microcontroller produce the movement data that will be transmitted using Bluetooth. In the receiver side, a system consisting of a bluetooth module, a microcontroller and relay switch is implemented, so we can control the electrical devices depending on the settings, such as on/off and dimming. Thus, the bracelet can control electrical devices by simply using the gesture / movement of user hand from a distance without going to where the switch located. The developed remote bracelet has been tested to ease in remoting and controlling the electrical devices such as lamp and fan. From the measurement result, this bracelet can effectively control the electrical device upto 40 meters. It is suggested that the used of the bracelet is in the same room of device without interferences. For the future implementation, smaller electrical components are suggested to use such as SMD device, so the bracelet will be more handy and wearable. Keywords : bluetooth, sensor gyroscope, gesture, bracelet
xi
-----Halaman ini sengaja dikosongkan-----
xii
KATA PENGANTAR Puji syukur penulis panjatkan kehadirat Allah SWT yang selalu memberikan rahmat dan hidayah-Nya sehingga Tugas Akhir ini dapat terselesaikan dengan baik. Shalawat serta salam semoga selalu dilimpahkan kepada Rasulullah Muhammad SAW, keluarga, sahabat, dan umat muslim yang senantiasa meneladani beliau. Tugas Akhir ini disusun untuk memenuhi sebagian persyaratan guna menyelesaikan pendidikan Diploma-3 pada Bidang Studi Teknik Komputer Kontrol, Jurusan Teknik Elektro, Fakultas Teknologi Industrim, Institut Teknologi Sepuluh Nopember Surabaya dengan judul: KONTROL PIRANTI LISTRIK DENGAN GESTURE TANGAN MENGGUNAKAN GELANG Dalam Tugas Akhir ini dirancang sebuah remote gelang yang dapat mengontrol piranti listrik dengan menggunakan gesture tangan. Penulis mengucapkan terima kasih kepada orang tua penulis yang memberikan berbagai bentuk doa serta dukungan tulus tiada henti, Bapak Fajar Budiman, ST, M.Sc. atas segala bimbingan ilmu, moral, dan spiritual dari awal hingga terselesaikannya Tugas Akhir ini, temanteman kontrakan yang selalu memberikan doa, semangat, dan dukungannya kepada penulis. Penulis juga mengucapkan banyak terima kasih kepada semua pihak yang telah membantu baik secara langsung maupun tidak langsung dalam proses penyelesaian Tugas Akhir ini. Penulis menyadari dan memohon maaf atas segala kekurangan pada Tugas Akhir ini. Akhir kata, semoga Tugas Akhir ini dapat bermanfaat dalam pengembangan keilmuan di kemudian hari.
Surabaya, 10 Januari 2017
Penulis
xiii
-----Halaman ini sengaja dikosongkan-----
xiv
DAFTAR ISI
HALAMAN HALAMAN JUDUL .............................................................................i HALAMAN JUDUL ........................................................................... ii PERNYATAAN KEASLIAN TUGAS AKHIR .................................. v HALAMAN PENGESAHAN .............................................................vi ABSTRAK ..........................................................................................ix ABSTRACT ..........................................................................................xi KATA PENGANTAR ...................................................................... xiii DAFTAR ISI ...................................................................................... xv DAFTAR GAMBAR ...................................................................... xvii DAFTAR TABEL .............................................................................xix BAB I PENDAHULUAN ....................................................................... 1 1.1 Latar Belakang .............................................................................. 1 1.2 Permasalahan ................................................................................ 1 1.3 Batasan Masalah............................................................................ 1 1.4 Tujuan ........................................................................................... 2 1.5 Metodologi Penelitian ................................................................... 2 1.6 Sistematika Laporan ...................................................................... 2 1.7 Relevansi ....................................................................................... 3 BAB II TEORI DASAR ......................................................................... 5 2.1 Sensor Gyroscope.......................................................................... 5 2.1.1 Rotary Gyroscope ............................................................... 5 2.1.2 Optical Gyroscope.............................................................. 7 2.1.3 Vibrating Structure Gyroscope........................................... 7 2.1.4 Spesifikasi Gyroscope ........................................................ 8 2.1.5 GY-521 MPU-6050 ............................................................ 9 2.2 Mikrokontroler ATMega 16 ........................................................ 10 2.3 Wireless ....................................................................................... 12 2.3.1 Prinsip Kerja wireless ....................................................... 13 2.3.2 HC-05 ............................................................................... 14 2.4 Baterai ......................................................................................... 16 2.5 Relay .......................................................................................... 17
xv
2.5.1 Solid State Relay .............................................................. 18 2.5.2 G3MB-202P ..................................................................... 19 BAB III PERANCANGAN OTOMASI ................................................ 20 3.1 Perencanaan Sistem .................................................................... 21 3.2 Perancangan Mekanik ................................................................. 23 3.3 Perancangan Elektronik .............................................................. 24 3.3.1 Rangkaian Mikrokontroler ke Gyroscope GY-521 .......... 25 3.3.2 Rangkaian Mikrokontroler ke Bluetooth HC-05 .............. 26 3.3.3 Rangkaian Mikrokontroler ke Gyroscope GY-521 dan Bluetooth HC-05 .............................................................. 27 3.3.4 Blok Diagram Perancangan Alat ...................................... 29 3.4 Perancangan Perangkat Lunak (Software) .................................. 30 3.4.1 Flow Chart Program ........................................................ 30 3.4.2 Pemograman Mikrokontroler ATMega 16 ....................... 32 3.4.3 Pemograman Sensor Gyroscope GY-521-MPU 6050...... 32 3.4.4 Pemograman Modul HC-05 ............................................. 32 BAB IV PENGUJIAN DAN ANALISA ALAT ................................... 33 4.1 Pengujian Sensor Gyroscope ...................................................... 33 4.2 Pengujian Jarak Sinyal HC-05 .................................................... 33 4.3 Pengujian Sensor GY-521 Terhadap Relay dan Nyala Lampu .. 35 4.4 Pengujian Sensor GY-521 Terhadap Relay dan respon Berdasarkan Jarak Sinyal HC-05 dengan adanya / tidak adanya penghalang dinding ..................................................................... 35 BAB V PENUTUP ................................................................................ 41 DAFTAR PUSTAKA ............................................................................ 43 LAMPIRAN ......................................................................................... 44 A.1. Program....................................................................................... 45 A. 2 Riwayat Hidup Penulis…………………………..…...…...….68
xvi
DAFTAR GAMBAR
HALAMAN Gambar 2.1 Rotary gyroscope.................................................................. 6 Gambar 2.2 Fenomena precession ........................................................... 6 Gambar 2.3 2-DOF mass-spring damper system ..................................... 7 Gambar 2.4 Konfigurasi Pin ATMega16[10] .......................................... 11 Gambar 2.5 Module HC-05.................................................................... 14 Gambar 2.6 Konfigurasi pin HC-05 ....................................................... 15 Gambar 2.7 Bluetooth-to-Serial-Module HC-05.................................... 15 Gambar 2.8 Struktur sederhana relay ..................................................... 18 Gambar 2.9 Solid State Relay G3MB-202P ........................................... 19 Gambar 3.1 Gambaran gerakan rotasi dari sumbu x GY-521 ................ 21 Gambar 3.2 HC-05 disambungkan secara pair ...................................... 22 Gambar 3.3 Desain untuk bagian gelang ............................................... 23 Gambar 3.4 Foto gelang yang sudah jadi ............................................... 24 Gambar 3.5 foto receiver ....................................................................... 24 Gambar 3.7 Mikrokontroler ATMega16 dihubungkan ke GY-521 ....... 26 Gambar 3.8 Mikrokontroler ATMega16 dihubungkan ke HC-05 .......... 27 Gambar 3.9 Skematik rangkaian keseluruhan ........................................ 28 Gambar 3.10 Blok diagram perancangan elektronik .............................. 29 Gambar 3.11 Flow chart program .......................................................... 31 Gambar 4.1 Gelang dalam kemiringan -10 hingga 10 derajat.……………...37 Gambar 4.2 Gelang dalam kemiringan lebih besar 10….…………………..38 Gambar 4.3 Gelang dalam kemiringan kurang -10…….….………………....38 Gambar 4.4 Gelang dalam kemiringan kurang -10…….….………………....39
xvii
-----Halaman ini sengaja dikosongkan-----
xviii
DAFTAR TABEL
HALAMAN Tabel 2.1 Spesifikasi GY-521 ................................................................ 10 Tabel 2.2 Konfigurasi pin Modul Bluettoth CH-05 ............................... 15 Tabel 2.3 AT Command Module Bluetooth HC-05 ............................... 16 Tabel 4.1 Pengujian Gelang. .................................................................. 33 Tabel 4.2 Pengujian Jarak Sinyal HC-05 dengan tidak adanya penghalang dinding ................................................................................ 34 Tabel 4.3 Pengujian Jarak Sinyal HC-05 dengan dinding……….....…34 Tabel 4.4 Pengujian Sensor Gyro terhadap relay………………………35 Tabel 4.5 Pengujian GY-521 terhadap lampu tanpa dinding……..…...36 Tabel 4.6 Pengujian sensor GY-521 terhadap lampu dengan dinding..37 Tabel 4.7 Pengujian sensor GY-521 terhadap kecepatan nyala ………37
xix
-----Halaman ini sengaja dikosongkan-----
xx
BAB I PENDAHULUAN PENDAHULUAN 1.1 Latar Belakang Kemajuan teknologi dibidang elektronika saat ini berkembang cepat sekali dan berpengaruh dalam pembuatan alat-alat canggih, yaitu alat yang dapat membuat segala sesuatu yang dilakukan agar menjadi lebih mudah. Manusia selalu berusaha untuk menciptakan sesuatu yang dapat mempermudah aktivitasnya, Hal inilah yang mendorong perkembangan teknologi yang telah banyak menghasilkan alat sebagai piranti untuk mempermudah kegiatan manusia. Salah satunya ialah penggunaan unit kendali dimana penggunaannya sudahlah sangat luas. Hal ini dikarenakan peralatan-peralatan yang dikontrol secara elektronik lebih banyak memberi kemudahan-kemudahan dalam penggunaanya. Hal tersebut juga dapat meminimalisir tenaga yang diperlukan. Dengan kemajuan elektronik yang ada saat ini memungkinkan untuk menciptakan alat yang dapat mengontrol piranti listrik dengan menggunakan remote tanpa menuju ke tempat saklar berada. Oleh karena itu, pada Tugas Akhir ini akan dibuat sebuah prototipe teknologi yang dapat mengontrol piranti listrik dengan menggunakan gesture pada gelang. Gelang tersebut merupakan sebuah remote dari piranti listrik tersebut dan dapat diletakkan dibagian lengan dekat pergelangan tangan. Gesture tersebut merupakan gerakan dari tangan pengguna yang memakai gelang tersebut. Didalam gelang terdapat sensor gyroscope yang telah dihubungkan ke mikrokontroler dengan menggunakan bluetooth. Mikrokontroler tersebut telah menjadi satu dengan saklar sehingga dapat mengontrol aktivasi piranti listrik tersebut bergantung dari pengaturannya. 1.2 Permasalahan Pada Tugas Akhir ini yang menjadi permasalahan utama adalah penggunaan saklar yang masih membutuhkan seseorang untuk menuju saklar agar suatu alat elektronik dapat berfungsi. 1.3 Batasan Masalah Dari perumusan masalah diatas, maka batasan masalah dari tugas akhir ini adalah alat ini hanya dapat mengontrol 1-2 piranti listrik dan penggunaan media dan komponen yang memiliki dimensi relatif besar.
1
1.4 Tujuan Tujuan dari Tugas Akhir ini adalah selain untuk menyelesaikan Tugas Akhir, juga mengoptimalkan fungsi jarak jauh tanpa harus menuju ke tempat saklar berada. 1.5 Metodologi Penelitian Dalam pelaksanaan tugas akhir yang berupa Kontrol Piranti Listrik Dengan Gesture Tangan Menggunakan Gelang, ada beberapa tahapan metodologi, yaitu, studi literatur, perencanaan sistem, uji coba hasil dan yang terakhir adalah penyusunan laporan buku Tugas Akhir. Pada tahap studi literatur akan dipelajari mengenai karakteristik sensor yang akan digunakan, hubungan program yang digunakan terhadap sensor, dan cara kerja wireless pada umumnya. Pada tahap perencanaan sistem akan dibuat desain dan algoritma kontrol sesuai dengan yang diharapkan.. Percobaan yang telah diperoleh selanjutnya akan dianalisis. Dari hasil analisis, akan ditarik kesimpulan dari penelitian yang telah dilakukan. Tahap akhir penelitian adalah penyusunan laporan penelitian. 1.6 Sistematika Laporan Pembahasan Tugas Akhir ini akan dibagi menjadi lima Bab dengan sistematika sebagai berikut: BAB I PENDAHULUAN Bab ini meliputi latar belakang, permasalahan, batasan masalah, tujuan penelitian, metodologi penelitian, sistematika laporan, dan relevansi. BAB II TEORI DASAR Bab ini menjelaskan teori dasar yang mendukung dalam perencanaan dan pembuatan alat. BAB III PERANCANGAN OTOMASI Bab ini membahas desain dan perancangan algoritma kontrol berdasarkan teori dasar pada Bab II. BAB IV PENGUJIAN DAN ANALISA ALAT Bab ini memuat hasil simulasi dan implementasi serta analisis dari hasil tersebut. BAB V PENUTUP Bab ini berisi kesimpulan dan saran dari hasil pembahasan yang telah diperoleh.
2
1.7 Relevansi Hasil yang diperoleh dari Tugas Akhir ini diharapkan dapat mengurangi tenaga yang digunakan dalam mengontrol piranti listrik. Dengan adanya remote yang berupa gelang, dapat menjadi referensi sebagai fitur tambahan diberbagai barang-barang canggih lainnya.
3
DASARe
-----Halaman ini sengaja dikosongkan-----
4
2 BAB II TEORI DASAR
TEORI DASAR
Bab ini membahas mengenai teori-teori yang berkaitan dengan alat yang telah dikerjakan. Dasar teori yang akan dijelaskan meliputi sensor gyroscope, Mikrokontroler AVR Atmega 16, sistem wireless dengan menggunakan bluetooth module HC-05, power supply, relay. 2.1 Sensor Gyroscope Gyroscope merupakan alat yang digunakan untuk mendeteksi dan mengukur kecepatan sudut. Gyroscope dapat mengukur kecepatan sudut dalam 1, 2, atau 3 arah. Secara umum, gyroscope dibagi menjadi 3 tipe yaitu rotary (classical) gyroscope, optical gyroscope dan vibrating structure gyroscope. Optical gyroscope dan vibrating structure gyroscope merupakan pengembangan dari rotary gyroscope. Giroskop berdasarkan prinsip-prinsip operasi lain juga ada, seperti, elektronik microchip-paket MEMS giroskop perangkat yang dapat ditemukan dalam perangkat elektronik, giroskop serat optik dan masih banyak lagi. Contoh aplikasi giroskop ada pada sistem navigasi inersia dimana kompas magnetik akan bekerja hingga seperti dalam teleskop Hubble atau akan memiliki presisi seperti pada dalam ICBM , atau untuk stabilisasi kendaraan terbang seperti helokopter radio kontrol atau bahkan kendaraan udara tanpa awak . Karena memiliki presisi yang tinggi, giroskop juga digunakan untuk menjaga arah dalam terowongan di pertambangan. 2.1.1 Rotary Gyroscope Rotary gyroscope pertama kali dibuat oleh Foucault pada tahun 1852 yang beroperasi berdasarkan kekekalan momentum sudut yaitu dengan menganati perubahan arah pada momentum sudut. Menurut hukum Newton II menyebutkan bahwa torsi yang bekerja pada benda yang berotassi merupakan rata-rata perubahan momentum sudut. Magnitudo dan arah dari momentum sudut akan konstan jika torsi yang diberikan adalah sama dengan nol. Persamaan dasar yang menggambarkan perilaku dari gyroscope yaitu :
5
Dimana τ dan L adalah torsi pada gyroscope dan momentum sudutnya. I, ω dan α adalah momen inersia, kecepatam sudut dan percepatan sudut dari gyroscope. Rotary gyroscope terdiri dari rotor (piringan yang berputar), exle dan beberapa penopang datar (gimbal) ditunjukkan pada Gambar 2.1 Setiap penopang akan memberikan sebuah derajat kebebasan tambahan pada rotor sehingga rotor dapat terus berputar tanpa adanya torsi eksternal yang diberikan pada gyroscope. Selama gyroscope berputar, penopang akan mempertahankan arah putarannya atau rotasinya secara konstan. Ketika torsi eksternal diberikan pada salah satu axis, orientasi akan dipertahankan dan pengukuran kecepatan sudut dapat diukur berdasarkan fenomena precession. Fenomena ini terjadi ketika sebuah objek berputar pada salah satu sumbu (spin axis) dan pada sumbu lain yang tegak lurus dengan spin axis sebagai input axis diberikan torsi eksternal maka output axis pada arah yang tegak lurus terhadap keduanya (spin axis dan input axis) akan terjadi lenggokan (precession). Untuk lebih jelasnya perhatikan Gambar 2.2.
. Gambar 2.1 Rotary gyroscope[8]
Gambar 2.2 Fenomena precession[8]
6
Rotasi yang terjadi pada output axis dapat diukur dan diumpan balikkan ke input axis dimana sebuah motor atau perangkat yang sama memberikan torsi pada arah yang berlawanan untuk mempertahankan orientasi dari gyroscope. Torsi ini disebut counteracting torque. 2.1.2 Optical Gyroscope Optical Gyroscope dikembangkan setelah ditemukan teknologi laser. Tidak ada bagian yang bergerak seperti pada rotary gyroscope. Optical gyroscope beroperasi berdasarkan prinsip Sagnac effect, yang dapat dilihat dalam ring interferometry yang ditunjukkan pada gambar 2.3. Pada sinar laser yang pertama dipantulkan oleh half silvered mirror kemudian sinar kedua melewati cermin yang lain. Kedua sinar ini akan digabungkan pada sebuah detector. Ketika sistem berotasi, salah satu sinar akan menempuh jarak yang lebih jauh daripada sinar yang kedua. Perbedaan jarak ini akan dapat dideteksi sebagai phasa shift oleh intenferometry dan phasa shift ini berbanding lurus dengan kecepatan sudut pada sistem. 2.1.3 Vibrating structure Gyroscope
Gambar 2.3 2-DOF mass-spring damper system[9]
Vibrating Structure Gyroscope adalah perangkat yang dibuat dengan teknologi MEMS (Micro-machined Electro-Mechanical Systems) yang mudah didapatkan dipasaran dan ukurannya sangar kecil. Vibrating Structure Gyroscope harus digerakkan sampai beresonanasi agar dapat mengukur kecepatan sudut. Penggerak ini disebut drive direction. Ketika sensor berotasi pada sumbunya, gaya Coriolis diinduksikan pada sense direction. Sense direction tegak lurus terhadap drive direction dan sumbu rotasi dari sensor. Sense direction dan drive
7
direction digambarkan sebagai sebuah mass-spring damper system sehingga gyroscope dapat digambarkan sebagai 2-DOF mass-spring damper system. 2.1.4 Spesifikasi Gyroscope Secara umum, sensor gyroscoppe memiliki beberapa spesifikasi dasar, yaitu a. Measurement range Parameter ini merupakan spesifikasi dari range kecepatan sudut yang dapat diukur oleh sensor dalam degrees per second (°/sec). b. Number of sensing axes Parameter ini merupakan spesifikasi dari banyaknya sumbu yang dapat diukur. Gyroscope bisa digunakan untuk mendeteksi kecepatan sudut untuk sumbu x, y dan z. Gyroscope ada yang tersedia dalam 1, 2 dan 3 sumbu. c. Nonlinearity Parameter ini merupakan spesifikasi dari kelinearan tegangan keluaran terhadap kecepatan sudut yang sebenarnya. Nonlinearity diukur sebagai persentase error dan linearitas diatas range skala penuh atau error dalam parts per million (ppm). d. Working temperature range Parameter ini merupakan spesifikasi dari range suhu pada saat gyroscope digunakan atau dioperasikan. e. Shock survivability Parameter ini merupakan spesifikasi dari besarnya goncangan yang memperngaruhi linearitas dari percepatan dan kecepatan sudut yang diukur. Biasanya diukur dalam g (1g = percepatan gravitsi bumi). f. Bandwidth Bandwidth pada gyroscope biasanya mengukur seberapa banyak pengukuran yang dilakukan tiap detik dan dinyatakan dalam Hz. g. Angular random walk Ini adalah besarnya noise pada gyroscope dan satuannya deg/hour1/2 or deg/sec1/2 dan dapat dianggap sebagai variation atau standard deviation. h. Bias
8
Bias atau bias error rata-rata pada gyroscope merupakan sinyal keluaran ketika gyroscope dalam keadaan diam atau tidak berotasi. i. Bias drift Bias drift dapat disebabkan panas dari suhu sekitar maupun dari gyroscope itu sendiri yang akan bernilai konstan ataupun acak. Jika gyroscope digunakan untuk mengukur sudut, maka error pengukuran akan besar karena adanya pengintegrasian dari bias drift ini. j. Bias instability Pada dasarnya mengukur baik tidaknya gyroscope yang digunakan dan didefinisikan sebagai titik minimum pada kurva Allan Variance, biasanya diukur dalam °/hr. 2.1.5 GY-521 MPU-6050 Pada tugas akhir ini menggunakan 1 buah sensor gyroscopee GY521 MPU-6050 yang merupakan 6 axis Motion Processing Unit dengan penambahan regulator tegangan dan beberapa komponen pelengkap lainnya sebagai pengaman yang ada pada module GY-521 . sensor ini mampu memproses 3 axis kemiringan, 3 axis kecepatan dan ditambah dengan sensor suhu standar. Menggunakan standar komunikasi dengan protocol Inter-Integrated Circuit atau biasa disebut I2c Spesifikasi dari sensor ini ditunjukkan sebagai berikut dan pada tabel 2.1. 1. 2. 3. 4. 5. 6. 7. 8.
Berbasis Chip MPU-6050 Supply tegangan berkisar 3-5V Gyroscope Range + 250 500 1000 2000 °/ s Acceleration Range: ± 2 ± 4 ± 8 ± 16 g Communication standar I2C Chip built-in 16 bit AD converter, 16bits data output Jarak antar pin header 2.54 mm Dimensi modul 20.3mm x 15.6mm
9
Tabel 2.1 Spesifikasi GY-521
2.2 Mikrokontroler ATMega 16 Mikrokontroler adalah sebuah chip yang berfungsi sebagai pengontrol rangkaian elektronik dan dapat menyimpan program didalamnya. Mikrokontroler umumnya terdiri dari CPU (Central Processing Unit), memori, I/O tertentu dan unit pendukung seperti Analog-to-Digital Converter (ADC) yang sudah terintegrasi di dalamnya. Kelebihan utama dari mikrokontroler ialah tersedianya RAM dan peralatan I/O pendukung sehingga ukuran board mikrokontroler menjadi sangat ringkas. Mikrokontroler AVR secara umum dapat dikelompokkan menjadi empat kelas, yaitu keluarga Attiny, keluarga AT90Sxx, keluarga ATMega, dan AT86RFxx. ATMega16 memiliki 4 buah PORT utama yaitu PORTA, PORTB, PORTC, dan PORTD dengan total saluran input/output sebanyak 32 pin. PORT tersebut dapat difungsikan sebagai input/output digital. Mikrokontroler ini memiliki beberapa fitur antara lain :
10
1. 2. 3. 4. 5. 6. 7.
8.
32 x 8-bit register serba guna. Kecepatan mencapai 16 MIPS dengan clock 16 MHz. Memiliki SRAM (Static Random Access Memory) sebesar 1KB. Memiliki dua 8 bit Timer/Counter dengan prescaler terpisah dan mode perbandingan Master / Slave SPI Serial interface. Kemampuan Boundary-Scan menurut standart JTAG. Memiliki EEPROM (Electrically Erasable Programmable Read Only Memory) sebesar 512 byte sebagai tempat penyimpanan data semi permanent karena EEPROM tetap dapat menyimpan data meskipun catu daya dimatikan. Power-on reset dan Programmable Brown-out Detection atau deteksi drop tegangan pada power supply
Gambar 2.4 Konfigurasi Pin ATMega16[10]
ATmega16 mempunyai 40 Pin yang setiap pin nya memiliki fungsi berbeda-beda baik sebagai port maupun fungsi yang lainnya. Fungsi dari masing-masing kaki ATmega8 seperti yang terlihat pada Gambar 2. yaitu: 1. VCC merupakan pin yang berfungsi sebagai pin masukan catu daya 2. GND merupakan pin Ground 3. Port A (PA0...PA7) merupakan pin I/O dua arah dan input analog ke A/D Converter.
11
4.
Port B (PB0...PB7) merupakan pin I/O dua arah dan mempunyai fungsi khusus, yaitu SPI, Timer/Counter, komparator analog, dan UASRT. 5. Port C (PC0...PC7) merupakan pin I/O dua arah dan mempunyai fungsi khusus, yaitu JTAG dan Two-Wire Serial. 6. Port D (PD0...PD7) merupakan pin I/O dua arah dan mempunyai fungsi khusus Timer/Counter, interupsi eksternal dan komunikasi serial. 7. RESET merupakan pin yang digunakan untuk me-reset mikrokontroler 8. XTAL1 dan XTAL2 merupakan pin masukan clock eksternal 9. AVCC merupakan pin penyedia tegangan untuk Port A dan A/D Converter 10. AREF merupakan pin referensi analog untuk A/D Converter. 2.3 Wireless Wireless merupakan jaringan tanpa kabel yang menggunakan udara sebagai media transmisinya untuk menghantarkan gelombang elektromagnetik. Perkembangan wireless sebenarnya telah dimulai sejak lama dan telah dibuktikan secara ilmiah oleh para ilmuan dengan penemuan radio dan kemudian dilanjutkan dengan penemuan radar. Kemudian dengan perkembangan kebutuhan informasi bagi manusia, maka penggunaan wireless semakin banyak dan tidak hanya untuk penggunaan radio dan radar saja. Teknologi wireless menurut para data yang ada saat ini akan mengalami kemajuan dan pengembangan yang cepat beberapa tahun yang akan datang. Kemajuan itu akan terjadi dibeberapa bidang termasuk dalam komunikasi data. Untuk memperjelas mengenai perkembangan wireless LAN, Onno W.Purbo menjelaskan bahwa Teknologi WLAN 2.4GHz, 5.8GHz, 5GHz berkembang pesat sekali terutama karena pembebasan ijin frekuensi di band ISM ( industrial, scientific, medical ) maupun band UNII (Unlicensed National Information Infrastructure) oleh pemerintah Amerika Serikat. Standar komunikasi data yang digunakan umumnya adalah keluarga IEEE 802.11, dimana IEEE 802.11b mempunyai kecepatan maksimum 11Mbps, sedang IEEE 802.11a dan IEEE 802.11g mempunyai kecepatan maksimum 54Mbps. Untuk komunikasi data pada wireless membutuhkan beberapa komponen arsitektur yang dapat diterjemahkan oleh interface protokol. IEEE sebagai lembaga regulasi internasional
12
telah menetapkan protokol untuk wireless yang terdiri atas arsitektur fisik dan arsitektur logic dari wireless ini. ▪ Arsitektur Fisik Jaringan Wireless LAN Komponen fisik dari jaringan wireless diimplementasikan sebagai Physical Data link dan Network Layer Function, komponen ini diimplementasikan sebagai fungsi yang dibutuhkan jaringan, baik lokal, metropolitan maupun area yang lebih luas. Berikut akan dibahas beberapa komponen dari jaringan nirkabel : ▪ Arsitektur Logic Jaringan Wireless LAN Agar jaringan intranet dapat berjalan sesuai fungsinya maka harus ada aturan standar yang mengaturnya, karena itu diperlukan suatu protokol intranet yang mengaturnya. Protokol tersebut adalah protokol yang telah dikenal dengan TCP/IP. 2.3.1 Prinsip Kerja wireless Cara kerja wireless ini disebabkan karena komputer mempunyai built transceiver seperti wakly-talky. Transceiver yang disebut dengan adapter wireless. Adaptor wireless melakukan sejumlah pekerjaan. Yang pertama, mendeteksi apakah terdapat jaringan wireless disekitar komputer melalui radio dan juga tuning menghubungkan penerima untuk mendeteksi setiap ada sinyal yang masuk. Setelah ada sinyal terdeteksi, untuk menghubungkannya yaitu melalui sign dan otentikasi pengguna. Apapun data yang dikirimkan dari komputer atau melalui laptop/notebook diubah melalui adaptor wireless, dari bentuk digital (0s & 1s) menjadi sinyal radio (bentuk analog). Konversi sinyal data digital kebentuk analog disebut dengan “modulasi”. Sinyal data digital ditumpangkan ke gelombang radio analog. Beberapa prinsip kerja wireless yang berbeda untuk melakukan hal ini, sehingga bagian data digital akan lebih banyak dapat dibawa oleh gelombang radio analog. Teknik yang dipakai untuk modulasi menentukan kecepatan dari transfer data jaringan wireless. Lalu sinyal radio yang disalurkan biasanya mempunyai frekuensi lebih dari 2,4 GHz diterima oleh sebuah router wireless ataupun sebuah wireless adapter. Sebuah router wireless yaitu suatu stasiun penerima dari jaringan wireless. Hal tersebut direkonversi dari sinyal data radio ke dalam bentuk sinyal digital, oleh sinyal “demodulating” dan mengirimkannya melalui koneksi kabel Ethernet ke jalur super informasi yang disebut dengan internet.
13
Cara kerja dari wireless selanjutnya adalah proses sebaliknya saat menerima informasi pada komputer melalui jaringan wireless. Kali ini router menerima data digtal dari internet dan juga memodulasi kedalam bentuk analog. Lalu kemudian antena adapter wireless menerima sinyal analog dimodulasi dan demodulates kembali kedalam bentuk digital lalu ditransfer kedalam komputer. Sebuah teknologi yang membuat semua ini terjadi karena adanya jaringan wireless, link yang penting dalam jaringan wireless adalah router dan adapter wireless. Pada saat ini, kebanyakan laptop maupun komputer sudah dilengkapi dengan hardware dan juga software wireless. Jaringan Hotspot wireless daerah di sekitar router wireless yang mempunyai kekuatan sinyal yang tinggi. Tentu saja cara kerja wireless melakukan transfer data yang lebih cepat di jaringan wireless ini. 2.3.2 HC-05 Bluetooth adalah protokol komunikasi wireless yang bekerja pada frekuensi radio 2.4 GHz untuk pertukaran data pada perangkat bergerak seperti PDA, laptop, HP, dan lain-lain. Salah satu hasil contoh modul bluetooth yang paling banyak digunakan adalah tipe HC-05. Modul bluetooth HC-05 merupakan salah satu modul bluetooth yang dapat ditemukan dipasaran dengan harga yang relatif murah. Modul Bluetooth HC-05 terdiri dari 6 pin konektor, yang setiap pin konektor memiliki fungsi yang berbeda – beda. Modul Bluetooth HC-05 dengan supply tegangan sebesar 3,3 V ke pin 12 modul Bluetooth sebagai VCC. Pin 1 pada modul Bluetooth sebagai transmitter. kemudian pin 2 pada Bluetooth sebagai receiver. Berikut merupakan gambar dari modul bluetooth yang dapat dilihat pada Gambar 2.5 dan konfigurasi pin bluetoooth HC-05 yang ditunjukkan pada dibawah ini:
Gambar 2.5 Module HC-05
14
Gambar 2.6 Konfigurasi pin HC-05[11]
Gambar 2.7 Bluetooth-to-Serial-Module HC-05[11]
Tabel 2.2 Konfigurasi pin Modul Bluettoth CH-05 No.
Nomor Pin
Nama
Fungsi
1.
Pin 1
Key
-
2.
Pin 2
VCC
Sumber teganga 5V
3.
Pin 3
GND
Ground tegangan
4.
Pin 4
TXD
Mengirim dara
5.
Pin 5
RXD
Menerima data
6.
Pin 6
STATE
Pada Gambar 2.7 adalah gambar Bluetooth-to-Serial-Module HC05 yang merupakan wiring dari serial ke modul bluetooth dan pada Tabel 2.2 yang konfigurasi pin modul Bluetooth HC-05. Modul
15
bluetooth HC-05 merupakan module Bluetooth yang bisa menjadi slave ataupun master hal ini dibuktikan dengan bisa memberikan notifikasi untuk melakukan pairing keperangkat lain, maupun perangkat lain tersebut yang melakukan pairing ke module bluetooth HC-05. Untuk mengeset perangkat bluetooth dibutuhkan perintah-perintah AT Command yang mana perintah AT Command tersebut akan di respon oleh perangkat bluetooth jika modul bluetooth tidak dalam keadaan terkoneksi dengan perangkat lain. Table 2.3 dibawah adalah table AT Command Module Bluetooth HC-05. Keterangan AT Command Module Bluetooth CH-05 dapat dilihat pada Tabel 2.3 berikut:
Tabel 2.3 AT Command Module Bluetooth HC-05 No.
Perintah
Kirim
Terima
Keterangan
1
Test Komuniksi
AT
ON
2
Ganti Nama Bluetooth
AT+NAMEnamaBT
OknamaBT
3
Ubah Pin Code
AT+PINxxx
Oksetpin
4
Ubah Baudrate
AT+BAUD1
OK1200
1-----1200
AT+BAUD2
OK2400
2-----2400
AT+BAUD3
OK4800
3-----4800
AT+BAUD4
OK9600
4-----9600
AT+BAUD5
OK19200
5-----19200
AT+BAUD6
OK38400
6-----38400
Xxx digit key
2.4 Baterai Baterai listrik adalah alat yang terdiri dari 2 atau lebih sel elektrokimia yang mengubah energi kimia yang tersimpan menjadi energi listrik. Tiap sel memiliki kutub positif (katoda) dan kutub negatif (anoda). Kutub yang bertanda positif menandakan bahwa memiliki energi potensial yang lebih tinggi daripada kutub bertanda negatif. Kutub bertanda negatif adalah sumber elektron yang ketika disambungkan dengan rangkaian eksternal akan mengalir dan
16
memberikan energi ke peralatan eksternal. Ketika baterai dihubungkan dengan rangkaian eksternal, elektrolit dapat berpindah sebagai ion didalamnya, sehingga terjadi reaksi kimia pada kedua kutubnya. Perpindahan ion dalam baterai akan mengalirkan arus listrik keluar dari baterai sehingga menghasilkan kerja. Meski sebutan baterai secara teknis adalah alat dengan beberapa sel, sel tunggal juga umumnya disebut baterai. Baterai primer (satu kali penggunaan) hanya digunakan sekali dan dibuang, material elektrodanya tidak dapat berkebalikan arah ketika dilepaskan. Baterai sekunder (Baterai dapat diisi ulang) dapat digunakan dan diisi ulang beberapa kali; komposisi awal elektroda dapat dikembalikan dengan arus berkebalikan. Contohnya adalah baterai timbal-asam pada kendaraan dan baterai ion litium pada elektronik portabel. Baterai terdiri dari berbagai bentuk dan ukuran, dari sel berukuran mini untuk alat bantu pendengaran dan jam tangan hingga bank baterai seukuran ruangan yang bisa memberikan tenaga untuk pertukaran telepon dan pusat data computer. 2.5 Relay Relay adalah Saklar (Switch) yang dioperasikan secara listrik dan merupakan komponen Electromechanical (Elektromekanikal) yang terdiri dari 2 bagian utama yakni Elektromagnet (Coil) dan Mekanikal (seperangkat Kontak Saklar/Switch). Relay menggunakan Prinsip Elektromagnetik untuk menggerakkan Kontak Saklar sehingga dengan arus listrik yang kecil (low power) dapat menghantarkan listrik yang bertegangan lebih tinggi. Sebagai contoh, dengan Relay yang menggunakan Elektromagnet 5V dan 50 mA mampu menggerakan Armature Relay (yang berfungsi sebagai saklarnya) untuk menghantarkan listrik 220V 2A. Kontak Poin (Contact Point) Relay terdiri dari 2 jenis yaitu : ● Normally Close (NC) yaitu kondisi awal sebelum diaktifkan akan selalu berada di posisi CLOSE (tertutup) ● Normally Open (NO) yaitu kondisi awal sebelum diaktifkan akan selalu berada di posisi OPEN (terbuka)
17
Sumber : teknikelektronika.com [8]
Gambar 2.8 Struktur sederhana relay
Berdasarkan gambar 2.8, sebuah Besi (Iron Core) yang dililit oleh sebuah kumparan Coil yang berfungsi untuk mengendalikan Besi tersebut. Apabila Kumparan Coil diberikan arus listrik, maka akan timbul gaya Elektromagnet yang kemudian menarik Armature untuk berpindah dari Posisi sebelumnya (NC) ke posisi baru (NO) sehingga menjadi Saklar yang dapat menghantarkan arus listrik di posisi barunya (NO). Posisi dimana Armature tersebut berada sebelumnya (NC) akan menjadi OPEN atau tidak terhubung. Pada saat tidak dialiri arus listrik, Armature akan kembali lagi ke posisi Awal (NC). Coil yang digunakan oleh Relay untuk menarik Contact Poin ke Posisi Close pada umumnya hanya membutuhkan arus listrik yang relatif kecil. 2.5.1 Solid State Relay solid state relay(SSR) adalah sebuah saklar elektronik yang dapat berfungsi apabila dipicu oleh sebuah tegangan yang relatif kecil, perangkat ini bias digunakan untuk AC maupun DC ke suatu beban, alat ini berungsi sama halya dengan relay biasa namun tidakmemiliki bagian yang bergerak secara mekanik Solid state relay menggunakan bahan semiconductor seperti thyristor dan transistor, sebagai sakalar sehingga memiliki kecepatan yang besar untuk merubah kondisi hidup atau mati sebuah alat
18
2.5.2 G3MB-202P G3MB-202P adalah salah satu jenis solid state relay yang mengontrol sumber AC hingga arus 2A pada tegangan 220V dengan hanya dipicu sumber DC 4 hingga 6 V .Didalam modul ini terdapat pemisah antara arus bertegangan besar dan arus bertegangan kecil dengan menggunakan octocopler sehingga microcontroller akan aman dari arus tegangan besar dan tidak akan kepanasan dan hangus modul ini dilengkapi dengan pengaman zero crossing dimana pada saat arus AC melalui fase 0V maka gerbang rilay akan baru akan mulai bekerja untuk mengalirkan arus. Hal ini membantu alat elektronika untuk tidak cepat rusak karena tegangan yang lewat tidak akan mungkin langsung bernilai besar
Gambar 2.9 Solid State Relay G3MB-202P
19
-----Halaman ini sengaja dikosongkan-----
20
3
BAB III PERANCANGAN OTOMASI
PERANCANGAN OTOMASI
Pada bab ini akan dibahas mengenai perancangan sistem yang dibuat secara bertahap dimulai dari perencanaan sistem, perancangan mekanik, setelah selesai maka dilanjutkan dengan perancangan rangkaian elektronik, dan tahap akhir adalah perancangan perangkat lunak. Hal ini dimaksudkan supaya hasil dari tiap perancangan dapat diintegrasikan dengan perancangan selanjutnya. 3.1
Perencanaan Sistem Sebelum melakukan proses pembuatan sistem maka terlebih dahulu dilakukan perencanaan tentang sistem yang akan dibuat sehingga proses perancangan dan pembuatan bisa dilakukan lebih cepat dan lebih baik. Pada perencanaan sistem, sensor gyroscope akan digunakan untuk mengontrol piranti listrik berdasarkan pada posisi sudut tertentu. Alat ini akan menggunakan sumbu pada sensor gyroscope GY521 yaitu sumbu x dan y. Posisi sudut terhadap sumbu x yang akan digunakan untuk proses menyalakan dan mematikan piranti listrik. Posisi sudut yang digunakan untuk menyalakan piranti listrik adalah posisi sudut sebesar 35°untik piranti 1, 45° untuk piranti 2 dan seterusnya, sedangkan untuk mematikan piranti listrik adalah posisi sudut sebesar -35° untik piranti 1, -45° untuk piranti 2 dan seterusnya.Sedangkan sumbu y untuk mengontrol keluaran sumber AC
+X° Y° 0° -Y°
-X°
Gambar 3.1 Gambaran gerakan rotasi dari sumbu x GY-521
21
Dengan menggunakan gesture gerakan pada sensor gyroscope GY521 yang diletakkan digelang dimana akan digunakan di lengan dengan waktu yang cukup lama dan juga bersamaan melakukan aktivitas yang lain, terdapat kemungkinan bila hanya mengangkat tangan keatas sekali saja dengan posisi sudut yang demikian, maka akan dapat menyalakan piranti listrik. Hal tersebut tidak sesuai dengan keinginan pengguna yang dimana pengguna secara tidak sadar mengangkat tangannya keatas sehingga dapat menyalakan piranti listrik. Oleh karena itu, diperlukan adanya inisialisasi variabel. Inisialisasi variabel adalah proses mengolah variabel tersebut. Mengolah variabel yang dimaksud ialah memberikan kondisi yang ingin dilakukan pada variabel tersebut dan pengaruhnya. Dalam hal ini, inisialisasi tersebut dapat berupa berhentinya gelang di posisi 0° selama beberapa detik. Setelah sesuai dengan waktu yang diberikan untuk inisialisasi, maka pengguna dapat menaikkan gelang keatas atau kebawah. Agar pengguna mengetahui bahwa proses inisialisasi sudah selesai, dibutuhkan sebuah indikator yang dapat memberitahukan bahwa proses inisialisasi sudah selesai dan kontrol piranti listrik sudah dapat dilakukan. Bila indikator tersebut tidak menyala, maka piranti listrik tersebut tidak dapat dikendalikan sampai proses inisialisasi berikutnya dilakukan. Untuk komunikasi wireless, alat ini menggunakan dua buah modul bluetooth. Modul bluetooth yang adigunakan adalah modul bluetooth HC-05. Modul ini berjumlah 2 atau lebih, satu modul digunakan untuk bagian transmitter yaitu dibagian gelang, sedangkan yang lainnya berada di bagian receiver, yaitu dekat dengan piranti yang akan dinyalakan atau dimatikan.. Yang akan mempengaruhi delay modul HC05 ini ialah dari program. Koneksi sesama modul bluetooth HC-05 akan disambungkan secara pair.
Gambar 3.2 HC-05 disambungkan secara pair
22
Setelah perencanaan sistem selesai dilakukan, dibutuhkan mapping untuk pembuatan dan peletakkan media dan komponen-komponen. Untuk dapat membuat sebuah gelang, maka untuk bagian komponen yang berada di gelang, seharusnya dibuat sekecil mungkin agar muat didalamnya, sedangkan untuk piranti yang akan dioperasikan, tidak harus sekecil mungkin karena yang dibuuhkan hanya posisi keadaan menyala atau mati yang dapat dilihat oleh orang. 3.2
Perancangan Mekanik Tahap selanjutnya dalam pembuatan sistem adalah perancangan mekanik. Dengan perancangan mekanik yang didahulukan, maka tahap perancangan selanjutnya dapat disesuaikan. Perancangan mekanik dapat diawali dengan mendesain mekanik tersebut dengan software-software desain. Pembuatan desain akan dapat mempermudah dalam melakukan pembuatan mekanik sebenarnya. Dengan ukuran-ukuran yang sudah diperhitungkan, akan dapat menghasilkan perhitungan ukuran mekanik sebenarnya sesuai dengan yang diinginkan. Pada tugas akhir ini, rancangan mekanik akan dibuat 1 buah kotak kecil berukuran panjang 13 cm, lebar 7 cm dan tinggi 13 cm untuk tempat rangkaian receiver. Untuk rangkain transmitter menggunakan kotak kecil yang dbalut dengan kain sehingga akan mirip dengan gelang decker.
Gambar 3.3 Desain untuk bagian gelang
23
Gambar 3.4 Foto gelang yang sudah jadi
Gambar 3.5 foto receiver
3.3 Perancangan Elektronik Langkah selanjutnya adalah pembuatan rancangan elektronik yang nantinya akan dirangkai menjadi satu. Dalam perancangan elektronik terdapat perancangan sistem dan wiring antar komponen seperti perancangan rangkaian mikrokontroler ke gyroscope GY-521, rangkaian mikrokontroler ke bluetooth HC-05 dan juga blok diagram perancangan alat. Pada beberapa rangkaian akan terapat wiring antar satu komponen ke komponen lainnya. Dibutuhkan referensi untuk proses wiring
24
tersebut, dikarenakan apabila terjadi kesalahan dalam proses wiring, dapat berakibat pada rusaknya komponen-komponen yang bersangkutan dan tidak dapat digunakan lagi. Dengan rusaknya komponen, dapat mempengaruhi kinerja pengerjaan Tugas Akhir ini. Simulasi di beberapa software simulasi juga dapat dilakukan untuk mencegah hal tersebut terjadi. Pada bagian sistem minimum yaitu menggunakan ATMega16. Minimum sistem merupakan suatu perangkat sistem yang dapat digunakan untuk belajar mikrokontroler. Minimum sistem yang digunakan untuk tugas akhir ini ini menggunakan IC ATMega16. Pada IC ATMega 16 terdapat Port A, Port B, Port C, dan Port D. Ada juga pin MISO, MOSI, SCK beserta RESET,VCC, dan GND yang dapat langsung dihubungkan ke downloader atau USB ASP. Minimm sistema ini dilengkapi dengan berbagai pengan dan komponen tambahan sepert reset dan crystal sehingga microcontroler dapat dimulai ulang kapanpun dan memiliki kecpetan frekuensi proses sesuai dengan yang akan digunakan pada Tugas Akhir ini 3.3.1 Rangkaian Mikrokontroler ke Gyroscope GY-521 Pada Gambar 3.7 yang merupakan skematik rangkaian mikrokontoler yang dihubungkan ke sensor gyroscope GY-521. Untuk sensor gyroscope GY-521, pin yang digunakan adalah pin VCC, GND, SDA dan SCL. Pin-pin tersebut disambungkan ke mikrokontroler sesuai dengan pin yang tersedia. Pada mikrokontroler letak SCL dan SDA adalah pin C0 dan C1. Microcontroller diberi crystal 12000 untuk menghasilkan baud rate yang dinginkan agar komunikasi antara microcontroller dan module gyro GY-521 terjadi dengan sedikit noise,pin reset juga dihubungkan denga push bottom bila suatu saat terjadi kesalahan maka microcontroller dan sensor gyro GY-521 dapat dimulai ulang. Power untuk microcontroller dan sensor GY-521 menggnakan baterai 9V dan dihubungkan dengan regulator 5V. Berikut gambar rangkaian dari mikrokontroler dengan gyroscope GY-521: Untuk modul bluetooth HC-05, pin yang digunakan adalah pin VCC, GND, TRX, RTX.
25
Gambar 3.7 Mikrokontroler ATMega16 dihubungkan ke GY-521.
3.3.2 Rangkaian Mikrokontroler ke Bluetooth HC-05 Untuk modul bluetooth HC-05, pin yang digunakan adalah pin VCC, GND, TRX, RTX. Pin-pin tersebut disambungkan ke mikrokontroler dengan ketentuan TRX pada bluetooth menuju ke pin
26
RTX pada mikrokontroler yaitu pin D0, sedangkan pin RTX pada bluetooth menuju ke pin TRX pada mikrokontroler yaitu pin D1. Berikut pada Gambar 3.8 yang merupakan rangkaian skematik dari mikrokontroler dengan Bluetooth HC-05:
Gambar 3.8 Mikrokontroler ATMega16 dihubungkan ke HC-05
3.3.3 Rangkaian Mikrokontroler ke Gyroscope GY-521 dan Bluetooth HC-05 Untuk menggabungkan seluruh rangkaian, yang diperlukan adalah wiring antar tiap komponennnya yaitu konfigurasi pin ke pin yang lainnya sehingga pada bagian gelang ini memiliki 3 ragkaian berupa microcontroller,bluetoth HC-05 dan sensor gyroscope GY-521 yang dihubungkan menjadi satu . Berikut pada Gambar 3.9 merupakan rangkaian skematiknya.
27
Gambar 3.9 Skematik rangkaian keseluruhan
28
3.3.4 Blok Diagram Perancangan Alat
Gambar 3.10 Blok diagram perancangan elektronik
Pada Gambar 3.10 yang merupakan blok diagram untuk perencanaan elektronik yang dimana terdapat 2 kotak. Kotak pertama merupakan rangkain yang terdapat di gelang, sedangkan kotak kedua merupakan rangkaian yang menyambung dengan sumber 220V. Blok diagram tersebut memiliki tahapan sebagai berikut : 1. Baterai merupakan sumber daya untuk mikrokontroler 1. Sebelum masuk ke mikrokontroler 1, baterai yang tegangannya melebihi dari
29
2.
3.
5V akan masuk ke rangkaian regulator yang sebenarnya sudah menjadi satu dengan modul mikrokontroler Atmega16. Setelah itu, GY-521 dan ESP8266 mendapat sumber daya sebesar 5V dari mikrokontoler dan sudah dapat menjalankan fungsinya. GY-521 akan menjadi input untuk mikrokontoler 1 dan outputnya akan dikirim secara nirkabel melalui modul HC-05 yang berfungsi sebagai transmitter menuju HC-05 lainnya yang sudah di-pair sebelumnya. Adaptor akan berfungsi sebagai penghasil tegangan 5V-12V yang akan digunakan sebagai sumber daya oleh mikrokontoler 2 . Output dari HC-05 akan masuk ke mikrokontroler 2 sebagai data untuk menyalakan dan mematikan lampu yang telah terhubung dengan sumber 220V.
3.4 Perancangan Perangkat Lunak (Software) Perancangan perangkat lunak (software) pada Tugas Akhir ini terdiri dari flow chart dari program yang dibuat,pemograman mikrokontroler ATMega 16, pemograman sensor gyroscope GY-521 dan pemograman bluetooth HC-05. 3.4.1 Flow Chart Program Flow chart yang dibuat merupakan flow chart program yang digunakan dalam pengerjaan Tugas Akhir ini. Flow chart dapat dilihat pada Gambar 3.11 yang diawali dengan perintah start, lalu akan menghubungkan komunikasi nirkabel yaitu bluetooth. Setelah bluetooth terhubung, terdapat variabel x yang merupakan sumbu sensor gyroscope yang dipakai. Kemudian akan dilanjutkan dengan proses inisialisasi gyroscope yang merupakan indikator dari aktifnya kontrol. Apabila indikator tersebut menyala, maka kontrol dapat dijalankan, sedangkan apabila tidak menyala, maka kontrol masih tidak dapat dijalankan. Selanjutnya apabila indikator telah menyala, ketika sumbu x mencapai nilai lebih dari 35 maka lampu menyala, sedangkan ketika sumbu x mencapai nilai sudut kurang dari -35, maka lampu akan mati.
30
Gambar 3.11 Flow chart program
31
3.4.2 Pemograman Mikrokontroler ATMega 16 Perangkat lunak (software) yang digunakan dalam pemrograman Mikrokontroler ATMega 16 menggunakan software Code Vision AVR dan dihubungkan dari PC/laptop ke mikrokontroler ATMega 16 menggunakan downloader. Pemograman mikrokontroler ATMega 16 meliputi pemograman GY-521, bluetooth HC-05. 3.4.3 Pemograman Sensor Gyroscope GY-521-MPU 6050 Pemrograman sensor ini menggunakan software CVAVR. Komunikasi program menggunakan komunikasi I2C yaitu menggunakan pin SDA dan SCL. Untuk pin yang digunakan ialah pin VCC, GND, SDA, SCL dan INT. Untuk pemrograman gyroscope GY-521 dibutuhkan proses inisialisasi selama beberapa detik. Pada program inisialiasi tersebut dilakukan selama 3 detik. Hal ini dkarenakan mencegah ketidaksadaran pengguna ketika menyalakan atau mematikan piranti secara tiba-tiba. 3.4.4 Pemograman Modul HC-05 Pemrograman pada modul bluetooth ini berdasarkan master and slave. Salah satu modul bertindak sebagai slave dimana telah disetting role menjadi slave dan lainnya bertindak sebagai master. Kemudian keduanya di-pair dengan menyamakan baudrate dan password karena kedua master dan slave telah didaftarkan satu sama lain maka bila ada sinyal slave ataupun master dari modul bluetoth HC-05 lain maka gelang dan penerima tidak akan terganggu . Dengan tambahan program untuk modul komunikasi ini, maka data akan dapat terkirim.
32
4 BAB IV PENGUJIAN DAN ANALISA ALAT PENGUJIAN DAN ANALISA ALAT
4.1 Pengujian Sensor Gyroscope Tabel 4.1 Pengujian Gelang. No
Gelang
Busur derajat
Perbedaan
1
-21.133
-20
1.33
2
-10.522
10
0.522
3
1.112
0
1.112
4
10.023
10
0,023
5
20.928
20
0,928
Pada Tabel 4.1 yang merupakan tabel pengujian sensor gyroscope untuk tugas akhir ini dengan membandingkan menggunakan busur derajat pada penggaris busur derajat. Pada hasil pengujian didapatkan hasil perhitungan error pada gelang dengan busur derajat yaitu sebesar 0.704 % 4.2 Pengujian Jarak Sinyal HC-05 HC-05 adalah modul bluetooth SPP (Serial Port Protocol) yang mudah digunakan untuk komunikasi serial wireless (nirkabel) yang mengkonversi port serial ke bluetooth. Modul ini dapat digunakan sebagai slave maupun master. Komunikasi wireless, memiliki spesifikasi jarak pada tiap-tiap modul. Pada modul HC-05, spesifikasi jaraknya ialah 30-40 meter. Namun, dibutuhkan pengujian secara langsung jarak maksimum dari modul bluetooth ini. Pengujian jarak tersebut dapat memberikan informasi bagi pengguna seperti jarak ideal penggunaan alat. Dalam pengujian jarak ini, dilakukan dengan dua kondisi yaitu dengan tidak adanya penghalang dinding (berada diluar
33
ruangan) dan adanya penghalang dinding (berada didalam ruangan). Kedua kondisi tersebut akan diuji dengan mengukur jarak terjauh. Tabel 4.2 Pengujian Jarak Sinyal HC-05 dengan tidak adanya penghalang dinding No.
Jarak ( meter )
Status
1
2
Terhubung
2
5
Terhubung
3
10
Terhubung
4
15
Terhubung
5
20
Terhubung
6
25
Terhubung
7
30
Terhubung
8
35
Terhubung
9
40
Terhubung
10
45
Tidak Terhubung, Putus
Tabel 4.3 Pengujian Jarak Sinyal HC-05 dengan adanya penghalang dinding No.
Jarak ( meter )
Status
1
2
Terhubung
2
5
Terhubung
3
10
Terhubung
4
15
Tidang Tergubung, Putus
Pada Tabel 4.2 menampilkan hasil pengujian jarak sinyal HC-05 dengan tidak adanya penghalang dinding dan Tabel 4.3 menampilkan hasil pengujian dengan adanya penghalang dinding. Keduanya adalah arak yang dapat dicapai dari satu modul bluetooth ke modul yang lainnya. Indikator dari terhubung atau tidaknya ialah dengan melihat kedipan led yang beada pada masing-masing modul. Apabila berkedip dengan cepat dan tidak sinkron satu dengan yang lain, maka kedua modul tidak terhubung.Sedangkan, led akan berkedip lebih lambat dan sinkron satu dengan yang lain, maka kedua modul sudah terhubung. Pada proses pengambilan data, pada jarak 45 meter dengan tidak adanya
34
penghalang dinding, bluetooth sudah tidak terhubung. Sedangkan pada jarak 15 meter dengan adanya penghalang dinding, bluetooth sudah tidak tersambung. 4.3 Pengujian Sensor GY-521 Terhadap Relay dan Nyala Lampu Tabel 4.4 Pengujian Sensor GY-521 terhadap relay No
GY-521
Relay
1
-45°
LED merah mati
2
-35°
LED merah mati
3
-25°
LED merah mati
4
-15°
LED merah hidup
5
-10°
LED merah hidup
6
0°
LED merah hidup
7
10°
LED merah hidup
8
15°
LED merah hidup
9
25°
LED merah mati
10
35°
LED merah mati
Pada Tabel 4.4 diatas, hanya diberlakukan 2 kondisi untuk melihat respon dari relay. Relay akan merespon menyala atau mati bergantung pada kondisi gyro berdasarkan sumbu x, jika kondisi gyro berada pada sekitar -15 hingga 15 derajat sumbu x maka relay akan merespon. Jika gyro tidak pada kondisi -15 hingga 15 derajat maka relay tidak akan merespon sensor gyro 4.4 Pengujian Sensor GY-521 Terhadap Relay dan respon Berdasarkan Jarak Sinyal HC-05 dengan adanya / tidak adanya penghalang dinding Pengujian ini dilakukan dengan berada di jarak-jarak hasil pengujian jarak sinyal HC-05 dengan tidak adanya penghalang dinding dan menggerakkan gelang ke atas mendekati sudut 90 dan sudut -90. Pada Tabel 4.5, kinerja dari kontrol menyalakan maupun mematikan
35
lampu masih dapat dilakukan dengan jarak yang demikian. Ketika sudah memasuki jarak 45 meter, modul bluetooth sudah putus sehingga menyalakan maupun mematikan lampu pun tidak dapat dilakukan. Pengujian ini dilakukan dengan berada di jarak-jarak hasil pengujian jarak sinyal HC-05 dengan adanya penghalang dinding dan menggerakkan gelang ke atas mendekati sudut 90 dan menurunkan ke bawah mendekati sudut -90. Dengan adanya dinding akan mempengaruhi jarak sinyal sesuai dengan pengujian jarak HC-05 sebelumnya. Pada jarak 15 meter, kontrol menyalakan dan mematikan sudah tidak dapat dilakukan. Data pengujian yang ada pada Tabel 4.6. Kedua tabel akan memperlihatkan pengaruh perbedaan dari faktor penghalang dinding. Kemiringan berdasarkan sumbu Y pada GY-521 juga memoengaruhi kecepatan respon relay untuk membuka gerbang secara maximal. Tabel 4.5 Pengujian Sensor GY-521 terhadap relay dan nyala lampu dengan tidak adanya penghalang dinding No.
Jarak
Status
Mendekati 90
Mendekati -90
2
Terhubung
Menyala
Mati
2
5
Terhubung
Menyala
Mati
3
10
Terhubung
Menyala
Mati
4
15
Terhubung
Menyala
Mati
5
20
Terhubung
Menyala
Mati
6
25
Terhubung
Menyala
Mati
7
30
Terhubung
Menyala
Mati
8
35
Terhubung
Menyala
Mati
9
40
Terhubung
Menyala
Mati
10
45
Putus
Mati
Mati
1
( meter )
Tabel 4.6 Pengujian Sensor GY-521 terhadap relay dan nyala lampu dengan adanya penghalang dinding No.
Jarak ( meter )
Status
Mendekati 90
Mendekati -90
1
2
Terhubung
Menyala
Mati
36
2
5
Terhubung
Menyala
Mati
3
10
Terhubung
Menyala
Mati
4
15
Putus
Mati
Mati
Tabel 4.7 Pengujian Sensor GY-521 terhadap kecepatan nyala listrik
No.
Kemiringan (derajat)
Status / lama mencapai Vrms maximum (detik)
Delay / respon penerimz terhadap gelang (detik)
1
35
Tidak berubah
0
2
25
2
1.19
3
20
2
1.23
4
15
4
1.11
5
10
4
1.12
6
5
Tidang berubah
0
Rata-rata delay =
Gambar 4.1 Gelang dalam kemiringan -10 hingga 10 derajat
37
Gambar 4.2 Gelang dalam kemiringan lebih besar dari 10 derajat
Pada gambar 4.1 pengujian alat dilakukan dengan kondisi kemiringan gelang tidak lebih dari 10 derajat dan tidak kurang dari -10 derajat dimana voltmeter menunjukkan keadaan awal keluaran yang dihasilkan oleh modul penerima yaitu 0V. pada saat gelang dimiringkan melebihi 10 derajat voltmeter akan menunjkkan keluaran dari modul penerima sebesar keluaran tegangan dari PLN pada
Gambar 4.3 Gelang dalam kemiringan kurang -10
38
Gambar 4.4 Gelang dalam kemiringan kurang -10
Setelah dilakukan pengujian untuk menghidupkan modul maka selanjutnya dilakukan pengujia mematikan modul. Gelang yang diringkan hingga kurang dari -10 derajat akan menghasilkan keluaran modul yang perlahan berkurang sperti yang ditunjukkan pada gambar 4.3 hingga pada akhirnya keluaran menunjukkan keluaran paling kecil yaitu 0V seperti yang ditujukkan oleh gambar 4.4
39
-----Halaman ini sengaja dikosongkan-----
40
5
BAB V PENUTUP PENUTUP
5.1 Kesimpulan Dari hasil pengujian, hasil pembacaan data gyroscope GY-521 dapat menghasilkan data yang tingkat kesalahannya kecil yaitu sebesar 0,704 % yang nilainya hampir sama dengan kemiringan sudut yang sebenarnya. Hal ini dapat membantu dalam pembuatan alat yang menambah akurasi dari gerakan tangan. kemiringan tangan ke kiri atau ke kanan akan menyalakan dan mematikan lampu secara perlahan . Untuk komunikasi wireless, dapat menggunakan modul bluetooth HC05 yang dapat mengirimkan data 1 dan 0 menuju ke modul bluetooth HC-05 lainnya yang sudah di-pair sebelumnya sehingga dapat menyalakan dan mematikan lampu sesuai dengan kondisi yang diberikan dan dalam kondisi inisialisasi program. Alat ini mampu dikomunikasikan hingga jarak urang lebih 40 meter. 5.2 Saran Saran untuk penelitian selanjutnya adalah dapat membuat alat ini dengan media dan komponen yang lebih kecil seperti menggunakan komponen surface-mount technoly(smd) dan micro controller yang lebih kecil sehingga lebih praktis untuk menggunakannya di tangan. Selain itu, untuk metode pembagian tegangan pada sumber AC disarankan menggunakan metode fase control untuk keluaran yang lebih stabil.juga Untuk kedepannya disrankan mengunakan komponen SMD agar lebih handy dan wearable
41
-----Halaman ini sengaja dikosongkan-----
42
6 DAFTAR PUSTAKA [1] Bejo, A., C&AVR Rahasia Kemudahan Bahasa C dalam Mikrokontroler Atmega 8535, Graha Ilmu, Yogyakarta, 2008. [2] Mubarok, Asep, Pendeteksi Rotasi Menggunakan Gyroscope Berbasis Mikrokontroler ATmega8535, Tugas Akhir Teknik Elektro Universitas Diponegoro, Semarang, 2009. [3] Priyadarshan, Pradosh dan Biswa Ranjan Mundari, Serial Communication by Using UART, Department of Electronics and Communication Engineering National Institudeof Tecnology Rourkela. [4] Rappaport, Theodore (2002). Wireless Communications: Principles and Practice. Prentice Hall [5] Riyadi, Muhammad, Aplikasi Filter Digital pada Pendeteksi Posisi, Tugas Akhir Teknik Elektro Universitas Diponegoro, Semarang, 2011. [6] Tjokronegoro, Harijono, Identifikasi Parameter Sistem, Teknik Fisika Institut Teknologi Bandung, 1996. [7] Winoto, Ardi. (2010). Mikrokontroler AVR ATmega8/32/18/8535 dan Pemrogramannya dengan Bahasa C pada WinAVR. Penerbit : Informatika. Bandung. [8] https://www.globalspec.com [9] https://www.columbia.edu [10] https://www.embeddedwithanshul.blogspot.in [11] https://developer.embeded.org
43
-----Halaman ini sengaja dikosongkan-----
44
LAMPIRAN A.1. Program Program Gyroroscope void gesture() { int tolerance = 3; int on_angle = 35; int off_angle = -35; if(valx > on_angle-tolerance && valx < on_angle+tolerance) { //if(valy > -15-5 && valy < -15+5) //{ //if(valz > -32.261-5 && valz < -32.261+5) //{ led(0, ON); led(2, ON); lamp_state = 1; println("!ON"); aktif_state = 0; //uart_puts("\n\r!!!!!!!!!!!!!!!!!!!!!!!!LAMPU AKTIF!!!!!!!\n\r"); //} //} } if(valx > off_angle-tolerance && valx < off_angle+tolerance) { //if(valy > 13-5 && valy < 13+5) //{ //if(valz > -32.261-5 && valz < -32.261+5) //{ led(0, OFF); led(2, OFF);
45
lamp_state = 0; println("!OFF"); aktif_state = 0; //uart_puts("\n\r!!!!!!!!!!!!!!!!!!!!!!!!LAMPU AKTIF!!!!!!!\n\r"); //} //} } } void tulis_i2c(unsigned char address,unsigned char reg, unsigned char data) { i2c_start(address | I2C_WRITE); i2c_write(reg); i2c_write(data); i2c_stop(); } char baca_i2c(unsigned char address,unsigned char reg) { uint8_t ret; i2c_start(address | I2C_WRITE); i2c_write(reg); i2c_stop(); i2c_start(address | I2C_READ); ret = i2c_readNak(); i2c_stop(); return ret; } Program HC-05 include <stdlib.h> #include
#include
46
#include #define F_CPU 12000000 #define BAUD 9600 #define BAUDRATE ((F_CPU)/(BAUD*16UL)-1) #define ON #define OFF #define print #define printc #define getc
1 0 uart_puts uart_putc uart_getc
unsigned char buffer[20]; char RxBuff[200]; int aktif_count, nonaktif_count, aktif_state, lamp_state; int RxComplete, RxEn, index; void uart_putc(const uint8_t c) { while (!(UCSRA & (1<
//send one char of string //next char of string until
void println(char str[]) {
47
print(str); print("\n\r"); } void uart_puti(const uint16_t var) { char cache[7]; uart_puts(utoa(var, cache, 10)); } void uart_init() { UBRRH = (BAUDRATE>>8); UBRRL = BAUDRATE; UCSRB|= (1<
48
for(int i=0; i<20; i++) RxBuff[i] = '\0'; } } /////////////////////////////////////////////////// Main Program int main() { DDRB = 0xFF; uart_init(); sei(); while(1) { if(RxComplete == 1) { println("OK"); } } } Program Keseluruhan : #include <stdlib.h> #include #include #include #include #include <math.h> #include <string.h> #include "i2cmaster.h" #define F_CPU 12000000 //#define UART_BAUD_RATE 9600 #define BAUD 9600 #define BAUDRATE ((F_CPU)/(BAUD*16UL)-1)
49
#define ON #define OFF #define print #define printc #define getc
1 0 uart_puts uart_putc uart_getc
#define MPU6050_ADDRESS 0xD0 // Address with end write bit #define MPU6050_RA_XG_OFFS_TC 0x00 //[7] PWR_MODE, [6:1] XG_OFFS_TC, [0] OTP_BNK_VLD #define MPU6050_RA_YG_OFFS_TC 0x01 //[7] PWR_MODE, [6:1] YG_OFFS_TC, [0] OTP_BNK_VLD #define MPU6050_RA_ZG_OFFS_TC 0x02 //[7] PWR_MODE, [6:1] ZG_OFFS_TC, [0] OTP_BNK_VLD #define MPU6050_RA_X_FINE_GAIN 0x03 //[7:0] X_FINE_GAIN #define MPU6050_RA_Y_FINE_GAIN 0x04 //[7:0] Y_FINE_GAIN #define MPU6050_RA_Z_FINE_GAIN 0x05 //[7:0] Z_FINE_GAIN #define MPU6050_RA_XA_OFFS_H 0x06 //[15:0] XA_OFFS #define MPU6050_RA_XA_OFFS_L_TC 0x07 #define MPU6050_RA_YA_OFFS_H 0x08 //[15:0] YA_OFFS #define MPU6050_RA_YA_OFFS_L_TC 0x09 #define MPU6050_RA_ZA_OFFS_H 0x0A //[15:0] ZA_OFFS #define MPU6050_RA_ZA_OFFS_L_TC 0x0B #define MPU6050_RA_XG_OFFS_USRH 0x13 //[15:0] XG_OFFS_USR #define MPU6050_RA_XG_OFFS_USRL 0x14 #define MPU6050_RA_YG_OFFS_USRH 0x15 //[15:0] YG_OFFS_USR #define MPU6050_RA_YG_OFFS_USRL 0x16 #define MPU6050_RA_ZG_OFFS_USRH 0x17 //[15:0] ZG_OFFS_USR #define MPU6050_RA_ZG_OFFS_USRL 0x18 #define MPU6050_RA_SMPLRT_DIV 0x19 #define MPU6050_RA_CONFIG 0x1A #define MPU6050_RA_GYRO_CONFIG 0x1B #define MPU6050_RA_ACCEL_CONFIG 0x1C #define MPU6050_RA_FF_THR 0x1D #define MPU6050_RA_FF_DUR 0x1E #define MPU6050_RA_MOT_THR 0x1F
50
#define MPU6050_RA_MOT_DUR 0x20 #define MPU6050_RA_ZRMOT_THR 0x21 #define MPU6050_RA_ZRMOT_DUR 0x22 #define MPU6050_RA_FIFO_EN 0x23 #define MPU6050_RA_I2C_MST_CTRL 0x24 #define MPU6050_RA_I2C_SLV0_ADDR 0x25 #define MPU6050_RA_I2C_SLV0_REG 0x26 #define MPU6050_RA_I2C_SLV0_CTRL 0x27 #define MPU6050_RA_I2C_SLV1_ADDR 0x28 #define MPU6050_RA_I2C_SLV1_REG 0x29 #define MPU6050_RA_I2C_SLV1_CTRL 0x2A #define MPU6050_RA_I2C_SLV2_ADDR 0x2B #define MPU6050_RA_I2C_SLV2_REG 0x2C #define MPU6050_RA_I2C_SLV2_CTRL 0x2D #define MPU6050_RA_I2C_SLV3_ADDR 0x2E #define MPU6050_RA_I2C_SLV3_REG 0x2F #define MPU6050_RA_I2C_SLV3_CTRL 0x30 #define MPU6050_RA_I2C_SLV4_ADDR 0x31 #define MPU6050_RA_I2C_SLV4_REG 0x32 #define MPU6050_RA_I2C_SLV4_DO 0x33 #define MPU6050_RA_I2C_SLV4_CTRL 0x34 #define MPU6050_RA_I2C_SLV4_DI 0x35 #define MPU6050_RA_I2C_MST_STATUS 0x36 #define MPU6050_RA_INT_PIN_CFG 0x37 #define MPU6050_RA_INT_ENABLE 0x38 #define MPU6050_RA_DMP_INT_STATUS 0x39 #define MPU6050_RA_INT_STATUS 0x3A #define MPU6050_RA_ACCEL_XOUT_H 0x3B #define MPU6050_RA_ACCEL_XOUT_L 0x3C #define MPU6050_RA_ACCEL_YOUT_H 0x3D #define MPU6050_RA_ACCEL_YOUT_L 0x3E #define MPU6050_RA_ACCEL_ZOUT_H 0x3F #define MPU6050_RA_ACCEL_ZOUT_L 0x40 #define MPU6050_RA_TEMP_OUT_H 0x41 #define MPU6050_RA_TEMP_OUT_L 0x42 #define MPU6050_RA_GYRO_XOUT_H 0x43 #define MPU6050_RA_GYRO_XOUT_L 0x44 #define MPU6050_RA_GYRO_YOUT_H 0x45 #define MPU6050_RA_GYRO_YOUT_L 0x46
51
#define MPU6050_RA_GYRO_ZOUT_H 0x47 #define MPU6050_RA_GYRO_ZOUT_L 0x48 #define MPU6050_RA_EXT_SENS_DATA_00 0x49 #define MPU6050_RA_EXT_SENS_DATA_01 0x4A #define MPU6050_RA_EXT_SENS_DATA_02 0x4B #define MPU6050_RA_EXT_SENS_DATA_03 0x4C #define MPU6050_RA_EXT_SENS_DATA_04 0x4D #define MPU6050_RA_EXT_SENS_DATA_05 0x4E #define MPU6050_RA_EXT_SENS_DATA_06 0x4F #define MPU6050_RA_EXT_SENS_DATA_07 0x50 #define MPU6050_RA_EXT_SENS_DATA_08 0x51 #define MPU6050_RA_EXT_SENS_DATA_09 0x52 #define MPU6050_RA_EXT_SENS_DATA_10 0x53 #define MPU6050_RA_EXT_SENS_DATA_11 0x54 #define MPU6050_RA_EXT_SENS_DATA_12 0x55 #define MPU6050_RA_EXT_SENS_DATA_13 0x56 #define MPU6050_RA_EXT_SENS_DATA_14 0x57 #define MPU6050_RA_EXT_SENS_DATA_15 0x58 #define MPU6050_RA_EXT_SENS_DATA_16 0x59 #define MPU6050_RA_EXT_SENS_DATA_17 0x5A #define MPU6050_RA_EXT_SENS_DATA_18 0x5B #define MPU6050_RA_EXT_SENS_DATA_19 0x5C #define MPU6050_RA_EXT_SENS_DATA_20 0x5D #define MPU6050_RA_EXT_SENS_DATA_21 0x5E #define MPU6050_RA_EXT_SENS_DATA_22 0x5F #define MPU6050_RA_EXT_SENS_DATA_23 0x60 #define MPU6050_RA_MOT_DETECT_STATUS 0x61 #define MPU6050_RA_I2C_SLV0_DO 0x63 #define MPU6050_RA_I2C_SLV1_DO 0x64 #define MPU6050_RA_I2C_SLV2_DO 0x65 #define MPU6050_RA_I2C_SLV3_DO 0x66 #define MPU6050_RA_I2C_MST_DELAY_CTRL 0x67 #define MPU6050_RA_SIGNAL_PATH_RESET 0x68 #define MPU6050_RA_MOT_DETECT_CTRL 0x69 #define MPU6050_RA_USER_CTRL 0x6A #define MPU6050_RA_PWR_MGMT_1 0x6B #define MPU6050_RA_PWR_MGMT_2 0x6C #define MPU6050_RA_BANK_SEL 0x6D #define MPU6050_RA_MEM_START_ADDR 0x6E
52
#define MPU6050_RA_MEM_R_W 0x6F #define MPU6050_RA_DMP_CFG_1 0x70 #define MPU6050_RA_DMP_CFG_2 0x71 #define MPU6050_RA_FIFO_COUNTH 0x72 #define MPU6050_RA_FIFO_COUNTL 0x73 #define MPU6050_RA_FIFO_R_W 0x74 #define MPU6050_RA_WHO_AM_I 0x75 float dt = 0.01; char buff[20], cUDR; signed int compass_high, compass_low; unsigned char axx_xh,axx_xl; signed int axx_x; unsigned char axx_yh,axx_yl; signed int axx_y; unsigned char axx_zh,axx_zl; signed int axx_z; float axx_sudut_x,axx_sudut_y,axx_sudut_z; unsigned char temp_h,temp_l; signed int temp; float temperature; float a=0.99; float valx, valy, valz; unsigned char giro_xh,giro_xl; unsigned char giro_yh,giro_yl; unsigned char giro_zh,giro_zl; float sudut_giro_x; float sudut_giro_z; float sudut_giro_y; signed long giro_z100; signed long giro_x100; signed long giro_y100; signed int giro_x_ofset; signed int giro_y_ofset; signed int giro_z_ofset; float rate_giro_x; float rate_giro_y; float rate_giro_z; float sudut_giro_x;
53
float sudut_giro_z; float sudut_giro_y; signed int giro_x; signed int giro_y; signed int giro_z; int giro_xh100,giro_xl100; uint16_t giro_yh100,giro_yl100; uint16_t giro_zh100,giro_zl100; unsigned char buffer[20]; char RxBuff[200]; int aktif_count, nonaktif_count, aktif_state, lamp_state; int RxComplete, RxEn, index; void setup_mpu6050(); void akusisi_gyro(); void kalibrasi_gyro(); void akusisi_accel(); void gesture(); void uart_putc(const uint8_t c) { while (!(UCSRA & (1<
//send one char of string //next char of string until
void println(char str[]) { print(str); print("\n\r");
54
} void uart_puti(const uint16_t var) { char cache[7]; uart_puts(utoa(var, cache, 10)); } void uart_init() { UBRRH = (BAUDRATE>>8); UBRRL = BAUDRATE; UCSRB|= (1<
55
} int find(char string[], char target[]) { int ret = -1; int size = strlen(string); char temp[size]; if (strlen(target) > size) { for (int i = 0; i <= (strlen(target)-size) ; i++) { memset(temp, '\0', size+1); memcpy(temp, target+i, size); if(strcmp(temp, string) == 0) { ret = i; break; } } } return ret; } ISR(USART_RXC_vect) { cUDR = UDR; if(RxEn == 1) { if(cUDR == '\n' || cUDR == '\r') { RxComplete = 1; } if(RxComplete == 0) {
56
RxBuff[index] = cUDR; index++; } } } void led(int pin, int state) { if(state == 1) PORTB |= (1<
57
while(1) { /* RxEn = 1; if(RxComplete == 0) print('\0'); if(RxComplete == 1) //cek jika terjadi request TCP/IP { int found = find("+IPD", RxBuff); if(found > -1) { char * webpage; if(lamp_state == 1) webpage = "Your Led State is : HIGH
"; else webpage = "Your Led State is : LOW
"; //char webpage[] = "Your Led State is : HIGH/h1>"; int id = RxBuff[5] - 48; int len = strlen(webpage); char cipsend[100]; memset(cipsend, '\0', 100); sprintf(cipsend, "AT+CIPSEND=%d,%d\r\n", id, len); sendCmd(cipsend, '\0', 1000); sendCmd(webpage, '\0', 1000); memset(cipsend, '\0', 100); sprintf(cipsend, "AT+CIPCLOSE=%d\r\n", id); sendCmd(cipsend, 'K', 3000); } index = 0; RxComplete = 0; memset(RxBuff, '\0', 100); } */
58
akusisi_gyro(); _delay_ms(80); akusisi_accel(); valx = (float) (a) * (valx + (rate_giro_x * dt)) + (float) ((1-a) * (axx_sudut_x)); valy = (float) (a) * (valy + (rate_giro_y * dt)) + (float) ((1-a) * (axx_sudut_y)); valz = (float) (a) * (valz + (rate_giro_z * dt)) + (float) ((1-a) * (axx_sudut_z)); //dtostrf(valy, 3, 3, buff); //println(buff);
if(valx > 0-30 && valx < 0+30) //Kondisi stabil (aktivasi) { aktif_count++; if(aktif_count > 180) //Jika stabil selama >300x count { nonaktif_count = 0; aktif_state = 1; //println("Aktif"); led(1, OFF); _delay_ms(100); led(1, ON); _delay_ms(100); led(1,OFF); } } else { nonaktif_count++; if(nonaktif_count > 200) //reset
59
{ aktif_count = 0; nonaktif_count = 0; aktif_state = 0; println("NonAktif"); led(1, ON); _delay_ms(100); led(1,OFF); _delay_ms(100); led(1,ON); } } if(aktif_state == 1) gesture(); //jika aktif, baca gesture } } /////////////////////////////////////////////////// End Main Program void gesture() { dtostrf(valy, 3, 3, buff); println(buff); _delay_ms(250); int tolerance = 3; int on_angle = 30; int off_angle = -30; if(valx > on_angle-tolerance && valx < on_angle+tolerance) { //if(valy > -15-5 && valy < -15+5) //{ //if(valz > -32.261-5 && valz < -32.261+5) //{ led(0, ON); led(2, ON); lamp_state = 1; println("!ON");
60
aktif_state = 0; //uart_puts("\n\r!!!!!!!!!!!!!!!!!!!!!!!!LAMPU AKTIF!!!!!!!\n\r"); //} //} } if(valx > off_angle-tolerance && valx < off_angle+tolerance) { //if(valy > 13-5 && valy < 13+5) //{ //if(valz > -32.261-5 && valz < -32.261+5) //{ led(0, OFF); led(2, OFF); lamp_state = 0; println("!OFF"); aktif_state = 0; //uart_puts("\n\r!!!!!!!!!!!!!!!!!!!!!!!!LAMPU AKTIF!!!!!!!\n\r"); //} //} } } void tulis_i2c(unsigned char address,unsigned char reg, unsigned char data) { i2c_start(address | I2C_WRITE); i2c_write(reg); i2c_write(data); i2c_stop(); } char baca_i2c(unsigned char address,unsigned char reg) { uint8_t ret;
61
i2c_start(address | I2C_WRITE); i2c_write(reg); i2c_stop(); i2c_start(address | I2C_READ); ret = i2c_readNak(); i2c_stop(); return ret; }
//-------------------------- FUNGSI GYRO -----------------------------// void setup_mpu6050() { //f sample ratenya 1k karena DPLF aktif 1000/1+1 = 500Hz tulis_i2c(MPU6050_ADDRESS,MPU6050_RA_SMPLRT_DIV,0x01); //Disable FSync, 48Hz DLPF acceleronya bandwith 44 HZ delay 4.9 gyronya bandwith 42Hz delay 4.8Fs 1k tulis_i2c(MPU6050_ADDRESS,MPU6050_RA_CONFIG,0x03); //Disable gyro self tests, scale of 250 degrees/s tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_GYRO_CONFIG, 0x00); //Disable accel self tests, scale of +-2g, no DHPF tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_ACCEL_CONFIG, 0b00000000); //Freefall threshold of |0mg| tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_FF_THR, 0x00); //Freefall duration limit of 0 tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_FF_DUR, 0x00); //Motion threshold of 0mg tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_MOT_THR, 0x00); //Motion duration of 0s tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_MOT_DUR, 0x00); //Zero motion threshold
62
tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_ZRMOT_THR, 0x00); //Zero motion duration threshold tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_ZRMOT_DUR, 0x00); //Disable sensor output to FIFO buffer tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_FIFO_EN, 0x00); //i2c MST CLOCK 348 kHz divider 23 dari 8Mhz mpu6050 internal clk tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_I2C_MST_CTRL, 0x00); //Setup AUX I2C slaves tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV0_ADDR, 0x00); tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV0_REG, 0x00); tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV0_CTRL, 0x00); tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV1_ADDR, 0x00); tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV1_REG, 0x00); tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV1_CTRL, 0x00); tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV2_ADDR, 0x00); tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV2_REG, 0x00); tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV2_CTRL, 0x00); tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV3_ADDR, 0x00); tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV3_REG, 0x00); tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV3_CTRL, 0x00); tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV4_ADDR, 0x00);
63
tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV4_REG, 0x00); tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV4_DO, 0x00); tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV4_CTRL, 0x00); tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV4_DI, 0x00); //MPU6050_RA_I2C_MST_STATUS //Read-only //Setup INT pin and AUX I2C pass through tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_INT_PIN_CFG, 0x00); //Enable data ready interrupt tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_INT_ENABLE, 0x00); //Slave out, dont care tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV0_DO, 0x00); tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV1_DO, 0x00); tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV2_DO, 0x00); tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV3_DO, 0x00); //More slave config tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_I2C_MST_DELAY_CTRL, 0x00); //Reset sensor signal paths tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_SIGNAL_PATH_RESET, 0x00); //Motion detection control tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_MOT_DETECT_CTRL, 0x00); //Disables FIFO, AUX I2C, FIFO and I2C reset bits to 0 tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_USER_CTRL, 0x00); //Sets clock source to gyro reference w/ PLL
64
tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_PWR_MGMT_1, 0b00000010); //Controls frequency of wakeups in accel low power mode plus the sensor standby modes tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_PWR_MGMT_2, 0x00); tulis_i2c(MPU6050_ADDRESS, MPU6050_RA_FIFO_R_W, 0x00); } void akusisi_accel() { axx_xh baca_i2c(MPU6050_ADDRESS,MPU6050_RA_ACCEL_XOUT_H); axx_xl baca_i2c(MPU6050_ADDRESS,MPU6050_RA_ACCEL_XOUT_L); axx_yh baca_i2c(MPU6050_ADDRESS,MPU6050_RA_ACCEL_YOUT_H); axx_yl baca_i2c(MPU6050_ADDRESS,MPU6050_RA_ACCEL_YOUT_L); axx_zh baca_i2c(MPU6050_ADDRESS,MPU6050_RA_ACCEL_ZOUT_H); axx_zl baca_i2c(MPU6050_ADDRESS,MPU6050_RA_ACCEL_ZOUT_L); axx_x = ((axx_xh<<8)|axx_xl); axx_y = ((axx_yh<<8)|axx_yl); axx_z = ((axx_zh<<8)|axx_zl);
= = = = = =
/* acc_sudut_x =(float) 57.295*atan((float)acc_y/ sqrt(pow((float)acc_z,2)+pow((float)acc_x,2))); acc_sudut_y =(float) 57.295*atan((float)-acc_x/ sqrt(pow((float)acc_z,2)+pow((float)acc_y,2))); acc_sudut_z =(float) 57.295*atan((float)(sqrt(pow(acc_x,2)+pow((float)acc_y,2))/(float)acc_ z)); */ axx_sudut_x =(float) 57.295*atan((float)axx_x/ sqrt(pow((float)axx_z,2)+pow((float)axx_y,2)));
65
axx_sudut_y =(float) 57.295*atan((float)-axx_y/ sqrt(pow((float)axx_z,2)+pow((float)axx_x,2))); axx_sudut_z =(float) 57.295*atan((float)(sqrt(pow(axx_x,2)+pow((float)axx_y,2))/(float)axx_ z)); } void kalibrasi_gyro() { for(int s=0; s<100; s++) { giro_xh baca_i2c(MPU6050_ADDRESS,MPU6050_RA_GYRO_XOUT_H); giro_xl baca_i2c(MPU6050_ADDRESS,MPU6050_RA_GYRO_XOUT_L); giro_yh baca_i2c(MPU6050_ADDRESS,MPU6050_RA_GYRO_YOUT_H); giro_yl baca_i2c(MPU6050_ADDRESS,MPU6050_RA_GYRO_YOUT_L); giro_zh baca_i2c(MPU6050_ADDRESS,MPU6050_RA_GYRO_ZOUT_H); giro_zl baca_i2c(MPU6050_ADDRESS,MPU6050_RA_GYRO_ZOUT_L); giro_xh = giro_xh + giro_xh; giro_yh = giro_yh + giro_yh; giro_zh = giro_zh + giro_zh; giro_xl = giro_xl + giro_xl; giro_yl = giro_yl + giro_yl; giro_zl = giro_zl + giro_zl; _delay_us(100); } giro_xh100=giro_xh/100; giro_yh100=giro_yh/100; giro_zh100=giro_zh/100; giro_xl100=giro_xl/100; giro_yl100=giro_yl/100; giro_zl100=giro_zl/100;
66
= = = = = =
giro_x_ofset = (giro_xh100<<8)|giro_xl100; giro_y_ofset = (giro_yh100<<8)|giro_yl100; giro_z_ofset = (giro_zh100<<8)|giro_zl100; } void akusisi_gyro() { giro_xh baca_i2c(MPU6050_ADDRESS,MPU6050_RA_GYRO_XOUT_H); giro_xl baca_i2c(MPU6050_ADDRESS,MPU6050_RA_GYRO_XOUT_L); giro_yh baca_i2c(MPU6050_ADDRESS,MPU6050_RA_GYRO_YOUT_H); giro_yl baca_i2c(MPU6050_ADDRESS,MPU6050_RA_GYRO_YOUT_L); giro_zh baca_i2c(MPU6050_ADDRESS,MPU6050_RA_GYRO_ZOUT_H); giro_zl baca_i2c(MPU6050_ADDRESS,MPU6050_RA_GYRO_ZOUT_L); giro_x = ((giro_xh<<8)|giro_xl)/131 - giro_x_ofset; giro_y = ((giro_yh<<8)|giro_yl)/131 - giro_y_ofset; giro_z = ((giro_zh<<8)|giro_zl)/131 - giro_z_ofset; rate_giro_x = (giro_x*0.02)*0.05; //giro_x_sens; rate_giro_y = (giro_y*0.02)*0.05; //giro_y_sens; rate_giro_z = (giro_z*0.02)*0.05; //giro_z_sens; sudut_giro_x += rate_giro_x; // *dt; sudut_giro_y += rate_giro_y; // *dt; sudut_giro_z += rate_giro_z; // *dt; }
67
= = = = = =
-----Halaman ini sengaja dikosongkan-----
68
1 RIWAYAT HIDUP PENULIS Nam TTL Jenis Kelamin Agama Alamat Telp E-mail
: Sibghah Rakasiwi Fiddihaq : Bangkalan,15 Desember 1994
: Laki-Laki : Islam : Jl. Rajawali III B3/4, Bangkalan : 083857672168 : [email protected]
RIWAYAT PENDIDIKAN 1. 2001-2007 : SDN Kraton 4 Bangakaln 2. 2007-2010 : SMPN 1 Bangkalan 3. 2010-2013 : SMAN 1 Bangkalan 4. 2013-2017 : D3 Teknik Elektro, Program Studi Teknik Elektro Komputer Kontrol – FTI Institut Teknologi Sepuluh Nopember (ITS) PENGALAMAN KERJA 1. Kerja Praktek di PT. IPMOMI Paiton PENGALAMAN BERORGANISASI -
69