• Tidak ada hasil yang ditemukan

Flight controller pada sistem quadcopter menggunakan sensor imu (inertial measurement unit) berbasis mikrokontroller atmega 2560.

N/A
N/A
Protected

Academic year: 2017

Membagikan "Flight controller pada sistem quadcopter menggunakan sensor imu (inertial measurement unit) berbasis mikrokontroller atmega 2560."

Copied!
118
0
0

Teks penuh

(1)

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.

(2)

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.

(3)

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

(4)

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

(5)

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

(6)

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,

(7)

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.

(8)

MOTTO :

TAKUT AKAN TUHAN ADALAH PERMULAAN

PEN E A AN”

- AMSAL 1:7a

(9)

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.

(10)

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.

(11)

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.

(12)

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.

(13)

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,

(14)

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

(15)

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

(16)

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

(17)

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

(18)

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

(19)

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

(20)

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

(21)

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).

(22)

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

(23)

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

(24)

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

(25)

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].

(26)

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.

(27)

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.

(28)

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.

(29)

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:

� = ���� + ( ���� × %)

(30)

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%) =

[image:30.595.86.505.170.626.2]

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

(31)

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

[image:31.595.84.528.208.635.2]

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.

(32)

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

[image:32.595.85.525.145.612.2]

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

(33)

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,

(34)

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

[image:34.595.93.519.218.630.2]

dibandingkan kecepatan pemrosesan program.

(35)
[image:35.595.85.528.95.712.2]

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)

(36)

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)

[image:36.595.85.530.99.624.2]
(37)
[image:37.595.87.509.139.537.2]

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

(38)

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:

(39)

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

(40)

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

(41)

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.

[image:41.595.84.525.78.627.2]

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

(42)

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

(43)

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.

(44)

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”

(45)

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

(46)

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

(47)

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

(48)

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

(49)

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

(50)

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

(51)

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.

(52)

Transfer function dari sistem berdasarkan Gambar 2.25 di atas = � = �� +

� + (2.3)

Dalam domain waktu:

= ��

� ∫ + (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 :

� = ��� � + �� ∑�=���= � � +��[� � − � � − ] (2.5)

Dengan �� = �� + �

�� dan � = ��+�

� T= waktu sampling

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

� = � − + ��( � − � − ) + �� � + � ( � − � − ) +

� − (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.

(53)
[image:53.595.89.524.138.614.2]

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.

(54)

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

[image:54.595.86.510.135.641.2]

sebagai sinyal Start atau sinyal Stop.

(55)

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

[image:55.595.86.512.243.612.2]

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.

(56)

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.

(57)

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.

[image:57.595.88.524.271.652.2]
(58)
[image:58.595.86.508.86.654.2]

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

(59)
[image:59.595.83.527.89.646.2]

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

(60)

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

3 4

depan

kanan

belakang

[image:60.595.86.525.285.622.2]

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

(61)
[image:61.595.84.529.116.642.2]

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

(62)
[image:62.595.86.507.75.685.2]
(63)
[image:63.595.86.509.107.613.2]

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 sen

Gambar

Gambar 2.5 ESC (Electronic Speed Controller)[2]
Gambar 2.7 Propeller / baling-baling
Gambar 2.9 Flight Controller APM 2.5
Gambar 2.10 Penempatan Pin Arduino Mega 2560
+7

Referensi

Dokumen terkait