Top Banner
TUGAS AKHIR FLIGHT CONTROLLER PADA SISTEM QUADCOPTER MENGGUNAKAN SENSOR IMU (INERTIAL MEASUREMENT UNIT) BERBASIS MIKROKONTROLLER ATMEGA 2560 Diajukan untuk memenuhi salah satu syarat Memperoleh gelar Sarjana Teknik pada Program Studi Teknik Elektro Fakultas Sains dan Teknologi Universitas Sanata Dharma disusun oleh : RISHA ANUGERAH NENU LEMA NIM : 125114025 JURUSAN TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2016 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
116

FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

Mar 10, 2019

Download

Documents

vonhi
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

i

TUGAS AKHIR

FLIGHT CONTROLLER PADA SISTEM QUADCOPTER

MENGGUNAKAN SENSOR IMU (INERTIAL

MEASUREMENT UNIT) BERBASIS MIKROKONTROLLER

ATMEGA 2560

Diajukan untuk memenuhi salah satu syarat

Memperoleh gelar Sarjana Teknik pada

Program Studi Teknik Elektro

Fakultas Sains dan Teknologi Universitas Sanata Dharma

disusun oleh :

RISHA ANUGERAH NENU LEMA

NIM : 125114025

JURUSAN TEKNIK ELEKTRO

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

2016

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 2: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

ii

FINAL PROJECT

FLIGHT CONTROLLER ON QUADCOPTER SYSTEM

USING SENSOR IMU (INERTIAL MEASUREMENT UNIT)

BASED MICROCONTROLLER ATMEGA 2560

In partial fulfillment of requirements

for the degree of Sarjana Teknik

Department of Electrical Engineering

Faculty of Science and Technology, Sanata Dharma University

RISHA ANUGERAH NENU LEMA

NIM : 125114025

DEPARTMENT OF ELECTRICAL ENGINEERING

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

2016

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 3: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

iii

LEMBAR PERSETUJUAN

TUGAS AKHIR

FLIGHT CONTROLLER PADA SISTEM QUADCOPTER

MENGGUNAKAN SENSOR IMU (INERTIAL

MEASUREMENT UNIT) BERBASIS MIKROKONTROLLER

ATMEGA 2560

oleh :

RISHA ANUGERAH NENU LEMA

NIM : 125114025

telah disetujui oleh :

Pembimbing

Martanto, S.T., M.T. Tanggal : 19 Juli 2016

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 4: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

iv

LEMBAR PENGESAHAN

TUGAS AKHIR

FLIGHT CONTROLLER PADA SISTEM QUADCOPTER

MENGGUNAKAN SENSOR IMU (INERTIAL

MEASUREMENT UNIT) BERBASIS MIKROKONTROLLER

ATMEGA 2560

Disusun oleh :

RISHA ANUGERAH NENU LEMA

NIM : 125114025

Telah dipertahankan di depan tim penguji

pada tanggal 26 Juli 2016

Dan dinyatakan memenuhi syarat

Susunan Tim Penguji :

Nama Lengkap Tanda Tangan

Ketua : Petrus Setyo Prabowo, S.T., M.T. _______________

Sekretaris : Martanto, S.T., M.T. _______________

Anggota : Ir. Tjendro, M.Kom. _______________

Yogyakarta,

Fakultas Sains dan Teknologi

Universitas Sanata Dharma

Dekan,

Sudi Mungkasi, Ph.D.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 5: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

v

LEMBAR PERNYATAAN KEASLIAN KARYA

Saya menyatakan dengan sesungguhnya bahwa tugas akhir ini tidak memuat karya

atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka

sebagaimana layaknya karya ilmiah.

Yogyakarta, 29 Juni 2016

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 6: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

vi

MOTTO :

“TAKUT AKAN TUHAN ADALAH PERMULAAN PENGETAHUAN” - AMSAL 1:7a –

Skripsi ini kupersembahkan untuk, Bapa, Tuhan Yesus, dan Roh kudusku yang Setia

My beloved papa dan mama My lovely sister

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 7: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

vii

LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA

ILMIAH UNTUK KEPENTINGAN AKADEMIS

Yang bertandatangan dibawah ini, saya mahasiswa Universitas Sanata Dharma :

Nama : RISHA ANUGERAH NENU LEMA

Nomor Mahasiswa : 125114025

Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas

Sanata Dharma karya ilmiah saya yang berjudul :

FLIGHT CONTROLLER PADA SISTEM QUADCOPTER

MENGGUNAKAN SENSOR IMU (INERTIAL

MEASUREMENT UNIT) BERBASIS MIKROKONTROLLER

ATMEGA 2560

Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada

Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk

media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara terbatas,

dan mempublikasikannya di Internet atau media lain untuk kepentingan akademis tanpa

perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap

menyantumkan nama saya sebagai penulis.

Demikian pernyataan ini yang saya buat dengan sebenarnya.

Yogyakarta, 29 Juni 2016

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 8: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

viii

INTISARI

Untuk membuat sebuah alat elektronik atau robot, tentunya dibutuhkan sebuah otak

elektronik yang akan digunakan untuk mengontrol dan memberi perintah untuk robot itu

sendiri. Sama halnya dengan sebuah drone atau quadcopter, dibutuhkan adanya otak

elektronik atau flight controller untuk mengatur sistem dan memberi perintah ke sebuah

drone dengan menerima hasil output dari beberapa sensor yang akan digunakan sebagai data

untuk di proses di dalam flight controller itu sendiri.

Sistem ini menggunakan ATMega 2560 sebagai pusat kontrol pada flight controller.

Sensor yang digunakan adalah sensor gyro L3G4200D untuk mengukur rate sumbu x, y, z

dan sensor barometer BMP085 untuk mengukur level ketinggian pada wahana. Sistem akan

menerima pulsa berupa PWM dari perangkat receiver yang akan digunakan sebagai

pengendali navigasi wahana dari sebuah GCS (Ground Control Station). Kemudian flight

controller menggunakan kontroller PID untuk mengolah data sensor gyro dan pulsa receiver,

lalu diberikan kepada perangkat Electronic Speed Controller (ESC) sebagai driveruntuk

menggerakan keempat motor pada quacopter.

Flight Controller berhasil dibuat dan dilakukan pengujian menggunakan kontoler

PID dengan parameter Kp = 5, Ki = 0.08, dan Kd 55.5. Sistem ini sudah diuji dengan

melakukan perintah kanan – kiri, maju – mundur, dan berputar kekanan atau kekiri sesuai

dari perangkat navigasi serta tidak terbang lebih dari ketinggian yang ditetapkan.

Kata kunci : quadcopter, drone, flight controller.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 9: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

ix

ABSTRACT

To make an electronic device or a robot, it need takes an electronic brain that will be

used to control and give orders to the robot itself. Like a drone or quadcopter, it takes their

electronic brains or flight controller to set up the system and give orders to a drone by

receiving the output from several sensors to be used as the data to be processed in the flight

controller itself.

The system uses ATMega 2560 as the main control on the flight controller. The

sensor that used is a L3G4200D gyro sensor for measuring axis rate x, y, z and BMP085

barometer sensor to measure the height of the vehicle level. The system will receive pulses

in the form of a PWM from receiver device to be used as a vehicle navigation controller in

a GCS (Ground Control Station). Then flight controllers use PID controller to process data

gyro sensor and receiverpulses, and then given to the ESC (Electronic Speed Controller) to

drive the four motors on quacopter.

Flight Controller successfully created and tested using PID controller parameters Kp

= 5, Ki = 0:08, and 55.5 Kd. This system has been tested by doing the commands right - left,

forward - backward, and rotates right or left according of navigation devices and not to fly

over the height that had been defined before.

Keywords: quadcopter, drones, flight controller.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 10: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

x

KATA PENGANTAR

Syukur dan terimakasi kepada Tuhan Yesus Kristus atas segala karuniaNya sehingga

tugas akhir ini dapat diselesaikan dengan baik.

Penelitian yang berupa tugas akhir ini merupakan salah satu syarat bagi mahasiswa

Jurusan Teknik Elektro untuk memperoleh gelar Sarjana Teknik di Universitas Sanata

Dharma Yogyakarta. Penelitian ini dapat diselesaikan dengan baik atas bantuan, gagasan

dan dukungan dari berbagai pihak. Oleh karena itu, peneliti ingin mengucapkan terimakasih

kepada :

1. Sudi Mungkasi, S.Si., M.Math., Sc., Ph.D., selaku Dekan Fakultas Sains dan Teknologi

Universitas Sanata Dharma Yogyakarta.

2. Bapak Martanto, S.T., M.T., selaku Dosen Pembimbing tugas akhir yang telah banyak

meluangkan waktu untuk memberikan bimbingan.

3. Semua Dosen Teknik Elektro yang memberikan banyak ilmu dalam bidang akademis

dan softskill selama berkuliah di Universitas Sanata Dharma.

4. Papa dan Mama tercinta yang memberikan dukungannya berupa Cinta, Doa, dan Kerja

Kerasnya secara cuma - cuma.

5. Teman – Teman Elektro angkatan 2012 atas kerjasama dan kebersamaannya selama

penulis mejalani studi.

6. Teman – teman PMK Apotolos yang memberikan banyak motivasi, doa, dan harapanya.

7. Kezia Grace Kamea atas peminjaman laptopnya selama penulis merancang penelitian ini

sampai selesai.

Semoga Tuhan membalas kebaikan kalian semua.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 11: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

xi

Peneliti sangat mengharapkan kritik dan saran yang dapat membangun serta

menyempurnakan tulisan. Semoga tugas akhir ini dapat dimanfaatkan dan dikembangkan

lebih lanjut oleh peneliti lain sehingga tulisan ini dapat lebih bermanfaat.

Yogyakarta, 29 Juni 2016

Peneliti,

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 12: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

xii

DAFTAR ISI

HALAMAN JUDUL (Bahasa Indonesia) ........................................................................... i

HALAMAN JUDUL (Bahasa Inggris) .............................................................................. ii

HALAMAN PERSETUJUAN ........................................................................................... iii

HALAMAN PENGESAHAN ............................................................................................ iv

HALAMAN PERNYATAAN KEASLIAN KARYA ....................................................... v

HALAMAN PERSEMBAHAN ......................................................................................... vi

HALAMAN PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH

UNTUK KEPENTINGAN AKADEMIS ......................................................................... vii

INTISARI .......................................................................................................................... viii

ABSTRACT .......................................................................................................................... ix

KATA PENGANTAR ......................................................................................................... x

DAFTAR ISI ...................................................................................................................... xii

DAFTAR GAMBAR ......................................................................................................... xv

DAFTAR TABEL ........................................................................................................... xviii

BAB 1 PENDAHULUAN .................................................................................................... 1

1.1. Latar Belakang ....................................................................................................... 1

1.2. Tujuan dan Manfaat ............................................................................................... 2

1.3. Batasan Masalah .................................................................................................... 2

1.4. Metode Penelitian .................................................................................................. 4

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 13: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

xiii

BAB 2 DASAR TEORI ...................................................................................................... 5

2.1. Pengertian Quadcopter. ......................................................................................... 5

2.1.1. Motor Brushless ................................................................................................. 7

2.1.2. Baterai LiPo ....................................................................................................... 8

2.1.3. ESC .................................................................................................................... 9

2.1.4. Propeller .......................................................................................................... 10

2.1.5. Frame ............................................................................................................... 11

2.1.6. Flight Controller. ............................................................................................. 11

2.2. Modul Mikrokontroler ArduinoMega 2560 ........................................................ 12

2.2.1. Serial Peripheral Interface (SPI). ..................................................................... 17

2.2.2. SPCR – SPI Control Register .......................................................................... 19

2.2.3. SPSR – SPI Status Register. ............................................................................ 20

2.2.4. SPDR – SPI Data Register............................................................................... 21

2.3. 10 dof IMU (Inertial Measurement Unit) Sensor GY- 80 ................................... 22

2.3.1. Gyro Sensor L3G4200D .................................................................................. 22

2.3.2. Barometric Pressure Sensor BMP085 ............................................................. 26

2.4. Kontroler PID. ..................................................................................................... 29

2.4.1. Kendali PID Digital ......................................................................................... 31

2.5. Inter Integrated Circuit (I2C) ............................................................................... 32

BAB 3 PERANCANGAN ALAT .................................................................................... 35

3.1. Rancangan dan Pemilihan Hardware ................................................................... 36

3.2. Konstruksi Hardware ........................................................................................... 36

3.3. Perancangan Perangkat Lunak............................................................................. 39

3.3.1. Diagram Alir Program Utama ......................................................................... 39

3.3.2. Diagram Alir Subrutin Terbang ....................................................................... 43

3.3.3. Diagram Alir Subrutin Menghitung Sensor..................................................... 44

3.3.4. Diagram Alir Subrutin Menghitung PID ......................................................... 45

3.3.5. Receiver Input.................................................................................................. 47

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 14: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

xiv

BAB 4 HASIL DAN PEMBAHASAN ............................................................................ 49

4.1. Bentuk Fisik Wahana, dan Flight Controller ....................................................... 49

4.2. Pengujian Wahana ............................................................................................... 53

4.2.1. Pengujian Sistem Utama .................................................................................. 53

4.2.2. Pengujian Waktu Looping Program ................................................................ 56

4.2.3. Pengujian Receiver Input................................................................................. 56

4.2.4. Pengujian Output untuk ESC ........................................................................... 58

4.2.5. Pengujian Output PID ...................................................................................... 59

4.2.6. Pengujian Sensor Barometer ........................................................................... 63

4.2.7. Pengujian Navigasi dan Pengiriman Paket Data dari GCS ke Receiver ......... 65

4.2.8. Pengujian Baterai ............................................................................................. 66

4.2.9. Pengujian Fail Safe System ............................................................................. 67

4.3. Pembahasan Perangkat Lunak ............................................................................. 68

4.3.1. Inisialisasi ........................................................................................................ 68

4.3.2. Subrutin Terbang ............................................................................................. 69

4.3.3. Subrutin Menghitung Sensor ........................................................................... 71

4.3.4. Subrutin Menghitung PID ............................................................................... 71

4.3.5. Receiver Input.................................................................................................. 72

4.3.6. Program Penerima ........................................................................................... 72

BAB 5 KESIMPULAN DAN SARAN ............................................................................ 74

5.1. Kesimpulan .......................................................................................................... 74

5.2. Saran .................................................................................................................... 74

DAFTAR PUSTAKA ........................................................................................................ 75

LAMPIRAN ....................................................................................................................... 76

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 15: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

xv

DAFTAR GAMBAR

Gambar 1.1 Model Sistem Quadcopter ................................................................................. 3

Gambar 2.1 Arah putaran baling – baling pada quadcopter.................................................. 5

Gambar 2.2 Gerakan dasar quadcopter berdasarkan kecepatan motor ................................. 6

Gambar 2.3 Contoh Motor Brushless .................................................................................... 7

Gambar 2.4 Baterai LiPo Turnigy 4000mAh 3S 30C ........................................................... 8

Gambar 2.5 ESC (Electronic Speed Controller) .................................................................. 10

Gambar 2.6 blok diagram ESC ............................................................................................ 10

Gambar 2.7 Propeller / baling-baling.................................................................................. 11

Gambar 2.8 Frame Quadcopter ........................................................................................... 11

Gambar 2.9 Flight Controller APM 2.5 .............................................................................. 12

Gambar 2.10 Penempatan Pin Arduino Mega 2560 ............................................................ 14

Gambar 2.11 Tampilan IDE Arduino .................................................................................. 16

Gambar 2.12 Hubungan Tuan dan Hamba pada Sistem Komunikasi SPI .......................... 18

Gambar 2.13 Register Kontrol SPI (SPCR) ........................................................................ 19

Gambar 2.14 Register Keadaan SPI (SPSR) ....................................................................... 20

Gambar 2.15 Register Data SPI (SPDR) ............................................................................. 21

Gambar 2.1610 dof IMU (Inertial Measurement Unit) Sensor GY- 80 .............................. 22

Gambar 2.17 Arah sudut rate sensor dan Pin Connection L3G4200D ............................... 23

Gambar 2.18 Grafik nilai ketinggian dengan tekanan udara terukur .................................. 26

Gambar 2.19 bagan alir Pengukuran suhu dan tekanan udara pada sensor BMP085 ......... 27

Gambar 2.20 Koefisien kalibrasi sensor BMP085 .............................................................. 27

Gambar 2.21 Perhitungan Suhu dan Tekanan Udara pada BMP085 .................................. 28

Gambar 2.22 Timming diagram untuk pengukuran tekanan udara ..................................... 29

Gambar 2.23 Blok diagram kontroler PID analog ............................................................... 30

Gambar 2.24 Hubungan dalam fungsi waktu antara sinyal keluaran dengan masukan untuk

kontroller PID ................................................................................................. 30

Gambar 2.25 Blok diagram kendali digital ......................................................................... 31

Gambar 2.26 Kondisi Sinyal Start dan Stop ........................................................................ 33

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 16: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

xvi

Gambar 2.27 Sinyal ACK dan NACK ................................................................................ 33

Gambar 2.28 Transfer Bit pada I2C Bus .............................................................................. 34

Gambar 3.1 Diagram blok keseluruhan Flight Controller pada sistem quadcopter

menggunakan sensor IMU (Inertial Measurement Unit) berbasis

Mikrokontroller ATMEGA 2560 .................................................................... 35

Gambar 3.2 Bentuk Fisik Rancangan Hardware Quadcopter menggunakan sensor IMU

(Inertial Measurement Unit) berbasis Mikrokontroller ATMEGA 2560 ....... 37

Gambar 3.3 Wiring Arduino Mega 2560, Sensor Gy 80, RFM12-433, dan ESC. .............. 38

Gambar 3.4 RFM01-433 sebagai receiver. ......................................................................... 38

Gambar 3.5 Konfigurasi ESC pada wahana ........................................................................ 40

Gambar 3.6 Diagram Alir Subrutin Menghitung Sensor ..................................................... 41

Gambar 3.7 Diagram Alir Utama Flight Controller pada sistem quadcopter menggunakan

sensor IMU berbasis Mikrokontroller ATMEGA 2560 .................................. 42

Gambar 3.8 Diagram alir subrutin Terbang......................................................................... 43

Gambar 3.9 Diagram Alir Subrutin Menghitung PID ......................................................... 45

Gambar 3.10 Blok Diagram PID sistem quadcopter ........................................................... 45

Gambar 3.11 Logika Dasar perhitungan Parameter P,I,D pada sistem kontrol PID

quadcopter ...................................................................................................... 46

Gambar 3.12 Diagram Alir Receiver Input ......................................................................... 47

Gambar 4.1 Bentuk Fisik Wahana Quadcopter................................................................... 50

Gambar 4.2 Wahana dengan Receiver RFM 12 menggunakan mikrokontroler tambahan. 51

Gambar 4.3 Rangkaian Flight Controller ............................................................................ 51

Gambar 4.4 wahana terbang dengan ketinggian 1m diatas lantai. ...................................... 53

Gambar 4.5 Wahana melakukan perintah sesuai dari perangkat navigasi pada GCS. ........ 54

Gambar 4.6 Grafik output ESC 1 saat wahana terbang. ...................................................... 55

Gambar 4.7 pulsa receiver throttle pada kondisi minimum yaitu 1000µS atau 1mS. ......... 57

Gambar 4.8 hasil perhitungan pulsa receiver (roll, pitch, throttle, yaw). ........................... 57

Gambar 4.9 output untuk setiap ESC (ESC 1, ESC 2, ESC 3, ESC 4). .............................. 59

Gambar 4.10 Pulsa Gelombang output 1200µS yang dihasilkan pin D10 untuk ESC1. ..... 60

Gambar 4.11 Akumulasi throttle dengan output pid pitch,roll,yaw. ................................... 60

Gambar 4.12 Grafik output kontroler PID pitch, roll, dan yaw........................................... 61

Gambar 4.13 Grafik output ESC pada pengujian ketinggian .............................................. 64

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 17: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

xvii

Gambar 4.14 Grafik output sensor barometer saat keadaan wahana diam .......................... 64

Gambar 4.15 Grafik nilai input untuk ESC 1 saat berosilasi............................................... 65

Gambar 4.16 Grafik daya angkat motor terhadap tegangan baterai. ................................... 66

Gambar 4.17 Grafik nilai output ESC terhadap tegangan baterai 3s................................... 67

Gambar 4.18 Grafik nilai output ESC terhadap tegangan baterai 2s................................... 67

Gambar 4.19 Grafik failsafe system .................................................................................... 69

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 18: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

xviii

DAFTAR TABEL

Tabel 2.1 Keterangan Pin Arduino Mega 2560 R3[4]. ........................................................ 15

Tabel 2.2 Keterangan tombol pada tampilan IDE Arduino. ................................................ 17

Tabel 2.3 Hubungan Kecepatan Pulsa dengan Frekuensi Osilasi ....................................... 20

Tabel 2.4 Control Register pada Sensor Gyro [8]. .............................................................. 24

Tabel 2.5 Control Register 1 ............................................................................................... 25

Tabel 2.6 Control Register 4 ............................................................................................... 25

Tabel 2.7 nilai Control Register untuk setiap oversampling settings (osrs) ........................ 29

Tabel 3.1 Deklarasi Pin Arduino Mega 2560 ...................................................................... 39

Tabel 3.2 Batas batas output pwm untuk setiap kondisi terbang ......................................... 41

Tabel 4.1 Led Indikator pada wahana. ................................................................................ 52

Tabel 4.2 PIN I/O pada Flight Controller. .......................................................................... 52

Tabel 4.3 Waktu Looping Program ..................................................................................... 56

Tabel 4.4 Pengujian pengaruh motor dengan waktu LOW pada ESC. ............................... 58

Tabel 4.5 Hasil Pengujian untuk menentukan Kp, Ki, dan Kd ........................................... 62

Tabel 4.6 Pengaruh respon wahana terhadap waktu looping program ................................ 62

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 19: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

1

BAB 1

PENDAHULUAN

1.1. Latar Belakang

Perkembangan teknologi di era modern kini telah memberikan banyak keuntungan

dalam segala kebutuhan atau keperluan manusia, baik dalam bidang informasi, komunikasi,

transpotasi dan bidang-bidang lainnya. Berbagai jenis teknologi dan perlengkapan

diciptakan untuk membantu pekerjaan manusia agar lebih efektif, cepat dan mudah.

Salah satunya adalah drone atau lebih dikenal dengan wahana tanpa awak yang

berfungsi dengan kendali jarak jauh oleh pilot atau mampu mengendalikan dirinya sendiri.

Dengan adanya teknologi ini, persaingan teknologi guna pemanfaatan wahana tanpa awak

di Indonesia menjadi sudut pandang utama bagi masyarakatnya sendiri terutama mahasiswa

di Indonesia. Hal tersebut menjadi perhatian menarik untuk menjadi bahan penelitian bagi

mahasiswa untuk memahami sistem navigasi, sistem kendali, dan mikrokontroller yang

digunakan pada drone tersebut.

Penelitian ini dikhususkan untuk membuat sistem kendali menggunakan

mikrokontroller dan sensor yang digunakan dalam sebuah drone, dan memahami bagaimana

konfigurasi program yang digunakan dalam mikrokontroller.

Untuk membuat sebuah alat elektronik atau robot, tentunya dibutuhkan sebuah otak

elektronik yang akan digunakan untuk mengontrol dan memberi perintah untuk robot itu

sendiri. Sama halnya dengan sebuah drone, dibutuhkan adanya otak elektronik atau

mikrokontroller untuk mengatur sistem dan memberi perintah ke sebuah drone dengan

menerima hasil output dari beberapa sensor yang akan digunakan sebagai data untuk di

proses di dalam mikrokontroller itu sendiri.

Penelitian ini hanya dikhususkan untuk membuat program flight controller

(pengendali sistem drone) yang digunakan untuk memproses data keluaran sensor yang

digunakan pada drone yang akan di proses di mikrokontroller agar dapat membuat drone

bekerja dan terbang dengan menerima masukan dari sebuah Remote Control (RC) dari

Ground Control Station (GCS).

I

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 20: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

2

Penelitian ini pernah dilakukan sebelumnya dengan menggunakan mikrokontroller

Arduino Uno sebagai flight controller dengan sensor gyro pada drone[1]. Permasalahan

yang diangkat untuk penelitian ini berbeda dari penelitian yang pernah dibuat oleh orang

lain, dan juga menggunakan kontroller yang berbeda juga. Peneliti juga ingin mengetahui

lebih lanjut apakah dengan menggunakan kontroller dan sensor yang berbeda, drone mampu

bekerja dan terbang dengan baik atau tidak.

Keberhasilan Flight Controller yang diciptakan tentunya sangat memungkinkan untuk

menjadi bahan penelitian yang lain berbasis drone dengan penggunaan fungsi yang berbeda,

seperti contoh, Drone pengantar barang menggunakan sensor sensor yang lainnya guna

untuk membuat terbang drone agar jadi lebih presisi dan lebih baik. Karena dengan

memahami cara kerja program di dalam Flight Controller yang berhasil dibuat, penelitian

yang lain mampu dengan mudah melanjutkan penelitian sebelumnya yang berhasil

diciptakan.

1.2. Tujuan dan Manfaat

Tujuan dari penelitian ini :

1. Tujuan penelitian ini membuat flight controller pada sebuah drone

menggunakan mikrokontroller dan menggunakan sensor 10 dof (degree of

freedom) yang dapat bekerja dengan menerima perintah dari Remote Control

(RC).

Manfaat dari penelitian ini :

2. Manfaat dari penelitian ini sebagai perkembangan teknologi dalam bidang

kontrol pada wahana tanpa awak yang akan membantu pekerjaan manusia

dalam berbagai bidang antara lain bidang industri, pertanian, medis, pemasaran,

dan militer.

1.3. Batasan Masalah

Model sistem quadcopter dirancang seperti Gambar 1.1. Berdasarkan Gambar

tersebut, penelitian tentang sistem quadcopter dibagi menjadi tiga bagian, yaitu:

1. Ground control station pada sistem quadcopter.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 21: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

3

2. Flight controller pada sistem quadcopter menggunakan sensor imu (inertial

measurement unit) berbasis mikrokontroler atmega 2560.

3. Autonomous mode pada sistem quadcopter menggunakan modul gps dan

compass berbasis mikrokontroler atmega 2560.

Gambar 1.1 Model Sistem Quadcopter

Penelitian ini membatasi tentang pembuatan Flight Controller pada sistem quadcopter

dengan mode terbang secara manual dan menetapkan beberapa batasan pada perancangan

sebagai berikut :

1. Drone yang digunakan adalah jenis Quadcopter atau wahana multicopter

menggunakan 4 baling-baling.

2. Menggunakan kontrol PID untuk mengatur kestabilan wahana saat terbang.

3. Mikrokontroller yang digunakan adalah ATMEGA 2560 yang terdapat pada

Arduino Mega2560.

4. Sensor yang digunakan adalah sensor gyro L3G4200D dan barometer sensor

BMP085.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 22: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

4

5. Menerima sinyal dari Receiver pada Remote Control (RC) yang akan di

gunakan untuk perintah pada drone naik-turun, maju-mundur, kiri-kanan, dan

berputar ditempat.

6. Hanya memprogram mode terbang manual dan tidak memprogram mode

terbang autonomous.

7. Memprogram data telemetri yang akan dikirimkan menuju Ground Control

Station (GCS).

8. Wahana memiliki batas ketinggian terbang yaitu 20 meter yang akan diproses

berdasarkan barometer sensor.

1.4. Metode Penelitian

Langkah Langkah yang dilakukan dalam pengerjaan yaitu :

1. Mengumpulkan bahan-bahan referensi baik buku dan jurnal ilmiah yang

membahas mengenai sistem kontrol pada wahana terbang tak berawak,

multicopter/drone, dan sensor pada wahana.

2. Perancangan hardware dan software untuk perancangan desain quadcopter

dan alur jalan pada program.

3. Pembuatan hardware dan software berdasarkan desain yang telah dirancang

dan membuat berdasarkan alur program kerja.

4. Pengambilan data dengan melihat hasil pengamatan pada sistem terbang

wahana, kekuatan motor, dan kestabilan wahana untuk terbang.

5. Analisis dan penyimpulan hasil berdasarkan membandingkan hasil

pengamatan dengan perancangan yang diinginkan.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 23: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

5

BAB 2

DASAR TEORI

2.1. Pengertian Quadcopter.

Quadcopter adalah salah satu jenis wahana tanpa awak yang memiliki empat motor

yang dilengkapi dengan empat propeller pada masing-masing motornya yang digunakan

untuk terbang dan bermanuver.

Masing-masing rotor (baling-baling dan motor penggeraknya) menghasilkan

daya angkat dan memiliki jarak yang sama terhadap pusat massa wahana. Dengan daya

angkat masing-masing rotor sebesar lebih dari seperempat berat keseluruhan,

memungkinkan quadcopter untuk terbang. Kecepatan quadrotor tergantung pada kekuatan

motor dan berat quadrotor itu sendiri.

Untuk menghindari terjadinya momen putar pada body, arah putaran baling-baling

pada setiap rotornya berbeda seperti terlihat pada Gambar 2.1. Terdapat 2 rotor yang

bergerak searah jarum jam (CW) dan 2 rotor yang bergerak berlawanan arah jarum jam

(CCW)

Gambar 2.1 Arah putaran baling – baling pada quadcopter [2].

II

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 24: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

6

Konfigurasi yang paling sering digunakan adalah X-quadcopter. Ketika quadcopter

sedang terbang dan melayang di udara (hovering) kecepatan putar pada setiap rotornya

adalah sama. Saat quadcopter melakukan gerakan maju, 2 buah baling-baling atau propeller

yang berada dibelakang akan berputar lebih cepat sehingga body quadcopter akan miring ke

depan. Gaya dorong yang dihasilkan keempat propeller akan mempunyai komponen gaya

ke atas dan ke depan sehingga quadcopter akan terdorong ke arah depan sambil

mempertahankan ketinggiannya. Gambar 2.2 adalah ilustrasi gerakan wahana yang

dipengaruhi oleh kecepatan propeller.

Gambar 2.2 Gerakan dasar quadcopter berdasarkan kecepatan motor[2].

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 25: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

7

2.1.1. Motor Brushless [10].

Motor merupakan alat penggerak Quadcopter. Pemilihan Motor disesuaikan dengan

kebutuhan, adapun yang digunakan merupakan motor brusless / outrunner type motor ( yang

berputar bagian luar ). Gambar 2.3 memperlihatkan contoh motor brushless.

Biasanya motor menggunakan ukuran KV = RPM/Volt dimana ukuran KV berbanding

lurus dengan kecepatan putar motor (rpm). Nilai kV yang rendah menunjukkan RPM yang

rendah dan Torsi ( daya angkat ) yang besar, Namun kecepatan terbangnya rendah (

dikarenakan RPM yang rendah ). Nikai kV yang tinggi menunjukkan RPM yang tinggi dan

torsi ( daya angkat ) yang rendah, Namun kecepatan terbangnya tinggi ( dikarenakan RPM

yang tinggi ).

Jumlah ikatan lilitan pada rotor sendiri berpengaruh pada besar Torsi yang dihasilkan.

Semakin banyak jumlah ikatan nya semakin Besar Torsinya dan berlaku sebaliknya. Itulah

penyebab mengapa motor dengan ukuran kecil cenderung mempunyai nilai kV yang lebih

besar ketimbang motor dengan ukuran besar.

Seri pada motor brushless sendiri merupakan besar ukuran sebuah motor.

Motor dengan ukuran 2212 berarti memiliki tinggi 22 mm dan lebar 12 mm.

Gambar 2.3 Contoh Motor Brushless.[10]

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 26: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

8

2.1.2. Baterai LiPo

Gambar 2.4 Baterai LiPo Turnigy 4000mAh 3S 30C

LiPo adalah singakatan dari Lithium Polimer yaitu bahan utama yang digunakan

sebagai sumber daya / baterai didalam dunia Remote Control. Keuntungan baterai ini adalah

bobot yang ringan, kapasistas penyimpanan yang besar, dan tingkat discharge rate energi

yang tinggi.

Contoh pada Gambar 2.4 adalah baterai LiPo Turnigy 4000mAh 3S 30C. “4000mAh”

adalah arus yang diberikan baterai, “3S” adalah 3 Cell artinya baterai memberikan tegangan

11,1 volt didapatkan dari tiap cell-nya 3,7volt × 3 = 11,1 volt, dan “30C” adalah Discharge

rate.

Pada baterai 4000mAh dengan rating 30C maka baterai tersebut dapat menahan beban

maksimum hingga 120 Ampere. (30 × 4 ampere = 120 Ampere). artinya baterai dapat

menerima beban ESC dibawah 120 Ampere.

Untuk Discharge rate, apabila sebuah baterai dengan discharge rate 10C berate baterai

tersebut dapat di discharge 10 kali dari kapsistas baterai sebenarnya. Begitu juga 15C berate

15 kalim dan 20C berate 20 kali,dsb.

Jika beban maksimum baterai 120 Ampere maka akan sama dengan 2000mA per menit

dan energi baterai 4000mAh akan habis dalam 2 menit. Nilai ini diperoleh dengan

mengkalkulasi jumlah arus per menitnya. 4000mAh dibagi 60 menit = 66,67mA per menit.

Kemudian 66,67 × 30C = 2000mA beban per menit. Lalu bagi 4000 dengan 2000 = 2 menit.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 27: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

9

2.1.3. ESC[2].

ESC adalah singkatan dari Electronic Speed Controller yang berfungsi sebagai

pengendali putaran dan arah putaran motor seperti contoh Gambar 2.5 dan blok diagram

pada Gambar 2.6. Pada umumnya, untuk motor dapat berputar, remote control (RC)

memberikan pulsa sinyal min 1000µS dan pada kecepatan penuh sebesar 2000µS.

Ada 2 jenis ESC untuk Motor Brushless yaitu ESC dengan BEC dan ESC tanpa BEC

atau yang biasa diseput ESC OPTO ( opto berarti optional ). Ukurannya dihitung dengan

Ampere ( 10A, 15A, 20A, 25A, dst ) dimana ukuran tersebut terkait dengan kebutuhan

motor.

Untuk menentukan ESC yang akan digunakan sangatlah penting untuk mengetahui

kekuatan (peak current) dari motor. Kekuatan ESC yang digunakan seharusnya melebihi

kekuatan motor. Misalnya, dari data didapatkan kekuatan motor adalah 12A (sesuai dengan

datasheet motor) pada saat throttle terbuka penuh. sebaiknya ESC yang akan digunakan

adalah ESC yang berkekuatan 18A atau 20A. Jika dipaksakan menggunakan ESC 10A

kemungkinan pada saat throttle dibuka penuh, ESC akan panas bahkan terbakar.

Untuk menghitung max current (amp) dari sebuah motor dapat dilakukan dengan

persamaan 2.1 [9]:

𝑨𝒎𝒑 = 𝑾𝒂𝒕𝒕

𝑴𝒂𝒙 𝑽𝒐𝒍𝒕+

𝑾𝒂𝒕𝒕

𝑴𝒂𝒙 𝑽𝒐𝒍𝒕× 𝟏𝟎% (2.1)

Sebagai contoh sebuah motor Turnigy Multistar 2216 800Kv 14 Pole Multi Rotor

Outrunner, watt yang tertera di spesifikasi adalah 222 Watt, dengan max volt 12 volt. Dengan

menggunakan persamaan 2.1 didapatkan:

𝑨𝒎𝒑 = 𝟐𝟐𝟐 𝒘𝒂𝒕𝒕

𝟏𝟐 𝒗𝒐𝒍𝒕+ (

𝟐𝟐𝟐 𝒘𝒂𝒕𝒕

𝟏𝟐 𝒗𝒐𝒍𝒕× 𝟏𝟎%)

𝑨𝒎𝒑 = 𝟏𝟖. 𝟓 + 𝟏. 𝟖𝟓 𝑨

𝑨𝒎𝒑 = 𝟐𝟎. 𝟑𝟓 𝑨

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 28: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

10

Dari nilai diatas maka dapat ditentukan nilai ESC yang akan digunakan dengan

menambahkan nilai aman 10-20% dari max current, yakni: 20.35A + (20.35A x 10%) =

22.358 A, Maka ESC yang dibutuhkan adalah ESC dengan nilai 30A.

Gambar 2.5 ESC (Electronic Speed Controller)[2]

Gambar 2.6 blok diagram ESC[2]

2.1.4. Propeller[2].

Propeller adalah pasangan untuk motor. Untuk Quadcopter, Propeller yang digunakan

ada dua jenis yaitu Clock Wise (CW) / Searah jarum jam dan Counter Clock Wise (CCW) /

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 29: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

11

Berlawanan Arah Jarum Jam. Gambar 2.7 memperlihatkan contoh propeller 1 pasang CW

dan 1 pasang CCW.

Ukurannya pun ada beragam biasanya dituliskan dengan format XXYY misalnya

1045, 1150, 1355, dll. dimana nilai XX menunjukkan Panjang Propeller dan nilai YY

menunjukkan Nilai Pitch dari Propeller ( dalam satuan Inch ) dan untuk memilih Propeller

juga harus di sesuaikan dengan Motor yang digunakan.

Gambar 2.7 Propeller / baling-baling

2.1.5. Frame[2].

Frame penting karena merupakan tempat untuk meletakkan Komponen lain dari

Quadcopter. Untuk dapat menentukan arah depan pada sebuah quadcopter, maka biasanya

pada frame diberi bola pingpong atau dengan cara memberikan warna yang berbeda terhadap

propeller.Gambar 2.8 adalah contoh frame quadcopter bentuk “X”.

Gambar 2.8 Frame Quadcopter

2.1.6. Flight Controller.

Flight Controller adalah perangkat mikrokontroller yang digunakan dalam

Quadcopter untuk mengoperasikan wahana naik, turun, maju, mundur, dll. Di dalam dunia

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 30: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

12

drone, terdapat berbagai merk Flight Controller seperti KK Board, MultiWii, APM seperti

Gambar 2.9, Pixhawk, dan DJI, atau bias dengan membuat Fligth Controller buatan

menggunakan mikrokontroller.

Gambar 2.9 Flight Controller APM 2.5

2.2. Modul Mikrokontroler ArduinoMega 2560[11].

Arduino adalah sebuah platform elektronik yang open source dan memiliki situs resmi

di www.arduino.cc. Situs resmi ini memberikan banyak hal yang dapat digunakan oleh

pembaca dan pengguna seperti software Arduino yang selalu diperbaharui dan dapat diunduh

secara gratis, pengenalan produk-produk terbaru Arduino, dan penyedia referensi yang

sangat membantu saat melakukan pemrograman dengan software Arduino.

Nama Arduino tidak hanya digunakan untuk menamai board rangkaiannya saja, tetapi

juga untuk menamai bahasa dan software pemrogramannya, serta lingkungan

pemrogramannya atau yang dikenal dengan sebutan Integrated Development Environment

(IDE).

Menurut beberapa sumber referensi, Arduino memiliki beberapa keunggulan

dibandingkan dengan platform elektronik lainnya. Beberapa keunggulan tersebut antara lain:

1. Modul Arduino adalah sebuah platform elektronik yang open source yang

berbasis pada kemudahan dan fleksibilitas penggunaan hardware dan

software. Artinya pembaca dapat mengunduh software dan Gambar

rangkaian Arduino tanpa harus membayar kepada pembuat Arduino.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 31: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

13

2. IDE Arduino merupakan multiplatform yang dapat dijalankan di berbagai

sistem operasi seperti Windows, Macintosh, dan Linux.

3. Modul Arduino mudah digunakan sebagai sebuah platform komputasi fisik

yang sederhana serta menerapkan bahasa pemrograman processing.

4. Modul Arduino merupakan platform interaktif karena dapat mengambil

masukan dari berbagai tombol atau sensor, mampu mengendalikan berbagai

lampu, motor, dan output fisik lainnya.

5. Modul Arduino dapat berdiri sendiri, atau dapat melakukan komunikasi

dengan software yang berjalan di komputer seperti Flash, Processing, dan

MaxMSP.

6. Pemrograman Arduino menggunakan kabel yang terhubung dengan port

Universal Serial Bus (USB), bukan port serial. Fitur ini sangat berguna

karena banyak komputer sekarang ini tidak memiliki port serial.

7. Biaya yang dibutuhkan untuk membeli modul Arduino cukup murah,

sehingga tidak terlalu menakutkan untuk membuat kesalahan.

8. Proyek Arduino ini dikembangkan dalam dunia pendidikan, sehingga bagi

pemula akan lebih cepat dan mudah untuk mempelajarinya.

9. Proyek Arduino memiliki banyak pengguna dan komunitas di internet yang

dapat membantu setiap kesulitan yang dihadapi.

Arduino sudah memproduksi begitu banyak sistem minimum. Beberapa diantaranya

adalah Arduino Uno, Arduino Leonardo, Arduino Due, Arduino Mega 2560, Arduino Mega

ADK, Arduino Mikro, Arduino Duemilanove, Arduino Nano. Dalam pembuatan tugas Akhir

ini, akan digunakan salah satu produk Arduino yang dikenal dengan nama Arduino Mega

2560 R3.

Arduino Mega 2560 seperti yang ditunjukkan pada Gambar 2.9 adalah sebuah board

mikrokontroler yang berbasis pada IC ATmega2560.Arduino Mega 2560 memiliki 54 buah

pin digital yang dapat digunakan sebagai input ataupun output. Dari 54 buah pin tersebut, 15

pin diantaranya dapat digunakan sebagai output Pulse Width Modulation (PWM), memiliki

16 buah pin analog input, 4 buah pin UART yang berfungsi sebagai port serial hardware,

sebuah osilator kristal 16 MHz, sebuah jack female untuk koneksi USB, jack female adaptor,

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 32: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

14

dan sebuah tombol reset. Alokasi penempatan pin dan keterangan masing-masing pin

ditunjukkan melalui Gambar 2.10 dan Tabel 2.1.

Dalam penelitian ini IC mikrokontroler yang digunakan adalah ATmega 2560.

Mikrokontroler ATmega 2560 berbentuk persegi dengan jumlah pin sebanyak 100 buah pin.

ATmega 2560 memiliki kemampuan untuk mengeksekusi instruksi program dalam satu

siklus clock tunggal, sehingga ATmega 2560 mampu mengoptimalkan konsumsi daya

dibandingkan kecepatan pemrosesan program.

Gambar 2.10 Penempatan Pin Arduino Mega 2560

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 33: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

15

Tabel 2.1 Keterangan Pin Arduino Mega 2560 R3[4].

No. Parameter Keterangan

1 ATmega 2560 IC mikrokontroler yang digunakan pada Arduino Mega 2560.

2 Jack USB Untuk komunikasi mikrokontroler dengan PC

3

Jack Adaptor Masukan power eksternal bila Arduino bekerja mandiri (tanpa

komunikasi dengan PC melalui kabel serial USB).

4

Tombol Reset Tombol reset internal yang digunakan untuk mereset modul

Arduino.

5 Pin Analog Menerima input dari perangkat analog lainnya.

1. Vin = Masukan tegangan input bagi Arduino ketika

menggunakan dumber daya eksternal.

2. 5 V = Sumber tegangan yang dihasilkan regulator internal

boardArduino.

6 Pin Power 3. 3,3 V = Sumber tegangan yang dihasilkan regulator internal

boardArduino. Arus maksimal pada pin ini adalah 50 mA.

4. GND = Pin ground dari regulator tegangan board Arduino.

5. IOREF = Tegangan Referensi.

6. AREF = Tegangan Referensi untuk input analog.

7 Light-Emitting Pin digital 13 merupakan pin yang terkoneksi dengan LED

Diode(LED)

internal Arduino.

8

Pin PWM Arduino Mega menyediakan 8 bit output PWM. Gunakan

fungsi analogWrite() untuk mengaktifkan pin PWM ini.

Digunakan untuk menerima dan mengirimkan data serial TTL

9 Pin Serial (Receiver(Rx), Transmitter(Tx)). Pin 0 dan 1 sudah terhubung

kepada pin serial USB to TTL sesuai dengan pin ATmega.

10 Pin Two Wire Terdiri dari Serial Data Line (SDA) dan Serial Interface Clock

Interface (TWI)

(SCL).

11

Pin Digital Pin yang digunakan untuk menerima input digital dan memberi

output berbentuk digital (0 dan 1 atau low dan high)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 34: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

16

Tabel 2.1 (lanjutan) Keterangan Pin Arduino Mega 2560 R3[4].

Gambar 2.11 Tampilan IDE Arduino

No. Parameter Keterangan

Terdiri dari 4 buah Pin :

1. Master In Slave Out (MISO)

Jalur slave untuk mengirimkan data ke Master.

2. Master Out Slave In (MOSI)

Pin Serial Jalur master untuk mengirimkan data ke peralatan.

12

Peripheral

3. Serial Clock (SCK)

Interface(SPI) Clock yang berfungsi untuk memberikan denyut pulsa ketika

sedang menyinkronkan transmisi data oleh master

4. Slave Select (SS)

Pin untuk memilih jalur slave pada perangkat tertentu.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 35: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

17

Tabel 2.2 Keterangan tombol pada tampilan IDE Arduino.

No Tombol Nama Fungsi

1

Verify

Menguji apakah ada kesalahan pada

program atau sketch. Apabila sketch

sudah benar, maka sketch tersebut

akan dikompilasi. Kompilasi adalah

proses mengubah kode pada

program ke dalam kode mesin.

2

Upload Mengirimkan kode mesin hasil

kompilasi ke board Arduino

3 New Membuat sketch baru

4

Open Membuka sketch yang sudah ada

5 Save Menyimpan sketch

6 Serial

Monitor

menampilkan data yang dikirim dan

diterima melalui komunikasi serial.

IDE Arduino membutuhkan beberapa pengaturan yang digunakan untuk mendeteksi

board Arduino yang sudah dihubungkan ke computer. Beberapa pengaturan tersebut adalah

mengatur jenis board yang digunakan sesuai dengan board yang terpasang dan mengatur

jalur komunikasi data melalui perintah Serial Port seperti terlihat pada Gambar 2.11 dan

table 2.2. Kedua pengaturan tersebut dapat ditemukan pada pull down menu Tools.

2.2.1. Serial Peripheral Interface (SPI).

SPI merupakan salah satu jenis transfer data serial tidak sinkron yang menghubungkan

dua atau lebih perangkat mikrokontroler, dimana satu perangkat berperan sebagai tuan

(master) dan perangkat lainnya sebagai hamba (slave). Hubungan antara tuan dan hamba

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 36: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

18

dapat dilihat pada Gambar 2.12. Terdapat duah buah register geser (shift register) dan

sebuah pembangkit pulsa yang terhubung pada empat jalur yaitu [3]:

1. SCLK yang berfungsi untuk mengatur pulsa tuan dan hamba.

2. MOSI (Master Output Slave Input) yang merupakan jalur data dari tuan

menuju hamba.

3. MISO (Master Input Slave Output) yang merupakan jalur data dari hamba

menuju tuan.

4. SS (Select Slave) yang berfungsi mengaktifkan hamba.

Gambar 2.12 Hubungan Tuan dan Hamba pada Sistem Komunikasi SPI [3]

Komunikasi SPI merupakan salah satu jenis komunikasi serial. Pada komunikasi serial

data ditransmisikan satu per satu bit, sehingga data yang masuk dan keluar di tuan atau

hamba bergeser satu per satu bit seiring dengan masukan pulsa dari pembangkit pulsa dan

akan berakhir saat telah mencapai 8 kali pergeseran (8 bit) [3].

Pengaturan komunikasi SPI pada ATmega 2560 melibatkan beberapa register, seperti:

SPCR, SPSR, dan SPDT.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 37: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

19

2.2.2. SPCR – SPI Control Register

Gambar 2.13 Register Kontrol SPI (SPCR) [3].

Register Kontrol SPI pada Gambar 2.13 terdiri dari delapan buah bit yang masing-

masing memiliki fungsi dan penjelasan sebagai berikut [3]:

1. Bit 7 – SPIE: SPI Interrupt Enable. SPIE merupakan bit yang mengaktifkan

fasilitas interupsi pada SPI.

2. Bit 6 – SPE: SPI Enable. SPE merupakan bit yang dapat mengaktifkan atau

menonaktifkan komunikasi SPI. Jika SPE bernilai 1 (tinggi) maka

komunikasi SPI akan aktif dan bisa digunakan, sedangkan jika bernilai 0

(rendah) maka komunikasi SPI tidak aktif.

3. Bit 5 – DORD: Data Order. DORD merupakan bit yang mengatur urutan

pengiriman data saat komunikasi berjalan. Jika DORD bernilai 1 maka urutan

pengiriman dimulai dari bit LSB (Low Sign Bit) sedangkan jika bernilai 0

maka urutan pengiriman data dimulai dari bit MSB (Most Sign Bit).

4. Bit 4 – MSTR: Master or Slave Select.MSTR merupakan bit yang mengatur

mikrokontroler bertindak sebagai tuan atau hamba. Jika MSTR bernilai 1

maka mikrokontroler bertindak sebagai tuan, sedangkan jika bernilai 0 maka

bertindak sebagai hamba. Bit MSTR tidak akan dapat diatur jika pin SS di

konfigurasi sebagai masukan, karena apabila pin SS di konfigurasi sebagai

masukan maka penentuan mikrokontroler bertindak sebagai tuan atau hamba

dilakukan dengan cara membaca level tegangan pada pin SS.

5. Bit 3 – CPOL: Clock Polarity.CPOL merupakan bit yang mengatur jenis

tepian pulsa yang digunakan sebagai acuan pembacaan data. Jika CPOL

bernilai 1 maka pembacaan data dilakukan setiap tepian turun, sedangkan jika

bernilai 0 pembacaan data setiap tepian naik.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 38: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

20

6. Bit 2 – CPHA: Clock Phase.CPHA merupakan bit yang mengatur

pembacaan data pada fase tepian pulsa awal atau akhir. Jika CPHA bernilai

1 maka pembacaan data dilakukan saat fase pulsa akhir, sedangkan jika

bernilai 0 maka pembacaan data saat fase awal.

7. Bit 1, 0 - SPR1, SPR0: SPI clock Rate Select 1 and 0. Kedua bit ini mengatur

kecepatan pulsa untuk komunikasi pada table 2.3. Pengaturan ini dilakukan

hanya pada saat mikrokontroler bertindak sebagai tuan. Sehingga

mikrokontroler yang bertindak sebagai hamba hanya bisa menerima pulsa

saja, tidak dapat menghasilkan pulsa sendiri. Keadaan seperti ini yang biasa

disebut dengan sinkronus, yang artinya kedua perangkat memiliki pulsa yang

sama.

Tabel 2.3 Hubungan Kecepatan Pulsa dengan Frekuensi Osilasi[3].

2.2.3. SPSR – SPI Status Register.

Gambar 2.14 Register Keadaan SPI (SPSR)[3].

SPI2x SPR1 SPR0 Frekuensi Pulsa

0 0 0 fosc/4

0 0 1 fosc/16

0 1 0 fosc/64

0 1 1 fosc/128

1 0 0 fosc/2

1 0 1 fosc/8

1 1 0 fosc/32

1 1 1 fosc/64

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 39: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

21

1. Bit 7 – SPIF: SPI Interrupt Flag. SPIF merupakan bit yang memberikan

tanda jika proses pengiriman data 1 byte (8 bit) sudah selesai, karena

pengirimian data dalam komunikasi SPI dilakukan per 8 bit. Jika proses

pengiriman data telah selesai maka SPIF akan bernilai 1 (tinggi), dan saat

proses pengiriman data belum genap 8 bit, maka SPIF akan selalu bernilai 0

(rendah).

2. Bit 6 – WCOL: Write Collision Flag. WCOL merupakan bit yang

memberikan tanda jika terjadi proses pembacaan data pada register data SPI

(SPDR) selama komunikasi berjalan. Selama proses pembacaan data

berlangsung bit WCOL akan bernilai 1.

3. Bit 5:1 – Reserved Bit. Bit-bit ini diabaikan (tidak digunakan dalam

komunikasi SPI) dan harus selalu bernilai 0 (rendah).

4. Bit 0 – SPI2X: Double SPI Speed Bit. SPI2X merupakan bit yang

menjadikan kecepatan pulsa menjadi dua kali lipat lebih cepat, seperti terlihat

pada Tabel 2. Hal ini berarti kecepatan komunikasi bertambah cepat dua kali

lipat.

2.2.4. SPDR – SPI Data Register.

Gambar 2.15 Register Data SPI (SPDR) [8]

Register data SPI merupakan register yang digunakan untuk menyimpan data yang

dikirim atau diterima pada komunikasi SPI pada Gambar 2.15.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 40: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

22

2.3. 10 dof IMU (Inertial Measurement Unit) Sensor GY- 80

Gambar 2.1610 dof IMU (Inertial Measurement Unit) Sensor GY- 80

Modul sensor 10 dof IMU (Inertial Measurement Unit) Sensor GY- 80 terdiri dari

beberapa 4 sensor yaitu, 3 axis Gyro, 3 axis Accelerometer, 3 axis Magnetometer, dan

Barometer terlihat pada Gambar 2.16. Semua sensor tersebut berkomunikasi menggunakan

protokol I2C bus sehingga dibutuhkan 4 jalur yaitu :

1. GND – Ground

2. Supply voltage atau tegangan sumber +3.5 volt dan +5 volt.

3. SCL untuk I2C clock.

4. SDA untuk I2C data.

2.3.1. Gyro Sensor L3G4200D

Gyro Sensor L3G4200D memiliki 3-axis angular rate atau rate 3 sudut sumbu XYZ,

yang artinya sensor akan memberikan data jika ada perbandingan perubahan sensor terhadap

sumbu gerak X,Y,dan Z. Gambar 2.17 memperlihatkan 3-axis angular rate pada sensor dan

pin koneksi sensor.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 41: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

23

Gambar 2.17 Arah sudut rate sensor dan Pin Connection L3G4200D[8].

Adapun beberapa fitur yang dimiliki Gyro Sensor L3G4200D adalah sebagai berikut

[8]:

1. Memiliki 3 pilihan skala dengan bandwidth ± 250 / ± 500 / ± 2.000 dps.

2. I2C/SPI komunikasi digital output.

3. 16 bit-rate data output.

4. Tegangan supply 2.4 volt sampai 3.6 volt.

5. Bekerja pada suhu -40°C sampai +85°C.

Tabel 2.3 menjelaskan 8 bit register yang terdapat pada Gyro Sensor L3G4200D.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 42: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

24

Tabel 2.4 Control Register pada Sensor Gyro [8].

Alamat SAD (Slave Address) 110100Xb juga dapat digunakan untuk memulai

komunikasi dengan sensor gyro dengan cara pin SDO dapat digunakan untuk memodifikasi

LSB slave address. Pin SDO akan terhubung dengan sumber tegangan apabila nilai LSB “1”

(address 1101001b). sebaliknya SDO akan terhubung ke ground apabila nilai LSB “0”

(address 1101000b).

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 43: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

25

Sensor Gyro L3G4200 memiliki 3-axis angular rate data, data ini diperoleh dengan

cara mengaktifkan Control Register 1 pada sensor itu sendiri. Register mapping-nya bisa

dilihat pada table 2.4. Tabel 2.5 memperlihatkan Control Register 1

Tabel 2.5 Control Register 1

Zen, Yen, dan Xen merupakan Z axis enable, Y axis enable, dan X axis enable. Nilai

Zen, Yen, dan Xen akan enable jika diberi nilai “1”, sedangkan Pada Control Register 1 ini

mempunyai nilai default 00000111b jadi tidak perlu diubah.

Karena data transfer angular rate sebesar 2byte, maka harus dipastikan data sebesar

2byte tersebut berasal dari waktu yang sama dengan cara mengatur BDU bit (Block Data

Update) = “1”. BDU bit ini dapat diatur dengan cara merubah Control Register 4 yang

semula defaultnya 00000000b menjadi 10000000b. dapat dilihat pada table 2.6.

Tabel 2.6 Control Register 4

Fungsi dari BDU bit adalah membatasi pengiriman output register untuk sumbu X,Y,Z

agar tidak terupdate sampai pembacaan data selesai.

Setelah selesai mengaktifkan fungsi BDU bit, Sensor Gyro L3G4200D perlu di

kalibrasi untuk mendapatkan nilai offset yang akan digunakan untuk pengukuran saat

pesawat diterbangkan.

Pada Tabel 2.3 memperlihatkan bahwa masing masing sumbu angular rate X,Y,Z

memiliki 2 alamat register. Selanjutnya, program berkomunikasi dengan gyro untuk dapat

membaca data dan mendapatkan data dari 28hexa atau 40desimal untuk register data output

X, agar memperoleh data X,Y,Z yang masing masing memiliki 2 register address

dibutuhkan autoincrement dengan cara menambah MSB alamat register output = “1” . Jadi

alamat register output berubah dari 40desimal menjadi (40+128)decimal = 168desimal.

Gambar 3.4 adalah bagan alir penggunaan data output sesnsor Gyro L3G4200D pada

Flight Controller. Proses dimulai dengan pembacaan data pada alamat register output sensor

sumbu X,Y,Z dari 28h sampai 6 byte berikutnya menggunakan fungsi autoincrement.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 44: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

26

Selanjutnya program meminta pengiriman 6 register data menggunakan fungsi loop

while, untuk dapat mengambil data satu persatu. Dengan demikian didapatkan data berupa

angular rate sumbu X sebagai roll, sumbu Y sebagai pitch, dan sumbu Z sebagai yaw

2.3.2. Barometric Pressure Sensor BMP085

Barometric Pressure Sensor BMP085 adalah sebuah sensor tekanan udara yang

digunakan untuk mengetahui level ketinggian pada wahana atau drone. Dengan mengetahui

tekanan udara permukaan air laut, ketinggian dapat diperoleh dengan rumus[6] :

𝒌𝒆𝒕𝒊𝒏𝒈𝒈𝒊𝒂𝒏 = 𝟒𝟒𝟑𝟑𝟎 × (𝟏 − (𝑷

𝑷𝒐)

𝟏

𝟓.𝟐𝟓𝟓) (2.2)

Dengan Po = 1013.25hPa

Jadi setiap perubahan tekanan udara = 1hPa sebanding dengan 8.43 meter dari

permukaan laut. Lihat Gambar 2.18

Gambar 2.18 Grafik nilai ketinggian dengan tekanan udara terukur[6].

Gambar 2.19 memperlihatkan bagan alir cara mengukur suhu dan tekanan udara pada

sensor BMP085. Selanjutnya setiap bagian bagian pada bagan alir tersebut akan

didefinisikan pada Gambar 2.21.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 45: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

27

Gambar 2.19 bagan alir Pengukuran suhu dan tekanan udara pada sensor BMP085

[5].

Kalibrasi dibutuhkan untuk mendapatkan variable nilai yang akan digunakan untuk

perhitungan tekanan udara. Kalibrasi ini mempunyai beberapa koefisien yang memiliki 16

bit data dan 2 register address. Gambar 2.20 adalah koefisien kalibrasi pada sensor BMP085

Gambar 2.20 Koefisien kalibrasi sensor BMP085[5]

Pada Gambar 2.19 menunjukan algoritma untuk pengukuran tekanan udara dan suhu.

Hasilnya perhitungan suhu dan tekanan udara setiap 1 Pa (= 0.01hPa = 0.01mbar) dan suhu

setiap 0.01°C.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 46: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

28

Gambar 2.21 Perhitungan Suhu dan Tekanan Udara pada BMP085[5].

Pengukuran suhu dan tekanan udara dapat dilihat pada Gambar 2.22. Setelah kondisi

start, Master mengirim alamat write, register address dan control register data. Selanjutnya

BMP085 mengirim acknowledgement (ACKS) setiap 8 bit data ketika data diterima. Lalu

Master mengirim kondisi Stop setelah ACKS terakhir.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 47: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

29

Gambar 2.22 Timming diagram untuk pengukuran tekanan udara[5].

Keterangan :

S Start

P Stop

ACKS Acknowledge_by_slave

ACKM Acknowledge_by_Master

NACKM Not_Acknowledge_by_Master

Tabel 2.5 digunakan untuk mengatur kecepatan sampling pada pengukuran tekanan

udara. Kecepatan sampling ini bisa diatur dengan mengatur control register sesuai yang ada

pada table tersebut.

Tabel 2.7 nilai Control Register untuk setiap oversampling settings (osrs)[5].

2.4. Kontroler PID.

Setiap kekurangan dan kelebihan dari masing-masing kontroler P, I dan D dapat saling

menutupi dengan menggabungkan ketiganya secara paralel menjadi kontroler proposional

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 48: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

30

plus integral plus diferensial (kontroller PID) seperti pada Gambar 2.23. Elemen-elemen

kontroller P, I dan D masing-masing secara keseluruhan bertujuan untuk mempercepat reaksi

sebuah sistem, menghilangkan offset dan menghasilkan perubahan awal yang besar.

Gambar 2.23 Blok diagram kontroler PID analog

Keluaran kontroller PID merupakan jumlahan dari keluaran kontroler proporsional,

keluaran kontroler integral. Gambar 2.24 menunjukkan hubungan tersebut

Gambar 2.24 Hubungan dalam fungsi waktu antara sinyal keluaran dengan masukan

untuk kontroller PID

Karakteristik kontroler PID sangat dipengaruhi oleh kontribusi besar dari ketiga

parameter P, I dan D. Penyetelan konstanta Kp, Ti, dan Td akan mengakibatkan penonjolan

sifat dari masing-masing elemen. Satu atau dua dari ketiga konstanta tersebut dapat disetel

lebih menonjol dibanding yang lain. Konstanta yang menonjol itulah akan memberikan

kontribusi pengaruh pada respon sistem secara keseluruhan.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 49: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

31

2.4.1. Kendali PID Digital[7].

Kontroler adalah komponen yang berfungsi mengurangi sinyal kesalahan . Tipe

kontroler yang paling populer adalah kontroler PID . Elemen – elemen kontroler P , I dan D

masing – masing secara keseluruhan bertujuan untuk mempercepat reaksi sebuah sistem ,

menghilangkan offset dan menghasilkan perubahan awal yang besar.

Fungsi utama dari kontroler digital sama dengan kontroler analog .Perbedaan yang

utama yaitu konroler digital tidak dapat menerima sinyal analog langsung. Dengan

keterbatasan tersebut maka diperlukan ADC untuk mengubah sinyal analog ke bentuk digital

dalam bentuk bilangan biner dan sebaliknya DAC untuk mengubah data digital menjadi data

analog. Gambar 2.25 memperlihatkan blok diagram sebuah kendali digital.

Pada kendali PID digital untuk memperoses algoritma PID dengan cara yang efisien

maka proses dari integral dan diferensial diubah ke dalam bentuk aljabar yang ringkas.

Bentuk aljabar yang digunakan adalah perkalian , pembagian , penjumlahan dan

pengurangan dengan mengacu pada algoritma kontroler analog.

Gambar 2.25 Blok diagram kendali digital

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 50: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

32

Transfer function dari sistem berdasarkan Gambar 2.25 di atas

𝑢

𝑠(𝑠) = 𝐻(𝑠) = 𝐾𝑝 (1 +

1

𝑇𝑖𝑠+ 𝑇𝑑𝑠) (2.3)

Dalam domain waktu:

𝑢(𝑡) = 𝐾𝑝 (𝑒(𝑡)1

𝑇𝑖𝑠∫ 𝑒(𝑡)𝑑𝑡

𝑡

0+ 𝑇𝑑

𝑑𝑒(𝑡)

𝑑𝑡) (2.4)

Karena data E(n+1) adalah data yang akan datang dan belum tersedia , maka

perhitungan data yang akan datang digunkan data yang saat ini E(n) jika n adalah t untuk

setiap sampel waktu maka persamaan diskritnya :

𝑉(𝑛) = 𝐾𝑝𝐸(𝑛) + 𝐾𝑖𝑇 ∑ 𝐸(𝑖)𝑖=𝑛𝑇𝑖=0 +

𝐾𝑑

𝑇[𝐸(𝑛) − 𝐸(𝑛 − 1)] (2.5)

Dengan 𝐾𝑖 = 𝐾𝑝 + 𝑇

𝑇𝑖 dan 𝐾𝑑 =

𝐾𝑝+𝑇𝑑

𝑇 T= waktu sampling

Dengan hasil penyederhanaan nilai sigma (2.9) maka di peroleh:

𝑈(𝑛) = 𝑢(𝑛 − 1) + 𝐾𝑝(𝑒(𝑛) − 𝑒(𝑛 − 1)) + 𝐾𝑖 𝑒(𝑛) + 𝐾𝑑(𝑒(𝑛) − 2𝑒(𝑛 − 1)) +

𝑒(𝑛 − 2)) (2.6)

2.5. Inter Integrated Circuit (I2C)

Inter Integrated Circuit atau sering disebut I2C adalah standar komunikasi serial dua

arah menggunakan dua saluran yang didisain khusus untuk mengirim maupun menerima

data. Sistem I2C terdiri dari saluran SCL (Serial Clock) dan SDA (Serial Data) yang

membawa informasi data antara I2C dengan pengontrolnya. Piranti yang dihubungkan

dengan sistem I2C Bus dapat dioperasikan sebagai Master dan Slave. Master adalah piranti

yang memulai transfer data pada I2C Bus dengan membentuk sinyal Start,

mengakhiri transfer data dengan membentuk sinyal Stop, dan membangkitkan

sinyal clock. Slave adalah piranti yang dialamati master.

Sinyal Start merupakan sinyal untuk memulai semua perintah, didefinisikan sebagai

perubahan tegangan SDA dari “1” menjadi “0” pada saat SCL “1”. Sinyal Stop merupakan

sinyal untuk mengakhiri semua perintah, didefinisikan sebagai perubahan tegangan SDA

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 51: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

33

dari “0” menjadi “1” pada saat SCL “1”. Kondisi sinyal Start dan sinyal Stop seperti tampak

pada Gambar 2.26.

Gambar 2.26 Kondisi Sinyal Start dan Stop [11].

Sinyal dasar yang lain dalam I2C Bus adalah sinyal acknowledge yang disimbolkan

dengan ACK Setelah transfer data oleh master berhasil diterima slave, slave akan

menjawabnya dengan mengirim sinyal acknowledge, yaitu dengan membuat SDA menjadi

“0” selama siklus clock ke 9. Ini menunjukkan bahwa Slave telah menerima 8 bit data

dari Master. Kondisi sinyal acknowledge seperti tampak pada Gambar 2.27.

Gambar 2.27 Sinyal ACK dan NACK

Dalam melakukan transfer data pada I2C Bus, kita harus mengikuti tata cara yang

telah ditetapkan yaitu:

1. Transfer data hanya dapat dilakukan ketikan Bus tidak dalam keadaan sibuk.

2. Selama proses transfer data, keadaan data pada SDA harus stabil selama SCL

dalam keadan tinggi. Keadaan perubahan “1” atau “0” pada SDA hanya dapat

dilakukan selama SCL dalam keadaan rendah. Jika terjadi perubahan keadaan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 52: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

34

SDA pada saat SCL dalam keadaan tinggi, maka perubahan itu dianggap

sebagai sinyal Start atau sinyal Stop.

Gambar 2.28 Transfer Bit pada I2C Bus

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 53: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

35

BAB 3

PERANCANGAN ALAT

Flight Controller pada sistem quadcopter menggunakan sensor IMU (Inertial

Measurement Unit) berbasis Mikrokontroller ATMEGA 2560 terdiri dari 3 bagian, yaitu unit

input, pengolah, dan unit output seperti pada Gambar 3.1. Unit input terdiri atas, Receiver

dan sensor IMU. Unit Pengolah terdiri atas mikrokontroler Arduino Mega 2560. Unit Output

terdiri atas ESC (Electronic Speed Controller) dan Motor Brushless.

Gambar 3.1 Diagram blok keseluruhan Flight Controller pada sistem quadcopter

menggunakan sensor IMU (Inertial Measurement Unit) berbasis Mikrokontroller

ATMEGA 2560

Receiver akan menerima data yang akan diubah menjadi sinyal 4 channel ( naik-turun,

maju-mundur, kanan-kiri, putar kanan-kiri ) dan akan dihubungkan ke Arduino Mega 2560

melalui pin 50 sampai pin 53 dan D10 berdasakan protocol komunikasi SPI. Sensor IMU

menggunakan 10dof (degree of freedom) IMU Sensor module duhubungkan dengan

mikrokontroler Arduino Mega 2560 pin SDA.20 dan SCL.21. Pada Output mikrokontroler

Arduino Mega 2560 untuk ESC menggunakan pin PWM.4 sampai PWM.7.

III

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 54: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

36

3.1. Rancangan dan Pemilihan Hardware

Flight Controller pada sistem quadcopter menggunakan sensor IMU (Inertial

Measurement Unit) berbasis Mikrokontroller ATMEGA 2560 tersusun atas :

1. Frame Quadcopter konfigurasi “X”.

2. Modul ArduinoMega 2560.

3. 10 dof IMU Sensor GY-80

4. Batterai LiPo 4000mAh.

5. ESC Hobbyking 30A.

6. Motor Brushless Turnigy 800Kv.

7. Propeller 8 inch.

Berdasarkan spesifikasi sistem, dibutuhkan sensor 10 dof IMU GY-80 karena modul

sensor ini memiliki 4 buah sensor didalamnya dan memungkinkan wahana untuk dapat

memanfaatkan semua sensor untuk kebutuhan yang lebih baik. Selain itu biaya lebih murah

daripada sebuah modul hanya 1 macam sensor.

Peneliti memilih Arduino Mega 2560 R3 karena tersedia port SDA dan SCL sebanyak

2 pasang untuk port compass modul GPS-Compass pada autonomous mode dan port

compass sensor IMU pada manual mode. Selain itu pada Arduino Mega 2560 R3

Pada bagian output, peneliti menggunakan brushless motor Turnigy Multistar 2216-

800KV 14Pole Multi-Rotor Outrunner. Brushless motor dipilih untuk quadcopter karena

ringan dan memiliki daya yang besar. Jika motor yang digunakan adalah brushless motor,

maka tipe ESC yang digunakan adalah brushless ESC. Peneliti menggunakan brushless

ESC/UBEC 30A/3A Hobbyking karena nilai batas arus ESC ini lebih besar daripada arus

yang dikeluarkan oleh brushless motor yang digunakan. Selain itu UBEC 3A bisa digunakan

sebagai power supply mikrokontroller Arduino Mega 2560.

3.2. Konstruksi Hardware

Bentuk fisik dari wahana quadcopter menggunakan sensor IMU (Inertial

Measurement Unit) berbasis Mikrokontroller ATMEGA 2560 dapat dilihat pada Gambar 3.2.

masing masing komponen telah ditunjukkan anak panah didalam Gambar tersebut.dimensi

wahana adalah 50cmx50cm, dengan tinggi 30cm.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 55: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

37

Posisi sensor harus berada pada tengah atau perpotongan Motor 1 - 3 dan Motor 2 – 4.

Dalam memposisikan Arduino 2560 dan Sensor harus diberi spacer dan menggunakan

peredam getaran seperti busa atau karet. Hal ini dilakukan supaya arduino dan sensor tidak

mengalami gangguan getaran karena output motor brushless saat wahana terbang.

Gambar 3.3 memperlihatkan wiring mikrokontroler arduino mega 2560 dengan

beberapa komponen pendukung penelitian antara lain, modul Sensor Gy-80, RFM12-

433Mhz, dan 4 ESC. Di dalam Gambar memperlihatkan jika Servo adalah sebagai ESC.

Gambar 3.4 memperlihatkan modul receiver RFM01-433Mhz yang dihubungkan

melalui pin ICSP pada arduino mega 2560. Modul receiver ini yang akan digunakan sebagai

penerima kontrol dari GCS dalam bentuk beberapa paket data.

Terdapat wiring tambahan seperti pembagi tegangan supply yang diinputkan ke pin

A0. Hal ini dilakukan supaya program dapat mengetahui level baterai atau tegangan supply

yang akan digunakan sebagai sistem fail-safe. Output dari sistem fail-safe level baterai ini

berupa led indikator pada pin D12.

Gambar 3.2 Bentuk Fisik Rancangan Hardware Quadcopter menggunakan sensor

IMU (Inertial Measurement Unit) berbasis Mikrokontroller ATMEGA 2560

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 56: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

38

Gambar 3.3 Wiring Arduino Mega 2560, Sensor Gy 80, RFM12-433, dan ESC.

Gambar 3.4 RFM01-433 sebagai receiver.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 57: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

39

Tabel 3.1 Deklarasi Pin Arduino Mega 2560

3.3. Perancangan Perangkat Lunak

Diagram alir utama sistem Flight Controller pada sistem quadcopter menggunakan

sensor IMU (Inertial Measurement Unit) berbasis Mikrokontroller ATMEGA 2560 dapat

dilihat pada Gambar 3.2. Sedangkan untuk pendeklarasian pin pin pada Arduino Mega 2560

dapat dilihat pada table 3.1

3.3.1. Diagram Alir Program Utama

Pada diagram alir Gambar 3.6, saat kontroler on, program akan memulai proses awal

yaitu inisialisasi. Pada tahap ini, program akan memproses deklarasi, pengaturan sensor

gyro, kalibrasi sensor gyro, pengaturan Receiver, kalibrasi ESC, ataupun perhitungan level

baterai.

Pada proses pengambilan keputusan untuk siap terbang, Receiver akan mengirimkan

data. Jika data Receiver nilai throttle = 0 pwm dan yaw = 0 pwm, maka status Flight

Controller menjadi Siap Terbang. Jika data Receiver nilai throttle ≠ 0 pwm atau yaw ≠ 0

pwm, maka program terus akan mengulang sampai nilai throttle = 0 pwm dan yaw = 0 pwm.

Setelah itu proses persiapan akan memberikan output pada ESC 10 pwm untuk menandakan

motor berputar dan siap untuk diterbangkan.

Nomor Pin Arduino Tipe Keterangan

A0 Analog Input Pin pembacaan level baterai

50 Komunikasi SPI

51 Komunikasi SPI

52 Komunikasi SPI

53 Komunikasi SPI

D10 Komunikasi SPI

SDA20 Komunikasi Input SDA IMU Sensor GY-80

SCL21 Komunikasi Input SCL IMU Sensor GY-80

PWM4 Output PWM Output ke ESC 1

PWM5 Output PWM Output ke ESC 2

PWM6 Output PWM Output ke ESC 3

PWM7 Output PWM Output ke ESC 4

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 58: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

40

Selanjutnya program akan menunggu apakah Receiver mengirimkan data throttle. Jika

Receiver sudah mengirimkan data nilai throttle, maka program akan memulai proses

subrutin Terbang.

Pada subrutin terbang, program akan memproses beberapa data antara lain, pembacaan

sensor gyro, pembacaan sensor barometer, perhitungan PID, dan pemberian nilai output pada

ESC.

Selama wahana terbang, data ketinggian akan terus dibaca sampai mencapat batas

ketinggian yang di tetapkan, misal 20 meter. Jika wahana melewati batas ketinggian yang

ditetapkan, program akan mengurangi output ESC yang akan berpengaruh terhadap

kecepatan motor, sehingga wahana tidak akan lebih tinggi dari batas ketinggian 20 meter.

Jika nilai output untuk ESC < 1050 artinya setiap kecepatan motor berada pada kondisi

terendah, dengan kata lain wahana berada pada tanah. Pada tahap ini program akan meminta

klarifikasi apakah wahana akan diterbangkan lagi atau berhenti dengan cara memberikan

output pada ESC = 1000 yang artinya motor berhenti.

Jika mendarat maka Receiver akan memberikan nilai throttle = 0 pwm dan yaw = 255

pwm untuk membuat perintah yang akan memberikan nilai output pada ESC = 1000 yang

artinya motor berhenti dan proses selesai. Jika tidak maka program akan menunggu apakah

Receiver mengirimkan data throttle dan wahana melakukan penerbangan lagi.

1 2

34

depan

kanan

belakang

kiri

Gambar 3.5 Konfigurasi ESC pada wahana

Gambar 3.5 memperlihatkan konfigurasi ESC pada wahana. Adapun batas batas

output pwm (0 sampai 255) untuk tiap kondisi terbang pada ESC dapat dilihat pada Tabel

3.2.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 59: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

41

Tabel 3.2 Batas batas output pwm untuk setiap kondisi terbang

Kondisi ESC 1 ESC 2 ESC 3 ESC 4

Maju Tetap Tetap +30 +30

Mundur +30 +30 Tetap Tetap

Kiri Tetap +30 +30 Tetap

Kanan +30 Tetap Tetap +30

Berputar CW +10 Tetap +10 Tetap

Berputar CCW Tetap +10 Tetp +10

Gambar 3.6 Diagram Alir Subrutin Menghitung Sensor

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 60: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

42

Gambar 3.7 Diagram Alir Utama Flight Controller pada sistem quadcopter

menggunakan sensor IMU berbasis Mikrokontroller ATMEGA 2560

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 61: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

43

3.3.2. Diagram Alir Subrutin Terbang

Gambar 3.8 Diagram alir subrutin Terbang

Pada Gambar 3.7 menjelaskan diagram alir subrutin terbang. Diagram alir dimulai

dengan memulai proses subrutin menghitung sensor. Pada subrutin menghitung sensor,

program menghitung nilai sensor gyro untuk diambil beberapa parameter data sensor gyro

yang akan digunakan untuk perhitungan PID kestabilan wahana. Bukan hanya menghitung

sensor gyro, program juga menghitung sensor barometer yang akan diambil nilai tekanan

udaranya dan selanjutnya dihitung level ketinggian wahana. Nilai level ketinggian wahana

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 62: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

44

ini yang akan digunakan sebagai parameter untuk membatasi level ketinggian wahana tidak

boleh lebih dari 20 meter.

Selanjutnya setelah pembacaan sensor gyro, program memulai proses perhitungan

nilai input PID sensor gyro.

Pada subrutin menghitung PID, program akan mulai menghitung parameter parameter

PID seperti input PID sensor gyro yang telah didapatkan di proses sebelumnya, perhitungan

error, perhitungan Pout, Iout, Dout, dan PID output.

Setelah subrutin menghitung PID, program akan menghitung pulsa untuk input ESC.

Perhitungan ini didapatkan dengan nilai throttle dikurangi dengan PID output. Karena input

ESC harus 1000µS sampai 2000µS, maka nilai input ESC tidak boleh lebih dari 2000. Jika

nilai ESC > 2000, maka nilai input ESC = 2000.

Selanjutnya, data ESC dikirimkan ke port output PWM untuk menggerakkan motor.

3.3.3. Diagram Alir Subrutin Menghitung Sensor

Pada Gambar 3.8 diagram alir subrutin menghitung sensor program akan memproses

2 data, yaitu data sensor gyro berupa angular rate sumbu XYZ dan data sensor barometer

berupa ketinggian.

Pada proses menghitung sensor gyro, program akan berkomunikasi dengan sensor

gyro menggunakan protokol komunikasi I2C. untuk dapat mengetahui nilai angular rate

sumbu XYZ, program akan menyimpan data angular rate sumbu XYZ dari alamat register

28h + 6byte berikutnya. Data output sensor gyro adalah data yang sudah di kalibrasi pada

proses inisialisasi pada Gambar 3.6.

Pada proses menghitung sensor barometer, program akan menjalankan bagan alir pada

Gambar 2.14 untuk memperoleh nilai tekanan udara. Selanjutnya nilai untuk memperoleh

level ketinggian wahana, ketinggian dapat diperoleh menggunakan persamaan 2.2.

Selanjutnya program akan kembali ke main program untuk digunakan nilai output

gyro sensor sebagai perhitungan PID untuk kestabilan wahana dan output sensor barometer

sebagai parameter untuk membatasi level ketinggian wahana agar tidak melebih dari

ketinggian 20 meter.

wahana telah mencapat batas yang telah ditetapkan, misal 30 meter, program akan

memberikan nilai output pada setiap ESC = -100 pwm. Pemeberian nilai output pada ESC

ini digunakan untuk wahana tidak melebihi batas ketinggian yang telah ditetapkan.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 63: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

45

3.3.4. Diagram Alir Subrutin Menghitung PID

Gambar 3.9 Diagram Alir Subrutin Menghitung PID

Gambar 3.10 Blok Diagram PID sistem quadcopter

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 64: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

46

Pada Gambar 3.10 memperlihatkan bagaimana PID pada wahana memproses sensor

gyro sebagai parameter untuk mengatur kestabilan terbang wahana. Nilai sensor gyro harus

sama dengan nilai Receiver, karena jika pilot tidak menginginkan ada perubahan wahana

saat terbang dan berada pada posisi level tertentu, maka output gyro = 0 = Receiver input.

Agar wahana stabil, nilai setpoint gyro harus = 0 dan nilai Receiver harus = 0.

Dari persamaan 2.6, dapat dihitung nilai masing masing elemen pada kontroler PID

seperti pada Gambar 3.11.

Gambar 3.11 Logika Dasar perhitungan Parameter P,I,D pada sistem kontrol PID

quadcopter

Gambar 3.9 adalah bagan alir subrutin menghitung PID sistem kestabilan wahana.

Pertama, user akan memberikan nilai Kp, Ki, dan Kd pada program pada proses inisialisasi

pada Gambar 3.4.

Nilai Kp, Ki, dan Kd diperoleh dengan melakukan uji coba wahana, dengan

memberikan nilai awal masing masing parameter untuk setiap sumbu pada sensor gyro, Kp

= 1 , Ki = 0.03 dan Kd = 15 [1]. Setelah itu dilakukan uji coba dengan mengganti ganti nilai

Kp,Ki, dan Kd sampai wahana mencapat batas kestabilan yang diinginkan.

Selanjutnya perhitungan PID output masing masing controller seperti kestabilan untuk

roll, pitch dan yaw.Selanjutnya program akan kembali ke main program sebagai parameter

untuk memberikan nilai input pada masing masing ESC guna mengatur kestabilan wahana.

P_out = (gyro – Receiver) x Kp

I_out = I_outt-1 + ((gyro – Receiver) x Ki)

D_out = (gyro – Receiver – gyrot-1 – Receivert-1 ) x Kd

+ PID output

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 65: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

47

3.3.5. Receiver Input

Gambar 3.12 Diagram Alir Receiver Input

Receiver Input pada sistem navigasi wahana menggunakan komunikasi SPI. Pada

Gambar 3.12 memperlihatkan diagram alir dari paket data diterima sampai data menjadi

command untuk navigasi wahana throttle, roll, pitch, dan yaw.

Karena GCS memberi perintah setiap saat untuk navigasi wahana melalui receiver

input, maka program receiver input harus berada pada fungsi interrupt pada mikrokontroler

ATMEGA 2560.

Dengan menggunakan komunikasi SPI, paket data untuk navigasi wahana throttle,

roll, pitch, yaw adalah :

@Aa-Bb-Cc-Dd#

Paket data tersebut berada pada EEPROM mikrokontroler ATMEGA 2560, sehingga

program perlu pembacaan paket data.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 66: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

48

Setelah pembacaan EEPROM, data harus dibagi dengan format karakter “@” adalah

header komunikasi SPI, karakter “A”,”B”,”C”,”D” berturut-turut adalah karakter data untuk

throttle, yaw, pitch, yaw. Dan karakter “a” adalah data 8 bit mewakili pwm.

Setelah didapatkan masing masing perintah navigasi, data dikonversi menggunakan

fungsi mapping pada arduino 2560 untuk mendapatkan input receiver rendah 0 = 1000 dan

255 = 2000. Selanjutnya pengubahan data akan menjadi parameter untuk perhitungan PID

dan keluaran ESC.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 67: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

49

BAB 4

HASIL DAN PEMBAHASAN

Bab ini berisi Gambar fisik hardware yang dibuat, pengujian wahana, hasil

pengambilan data, pembahasan tentang data yang diperoleh, dan pembahasan program yang

digunakan di mikrokontroller. Data yang akan dibahas terdiri dari hasil pengambilan data

sensor, data output kontroller PID, dan pengiriman paket data ke wahana.

Hasil pengujian berupa data-data yang diperoleh dapat memperlihatkan bahwa

hardware dan software yand dirancang telah bekerja dengan baik atau tidak. Berdasarkan

data-data tersebut dapat dilakukan analisis terhadap proses kerja alat yang kemudian dapat

digunakan untuk menarik kesimpulan akhir.

4.1. Bentuk Fisik Wahana, dan Flight Controller

Bentuk fisik wahana secara keseluruhan ditunjukkan Gambar 4.2. Sistem

menggunakan 2 buah mikrokontroler, mikrokontroler pertama digunakan sebagai Flight

Controller seperti pada Gambar 4.1, mikrokontroller ke 2 digunakan sebagai pengolah paket

data dari transceiver RFM12. Hal ini dilakukan supaya flight controller tidak mengubah

parameter Kp, Ki, dan Kd pada kontroler PID, karena jika modul komunikasi RFM12

digunakan bersamaan dalam mikrokontroler pada flight controller maka akan memakan

waktu hingga 400 mS dalam proses looping untuk menerima paket data navigasi dari GCS.

Frame yang digunakan adalah Frame jenis SK450 untuk quadcopter. Frame tidak

membuat sendiri karena tidak adanya alat pendukung yang baik dalam pembuatan frame

untuk wahana quadcopter, karena dalam pembuatan frame quadcopter sangat diutamakan

letak jarak antara keempat motor yang presisi, titik pusat keseimbangan, berat, kekuatan dan

efek gangguan getaran saat motor dijalankan. Untuk itu, perancangan yang digunakan adalah

frame SK450 karena memiliki berat 300 gram, bahan menggunakan serat karbon, dan

memiliki fitur peredam getaran antar motor yang menggunakan batang serat karbon.

Saat keadaan hover, Flight Controller tetap akan menerima getaran yang ditimbulkan

akibat motor jika flight controller dihubungkan frame dengan menggunakan spacer plastik.

Akibatnya wahana akan menjadi tidak terkendali, untuk itu digunakan peredam getaran

IV

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 68: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

50

untuk flight controller menggunakan busa. Peredam menggunakan busa ini mampu

meredam getaran yang ditimbulkan akibat dari putaran motor.

Pada wahana juga diberi satu buah modul battery checker. Modul ini digunakan untuk

mengukur tegangan baterai dan mengatur setpoint tegangan baterai yang diinginkan. Jika

mencapai level tegangan battery low voltage, modul ini akan membunyikan buzzer sehingga

pilot akan mengetahui bahwa baterai mencapai level low voltage.

Rangkaian flight controller ditunjukan pada Gambar 4.3 . Untuk perancangan

rangkaian flight controller menggunakan aplikasi Fritzing pada PC dalam membuat jalur

I/O, led indikator, dan power distribution pada PCB. Terdapat 3 buah led indikator yang

disediakan oleh flight controller. Penjelasan led indikator dapat dilihat pada Tabel 4.1. Selain

itu juga terdapat 4 buah blinking led pada setiap motor sebagai indikator navigasi wahana ke

kanan kiri, depan belakang, atau berputar.

Gambar 4.1 Bentuk Fisik Wahana Quadcopter

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 69: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

51

Gambar 4.2 Wahana dengan Receiver RFM 12 menggunakan mikrokontroler

tambahan.

Gambar 4.3 Rangkaian Flight Controller

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 70: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

52

Tabel 4.1 Led Indikator pada wahana.

Tabel 4.2 PIN I/O pada Flight Controller.

Warna Led Fungsi Indikator Status Waktu

HIJAU

Deklarasi variable dan

deklarasi pin I/O On 2 detik

Kalibrasi sensor gyro Berkedip 4 detik

Menunggu sinyal receiver Berkedip sampai receiver on

Mengetahui jenis baterai

3 sell On 2 detik

Motor berputar On Sampai motor off

MERAH

Mengetahui jenis baterai

2 sell On 2 detik

Tegangan baterai rendah On Sampai ganti baterai

Hilang komunikasi

dengan GCS On

Sampai terhubung

kembali

BLINKING

LED Selama proses terbang On

Sampai hilang

komunikasi

Pin Fungsi Keterangan

Power sumber daya pada flight controller tersedia 2 pasang pin

5 volt menyediakan daya 5 volt tersedia 3 pin

3.3 volt menyediakan daya 3.3 volt tersedia 3 pin

GND ground tersedia 3 pin

A0 menghitung tegangan baterai tersedia 1 pin

A8-A15 receiver input untuk receiver

D10 ESC 1 motor depan kanan

D11 ESC 2 motor belakang kanan

D12 ESC 3 motor belakang kiri

D13 ESC 4 motor depan kiri

D20 SDA untuk sensor

D21 SCL untuk sensor

D23 led blingking motor 1

led indikator pada motor D25 led blingking motor 2

D27 led blingking motor 3

D29 led blingking motor 4

D30 led merah

led indikator D31 led hijau

D32 led blinking

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 71: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

53

Untuk I/O flight controller dapat dilihat letak dan fungsinya pada table 4.2. Flight

Controller menyediakan 28 pin tambahan yang bisa digunakan nantinya untuk modifikasi

wahana.

Sedangkan pin untuk sensor IMU berada dibawah papan PCB flight controller. Hal ini

dilakukan supaya kabel untuk menghubungkan sensor dengan mikrokontroller berada

dibawah dan tidak terlihat agar flight controller dapat terlihat lebih rapi.

4.2. Pengujian Wahana

4.2.1. Pengujian Sistem Utama

Gambar 4.4 wahana terbang dengan ketinggian 1m diatas lantai.

Pengujian sistem utama wahana dilakukan untuk mengetahui apakah wahana dapat

melakukan perintah sesuai navigasi atau tidak. Untuk pengujian gerak navigasi pada wahana,

pengujian dilakukan dengan mengikat keempat sisi frame pada wahana sehingga mudah

dilihat apakah wahana melakukan perintah sesuai dari perangkat navigasi pada GCS atau

tidak. Gambar 4.5 memperlihatkan bahwa wahana melakukan navigasi sesuai dengan

perintah kiri - kanan, maju - mundur, putar kanan - putar kiri yang diberikan dari perangkat

navigasi pada GCS.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 72: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

54

Gambar 4.4 memperlihatkan wahana dapat terbang dengan ketinggian 1 meter diatas

lantai. Pengujian pada Gambar 4.4 menggunakan perangkat navigasi Turnigy 9ch 2.4Ghz

Gambar 4.5 Wahana melakukan perintah sesuai dari perangkat navigasi pada GCS.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 73: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

55

Pada Gambar 4.6 memperlihatkan grafik nilai output PWM untuk salah satu ESC yaitu

ESC 1. Sistem akan memberikan pulsa sebesar 1000µS sebagai syarat utama sebagai

minimum throttle diberikan kepada ESC saat tidak ada perintah dari perangkat navigasi.

Untuk mempersiapkan wahana untuk terbang, perangkat navigasi harus memberikan

perintah throttle dan yaw pada posisi minimum, dan wahana akan memberikan pulsa sebesar

1200µS kepada masing masing ESC. Hal ini dilakukan supaya baling-baling berputar dan

menandakan bahwa wahana siap diterbangkan.

Saat wahana diterbangkan, perangkat navigasi harus mengendalikan wahana supaya

wahana dapat hovering atau melayang-layang diketinggian tertentu, karena wahana tidak

dapat hovering secara otomatis dan harus selalu dikendalikan oleh pilot. Wahana akan mulai

hover pada nilai output PWM untuk ESC sekitar 1600µS untuk baterai LiPo 2s, dan 1400µS

untuk baterai LiPo 3s.

Dalam pengujian batasan ketinggian, wahana berhasil mengurangi kecepatan masing

masing motor 50µS saat mencapai batas ketinggian yang ditetapkan,sedangkan didalam

perancangan pada bab sebelumnya adalah 100µS. Nilai 50µS ini dipilih karena wahana akan

turun secara cepat jika output motor dikurangi nilai sebesar 100µS.

Gambar 4.6 Grafik output ESC 1 saat wahana terbang.

0

200

400

600

800

1000

1200

1400

1600

1800

2000

11

72

343

514

685

856

102

71

19

81

36

91

54

01

71

11

88

22

05

32

22

42

39

52

56

62

73

72

90

83

07

93

25

03

42

13

59

23

76

33

93

44

10

54

27

64

44

74

61

84

78

94

96

05

13

15

30

25

47

35

64

45

81

5

outp

ut

ES

C

jumlah looping program

OUTPUT ESC 1

tidak siap terbang ESC = 1000µS

siap terbang ESC = 1200µS

Wahana hovering

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 74: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

56

4.2.2. Pengujian Waktu Looping Program

Pengujian waktu looping program ini bertujuan untuk mengetahui waktu yang

dibutuhkan untuk program mulai dari pembacaan nilai sensor, perhitungan nilai kontroller

PID, pengambilan data menggunakan fungsi Serial.print, hingga pemberian nilai untuk

masing masing ESC, termasuk program penerima dalam komunikasi menggunakan RFM12.

Tabel 4.3 memperlihatkan waktu yang dibutuhkan program selama satu kali proses sistem.

Idealnya sistem dapat bekerja dengan parameter kontroler Kp, Ki, dan Kd yang telah

ditentukan di sub bab 4.2.5 pada pengujian output PID, dengan waktu looping kurang lebih

4mS atau 4000µS.

Tabel 4.3 Waktu Looping Program

4.2.3. Pengujian Receiver Input

Pengujian Receiver ini bertujuan untuk mengetahui nilai pulsa pwm yang diterima

receiver dari GCS sesuai atau tidak. Nilai pulsa pwm pada remote control umumnya adalah

1000µS – 2000µS dengan periode 20mS. Dari nilai tersebut mikrokontroler akan

menghitung waktu lebar pulsa dengan kondisi ‘HIGH’ dalam microsecond.

Program flight controller keterangan waktu looping (µS) Status

sensor gyro disarm 2672 Bisa terbang

arming 3000 Bisa terbang

sensor gyro + baro disarm 15972 Tidak bisa terbang

arming 16250 Tidak bisa terbang

sensor gyro + Serial print 1 Serial print 4156 Bisa terbang

sensor gyro + Serial print 2 Serial print 8316 Tidak bisa terbang

sensor gyro + Serial print 3 Serial print 12480 Tidak bisa terbang

sensor gyro + Serial print 4 Serial print 16644 Tidak bisa terbang

sensor gyro + baro + Serial print

1 Serial print 16104 Tidak bisa terbang

sensor gyro + baro + Serial print

2 Serial print 16700 Tidak bisa terbang

sensor gyro + baro + Serial print

3 Serial print 16900 Tidak bisa terbang

penerima RFM 12 440000 Tidak bisa terbang

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 75: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

57

Gambar 4.7 memperlihatkan pulsa dari receiver yaitu pulsa throttle pada kondisi

minimum yaitu 1000µS atau 1mS. Sedangkan Gambar 4.8 memperlihatkan hasil

perhitungan pulsa receiver setelah diolah di mikrokontroler berturut-turut dari kiri (roll,

pitch, throttle, yaw). Pengujian ini membuktikan bahwa mikrokontroler menerima nilai

pulsa yang diterima receiver dari perangkat GCS.

Gambar 4.7 pulsa receiver throttle pada kondisi minimum yaitu 1000µS atau 1mS.

Gambar 4.8 hasil perhitungan pulsa receiver (roll, pitch, throttle, yaw).

Nilai throttle sesuai dengan Gambar 4.3

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 76: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

58

4.2.4. Pengujian Output untuk ESC

Pengujian nilai output untuk ESC ini bertujuan apakah ESC mau menerima nilai yang

telah diolah mikrokontroler yang akan digunakan sebagai perintah kepada masing masing

motor. Nilai-nilai tersebut merupakan nilai perhitungan throttle dengan output kontroler PID

pada sensor gyro. Selanjutnya nilai tersebut akan diubah menjadi suatu pulsa sebesar 1000µS

– 2000µS untuk ESC dengan cara mengaktifkan pin digital 10-13 dengan kondisi HIGH

selama waktu sesuai nilai-nilai tersebut dan akan diaktifkan LOW kembali sampai looping

berikutnya.

Sistem yang digunakan tidak menggunakan fungsi pwm yang disediakan arduino

mega 2560 karena output pwm pada arduino mega2560 berbeda dengan input pwm untuk

ESC. Lebar pulsa PWM pada arduino mega2560 adalah 0 – 2mS, sedangkan untuk input

ESC membutuhkan lebar pulsa 1 – 2mS.

Pada pengujian output untuk ESC ini, semua motor berhasil berputar sesuai nilai yang

diberikan oleh pin digital 10-13 (dalam contoh ini adalah 1200µS) pada Gambar 4.9.

Sedangkan Gambar 4.10 memperlihatkan pulsa gelombang 1200µS yang dihasilkan pin

output D10 untuk ESC1.

ESC hanya akan menggerakan motor dengan duty cycle minimal 1.79 % atau waktu

saat output LOW dibawah 58.000µS. pada Tabel 4.4 ,memperlihatkan pengujian jika waktu

saat output LOW lebih dari 58.000µS, ESC tidak akan memerintahkan motor untuk berputar.

Jadi jika 1 x looping program membutuhkan waktu lebih dari 58.000µS, ESC tidak bisa

memerintahkan motor untuk berputar. Selama looping program kurang dari 58.000µS, ESC

masih bisa memerintahkan motor untuk berputar.

Tabel 4.4 Pengujian pengaruh motor dengan waktu LOW pada ESC.

output HIGH (µS)

output LOW (µS)

duty Cycle Hasil

1000 4000 25.00% motor berputar

1000 8000 12.50% motor berputar

1000 12000 8.33% motor berputar

1000 16000 6.25% motor berputar

1000 20000 5.00% motor berputar

1000 24000 4.17% motor berputar

1000 28000 3.57% motor berputar

1000 32000 3.13% motor berputar

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 77: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

59

Gambar 4.9 output untuk setiap ESC (ESC 1, ESC 2, ESC 3, ESC 4).

4.2.5. Pengujian Output PID

Pengujian output PID dilakukan untuk mengetahui apakah masing masing sumbu pada

sensor gyro memberikan output kontroler PID yang benar terhadap masing masing ESC.

Prinsip utamanya adalah sinyal receiver pin A10 / throttle sebagai sinyal utama yang akan

di akumulasikan dengan output PID pitch, roll, dan yaw sesuai dengan Gambar 4.11

Tabel 4.4 (Lanjutan) Pengujian pengaruh motor dengan waktu LOW

pada ESC.

1000 36000 2.78% motor berputar

1000 40000 2.50% motor berputar

1000 44000 2.27% motor berputar

1000 48000 2.08% motor berputar

1000 52000 1.92% motor berputar

1000 56000 1.79% motor berputar

1000 58000 1.72% motor Tidak berputar

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 78: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

60

Gambar 4.10 Pulsa Gelombang output 1200µS yang dihasilkan pin D10 untuk ESC1.

Gambar 4.12 memperlihatkan grafik output kontroler pid pitch, roll, yaw dengan

maksimum nilai output kontroler adalah 100. Dari Gambar 4.12 dapat disimpulkan bahwa

jika wahana miring kekiri, output PID roll akan memberikan nilai -63 sehingga ESC 3 dan

ESC 4 akan bertambah nilainya dan akan memnyebabkan wahana kembali ke posisi normal

/ hover.

Dari pengujian output PID memperlihatkan Gambar 4.12 bekerja sesuai dengan

perintah yang akan dikirim kepada masing masing ESC.

Gambar 4.11 Akumulasi throttle dengan output pid pitch,roll,yaw.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 79: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

61

Gambar 4.12 Grafik output kontroler PID pitch, roll, dan yaw.

Sedangkan untuk menentukan nilai parameter Kp,Ki,dan Kd adalah sebagai berikut:

1. Menentukan nilai Kd mulai dari nilai terkecil, contoh Kd = 2. Lalu lihat

respon wahana.

2. Lalu perbesar nilai Kd, contoh 70. Jika respon wahana bergetar kurangi nilai

Kd sampai respon wahana tidak bergetar.

3. Tentukan nilai Kp mulai dari terkecil, contoh Kp = 2 Lalu lihat respon

wahana.

4. Lalu perbesar nilai Kp, contoh Kp = 10 Lalu lihat respon wahana, jika wahana

bergetar kurangi nilai Kp 50%. Lalu atur sampai respon wahana tidak

bergetar.

5. Tentukan nilai Ki mulai dari terkecil, contoh Ki = 0.01 lalu lihat respon

wahana, perbesar sampai respon wahana mulai bergetar. Saat wahana

bergetar, kurangi nilai Ki 25%.

Dalam pengujian kontroler PID ini, nilai-nilai parameter yang digunakan adalah Kp =

5, Ki = 0.08 dan Kd = 55.5 dengan siklus looping 3mS. Pada Tabel 4.5 memperlihatkan hasil

pengujian untuk menentukan parameter Kp, Ki, dan Kd pada kontroler PID. Sendangkan

pada Tabel 4.6 memperlihatkan pengaruh respon wahana terhadap waktu looping yang

berbeda dengan nilai Kp, Ki, Kd yang sama.

-150

-100

-50

0

50

100

150

1

27

53

79

105

131

157

183

209

235

261

287

313

339

365

391

417

443

469

495

521

547

573

599

625

651

677

703

729

755

781

outp

ut

PID

Jumlah looping program

NILAI OUTPUT PID

roll pitch yaw

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 80: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

62

Tabel 4.5 Hasil Pengujian untuk menentukan Kp, Ki, dan Kd

Tabel 4.6 Pengaruh respon wahana terhadap waktu looping program

Kp Ki Kd waktu looping

(µS) Hasil

0 0 2 3000 mundur kebelakang

0 0 70 3000 mundur kebelakang + sedikit bergetar

0 0 50 3000 tidak bergetar

2 0 55.5 3000 susah dikendalikan + respon lambat

10 0 55.5 3000 respon terlalu cepat + berosilasi

5 0 55.5 3000 susah merespon dan dikendalikan

5 0.01 55.5 3000 bisa terbang, respon lambat

5 0.3 55.5 3000 cepat berosilasi

5 0.1 55.5 3000 bisa terbang, respon terlalu cepat,

susah stabil

5 0.05 55.5 3000 bsia terbang, respon sedikit lambat,

susah stabil

5 0.08 55.5 3000 bisa terbang, merespon dan stabil

Kp Ki Kd waktu looping

(µS) Hasil

5 0.08 55.5 3000 bisa terbang, merespon dan stabil

5 0.08 55.5 5000 bisa terbang, merespon dan kurang

stabil

5 0.08 55.5 7000 bisa terbang, merespon dan sedikit

berosilasi

5 0.08 55.5 9000 bisa terbang, susah dikendalikan dan

berosilasi

5 0.08 55.5 11000 bisa terbang, sangat susah dikendalikan, osilasi besar

5 0.08 55.5 13000 tidak bisa terbang dan semakin

berosilasi

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 81: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

63

4.2.6. Pengujian Sensor Barometer

Pengujian sensor barometer dilakukan untuk mengetahui berhasil atau tidak program

membatasi wahana terbang di ketinggian tertentu, sehingga output motor berkurang.

Pengujian dilakukan dengan mencari ketinggian awal saat power pada wahana dihubungkan

dan menentukan di setpoin ketinggian, dalam contoh ini adalah 2 meter dari wahana mulai

take-off. Saat program mulai looping, wahana akan terus membaca ketinggian hingga

wahana mencapai setpoint ketinggian. Pada saat mencapai setpoin ketinggian, output masing

masing ESC akan berkurang 50µS.

Gambar 4.13 memperlihatkan grafik output pada salah satu ESC pada pengujian

ketinggian dengan ketinggian awal 205.38 mdpl. Lingkaran merah memperlihatkan saat

wahana telah mencapat setpoin ketinggian yaitu 207.38 mdpl, sehingga output ESC

berkurang 50µS.

Pada lingkaran merah juga memperlihatkan nilai grafik naik-turun secara cepat. Hal

ini disebabkan karena pembacaan output sensor barometer yang tidak tetap dengan error

kurang lebih 1 meter pada saat diuji dengan keadaan wahana diam. Output sensor barometer

ini dapat dilihat pada Gambar 4.14.

Pengujian sensor barometer ini dilakukan dengan manual (dibawa oleh tangan) atau

tidak menerbangkan wahana. Pada saat pengujian wahana dengan sensor barometer, waktu

looping program akan bertambah 16 mS sehingga akan mempengaruhi nilai parameter Kp,

Ki, Kd pada kontroler PID. Gambar 4.15 memperlihatkan nilai osilasi output salah satu ESC

semakin besar saat wahana diterbangkan dengan pembacaan sensor barometer.

Untuk mengatasi hal tersebut, pembacaan nilai ketinggian yang menggunakan sensor

barometer ini dilakukan 1 x 350 looping. Hasilnya wahana dapat terbang sampai level

ketinggian yang diinginkan.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 82: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

64

Gambar 4.13 Grafik output ESC pada pengujian ketinggian

Gambar 4.14 Grafik output sensor barometer saat keadaan wahana diam

0

200

400

600

800

1000

1200

1400

1600

1800

2000

12

54

97

39

71

21

145

169

193

217

241

265

289

313

337

361

385

409

433

457

481

505

529

553

577

601

625

649

673

697

721

745

769

793

817

outp

ut

ES

C

jumlah looping program

output ESC 1 saat pengujian ketinggian

204

204.5

205

205.5

206

206.5

207

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Ket

inggia

n

jumlah looping program

Output Sensor barometer

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 83: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

65

Gambar 4.15 Grafik nilai input untuk ESC 1 saat berosilasi.

4.2.7. Pengujian Navigasi dan Pengiriman Paket Data dari GCS ke

Receiver

Pengujian Navigasi untuk menggerakan wahana dilakukan untuk mengetahui benar

atau tidak gerak wahana saat dikendalikan menggunakan perangkat navigasi. Pengujian ini

dapat dilihat menggunakan led indicator yang terdapat dibawah masing masing motor. Dari

pengujian ini dapat disimpulkan bahwa wahana bergerak sesuai dengan perintah yang

diberikan dari perangkat Navigasi pada GCS seperti pada Gambar 4.5.

Saat pengiriman dan penerimaan paket data dari GCS ke wahana memerlukan waktu

yang cukup lama bagi siklus looping pada program, yaitu 400mS. Hal ini tentunya sangat

mempengaruhi nilai parameter Kp, Ki, dan Kd pada kontroler PID, sehingga wahana akan

merespon sangat lama.

Untuk itu sistem membutuhkan 1 buah mikrokontroler ATMEGA 2560 tambahan

sebagai penerima paket data dari GCS ke wahana sebagai kontrol untuk wahana. Dengan

adanya tambahan mikrokontroler ATMEGA 2560 lain, mikrokontroler utama untuk proses

terbang tetap akan memiliki waktu looping 4mS, sehingga dapat memungkinkan wahana

untuk terbang.

0

200

400

600

800

1000

1200

1400

1600

1800

2000

1 8

15

22

29

36

43

50

57

64

71

78

85

92

99

106

113

120

127

134

141

148

155

162

169

176

183

190

197

204

211

PW

M E

SC

jumlah looping program

Nilai output PID berosilasi

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 84: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

66

Namun dalam hal pengiriman paket data dari GCS ke wahana untuk kontrol manual

tetap memerlukan waktu kurang lebih 400mS, sehingga sulit untuk mengendalikan wahana

saat terbang.

4.2.8. Pengujian Baterai

Pengujian baterai ini dilakukan untuk mengetahui pengaruh daya angkat motor

brushless terhadap tegangan baterai. Pada Gambar 4.16 memperlihatkan grafik pengaruh

daya angkat terhadap tegangan baterai saat diberi nilai throttle 1500µS. Dari Gambar

tersebut dapat diketahui bahwa semakin rendah tegangan baterai maka semakin rendah juga

daya angkat motor. Pada spesifikasi motor brushless turnigy 1400Kv, daya angkat

maksimum dengan throttle max mencapai 780gram[].

Untuk itu output ESC memerlukan nilai tambahan seiring berkurangnya tegangan

baterai saat wahana terbang. Nilai ini didapat dengan cara menambahkan nilai ESC

sebelumnya dengan nilai 0% - 10% nilai ESC. Nilai tambahan ESC saat baterai berkurang

ini dapat dilihat pada Gambar 4.17 berupa grafik output ESC dengan tegangan baterai 12.4

volt sampai 9 volt untuk baterai LiPo 3s dan Gambar 4.18 berupa grafik output ESC dengan

tegangan baterai 8.2 volt sampai 6 volt untuk baterai LiPo 2s.

Gambar 4.16 Grafik daya angkat motor terhadap tegangan baterai.

260240

222204

187173

158

12.5 12 11.5 11 10.5 10 9.5

Day

a A

ngkat

(gra

m)

Tegangan Baterai (volt)

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 85: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

67

Gambar 4.17 Grafik nilai output ESC terhadap tegangan baterai 3s.

Gambar 4.18 Grafik nilai output ESC terhadap tegangan baterai 2s.

4.2.9. Pengujian Fail Safe System

Pengujian fail safe system ini dilakukan untuk mengetahui respon yang dilakukan

wahana apabila hilang komunikasi dengan perangkat navigasi atau daya baterai rendah.

1400

1450

1500

1550

1600

1650

1700

124

0

122

9

121

8

120

7

119

6

118

5

117

4

116

3

115

2

114

1

113

0

111

9

110

8

109

7

108

6

107

5

106

4

105

3

104

2

103

1

102

0

100

9

998

987

976

965

954

943

932

921

910

Outp

ut

ES

C

Tegangan Baterai (1240 = 12.4 volt)

Grafik nilai output ESC dengan tegangan baterai 3s

throttle sebelum ditambah throttle setelah ditambah

1440

1460

1480

1500

1520

1540

1560

1580

1600

1620

820

813

806

799

792

785

778

771

764

757

750

743

736

729

722

715

708

701

694

687

680

673

666

659

652

645

638

631

624

617

610

603

Outp

ut

ES

C

Tegangan Baterai (820 = 8.2 volt)

Grafik nilai output ESC dengan tegangan baterai 2s

throttle sesudah ditambah throttle sebelum ditambah

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 86: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

68

Pengujian failsafe untuk hilang komunikasi dengan perangkat navigasi dilakukan dengan

menerbangkan wahana pada keadaan hovering, lalu mematikan sumber daya perangkat

navigasi. Hasilnya program akan membaca pembaharuan waktu didalam mengolah sinyal

receiver, apabila tidak ada sinyal receiver, maka waktu tidak akan diperbaharui, sehingga

program akan mengurangi nilai throttle yang diterima terakhir dengan 0.025% nilai throttle

sebelumnya untuk membuat wahana turun secara perlahan . Seperti pada Gambar 4.18,

menunjukkan nilai salah satu ESC berubah saat perangkat navigasi dimatikan (pada

lingkaran merah) dan nilai output ESC akan semakin turun. Sistem ini digunakan untuk

autolanding secara perlahan pada wahana.

Untuk pengujian failsafe daya baterai rendah, sistem tidak melakukan pengiriman data

daya baterai kepada GCS karena dibutuhkan waktu yang cukup besar untuk mengirimkan

data melalui perangkat RFM12 menuju GCS. Untuk mengatasi hal tersebut, sistem

memanfaatkan modul battery checker yang ada dan dipasang pada wahana. Battery checker

ini memiliki fungsi membaca tegangan baterai dan mengatur setpoin tegangan baterai

rendah. Jika baterai mencapat tegangan setpoin, maka alat ini akan membunyikan buzzer

yang cukup keras, sehingga dapat didengar oleh pilot untuk menandakan baterai pada

keadaan low voltage.

Selain itu, failsafe untuk low voltage battery dan hilang komunikasi dengan perangkat

navigasi dapat dilihat melalui led indikator warna merah. Led merah akan menyala apabila

terdapat kondisi low voltage dan lost connection.

4.3. Pembahasan Perangkat Lunak

Program yang dibuat pada perancangan ini terdiri dari bebebrapa subrutin dan

mengacu pada gambar diagram alir pada bab sebelumnya. Program ini berfungsi sesuai yang

dirancang, berikut penjelasanya.

4.3.1. Inisialisasi

Inisialisasi dimulai dengan memasukan library <Wire.h>, dan pendeklarasian

variable-variable yang akan digunakan di dalam program, selain itu juga pengaturan

parameter Kp, Ki, dan Kd pada pitch,roll,dan yaw pada sensor Gyro.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 87: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

69

Gambar 4.19 Grafik failsafe system

Pada bagian inisialisasi juga sudah memulai progam void setup() yang berisi tentang

konfigurasi pin output untuk ESC, konfigurasi pin untuk lampu led, konfigurasi setting pada

sensor gyro dan barometer, kalibrasi sensor gyro dan barometer, konfigurasi pin input untuk

receiver, menentukan jenis baterai, dan menghitung tegangan awal baterai, serta menunggu

sinyal receiver.

Pada proses void setup(), konfigurasi yang membutuhkan waktu lebih dari 3 detik akan

melakukan perintah untuk memberikan pulsa sebesar 1000µS ke semua ESC. Hal ini

dilakukan karena apabila saat power dihubungkan dan ESC menerima input <1000µS atau

>2000µS selama lebih dari 5 detik, maka ESC akan memberi perintah kepada motor untuk

membunyikan buzzer. Jadi hal tersebut dilakukan agar saat proses konfigurasi motor tidak

berisik.

4.3.2. Subrutin Terbang

Subrutin Terbang ada didalam program main loop atau program utama jika memiliki

kondisi start = 2. Kondisi tersebut adalah kondisi saat motor sudah arming atau siap terbang.

Dalam subrutin terbang terdapat beberapa proses yang dilakukan, yaitu ;

1. Mengambil data sensor barometer setiap 1 x 350 looping program.

0

200

400

600

800

1000

1200

1400

1600

1800

0.0

03

0.5

61

1.1

19

1.6

77

2.2

35

2.7

93

3.3

51

3.9

09

4.4

67

5.0

25

5.5

83

6.1

41

6.6

99

7.2

57

7.8

15

8.3

73

8.9

31

9.4

89

10.0

47

10.6

05

11.1

63

11.7

21

12.2

79

12.8

37

13.3

95

13.9

53

14.5

11

15.0

69

15.6

27

16.1

85

16.7

43

17.3

01

outp

ut

ES

C

waktu (detik)

Grafik failsafe sistem

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 88: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

70

2. Mengambil data pitch, roll, dan yaw sensor gyro untuk input PID dengan cara

mengambil nilai terukur 20% yang akan ditambahkan dengan nilai

sebelumnya sebesar 80%. Hal ini dilakukan untuk mengurangi noise atau

gangguan pada sensor gyro. Nilai ini sudah di konversi kedalam desi degree

per second (ddps) dengan cara membagi nilai sensor terukur dengan hasil dari

pengubahan sensitivitas mili degree per second (mdps) menjadi desi degree

per second ddps.

3. Memberi perintah untuk led indikator sesuai perintah yang dikirim dari GCS

pada masing masing led dibawah motor.

4. Menghitung nilai setpoint yang dikirimkan dari perangkat remote GCS

dengan cara mengubah input receiver pitch, roll, yaw menjadi rate yang setara

dengan nilai input PID.

5. Memanggil subrutin menghitung PID.

6. Menghitung tegangan baterai dan juga menghitung tegangan baterai pada

saat baterai low voltage yang akan di indikasikan melalui led warna merah.

7. Mengurangi nilai masing masing ESC jika wahana terbang melebihi batas

ketinggian yang ditetapkan.

8. Mengkalkulasi output PID dengan nilai throttle. Hasil perhitungan ini yang

akan diindikasikan kepada setiap ESC untuk menggerakan masing-masing

motor. Dan juga menghitung nilai tambahan kepada setiap motor apabila

kinerja motor berkurang seiring dengan berkurangnya tegangan baterai.

9. Membuat pulsa untuk masing masing ESC sesuai dengan nilai ESC yang

telah dikalkukasikan sebelumnya. Pembuatan pulsa ini memanfaatkan fungsi

micros() yang disediakan oleh mikrokontroler ATMEGA2560 dengan cara

mengaktifkan pulsa HIGH selama waktu ESC yang telah dikalkulasi dan

mengaktifkan LOW saat waktu ESC sudah tidak berlaku lagi, sampai proses

looping berikutnya.

Didalam subrutin terbang terdapat fail safe system, system failsafe ini bertujuan

memberi perintah autolanding untuk wahana apabila terputus dari sistem navigasi pada

GCS. Cara kerjanya dengan mengukur waktu pada ISR (interrupt service routine) saat

receiver input menerima data dari perangkat receiver. Waktu tersebut digunakan sebagai

parameter pembanding waktu yang terdapat pada program main loop. Jika waktu program

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 89: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

71

mainloop lebih besar daripada waktu receiver input pada ISR, artinya receiver input tidak

menerima pulsa pwm dari perangkat receiver, maka system failsafe akan bekerja dengan

cara memberikan nilai pada throttle sebesar 1550µS, sehingga ESC akan memerintahkan

motor untuk berputar dengan pwm 1550µS dan wahana akan landing secara perlahan.

4.3.3. Subrutin Menghitung Sensor

Subrutin Menghitung Sensor dipanggil dengan perintah sensor_gyro();. Pemanggilan

ini dilakukan selama proses terbang atau dalam fungsi main loop. Perhitungan sensor ini

dimulai dengan komunikasi dengan sensor gyro pada alamat 1101001b atau 105 desimal.

Selanjutnya mulai membaca nilai sensor dengan cara membaca register 28h pada gyro dan

menerima 6byte data sensor yang masing masing mewakili nilai pitch, roll, yaw. Setelah

data diterima, nilai terukur pada masing masing sumbu akan dikurangi dengan nilai kalibrasi

sensor, sehingga didapatkan nilai sensor sesungguhnya.

Sedangkan sensor barometer dipanggil dengan perintah hitung_baro();. Pemanggilan

ini dilakukan setiap 1 x 350 looping program dalam fungsi main loop. Pada Gambar 2.21

memperlihatkan proses pengambilan nilai tekanan udara pada sensor baro yang selanjutnya

dihitung untuk diperoleh nilai ketinggian.

4.3.4. Subrutin Menghitung PID

Subrutin menghitung PID dipanggil dengan perintah menghitung_pid();. Pemanggilan

ini dilakukan selama proses terbang atau dalam fungsi main loop dan harus sesudah

mendapatkan nilai sensor yang terukur. Dalam subrutin menghitung pid, terdapat 3 proses

yang dilakukan untuk menghitung masing masing output pid pada pitch, roll, dan yaw.

Perhitungan ini dimulai dengan mencari error dari input roll dikurangi dengan setpoin

dari receiver. Selanjutnya perhitungan dilakukan dengan mengakumulasi parameter Kp, Ki,

Kd sehingga didapatkan nilai output PID pitch, roll, dan yaw. Nilai tersebut memiliki offset

yang sudah diatur di proses inisialisasi yaitu ± 100.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 90: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

72

4.3.5. Receiver Input

Subrutin receiver input berjalan diluar fungsi main loop yaitu didalam fungsi Interrupt

Service Routine (ISR) . pada bab sebelumnya, pengambilan paket data yang dikirim dari

perangkat navigasi GCS dimuat dalam satu buah mikrokontroler dengan proses terbang.

Namun, sistem merancang pengambilan paket data dimuat dalam mikrokontroler yang

berbeda seperti yang telah dibahas di Pengujian Pengiriman Paket Data dari GCS ke

Receiver sub bab 4.2.5.

Sistem menggunakan PORTK Arduino 2560 sebagai receiver input. Karena PORTK

adalah analog input A8 - A15, maka diperlukan pengubahan input analog menjadi input

digital dengan cara DDRK = 0. Karena PORTK adalah pin interrupt 16 -23, maka PCIE2

diaktifkan untuk melakukan interrupt pada pin A8 - A15. Jadi, selama proses main loop

berlangsung Fungsi ISR akan mengaktifkan interrupt vector pada PCINT2_vect sehingga

data receiver akan terus diperbaharui sesuai perintah perangkta navigasi dari GCS.

Untuk mendapatkan nilai receiver, maka sistem memanfaatkan waktu micros() yang

telah disediakan oleh mikrokontroler ATMEGA2560 untuk menghitung waktu receiver

input HIGH sampai LOW. Dalam rentang waktu HIGH ke LOW tersebut didapatkan nilai

sesuai dengan perintah receiver yang diterima dari perangkat navigasi pada GCS.

4.3.6. Program Penerima

Program untuk penerima paket data navigasi dari GCS ini terdapat didalam

mikrokontroler yang terpisah namun memiliki spesifikasi yang sama dengan mikrokontroler

yang digunakan untuk proses terbang.

Program penerima ini dimulai dengan inisialisasi data meliputi pemanggilan library

<SPI.h> untuk protocol komunikasi Serial, deklarasi variable, dan cek komunikasi untuk

menghubungkan RFM12 pada GCS dengan RFM12 pada wahana. Cek komunikasi

dilakukan dengan cara GCS akan mengirimkan paket data “??”. Jika data “??” diterima maka

wahana akan mengirimkan balasan paket data “!!” sehingga komunikasi GCS ke waha telah

terhubung.

Lalu dalam proses main loop, program akan menunggu GCS mengirimkan paket data

untuk pemilihan mode terbang manual atau autonomous. Pemilihan mode terbang dilakukan

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 91: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

73

dengan cara GCS akan mengirimkan paket data “++”. Jika data “++” diterima maka wahana

akan mengirimkan balasan paket data “..” sehingga terpilih mode terbang manual dan maka

perangkat navigasi akan aktif.

Selanjutnya GCS akan mengirimkan paket data navigasi kepada wahana. Paket data

navigasi tersebut berupa nilai throttle, pitch, roll, dan yaw. Paket data navigasi yang diterima

wahana adalah,

0-511 0-511 0-511 0/4/9 #

throttle pitch roll yaw akhir data

Selanjutnya paket data tersebut akan di mapping 1000µS sampai 2000µS, sistem

membatasi untuk roll dan pitch adalah 1350µS sampai 1650µS, dan yaw 1250µS sampai

1750µS. Hal ini dilakukan supaya saat pengoprasian wahana, dengan delay penerimaan data

yang mencapai 400mS, wahana akan mempunyai batas gerak kurang lebih 35dps untuk roll

dan pitch, dan 120dps untuk yaw.

Nilai masing masing navigasi tersebut akan diproses untuk diubah menjadi pulsa

sebesar 1000µS sampai 2000µS, dengan cara mengaktifkan pin digital 10-13 bernilai HIGH

selama waktu sesuai nilai masing masing navigasi tersebut, dan akan bernilai LOW saat

waktu sudah tidak berlaku lagi sampai proses looping berikutnya.

Program penerima hanya memilih satu kali pilihan mode terbang, jika ingin diubah

dari mode manual menjadi autonomous, maka semua perangkat GCS dan wahana harus di

reset ulang dengan cara melepas dan menghubungkan kembali power GCS dan wahana.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 92: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

74

BAB 5

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Dari hasil pengujian dan pengambilan data Flight Controller pada sistem quadcopter

menggunakan sensor IMU (Inertial Measurement Unit) berbasis Mikrokontroller ATMEGA

2560, dapat disimpulkan bahwa :

1. Wahana dapat terbang dan melakukan perintah kanan – kiri, maju – mundur,

berputar kanan – berputar kiri, sesuai yang dikendalikan dari perangkat

navigasi, serta tidak terbang lebih dari level ketinggian yang ditetapkan.

2. Flight Controller dapat terbang dengan parameter kontroler PID, Kp = 5, Ki

= 0.08, dan Kd 55.5 dalam waktu looping program kurang lebih 4mS.

3. Sensor barometer tidak dapat memperbaharui data setiap 1 × looping

program. Untuk itu pembacaan data sensor barometer dilakukan setiap 1 ×

350 looping atau setiap 1.4 detik.

4. Failsafe sistem untuk tegangan baterai dilakukan dengan memanfaatkan

modul battery checker, sedangkan failsafe sistem untuk lost connection,

wahana akan melakukan autolanding secara otomatis

5.2. Saran

Saran – saran dari pengembangan Flight Controller pada sistem quadcopter

menggunakan sensor IMU (Inertial Measurement Unit) berbasis Mikrokontroller ATMEGA

2560 adalah :

1. Membuat altitude lock, sehingga wahana dapat terbang diketinggian yang

ditetapkan dengan mengunci level ketinggian.

2. Memanfaatkan sensor akeselerometer untuk penerbangan wahana yang lebih

stabil.

V

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 93: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

75

DAFTAR PUSTAKA

[1] -----,-----, https://www.youtube.com/watch?v=2MRiVSyedS4, diakses 20 November

2015.

[2] -----,-----, http://firmanikhsan.com/mengenal-quadcopter/ diakses 23 November

2015.

[3] -----,-----, http://www.atmel.com/images/atmel-2549-8-bit-avr-microcontroller-

atmega640-1280-1281-2560-2561_datasheet.pdf, diakses 23 November 2015.

[4] -----,-----, Arduino Introduction, http://arduino.cc/en/Guide/Introduction , diakses 23

November 2015

[5] -----,-----, http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Sensors/Pressure/ BST-

BMP085-DS000-06.pdf, diakses 23 November 2015.

[6] -----,-----, https://www.sparkfun.com/tutorials/253, diakses 23 November 2015.

[7] -----,-----, Gupta Sudhir.,2002,Element of Control System.Prentince Hall ,London.

[8] -----,-----, http://www.st.com/stwebui/static/active/en/resource/technical/

document/datasheet/CD00265057.pdf , diakses 25 November 2015.

[9] -----,-----, http://www.medanrc.com/content/18-memilih-elektronik-wahana, diakses

25 November 2015.

[10] -----,-----, http://www.kaskus.co.id/thread/000000000000000007779353/ multirotor-

copter-quadcopter/ , diakses 25 November 2015.

[11] -----,-----, http://purnomosejati.wordpress.wordpress.com/2011/08/25/ mengenal-

komunikasi-i2cinter-integrated-cicuit/ , diakses 5 Januari 2016.\

[12] -----,-----, http://fen222.blogspot.co.id/2012/01/mengenal-baterai-lithium-polimer-

lipo.html , diakses 2 februari 2016.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 94: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

76

LAMPIRAN

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 95: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

L1

Blok Diagram Sistem Keseluruhan

Mikrokontroler

KeypadPerangkat

Navigasi

Layar

Penampil

Transceiver TransceiverMikrokontroler

TambahanMikrokontroler

Modul

GPS-Compass

ESC

1,2,3,4

Motor

1,2,3,4

Gyrometer

Barometer

GROUND CONTROL STATION WAHANA

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 96: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

L2

Gambar Rangkaian Flight Controller

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 97: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

L3

Data Sensor Gyro (mdps)

g_roll g_pitch g_yaw

-7.19 2.45 0.63

-6.19 1.45 6.63

1.81 -8.55 21.63

-0.19 -4.55 2.63

8.81 5.45 12.63

-435.19 65.45 49.63

-2217.19 27.45 -59.37

289.81 11.45 -28.37

1539.81 -51.55 33.63

637.81 -19.55 19.63

478.81 -501.55 212.63

2788.81 691.45 355.63

1191.81 123.45 271.63

-1663.19 -117.55 -317.37

-1112.19 -13.55 -53.37

-252.19 9.45 -30.37

-247.19 30.45 8.63

19.81 -13.55 -0.37

-302.19 -1237.55 -224.37

-47.19 -2193.55 -58.37

-6.19 2302.45 -4.37

33.81 1106.45 79.63

238.81 963.45 203.63

9.81 -1.55 -13.37

37.81 30.45 -265.37

-63.19 1401.45 156.63

-45.19 -1.55 41.63

19.81 -1304.55 -53.37

-17.19 -679.55 22.63

48.81 -436.55 30.63

Data Sensor Barometer

Ketinggian (meter)

206.23

205.72

205.72

206.48

205.72

205.72

205.72

204.95

205.46

205.72

205.97

204.95

205.72

205.72

206.23

Data percobaan daya angkat

motor

teg baterai

volt throttle

daya angkat

(gram)

12.5 1500 260

12 1500 240

11.5 1500 222

11 1500 204

10.5 1500 187

10 1500 173

9.5 1500 158

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 98: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

L4

Data Output PID

looping

ke

Output

Roll

Output

Pitch

Output

Yaw

3 -0.01 0.06 0.02

33 0.01 0.06 0.33

63 -0.07 0.01 0.11

93 -63.39 4.24 -4.91

123 -1.9 0.42 0.87

153 -1.74 -0.39 -0.97

183 29.81 -0.42 5.76

213 -15.21 0.44 -0.8

243 6.55 -1.15 1.37

273 0.5 0.25 1.46

303 0.9 -43.6 -7.07

333 0.52 7.68 2.06

363 1.07 0.02 -1.34

393 0.63 0.82 1.49

423 0.28 1.3 1.14

453 0.49 -9.36 11.21

483 0.25 1.2 3.36

513 0.55 0.8 0.23

543 0.66 0.84 0.18

573 0.93 0.84 -99.25

603 0.84 0.54 93.72

633 0.2 0.66 4.7

663 0.41 1.23 87.78

693 0.36 0.31 -93.78

723 -0.01 -0.06 -27.88

753 0.88 0.59 -2.17

783 0.82 0.77 -2.14

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 99: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

L5

FLIGHT CONTROLLER TAMPAK ATAS

FLIGHT CONTROLLER TAMPAK BAWAH

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 100: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

L6

Manual Penggunaan Sistem Quadcopter

Manual Penggunaan Sistem Quadcopter

Sistem quadcopter terdiri dari sebuah quadcopter sebagai wahana dan sebuah Ground

Control Stations (GCS) sebagai perangkat pemantau dan pengontrol wahana. Wahana dapat

beroperasi pada 2 jenis pilihan pengendalian, yaitu: Manual dan Autonomous. Untuk jenis

pengendalian manual, wahana akan bergerak sesuai dengan perintah perangat navigasi pada

GCS. Sedangkan untuk jenis pengendalian autonomous, wahana akan bergerak secara

mandiri dari sebuah titik awal ke sebuah titik tujuan hasil masukkan dari pengguna.

Spesifikasi Wahana

1. Menggunakan 2 buah mikokontroler Arduino Mega 2560 R3.

2. Menggunakan modul transceiver RFM12S 433MHz dengan antarmuka SPI.

3. Motor penggerak : Motor Brushless Turnigy 1400Kv

4. Ecs: 30A

5. Sensor: Barometer (manual), Gyro (manual/autonomous) , GPS (autonomous), dan

Compass (autonomous).

6. Membutuhkan catu daya baterai lithium polymer (li-po) 2 cell atau 3 cell.

Spesifikasi GCS

1. Menggunakan mikrokontoler Arduino Mega 2560 R3.

2. Menggunakan modul transceiver RFM12S 433MHz dengan antarmuka SPI.

3. Menggunakan keypad 3x4 sebagai perangkat masukkan nilai parameter.

4. Menggunakan LCD 20x4 sebagai layar penampil informasi.

5. Terdapat sebuah perangkat navigasi untuk mengontrol wahana (manual).

6. Membutuhkan catu daya AC 220 volt.

Risha Augerah Nenu Lema,

Ferdinandus Hans, dan

Adovan Pujianta Ginting

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 101: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

L7

Prosedur Penggunaan

Langkah

ke Deskripsi Proses

1 Rangkai komponen penyusun Quadcopter dan GCS sesuai

panduan Wahana

2 Sambungkan power dari baterai ke wahana Wahana

3 Tunggu sampai blinking LED pada modul GPS-Compass

menyala Wahana

4 Lepas sambungan power antara baterai dan wahana Wahana

5 Lepas sambungan power rangkaian tambahan Wahana

6 Sambungkan power dari baterai ke wahana Wahana

7 Tunggu sampai blinking LED hijau pada flight controller

untuk menyala Wahana

8 Sambungkan power dari rangkaian flight controller ke

rangkaian tambahan Wahana

9 Sambungkan power ke GCS GCS

10 Tunggu proses cek komunikasi GCS

11 Pilih mode pengendalian yang diinginkan GCS

Catatan:

Masing-masing mikrokontroler pada wahana telah terinstal program

flight_controller.ino dan autonomous.ino, sedangkan pada GCS terinstal

program GCS.ino.

Proses kerja GCS berlangsung hanya untuk satu pemilihan pengendalian. Jika

menghendaki berganti jenis pengendalian maka perlu dilakukan reset ulang

GCS dengan mematikan daya GCS.

Panduan Pengendalian Manual

Pengguna dapat menghubungkan kabel konektor dari port perangkat navigasi pada

GCS ke perangkat navigasi saat pengendalian manual terpilih. Jika led indikator pada

perangkat navigasi menyala, maka perangkat navigasi telah berhasil di aktifkan dan siap

untuk digunakan. Berikut ini merupakan rangkaian dari perangkat navigasi:

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 102: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

L8

Untuk dapat menggerakan wahana naik dan turun dilakukan dengan menggerakkan

potensiometer throttle. Jika potensiometer throttle di gerakan ke atas maka wahana juga akan

bergerak ke atas. Pergerakan wahana maju atau mundur dilakukan dengan menggerakan

potensimeter pitch, sedangkan untuk ke kiri atau ke kanan dilakukan dengan menggerakan

potensiometer roll. Berbeda dengan throttle, pitch, dan roll, pada yaw adalah berupa push

button, sehingga untuk mengendalikan gerakan wahana berputar ke kiri dengan menekan

tombol yaw kiri dan begitu juga untuk pergerakan memutar ke kanan dengan yaw kanan.

Panduan Pengendalian Autonomous

Pada saat wahana bekerja pada pengendalian autonomous, pengguna dapat

memerintahkan wahana untuk bergerak ke sebuah titik tujuan secara otomatis. Namun

demikian, pengguna tetap dapat memantau pergerakan dan titik koordinat wahana secara

aktual melalui GCS. Pengguna tetap harus memantau secara langsung jarak pengoperasian

wahana, pengoperasian wahana harus dilakukan kurang dari 100 meter.

Berikut ini adalah prosedur penggunaan wahana dan GCS saat pengendalian

autonomous terpilih:

1. GCS akan menampilkan titik koordinat dari wahana pada LCD. Pengguna

disarankan untuk mencatat titik koordinat awal.

2. Silakan masukan koordinat tujuan tujuan dari wahana melalui keypad 3x4

pada GCS. Nilai yang diberikan pada masing-masing lattitude dan longitude

hanya enam digit terakhir. Jika koordinat tujuan sudah bener maka pengguna

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 103: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

L9

dipersilakan mengunci koordinat tujuan dengan menekan tombol ‘*’. Jika

terdapat kesalahan dalam memasukan koordinat, pengguna bisa menghapus

nilai koordinat yang diberikan dengan menekan tombol ‘#’.

3. Wahana akan melakukan arming (kondisi dimana keempat mulai berputar).

4. Wahana mulai bermanuver dan akan berputar untuk menghadap ke utara.

5. Wahana akan mulai bergerak menuju ke titik tujuan dengan menyelesaikan

nilai lattitude terlebih dahulu. Setelah nilai lattitude terpenuhi, wahana akan

melanjutkan pergerakan untuk menyelasaikan nilai longitude.

6. Seluruh proses pergerakan wahana dan titik koordinat wahana dapat dipantau

di layar penampil GCS.

7. Saat prosedur 5 selesai dikerjakan, wahana akan mengecek ulang kesesuaian

titik koordinat tempat wahana berada dengan koordinat tujuan. Jika didapati

nilai koordinat belum sesuai, maka wahana akan mengulang prosedur ke-5

kembali.

8. Seluruh prosedur pengendalian autonomous akan berhenti saat koordinat

aktual wahana telah masuk ke dalam rentang nilai koordinat tujuan ±5 meter.

9. Saat wahana telah mencapai koordinat tujuan, maka wahana akan landing

dengan sendirinya.

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 104: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

L10

Rangkaian Mikro-1, Mikro-2, dan GCS

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 105: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

L11

LISTING PROGRAM FLIGHT CONTROLLER

#include <Wire.h>

//Setting PID dan level ketinggian di bawah ini

float kp_roll = 5.0;

float ki_roll = 0.08;

float kd_roll = 55.5;

int pid_offset_roll = 100;

float kp_pitch = kp_roll;

float ki_pitch = ki_roll;

float kd_pitch = kd_roll;

int pid_offset_pitch = pid_offset_roll;

float kp_yaw = 40.0;

float ki_yaw = 0.2;

float kd_yaw = 0.0;

int pid_offset_yaw = 100;

//batas ketinggian dari permukaan awal take-off (meter)

int batas_tinggi = 3;

//Deklarasi variable

byte l_1, l_2, l_3, l_4;

float rx_in_1, rx_in_2, rx_in_3, rx_in_4;

int esc_1, esc_2, esc_3, esc_4;

int throttle, teg_baterai;

unsigned long tc_1, tc_2, tc_3, tc_4, esc_timer, waktu_0_esc;

unsigned long t_1, t_2, t_3, t_4, waktu_sekarang, fail_safe_time;

int cal_int, start, jenis_baterai;

unsigned long waktu_esc, wektu, wektu1;

double g_pitch, g_roll, g_yaw;

double g_roll_kalibrasi, g_pitch_kalibrasi, g_yaw_kalibrasi;

byte highByte, lowByte;

float roll_error, pitch_error, yaw_error;

float pid_i_roll, roll_setpoint, g_roll_input, output_roll,

roll_error_sebelumnya;

float pid_i_pitch, pitch_setpoint, g_pitch_input, output_pitch,

pitch_error_sebelumnya;

float pid_i_yaw, yaw_setpoint, g_yaw_input, output_yaw,

yaw_error_sebelumnya;

float temperature, pressure, atm, altitude, alt_0, alt_lock;

float ketinggian, alt_setpoint;

int tinggi;

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 106: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

L12

//inisialisasi program

void setup() {

Wire.begin();

DDRB |= B11110000;

DDRC |= B11100000;

DDRA |= B10101010;

bmp085Calibration();

digitalWrite(31, HIGH);

delay(2000);

//seting sensor gyro-----------------------

Wire.beginTransmission(105);

Wire.write(0x20);

Wire.write(0x0F);

Wire.endTransmission();

Wire.beginTransmission(105);

Wire.write(0x24);

Wire.write(0x02);

Wire.endTransmission();

Wire.beginTransmission(105);

Wire.write(0x23);

Wire.write(0x90);

Wire.endTransmission();

//----------------------------------------

delay(250);

// mencari titik awal ketinggian

hitung_baro();

alt_0 = altitude;

alt_setpoint = alt_0 + batas_tinggi;

delay(100);

//Kalibrasi offset pada sensor

for (cal_int = 0; cal_int < 1000 ; cal_int ++) {

if (cal_int % 15 == 0)digitalWrite(31, !digitalRead(31));

sensor_gyro();

g_roll_kalibrasi += g_roll;

g_pitch_kalibrasi += g_pitch;

g_yaw_kalibrasi += g_yaw;

//selama menunggu receiver, semua ESC harus diberi pulsa 1000uS agar

tidak berisik

PORTB |= B11110000;

delayMicroseconds(1000);

PORTB &= B00001111;

delay(3);

}

g_roll_kalibrasi /= 1000;

g_pitch_kalibrasi /= 1000;

g_yaw_kalibrasi /= 1000;

//mengubah input analog a8 - a15 menjadi input digital

DDRK = 0;

PCICR |= (1 << PCIE2);

PCMSK2 |= (1 << PCINT16);

PCMSK2 |= (1 << PCINT17);

PCMSK2 |= (1 << PCINT18);

PCMSK2 |= (1 << PCINT19);

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 107: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

L13

while (rx_in_3 < 990 || rx_in_3 > 1020 || rx_in_4 < 1400) {

start ++;

//selama menunggu receiver, semua ESC harus diberi pulsa 1000uS

agar tidak berisik

PORTB |= B11110000;

delayMicroseconds(1000);

PORTB &= B00001111;

delay(3);

if (start == 125) {

digitalWrite(31, !digitalRead(31));

start = 0;

}

}

start = 0;

digitalWrite(31, LOW);

//menghitung tegangan baterai

teg_baterai = (analogRead(0) + 70) * 1.2317;

//menentukan jenis baterai 3s atau 2s

if (teg_baterai < 1270 && teg_baterai > 900) {

jenis_baterai = 3;

digitalWrite(31, HIGH);

delay(2000);

}

else if (teg_baterai < 890 && teg_baterai > 600) {

jenis_baterai = 2;

digitalWrite(30, HIGH);

delay(2000);

}

digitalWrite(30, LOW);

digitalWrite(31, LOW);

}

void loop() {

if (tinggi == 350) {

hitung_baro();

tinggi = 0;

}

tinggi ++;

sensor_gyro();

g_roll_input = (g_roll_input * 0.8) + ((g_roll / 571.4286) * 0.2);

g_pitch_input = (g_pitch_input * 0.8) + ((g_pitch / 571.4286) * 0.2);

g_yaw_input = (g_yaw_input * 0.8) + ((g_yaw / 571.4286) * 0.2);

//proses arming----------------------------------------------------------

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 108: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

L14

//proses arming-----------------------------------------------------

-----

if (rx_in_3 < 1100 && rx_in_4 < 1300) {

start = 1;

}

//

if (start == 1 && rx_in_3 < 1100 && rx_in_4 > 1400) {

start = 2;

pid_i_roll = 0;

roll_error_sebelumnya = 0;

pid_i_pitch = 0;

pitch_error_sebelumnya = 0;

pid_i_yaw = 0;

yaw_error_sebelumnya = 0;

digitalWrite(31, HIGH);

}

//proses disarm---------------------------------------------------

-------

if (start == 2 && rx_in_3 < 1100 && rx_in_4 > 1700)

{

digitalWrite(31, LOW);

start = 0;

}

//menyalakan led--------------------------------------------------

-------

if (rx_in_1 > 1520) {

PORTA = B00001010;

} else if (rx_in_1 < 1480) {

PORTA = B10100000;

}

if (rx_in_2 > 1520) {

PORTA = B00101000;

} else if (rx_in_2 < 1480) {

PORTA = B10000010;

}

if (rx_in_1 < 1520 && rx_in_1 > 1480 && rx_in_2 < 1520 && rx_in_2

> 1480 ) {

PORTA = B10101010;

}

if (rx_in_3 > 1050) {

if (rx_in_4 > 1520) {

PORTA = B00100010;

} else if (rx_in_4 < 1480)

{

PORTA = B10001000;

} else if (rx_in_1 < 1520 && rx_in_1 > 1480 && rx_in_2 < 1520 &&

rx_in_2 > 1480 ) {

PORTA = B10101010;

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 109: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

L15

//mengatur setipoint roll, pitch dan yaw ---------------------------

-----

roll_setpoint = 0;

if (rx_in_1 > 1510)roll_setpoint = (rx_in_1 - 1510) / 40.0;

else if (rx_in_1 < 1490)roll_setpoint = (rx_in_1 - 1490) / 40.0;

pitch_setpoint = 0;

if (rx_in_2 > 1510)pitch_setpoint = (rx_in_2 - 1510) / 40.0;

else if (rx_in_2 < 1490)pitch_setpoint = (rx_in_2 - 1490) / 40.0;

yaw_setpoint = 0;

if (rx_in_3 > 1050) {

if (rx_in_4 > 1510)yaw_setpoint = (rx_in_4 - 1510) / 15.0;

else if (rx_in_4 < 1490)yaw_setpoint = (rx_in_4 - 1490) / 15.0;

}

//----------------------------------------------------------------

----

menghitung_pid(); //menghitung PID

teg_baterai = teg_baterai * 0.92 + (analogRead(0) + 70) * 0.098;

if (jenis_baterai == 3) {

if (teg_baterai < 1090 && teg_baterai > 900) {

digitalWrite(30, HIGH); //mengaktifkan led merah jika baterai

3s mencapai level low voltage

}

}

else if (jenis_baterai = 2) {

if (teg_baterai < 700 && teg_baterai > 600) {

digitalWrite(30, HIGH);//mengaktifkan led merah jika baterai

2s mencapai level low voltage

}

}

if (altitude > alt_setpoint) {

ketinggian = 50;

}

else {

ketinggian = 0;

}

//fail safe jika lost koneksi dengan transmitter

if (fail_safe_time < waktu_sekarang)

{

digitalWrite(30, HIGH);

digitalWrite(32, LOW);

rx_in_3 -= rx_in_3 * (1 / (float)10000);

if (rx_in_3 < 1200) {

digitalWrite(31, LOW);

start = 0;

}

} else {

digitalWrite(30, LOW);

digitalWrite(32, HIGH);

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 110: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

L16

throttle = rx_in_3;

if (start == 2) {

if (throttle > 1900) throttle = 1900;

esc_1 = throttle - output_pitch + output_roll - output_yaw - ketinggian;

esc_2 = throttle + output_pitch + output_roll + output_yaw - ketinggian;

esc_3 = throttle + output_pitch - output_roll - output_yaw - ketinggian;

esc_4 = throttle - output_pitch - output_roll + output_yaw - ketinggian;

//memberi nilai tambah ESC untuk voltage drop pada lipo 3s

if (jenis_baterai == 3) {

if (teg_baterai < 1240 && teg_baterai > 900) {

esc_1 += esc_1 * ((1240 - teg_baterai) / (float)3500);

esc_2 += esc_2 * ((1240 - teg_baterai) / (float)3500);

esc_3 += esc_3 * ((1240 - teg_baterai) / (float)3500);

esc_4 += esc_4 * ((1240 - teg_baterai) / (float)3500);

}

}

//memberi nilai tambah ESC untuk voltage drop pada lipo 2s

else if (jenis_baterai == 2) {

if (teg_baterai < 820 && teg_baterai > 600) {

esc_1 += esc_1 * ((820 - teg_baterai) / (float)3500);

esc_2 += esc_2 * ((820 - teg_baterai) / (float)3500);

esc_3 += esc_3 * ((820 - teg_baterai) / (float)3500);

esc_4 += esc_4 * ((820 - teg_baterai) / (float)3500);

}

}

//saat wahana arming, motor berputar dengan pwm 1200uS

if (esc_1 < 1200) esc_1 = 1200;

if (esc_2 < 1200) esc_2 = 1200;

if (esc_3 < 1200) esc_3 = 1200;

if (esc_4 < 1200) esc_4 = 1200;

//membatasi nilai esc tidak lebih dari 2000uS

if (esc_1 > 2000)esc_1 = 2000;

if (esc_2 > 2000)esc_2 = 2000;

if (esc_3 > 2000)esc_3 = 2000;

if (esc_4 > 2000)esc_4 = 2000;

}

else {//saat wahana disarm, ESC tetap diberi nilai 1000uS agar

motor tidak berisik

esc_1 = 1000;

esc_2 = 1000;

esc_3 = 1000;

esc_4 = 1000;

}

//MENCIPTAKAN PULSA UNTUK MASING MASING ESC---------------

while (micros() - waktu_esc < 4000);

waktu_esc = micros();

PORTB |= B11110000;

tc_1 = esc_1 + waktu_esc;

tc_2 = esc_2 + waktu_esc;

tc_3 = esc_3 + waktu_esc;

tc_4 = esc_4 + waktu_esc;

while (PORTB >= 16) {

waktu_0_esc = micros();

if (tc_1 <= waktu_0_esc)PORTB &= B11101111;

if (tc_2 <= waktu_0_esc)PORTB &= B11011111;

if (tc_3 <= waktu_0_esc)PORTB &= B10111111;

if (tc_4 <= waktu_0_esc)PORTB &= B01111111;

}

//MENCIPTAKAN PULSA UNTUK MASING MASING ESC---------------

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 111: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

L17

SUBRUTIN RECEIVER INPUT

//Intterupt Service Routine diapnggil saat A8-A11 berubah keadaan

ISR(PCINT2_vect) {

waktu_sekarang = micros();

//Channel 1=========================================

if (PINK & B00000001) {

if (l_1 == 0) {

l_1 = 1;

t_1 = waktu_sekarang;

fail_safe_time = t_1 + 10000;

}

}

else if (l_1 == 1) {

l_1 = 0;

rx_in_1 = waktu_sekarang - t_1;

}

//Channel 2=========================================

if (PINK & B00000010 ) {

if (l_2 == 0) {

l_2 = 1;

t_2 = waktu_sekarang;

}

}

else if (l_2 == 1) {

l_2 = 0;

rx_in_2 = waktu_sekarang - t_2;

}

//Channel 3=========================================

if (PINK & B00000100 ) {

if (l_3 == 0) {

l_3 = 1;

t_3 = waktu_sekarang;

}

}

else if (l_3 == 1) {

l_3 = 0;

rx_in_3 = waktu_sekarang - t_3;

}

//Channel 4=========================================

if (PINK & B00001000 ) {

if (l_4 == 0) {

l_4 = 1;

t_4 = waktu_sekarang;

}

}

else if (l_4 == 1) {

l_4 = 0;

rx_in_4 = waktu_sekarang - t_4;

}

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 112: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

L18

SUBRUTIN MENGHITUNG SENSOR GYRO

//Subrutin menghitung sensor gyro

void sensor_gyro() {

Wire.beginTransmission(105);

Wire.write(168);

Wire.endTransmission();

Wire.requestFrom(105, 6);

while (Wire.available() < 6);

lowByte = Wire.read();

highByte = Wire.read();

g_pitch = ((highByte << 8) |

lowByte);

if (cal_int == 1000)g_pitch -= g_pitch_kalibrasi;

lowByte = Wire.read();

highByte = Wire.read();

g_roll = ((highByte << 8) | lowByte);

if (cal_int == 1000)g_roll -= g_roll_kalibrasi;

lowByte = Wire.read();

highByte = Wire.read();

g_yaw = ((highByte << 8) | lowByte);

g_yaw *= -1;

if (cal_int == 1000)g_yaw -= g_yaw_kalibrasi;

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 113: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

L19

SUBRUTIN MENGHITUNG PID

//subrutin menghitung PID

void menghitung_pid() {

//Roll calculations

roll_error = g_roll_input - roll_setpoint;

pid_i_roll += ki_roll * roll_error;

if (pid_i_roll > pid_offset_roll)pid_i_roll = pid_offset_roll;

else if (pid_i_roll < pid_offset_roll * -1)pid_i_roll =

pid_offset_roll * -1;

output_roll = kp_roll * roll_error + pid_i_roll + kd_roll *

(roll_error - roll_error_sebelumnya);

if (output_roll > pid_offset_roll)output_roll = pid_offset_roll;

else if (output_roll < pid_offset_roll * -1)output_roll =

pid_offset_roll * -1;

roll_error_sebelumnya = roll_error;

//Pitch calculations

pitch_error = g_pitch_input - pitch_setpoint;

pid_i_pitch += ki_pitch * pitch_error;

if (pid_i_pitch > pid_offset_pitch)pid_i_pitch = pid_offset_pitch;

else if (pid_i_pitch < pid_offset_pitch * -1)pid_i_pitch =

pid_offset_pitch * -1;

output_pitch = kp_pitch * pitch_error + pid_i_pitch + kd_pitch *

(pitch_error - pitch_error_sebelumnya);

if (output_pitch > pid_offset_pitch)output_pitch =

pid_offset_pitch;

else if (output_pitch < pid_offset_pitch * -1)output_pitch =

pid_offset_pitch * -1;

pitch_error_sebelumnya = pitch_error;

//Yaw calculations

yaw_error = g_yaw_input - yaw_setpoint;

pid_i_yaw += ki_yaw * yaw_error;

if (pid_i_yaw > pid_offset_yaw)pid_i_yaw = pid_offset_yaw;

else if (pid_i_yaw < pid_offset_yaw * -1)pid_i_yaw =

pid_offset_yaw * -1;

output_yaw = kp_yaw * yaw_error + pid_i_yaw + kd_yaw * (yaw_error

- yaw_error_sebelumnya);

if (output_yaw > pid_offset_yaw)output_yaw = pid_offset_yaw;

else if (output_yaw < pid_offset_yaw * -1)output_yaw =

pid_offset_yaw * -1;

yaw_error_sebelumnya = yaw_error;

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 114: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

L20

BAROMETER

#define BMP085_ADDRESS 0x77 // alamat komunikasi dengan sensor

barometer

const unsigned char OSS = 0; // Oversampling Setting

int ac1;

int ac2;

int ac3;

unsigned int ac4;

unsigned int ac5;

unsigned int ac6;

int b1;

int b2;

int mb;

int mc;

int md;

long b5;

void hitung_baro()

{

temperature = bmp085GetTemperature(bmp085ReadUT());

pressure = bmp085GetPressure(bmp085ReadUP());

atm = pressure / 101325;

altitude = calcAltitude(pressure);

}

void bmp085Calibration()

{

ac1 = bmp085ReadInt(0xAA);

ac2 = bmp085ReadInt(0xAC);

ac3 = bmp085ReadInt(0xAE);

ac4 = bmp085ReadInt(0xB0);

ac5 = bmp085ReadInt(0xB2);

ac6 = bmp085ReadInt(0xB4);

b1 = bmp085ReadInt(0xB6);

b2 = bmp085ReadInt(0xB8);

mb = bmp085ReadInt(0xBA);

mc = bmp085ReadInt(0xBC);

md = bmp085ReadInt(0xBE);

}

// Calculate temperature in deg C

float bmp085GetTemperature(unsigned int ut){

long x1, x2;

x1 = (((long)ut - (long)ac6)*(long)ac5) >> 15;

x2 = ((long)mc << 11)/(x1 + md);

b5 = x1 + x2;

float temp = ((b5 + 8)>>4);

temp = temp /10;

return temp;

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 115: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

L21

long bmp085GetPressure(unsigned long up){

long x1, x2, x3, b3, b6, p;

unsigned long b4, b7;

b6 = b5 - 4000;

// Calculate B3

x1 = (b2 * (b6 * b6)>>12)>>11;

x2 = (ac2 * b6)>>11;

x3 = x1 + x2;

b3 = (((((long)ac1)*4 + x3)<<OSS) + 2)>>2;

// Calculate B4

x1 = (ac3 * b6)>>13;

x2 = (b1 * ((b6 * b6)>>12))>>16;

x3 = ((x1 + x2) + 2)>>2;

b4 = (ac4 * (unsigned long)(x3 + 32768))>>15;

b7 = ((unsigned long)(up - b3) * (50000>>OSS));

if (b7 < 0x80000000)

p = (b7<<1)/b4;

else

p = (b7/b4)<<1;

x1 = (p>>8) * (p>>8);

x1 = (x1 * 3038)>>16;

x2 = (-7357 * p)>>16;

p += (x1 + x2 + 3791)>>4;

long temp = p;

return temp;

}

char bmp085Read(unsigned char address)

{

unsigned char data;

Wire.beginTransmission(BMP085_ADDRESS);

Wire.write(address);

Wire.endTransmission();

Wire.requestFrom(BMP085_ADDRESS, 1);

while(!Wire.available());

return Wire.read();

}

int bmp085ReadInt(unsigned char address)

{

unsigned char msb, lsb;

Wire.beginTransmission(BMP085_ADDRESS);

Wire.write(address);

Wire.endTransmission();

Wire.requestFrom(BMP085_ADDRESS, 2);

while(Wire.available()<2)

;

msb = Wire.read();

lsb = Wire.read();

return (int) msb<<8 | lsb;

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

Page 116: FLIGHT CONTROLLER PADA SISTEM QUADCOPTER … · ii FINAL PROJECT FLIGHT CONTROLLER ON QUADCOPTER SYSTEM USING SENSOR IMU (INERTIAL MEASUREMENT UNIT) BASED MICROCONTROLLER ATMEGA 2560

L22

unsigned int bmp085ReadUT(){

unsigned int ut;

Wire.beginTransmission(BMP085_ADDRESS);

Wire.write(0xF4);

Wire.write(0x2E);

Wire.endTransmission();

delay(5);

ut = bmp085ReadInt(0xF6);

return ut;

}

unsigned long bmp085ReadUP(){

unsigned char msb, lsb, xlsb;

unsigned long up = 0;

Wire.beginTransmission(BMP085_ADDRESS);

Wire.write(0xF4);

Wire.write(0x34 + (OSS<<6));

Wire.endTransmission();

delay(2 + (3<<OSS));

msb = bmp085Read(0xF6);

lsb = bmp085Read(0xF7);

xlsb = bmp085Read(0xF8);

up = (((unsigned long) msb << 16) | ((unsigned long) lsb << 8) |

(unsigned long) xlsb) >> (8-OSS);

return up;

}

float calcAltitude(float pressure){

float A = pressure/101325;

float B = 1/5.25588;

float C = pow(A,B);

C = 1 - C;

C = C /0.0000225577;

return C;

}

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI