i
TUGAS AKHIR
SELF-STABILIZING 2-AXIS
MENGGUNAKAN
ACCELEROMETER
ADXL345
BERBASIS MIKROKONTROLER ATmega8
I NYOMAN BENNY RISMAWAN NIM 1104405050
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK UNIVERSITAS UDAYANA
BUKIT JIMBARAN
ii
SELF-STABILIZING 2-AXIS
MENGGUNAKAN ACCELEROMETER ADXL345 BERBASIS
MIKROKONTROLER ATmega8
Tugas Akhir Diajukan Sebagai Prasyarat untuk Memperoleh Gelar Sarjana S1 (Strata1) pada Jurusan Teknik Elektro Fakultas Teknik Universitas Udayana
I NYOMAN BENNY RISMAWAN NIM : 1104405050
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK UNIVERSITAS UDAYANA JIMBARAN-BALI
iii
LEMBAR PERNYATAAN ORISINALITAS
Tugas Akhir/Skripsi ini adalah hasil karya saya sendiri, dan semua sumber baik yang dikutip maupun dirujuk
telah saya nyatakan dengan benar.
Nama : I Nyoman Benny Rismawan
NIM : 1104405050
Tanda Tangan :
Tanggal : 31 Juli 2015
iv
KATA PENGANTAR
Om Swastyastu puji syukur kehadapan Ida Sang Hyang Widhi Wasa/Tuhan Yang Maha Esa, karena atas segala limpahan berkat dan Rahmat-Nya, sehingga Tugas Akhir yang berjudul ʻʻSelf-Stabilizing 2-Axis Menggunakan
Accelerometer ADXL345 Berbasis Mikrokontroler Atmega8” ini dapat diselesaikan dengan tepat waktu. Tugas akhir ini disusun untuk memenuhi salah satu syarat dalam menyelesaikan pendidikan sarjana strata satu (S1) pada Jurusan Teknik Elektro Fakultas Teknik Universitas Udayana.
Dalam penyusunan Tugas Akhir ini, penulis banyak memperoleh petunjuk dan bimbingan dari berbagai pihak. Untuk pada kesempatan ini perkenankan penulis mengucapkan terima kasih yang sebesar-besarnya kepada :
1. Bapak Prof. Ir. Ngakan Putu Gede Suardana, MT, Ph.D selaku Dekan Fakultas Teknik Universitas Udayana.
2. Bapak Ir. I Nyoman Setiawan, MT selaku ketua jurusan Teknik Elektro Fakultas Teknik Universitas Udayana.
3. Bapak Ir. Cok Gede Indra Partha, M.Erg., MT. selaku dosen pembimbing I yang telah banyak memberikan arahan, waktu, semangat serta saran-saran selama penyusunan laporan.
4. Bapak Yoga Divayana, Ph.D. selaku dosen pembimbing II yang telah banyak memberikan arahan, waktu, semangat serta saran-saran selama penyusunan laporan.
5. Bapak, Ibu dan keluarga terima kasih atas do’a, dukungan, serta saran-saran yang selalu diberikan.
6. Serta semua pihak yang tidak bisa penulis sebutkan satu-persatu atas bantuan dan saran yang diberikan sehingga laporan ini bisa selesai tepat pada waktunya.
v
Penulis menyadari bahwa laporan Tugas Akhir ini masih jauh dari sempurna. Oleh karena itu segala kritik dan saran yang bersifat membangun sangat diharapkan demi kesempurnaan laporan Tugas Akhir ini.
Akhir kata, penulis mohon maaf kepada semua pihak jika dalam pembuatan Tugas Akhir ini melakukan kesalahan baik disegaja maupun tidak disengaja. Semoga Ida Sang Hyang Widhi Wasa/Tuhan Yang Maha Esa selalu melimpahkan rahmat-Nya kepada semua pihak yang telah membantu pelaksanaan dan penyelesaian laporan Tugas Akhir ini.
Bukit Jimbaran, Juli 2015
vi
ABSTRAK
Pada saat ini perkembangan teknologi khususnya pada bidang teknologi elektronika sangat pesat. Hal tersebut dapat dilihat dari banyaknya riset pengembangan teknologi yang dapat dioperasikan secara manual maupun otomatis. Salah satu bentuk pengaplikasian dari teknologi adalah Self-Stabilizing 2-Axis. Self-Stabilizing 2-Axis saat ini dibutuhkan pada beberapa bidang yang memerlukan kestabilan posisi dan sudut seperti pada bidang Sinematografi. Pada bidang Sinematografi, Self-Stabilizing 2-Axis dapat digunakan sebagai hand gimbal dan control penyeimbang kamera pada pesawat tanpa awak (Unmanned Aerial Vehicle). Pada bidang Arsitektur dan Teknik Sipil Self-Stabilizing 2-Axis dapat digunakan dalam pembacaan sudut.
Sistem yang dibuat dalam penelitian ini adalah Self-Stabilizing 2-Axis menggunakan accelerometer ADXL345 berbasis mikrokontroler ATmega8. Pada penelitian ini salah satu alternatif yang dapat digunakan untuk mengimplementasikan derajat kemiringan pada Self-Stabilizing 2-Axis adalah dengan menggunakan sensor accelerometer ADXL345. Sensor accelerometer ADXL345 digunakan untuk mendeteksi kemiringan sudut 2-axis (x,y). Dengan nilai masukan yang didapat dari sensor, mikrokontroler akan memberikan Output PWM untuk menggerakkan 2 motor servo untuk mendapatkan posisi stabil pada Self-Stabilizing 2-Axis.
Hasil yang dicapai dalam penerapan sistem ini yaitu sensor ADXL345 yang digunakan pada Self-Stabilizing 2-Axis dapat mendeteksi sudut kemiringan dan mengirimkan data ke mikrokontroler lalu data sudut kemiringan ditampilkan pada LCD. Self-Stabilizing 2-Axis dapat menstabilkan benda yang ada di permukaan alat ketika bagian bawah alat mengalami perubahan posisi sudut. Hal ini diakibatkan oleh pergerakan motor servo yang mendapat input duty cycle dari mikrokontroler ATmega8 sesuai dengan input yang diberikan oleh sensor accelerometer ADXL345. Dari hasil pengujian beban maksimal yang dapat diterima Self-Stabilizing 2-Axis sebesar ±750 gram.
Kesimpulan yang didapat dari penelitian ini adalah Self – Stabilizing 2-Axis berhasil memberikan posisi yang sesuai dengan nilai setpoint ketika Self – Stabilizing 2-Axis mendapat perubahan posisi sudut dengan kemampuan rotasi dari motor servo yang digunakan adalah dari +90o hingga –90o. Self – Stabilizing 2-Axis berhasil melakukan pembacaan sudut kemiringan dengan rata – rata persentase kesalahan sebesar 0,45 % pada sumbu X dan 0,05% pada sumbu Y. Pembacaan sudut dilakukan dari -90o hingga +90o.
Kata Kunci : Self – Stabilizing 2-Axis, Accelerometer, Derajat Kemiringan, ATmega8
vii
ABSTRACT
At this era, the technology is becoming very rapidly, especially in the field of electronics technology. This can be seen from the many research to develop technology that can be operated manually or automatically. One form of the application of the technology is Self-Stabilizing 2-Axis. Self-Stabilizing 2-Axis is currently required in several areas that require the stability of the position and angle as in the field of cinematography. In the field of cinematography, Self-Stabilizing 2-axis can be used as hand gimbal and balancer control the camera used on the drone. In the field of Architecture and Civil Engineering it can be used in the reading corner.
The system created in this research is Self-Stabilizing 2-Axis using ADXL345 accelerometer based microcontroller ATmega8. In this research, one of the alternatives that can be used to implement the degree of slope on Self-Stabilizing 2-Axis is to use ADXL345 accelerometer sensor. The sensor is used to detect the tilt angle of 2-axis (x, y). With the input value obtained from the sensor, the microcontroller will provide PWM outputs to drive 2 servo motors to obtain a stable position on Self-Stabilizing 2-Axis.
The results achieved in the implementation of this system is used ADXL345 sensor, it can detect the tilt angle and sends the data to the microcontroller and the tilt angle of the data displayed on the LCD. It can stabilize objects on the surface when the bottom changes the angle position. This is caused by the movement of servo motor that gets input duty cycle from the microcontroller ATmega8 according to the input given by the ADXL345 accelerometer sensor. From the test results were acceptable maximum load of ± 750 grams.
The conclusion of this research is Self - Stabilizing 2-Axis manages to give the position corresponding to the set point value when it got a change of position angle with the ability of the rotation of the servo motor used is of + 90o to -90o. It managed to do a reading corner with a flat slope - average percentage error of 0.45% on the X axis and 0.05% on the Y axis reading corner made from -90o to + 90o.
viii
DAFTAR ISI
Halaman
JUDUL ... i
PRASYARAT GELAR ... ii
HALAMAN PERNYATAAN ORISINALITAS ... iii
HALAMAN PERSETUJUAN ... iv KATA PENGANTAR ... v ABSTRAK ... vii ABSTRACT ... viii DAFTAR ISI ... ix DAFTAR GAMBAR ... xi
DAFTAR TABEL ... xiv
DAFTAR SINGKATAN DAN LAMBANG ... xvi
BAB I PENDAHULUAN ... 1 1.1 Latar Belakang ... 1 1.2 Rumusan Masalah ... 2 1.3 Tujuan ... 2 1.4 Manfaat ... 3 1.5 Batasan Masalah ... 3 1.6 Sistematika Penulisan ... 4
BAB II TINJAUAN PUSTAKA ... 5
2.1 Tinjauan Mutakhir ... 5
2.2 Mikrokontroler ... 6
2.2.1 Mikrokontroler ATmega8 ... 6
2.2.1.1 Mikrokontroler ATmega8 Menggunakan Rangkaian Arduino NG ... 9
2.3 Accelerometer ADXL 345 ... 10
2.3.1 Fitur ADXL 345 ... 11
2.4 LCD (Liquid Crystal Display) ... 12
2.5 Motor Servo ... 13
2.5.1 Pulsa Kendali Motor Servo ... 14
2.6 PWM (Pulse Widht Modulation) ... 15
2.7 I2C (Inter-Integrated Circuit) ... 18
BAB III METODE DAN PERANCANGAN SISTEM ... 19
3.1 Tempat dan Waktu Penelitian ... 19
3.2 Data ... 19
3.2.1 Sumber Data ... 19
3.2.2 Metode Pengumpulan Data ... 19
3.2.3 Jenis Data ... 19
ix
3.4 Peralatan Kerja ... 20
3.5 Metode Perancangan Self-Stabilizing 2-Axis Menggunakan Sensor Accelerometer ADXL 345 Berbasis ATmega8 ... 21
3.5.1 Perancangan Mekanik Self – Stabilizing 2-Axis ... 21
3.5.2 Perancangan Perangkat Keras (Hardware) ... 22
3.5.2.1 Diagram Blok Self-Stabilizing 2-Axis Controller ... 22
3.5.2.2 Perancangan Rangkaian Self-Stabilizing 2-Axis Controller ... 23
3.5.2.3 Perancangan Rangkaian LCD ... 25
3.5.2.4 Perancangan Rangkaian Push Buttom ... 26
3.5.2.5 Perancangan Sensor Accelerometer ADXL345 Pada Mikrokontroler ... 27
3.5.3 Perancangan Perangkat Lunak (Software) ... 28
3.5.4 Diagram Alir (Flowchart) Program ... 29
3.6 Ilustrasi Cara Kerja Self-Stabilizing 2-Axis ... 31
BAB IV HASIL DAN PEMBAHASAN ... 34
4.1 Realisasi Hasil Perancangan Self - Stabilizing 2-Axis ... 34
4.2 Pengujian dan Pembahasan Hasil Perancangan Self-Stabilizing 2-Axis ... 35
4.2.1 Pengujian Mikrokontroler ATmega8... 35
4.2.2 Pengujian Dan Pembahasan Rangkaian LCD ... 37
4.2.3 Pengujian Dan Pembahasan Push Button ... 40
4.2.4 Pengujian Kesesuaian Derajat Kemiringan Motor Servo Dalam Menentukan Posisi Set Point ... 45
4.2.5 Pengujian Pembacaan Nilai Accelerometer ADXL345 ... 52
4.2.6 Pengujian Pembangkitan Sinyal PWM Untuk Pergerakan Motor Servo ... 59
4.2.7 Pengujian Keseluruhan Sistem Self-Stabilizing 2-Axis Berbasis ATmega8 ... 66
4.2.7.1 Pengujian Self-Stabilizing 2-Axis Dengan Fungsi Penstabil Posisi ... 66
4.2.7.2 Pengujian Self-Stabilizing 2-Axis Dengan Fungsi Pembacaan Sudut ... 73
4.3 Cara Pengoperasian Self-Stabilizing 2-Axis ... 77
BAB V PENUTUP ... 78
5.1 Simpulan ... 78
5.2 Saran ... 79
DAFTAR PUSTAKA ... 80 LAMPIRAN
x
DAFTAR GAMBAR
Halaman
Gambar 2.1 Bentuk Fisik ATmega8 ... 7
Gambar 2.2 Konfigurasi Pin Mikrokontroler ATmega8 ... 7
Gambar 2.3 Accelerometer ADXL345 ... 11
Gambar 2.4 LCD 16x2 Display ... 12
Gambar 2.5 Motor Servo ... 13
Gambar 2.6 Pulsa Kendali Motor Servo... 14
Gambar 2.7 Sinyal PWM dan Rumus Perhitungannya ... 15
Gambar 2.8 Persentase Duty Cycle ... 16
Gambar 2.9 Pengontrolan Tegangan Pulsa PWM ... 17
Gambar 2.10 Konfigurasi Sistem I2C ... 18
Gambar 2.11 Timing Diagram Sistem I2C ... 18
Gambar 3.1 Tampilan 3D dari Self-Stabilizing 2-Axis ... 21
Gambar 3.2 Diagram Blok Self-Stabilizing 2-Axis Controller ... 23
Gambar 3.3 Skematik Rangkaian Self-Stabilizing 2-Axis Controller ... 23
Gambar 3.4 Skematik Rangkaian LCD 16x2 ... 26
Gambar 3.5 Skematik Rangkaian Push Button ... 27
Gambar 3.6 Skematik Rangkaian Accelerometer ADXL345 Pada Mikrokontroler ATmega8 ... 28
Gambar 3.7 Tampilan Awal Arduino 1.0.6 ... 29
Gambar 3.8 Flowchart algoritma Self-Stabilizing 2-Axis... 30
Gambar 3.9 Ilustrasi cara kerja Self-Stabilizing 2-Axis mendapatkan nilai error ... 32
Gambar 3.10 Ilustrasi cara kerja Self-Stabilizing 2-Axis Dengan Media Karmera ... 32
Gambar 3.11 Ilustrasi cara kerja Self-Stabilizing 2-Axis Menentukan Sudut 30o ... 33
Gambar 3.12 Ilustrasi cara kerja Self-Stabilizing 2-Axis Menentukan Sudut 30o Dengan Mendapat Nilai Error ... 33
Gambar 4.1 Rangkaian Controller Self-Stabilizing 2-Axis ... 34
Gambar 4.2 Mekanik Self-Stabilizing 2-Axis (a) Tampak Depan (b) Tampak Belakang ... 34
Gambar 4.3 Diagram Blok Pengujian Pengiriman Data Mikrokontroler ... 36
Gambar 4.4 Hasil Pengujian Pengiriman Data Mikrokontroler ATmega8 .. 37
Gambar 4.5 Diagram Blok Pengujian LCD ... 38
Gambar 4.6 Pengujian LCD Mengampilkan Huruf dan Angka ... 39
Gambar 4.7 Diagram Blok Pengujian Push Button ... 40
xi
Gambar 4.9 Pengujian Pengukuran Tegangan Push Button (a) Kondisi Push Button ON (b) Kondisi Push Button OFF ... 44 Gambar 4.10 Diagram Blok Rangkaian Mikrokontroler ATmega8 Dengan
Output Motor Servo ... 45 Gambar 4.11 Pengujian Derajat Kemiringan Motor Servo Menentukan Set
Point Sumbu X (a) Pengujian Dengan Alat Ukur Busur (b) Tampilan LCD Dengan Set Point Sumbu X 30o ... 47 Gambar 4.12 Pengujian Derajat Kemiringan Motor Servo Menentukan Set
Point Sumbu Y (a) Pengujian Dengan Alat Ukur Busur (b) Tampilan LCD Dengan Set Point Sumbu Y 150o ... 48 Gambar 4.13 Grafik Pengujian Derajat Kemiringan Motor Servo
Menentukan SetPoint Sumbu X ... 49 Gambar 4.14 Grafik Pengujian Derajat Kemiringan Motor Servo
Menentukan SetPoint Sumbu Y ... 51 Gambar 4.15 Blok Diagram Pengujian Sensor Accelerometer ADXL345 .... 52 Gambar 4.16 Pengujian Pembacaan Nilai Sensor Accelerometer ADXL345
(a) Pengujian Pada Sumbu X (b) Pengujian Pada Sumbu Y .... 57 Gambar 4.17 Grafik Pengujian Derajat Kemiringan Sensor Pada Sumbu X
dan Sumbu Y ... 59 Gambar 4.18 Blok Diagram Pengujian Pembangkitan Sinyal PWM ... 60 Gambar 4.19 Proses Pengujian Pembangkitan Sinyal PWM Self-Stabilizing
2-Axis ... 60 Gambar 4.20 Input PWM Untuk Membuat Motor Servo Bergerak (a)
Sebesar 0o Pada Sumbu X dan Sumbu Y (b) Sebesar 30o Pada Sumbu X dan Sumbu Y ... 61 Gambar 4.21 Input PWM Untuk Membuat Motor Servo Bergerak (a)
Sebesar 60o Pada Sumbu X dan Sumbu Y (b) Sebesar -30o Pada Sumbu X dan Sumbu Y ... 61 Gambar 4.22 Input PWM Untuk Membuat Motor Servo Bergerak (a)
Sebesar -60o Pada Sumbu X dan Sumbu Y (b) Sebesar -80o Pada Sumbu X dan Sumbu Y ... 61 Gambar 4.23 Proses Pengujian Tegangan Duty Cycle Motor Servo Pada 0o . 62 Gambar 4.24 Grafik Persentase Duty Cycle Pada Motor Servo Sumbu X
Dan Sumbu Y... 65 Gambar 4.25 Grafik Tegangan Duty Cycle Pada Motor Servo Sumbu X
Dan Sumbu Yo ... 65 Gambar 4.26 Pengujian Kestabilan Posisi Pada Sumbu X (a) Derajat
Kemiringan Bagian Bawah (b) Derajat Kemiringan Permukaan Alat. ... 66
xii
Gambar 4.27 Pengujian Kestabilan Posisi Pada Sumbu Y (a) Derajat Kemiringan Bagian Bawah (b) Derajat Kemiringan Permukaan Alat. ... 67 Gambar 4.28 Grafik Dari Kestabilan Pada Sumbu X Dan Sumbu Y Dengan
Setpoint 0o ... 68 Gambar 4.29 Grafik Dari Kestabilan Pada Sumbu X Dan Sumbu Y Dengan
Setpoint 45o ... 69 Gambar 4.30 Grafik Dari Kestabilan Pada Sumbu X Dan Sumbu Y Dengan
Setpoint 90o ... 71 Gambar 4.31 Grafik Dari Kestabilan Pada Sumbu X Dan Sumbu Y Dengan
Setpoint -45o ... 72 Gambar 4.32 Pengujian Pembacaaan Sudut Kemiringan Pada Sumbu X ... 73 Gambar 4.33 Pengujian Pembacaaan Sudut Kemiringan Pada Sumbu Y ... 74 Gambar 4.34 Grafik Pembacaan Sudut Kemiringan Pada Sumbu X dan
xiii
DAFTAR TABEL
Halaman
Tabel 2.1 Fungsi-fungsi Port pada Mikrokontroler ATmega8. ... 8
Tabel 2.1 Lanjutan ... 9
Tabel 2.2 Fungsi Port I/O ATmega8 Pada Rangkaian Arduino ... 9
Tabel 2.2 Lanjutan ... 10
Tabel 2.3 Keterangan Motor Servo HS-805BB ... 14
Tabel 3.1 Tabel Hubungan Input Output Self-Stabilizing 2-Axis Controler . 24 Tabel 3.1 Lanjutan ... 25
Tabel 3.2 Tabel Hubungan Input Output Rangkaian LCD Dan Rencana Tampilan LCD ... 26
Tabel 3.3 Perencanaan Fungsi Masing-Masing Tombol ... 27
Tabel 4.1 Spesifikasi Self-Stabilizing 2-Axis ... 35
Tabel 4.2 Fungsi Masing Masing Tombol Self-Stabilizing 2-Axis ... 41
Tabel 4.3 Hasil Pengujian Tegangan Push Button ... 44
Tabel 4.4 Hasil Pengujian kesesuaian derajat kemiringan motor servo dalam menentukan set point pada sumbu X ... 48
Tabel 4.4 Lanjutan. ... 49
Tabel 4.5 Hasil Pengujian Kesesuaian Derajat Kemiringan Motor Servo Dalam Menentukan Set Point Pada Sumbu Y ... 50
Tabel 4.5 Lanjutan. ... 51
Tabel 4.6 Hasil Pengujian Nilai Sensor Accelerometer ADXL345 Pada Sumbu X dan Sumbu Y ... 57
Tabel 4.6 Lanjutan ... 58
Tabel 4.7 Hasil Pengujian Pembangkitan Sinyal PWM Self-Stabilizing 2-Axis ... 63
Tabel 4.7 Lanjutan ... 64
Tabel 4.8 Hasil Pengujian Kestabilan Pada Sumbu X dan Y Dengan Nilai Setpoint 0o ... 67
Tabel 4.8 Lanjutan ... 68
Tabel 4.9 Hasil Pengujian Kestabilan Pada Sumbu X dan Sumbu Y Dengan Nilai Setpoint 45o ... 68
Tabel 4.9 Lanjutan ... 69
Tabel 4.10 Hasil Pengujian Kestabilan Pada Sumbu X dan Sumbu Y Dengan Nilai Setpoint 90o ... 70
Tabel 4.11 Hasil Pengujian Kestabilan Pada Sumbu X dan Sumbu Y Dengan Nilai Setpoint -45o... 71
xiv
Tabel 4.12 Hasil Pengujian Pembacaan Sudut Kemiringan Pada Sumbu X dan Sumbu Y ... 74 Tabel 4.12 Lanjutan ... 75
xv
DAFTAR SINGKATAN
ADC = Analog Digital Converter
ASCII = American Standard Code for Information Interchange
AVR = Alf and Vegard RISC
CISC = Complex Instruction Set
CCW = Counter Clock Wise
CW = Clock Wise
DC = Direct Current
DIN = Data input
DOUT = Data Output
FeCl3 = feriklorida
FIFO = first-in, first-out
I2C =Inter-Integrated Circuit
IDE = Integrated Development Environment
ISP = In-System Programing
GND = Ground
LED = Light Emitting Dioda
LCD = Liquid Crystal Display
MISO = Master Input/Slave Output
MOSI = Master Output/Slave Input
PC = Personal Computer
PCB = Printing Circuit Board
PWM = Pulse Width Modulation
R/W = Read or Write
RST = Reset
RSTDISBL = Reset Disable
RS = Register Select
RX = Receiver
SCK = Serial Clock
SPI = Serial Peripheral Interface
TX = Transmitter
USB = Universal Serial Bus
VCC = Voltage Common Collector