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.
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.
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
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
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
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,
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.
MOTTO :
“
TAKUT AKAN TUHAN ADALAH PERMULAAN
PEN E A AN”
- AMSAL 1:7a
–
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.
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.
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.
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.
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,
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
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
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
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.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.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
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
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).
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
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
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
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].
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.
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.
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.
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:
� = ���� + ( ���� × %)
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
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.
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
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,
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.
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)
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]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
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:
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
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. 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
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
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.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”
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
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
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
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
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
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
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.
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.
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.
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.
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.
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.
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]Gambar 3.3 Wiring Arduino Mega 2560, Sensor Gy 80, RFM12-433, dan ESC.
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
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
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
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