BAB III PERANCANGAN -...

29
48 BAB III PERANCANGAN 3.1. Arsitektur Perancangan Secara keseluruhan, perancangan Autonomous Quadcopter yang dibuat memiliki beberapa layer seperti yang divisualisasikan pada Gambar 3.1. Gambar 3.1. Layered Design Pembagian sistem menjadi beberapa layer ini bertujuan untuk membuat tahapan kerja menjadi jelas, sistematis dan terstruktur. Setiap layer harus didahului implementasi layer bawahnya yang telah teruji. Sehingga, perancangan pesawat, implementasi dan pengujian Physical Layer BLDC motor Propeller Frame Low Layer Control Mid Layer Control Electronic Speed Controller AHRS & Altitude sensor PID Flight Controller High level command protocol High Layer Application Flight algorithm Tahapan kerja

Transcript of BAB III PERANCANGAN -...

Page 1: BAB III PERANCANGAN - repository.uksw.edurepository.uksw.edu/bitstream/123456789/2354/4/T1_612005082_BAB III... · Kendali aras rendah atau low layer control adalah lapisan yang ...

48

BAB III

PERANCANGAN

3.1. Arsitektur Perancangan

Secara keseluruhan, perancangan Autonomous Quadcopter yang dibuat memiliki

beberapa layer seperti yang divisualisasikan pada Gambar 3.1.

Gambar 3.1. Layered Design

Pembagian sistem menjadi beberapa layer ini bertujuan untuk membuat tahapan kerja

menjadi jelas, sistematis dan terstruktur. Setiap layer harus didahului implementasi layer

bawahnya yang telah teruji. Sehingga, perancangan pesawat, implementasi dan pengujian

Physical Layer

BLDC motor Propeller Frame

Low Layer Control

Mid Layer Control

Electronic Speed Controller AHRS & Altitude sensor

PID Flight Controller

High level command protocol

High Layer Application

Flight algorithm

Tah

apan

kerja

Page 2: BAB III PERANCANGAN - repository.uksw.edurepository.uksw.edu/bitstream/123456789/2354/4/T1_612005082_BAB III... · Kendali aras rendah atau low layer control adalah lapisan yang ...

49

dilakukan bertahap mulai dari layer paling bawah yaitu physical layer kemudian dilanjutkan

ke low layer control, mid layer control dan implementasi high level application.

Physical layer terdiri atas BLDC (brushless DC) motor, baling-baling (propeller) dan

kerangka pesawat (frame). Pada bagian perancangan mekanik akan dijelaskan lebih lanjut

tentang perancangan layer ini.

Kendali aras rendah atau low layer control adalah lapisan yang mengatur gerak dari

pesawat yang berhubungan langsung dengan physical layer. Sebagai masukan umpan balik

dari kontrol PID, digunakan data dari AHRS (Attitude Heading Reference System) dan

keluaran kontrol diteruskan ke electronic speed controller (ESC) yang merupakan pengendali

putaran dari motor BLDC pada physical layer. Untuk berhubungan dengan layer di atasnya,

low layer control menerima set sudut dan ketinggian dari mid layer control.

Mid layer control berfungsi sebagai penerjemah perintah tingkat tinggi (high level

command) dari aplikasi aras tinggi (high layer aplication) ke dalam set sudut dan ketinggian

yang kemudian diteruskan ke low layer control. Dalam mid layer control ini terdapat beberapa

algoritma gerak pesawat, seperti algoritma tinggal landas (take off), mendarat (landing),

melayang (hovering) dan beberapa algoritma penunjang. Mid layer control juga berfungsi

sebagai penyedia informasi bagi high layer application mengenai keadaan pesawat, seperti:

ketinggian, kondisi battrey, serta status kerja mid layer control dan low layer control. Untuk

berkomunikasi dengan high layer application, akan dibuat protokol komunikasi yang

dirancang agar high layer application dapat dengan mudah memberi perintah dan menerima

respon dari kontrol pesawat.

High layer application atau aplikasi aras tinggi merupakan layer yang menentukan

kegunaan atau aplikasi dari Quadcopter. Contohnya seperti aplikasi pengintaian, aerial

Page 3: BAB III PERANCANGAN - repository.uksw.edurepository.uksw.edu/bitstream/123456789/2354/4/T1_612005082_BAB III... · Kendali aras rendah atau low layer control adalah lapisan yang ...

50

photography dan lain sebagainya. Pada skripsi ini dirancang aplikasi aras tinggi untuk

menguji kontrol aras rendah dan aras tengah dari pesawat.

3.2. Perancangan Mekanik (Physical Layer)

Physical layer merupakan layer fisik dari Quadcopter. Bagian ini terdiri dari sistem

mekanik pesawat yaitu kerangka, motor dan baling-baling.

3.2.1. Kerangka Pesawat (Frame)

Quadcopter yang dirancang pada skripsi ini memiliki bentuk kerangka yang sederhana

dengan penempatan empat rotor yang memiliki jarak yang sama terhadap pusat massa pesawat

(Gambar 3.2).

Gambar 3.2. Kerangka Quadcopter

Page 4: BAB III PERANCANGAN - repository.uksw.edurepository.uksw.edu/bitstream/123456789/2354/4/T1_612005082_BAB III... · Kendali aras rendah atau low layer control adalah lapisan yang ...

51

Sebagian besar, bahan yang digunakan untuk kerangka pesawat adalah aluminium,

karena ringan (massa jenis: 2.70 g·cm−3) dan mudah didapat. Penulis mengalami kesulitan

untuk mendapatkan bahan kerangka lain yang lebih ringan dan kuat seperti karbon fiber.

Tuntutan dari kerangka yang dibuat adalah ringan dan kuat. Ringan, agar daya yang

dibutuhkan untuk menerbangkan pesawat tidak terlalu besar, sehingga mampu mengangkat

payload yang lebih berat. Kuat, agar bentuk fisik dari kerangka tidak berubah saat terbang dan

jika pesawat kandas (crash), tidak mengubah bentuk kerangka. Mengingat banyaknya

percobaan terbang yang dilakukan dengan kemungkinan kandas yang cukup besar, kerangka

harus dibuat sesederhana mungkin untuk menghemat waktu pembuatan.

Hal yang harus diperhatikan pada kerangka Quadcopter adalah posisi keempat rotor

yang harus selalu datar dan sebidang. Karena jika tidak datar akan timbul proyeksi gaya

sesuai dengan kemiringan dari rotor terhadap rata-rata air, sehingga menyebabkan pesawat

akan bergerak perlahan meskipun controller sudah mengendalikan pesawat untuk hovering.

Ada dua bagian dari kerangka yang menentukan kedataran dari masing-masing rotor,

yaitu mekanik yang menghubungkan rotor dengan kerangka dan mekanik yang

menghubungkan keempat lengan rotor. Mekanik yang menghubungkan keempat lengan rotor

tidak dibuat sangat kuat (agar tidak terdeformasi), tetapi fleksibel. Dalam beberapa uji

terbang, pesawat beberapa kali mengalami crash dan menyebabkan bagian yang

menghubungkan keempat lengan rotor ini berubah bentuk dan pada akhirnya membuat

keempat rotor tidak datar. Sehingga ditambahkan PCB (Printed Circuit Board) fiber pada

bagian ini agar kerangka lebih elastis saat crash, tetapi masih tetap kuat dan datar saat terbang.

Untuk melindung baling-baling jika terjadi crash, masing-masing lengan rotor

diperpanjang. Memang, di satu sisi penambahan panjang lengan ini menambah berat pesawat,

Page 5: BAB III PERANCANGAN - repository.uksw.edurepository.uksw.edu/bitstream/123456789/2354/4/T1_612005082_BAB III... · Kendali aras rendah atau low layer control adalah lapisan yang ...

52

namun kerugian ini tidak seberapa dibandingkan dengan keuntungan proteksi yang

didapatkan. Kemungkinan terburuk bagi baling-baling pesawat saat crash adalah saat pesawat

jatuh terbalik. Kemungkinan ini harus dihindari dengan membuat kendali gerak pesawat yang

prima dan meminimalisir kemungkinan error yang menyebabkan crash.

3.2.2. Motor dan Baling-Baling

Sebagai pemutar baling-baling digunakan motor BLDC karena lebih effisien daya dan

tidak membutuhkan perawatan jika dibandingkan dengan motor DC konvensional dengan

sikat. Dengan BLDC, baling-baling dapat dipasang langsung ke motor tanpa gir reduksi

sehingga getaran dapat diminimalisir.

BLDC yang digunakan dengan ukuran 1000 kV (1000 RPM/V). Idealnya, dengan

sumber tegangan 11.1 V didapatkan kecepatan maksimum 11100 RPM. Sebagai pengendali

kecepatan untuk motor ini digunakan ESC 30A berdasarkan rekomendasi produsen motor

tersebut. ESC yang digunakan memilki antarmuka PWM dengan periode 2 ms (0.7ms < ton

<1.9ms).

Baling-baling (Gambar 3.3) yang digunakan berbahan plastik dua bilah dengan berat ±7

gram dan ukuran 10x4.5 (diameter 10 inch, pitch 4.5 inch). Pemilihan baling-baling ini

merujuk pada rekomendasi produsen BLDC yang digunakan.

Page 6: BAB III PERANCANGAN - repository.uksw.edurepository.uksw.edu/bitstream/123456789/2354/4/T1_612005082_BAB III... · Kendali aras rendah atau low layer control adalah lapisan yang ...

53

Gambar 3.3. Baling-baling 10x4.5

3.3. Perancangan Elektronik

Secara keseluruhan sistem elektronik Quadcopter yang dibuat terlihat pada Gambar 3.4.

Gambar 3.4. Sistem Elektronik Quadcopter

Microcontroler

accelerometer

gyroscope

magnetometer

I2C B

US

Electronic Speed

Controller

Electronic Speed

Controller

Electronic Speed

Controller

Electronic Speed

Controller

M1

M2

M3

M4

11.1 Volt Lithium Polymer Battery

voltage regulator and battrey level sensing

IMU

3.3V

11.1V

4 x BLDC

high level command and response via UART

Bluetooth Module

Ultrasonic Range

Sensor

ESC

Page 7: BAB III PERANCANGAN - repository.uksw.edurepository.uksw.edu/bitstream/123456789/2354/4/T1_612005082_BAB III... · Kendali aras rendah atau low layer control adalah lapisan yang ...

54

Pada bagian selanjutnya akan dijelaskan masing-masing bagian dari rangkaian

elektronik pesawat.

3.3.1. Rangkaian IMU (Inertial Measurement Unit)

IMU merupakan sensor-sensor yang merupakan sumber informasi utama dari AHRS.

Sensor-sensor tersebut terdiri dari akselerometer, giroskop dan magnetometer. Masing-masing

sensor terhubung dalam jalur bus dengan protokol asinkron serial 2 kawat I2C[14] (Inter-

Integrated Circuits).

Sebagai sensor akselerometer digunakan LIS3LV02DL[5] produksi ST

Microelectronics. Tabel 3.1 menunjukkan spesifikasi penting yang perlu diperhatikan dari

sensor LIS3LV02DL.

Tabel 3.1. Spesifikasi LIS3LV02DL

Spesifikasi Nilai

Tegangan kerja 2.16-3.6 Volt

Jumlah sumbu pengukuran 3

Jangkauan Pengukuran ±2.0 g (FS=0), ±6.0 g (FS=1)

Sensitivitas (FS=0, 12bit) 1024 LSB/g

Alasan memilih sensor LIS3LV02DL adalah karena jangkauan pengukurannya (± 2g)

yang cocok jika digunakan untuk mengukur arah percepatan statis gravitasi (1g). Keputusan

ini berdasarkan asumsi bahwa pesawat tidak bergerak dengan percepatan dinamis melebihi

2x9.8ms-2 dengan frekuensi yang terlalu banyak, karena LIS3LV02DL akan mengalami

Page 8: BAB III PERANCANGAN - repository.uksw.edurepository.uksw.edu/bitstream/123456789/2354/4/T1_612005082_BAB III... · Kendali aras rendah atau low layer control adalah lapisan yang ...

55

saturasi dan pengukuran percepatan menjadi tidak valid. Resolusi yang tinggi (12bit)

memungkinkan untuk mendapatkan hasil pengukuran dengan resolusi tinggi.

Untuk sensor giroskop digunakan ITG3205[4] produksi Invensense. Tabel 3.2

menunjukkan beberapa spesifikasi penting dari sensor ini.

Tabel 3.2. Spesifikasi ITG3205

Spesifikasi Nilai

Tegangan kerja 2.1-3.6 Volt

Jumlah sumbu pengukuran 3

Jangkauan Pengukuran ±2000°/s

Resolusi data keluaran 16bit

Sensitivitas (FS_SEL=3) 14.375 LSB/(°/s)

Sensor ITG3205 (Gambar 3.5) memiliki sensitivitas yang cukup tinggi untuk

mendeteksi perubahan sudut (14.375 LSB/(°/s)). Sensor ini digunakan pada Wii MotionPlus

sebagai ekstensi joystick Nintendo Wii [10] untuk mendeteksi gerak dan orientasi.

Gambar 3.5. ITG3205 pada Wii MotionPlus

Page 9: BAB III PERANCANGAN - repository.uksw.edurepository.uksw.edu/bitstream/123456789/2354/4/T1_612005082_BAB III... · Kendali aras rendah atau low layer control adalah lapisan yang ...

56

Penulis mengambil sensor ITG3205 dari Wii MotionPlus karena masalah ketersediaan

barang dan harga, mengingat sensor giroskop belum banyak dijual di Indonesia dalam bentuk

chip. Wii MotionPlus memiliki host controller yang mengolah data giroskop,

mengenkripsinya dan mengirimkan ke joystick. Untuk membuat akses ke sensor ini menjadi

praktis dan memperkecil latency, jalur I2C yang menghubungkan host controller dan

ITG3205 diputus dan langsung dihubungkan ke rangkaian mikrokontroler utama.

Untuk magnetometer digunakan CMPS10 (Gambar 3.6), yang merupakan kompas

digital terkompensasi kemiringan (tilt compensated digital compass). CMPS10 dapat

mengukur medan magnet bumi yang diolah untuk menjadi referensi arah utara. Sensor ini

memiliki ketelitian 0.1° dalam mendeteksi arah utara kutub bumi.

Gambar 3.6. Pinout CMPS10[1]

Sensor LIS3LV02DL, ITG3205 dan CMPS10 dapat diakses dengan protokol

komunikasi I2C. Ketiga sensor ini dihubungkan dalam satu bus seperti pada Gambar 3.7.

Page 10: BAB III PERANCANGAN - repository.uksw.edurepository.uksw.edu/bitstream/123456789/2354/4/T1_612005082_BAB III... · Kendali aras rendah atau low layer control adalah lapisan yang ...

57

Gambar 3.7. Bus I2C Sensor LIS3LV02DL, ITG3205 dan CMPS10

3.3.2 Altitude Sensing

Untuk mengukur ketinggian Quadcopter dari permukaan tanah digunakan sensor

ultrasonik yang diarahkan tegak lurus ke tanah. Sensor yang digunakan adalah SRF04

(Gambar 3.8)[7].

Gambar 3.8. Pinout SRF04[17]

Page 11: BAB III PERANCANGAN - repository.uksw.edurepository.uksw.edu/bitstream/123456789/2354/4/T1_612005082_BAB III... · Kendali aras rendah atau low layer control adalah lapisan yang ...

58

Jarak diukur berdasarkan flight time dari ultrasonik yang dipancarkan dan diterima

kembali. Dibutuhkan dua pin untuk mengoperasikan sensor ini yaitu pin trigger sebagai input

dari sensor untuk memulai mengirimkan pulse ultrasonik dan pin echo yang akan

mengeluarkan pulsa saat ada sinyal pantul ultrasonik yang diterima sensor.

3.3.3 Bluetooth Module BC417143-A19

Sarana komunikasi sangat penting, terutama dalam proses debugging. Karena pada

Skripsi ini bekerja dengan wahana terbang, maka mutlak dibutuhkan piranti nirkabel untuk

komunikasi.

Komunikasi dengan bluetooth dipilih sebagai sarana komunikasi nirkabel pada Skripsi

ini dengan alasan penghematan biaya. Bluetooth dapat digunakan sebagai sarana debugging

dan sarana komunikasi dengan smart phone yang digunakan untuk mengiplementasikan high

layer application. Keterbatasan dari bluetooth adalah masalah jarak jangkauan yang terbatas,

sehingga pada proses wireless debugging dengan bluetooth harus dilakukan di dalam ruangan

atau daerah yang masih terjangkau oleh bluetooth. [3]

Modul bluetooth yang digunakan adalah BC417143-A19 (Gambar 3.9) produksi

CSR[8]. Spesifikasi dari bluetooth module ini dapat dilihat pada Tabel 3.3.

Gambar 3.9. Bluetooth module BC417143-A19

Page 12: BAB III PERANCANGAN - repository.uksw.edurepository.uksw.edu/bitstream/123456789/2354/4/T1_612005082_BAB III... · Kendali aras rendah atau low layer control adalah lapisan yang ...

59

Tabel 3.3. Spesifikasi BC417143-A19[2]

Spesifikasi Nilai

Tegangan kerja 3.3 Volt

Frekuensi operasi 2.4GHz-2.48GHz

Bluetooth power class Class2

Antarmuka UART

Modul bluetooth BC417143-A19 memiliki antarmuka UART yang memungkinkan

menjadi penghubung mikrokontroler dengan komputer atau smart phone dengan fasilitas

bluetooth yang mendukung SPP (Serial Port Profile).

3.3.4 Rangkaian Mikrokontroler

Mikrokontroler digunakan sebagai pengendali utama dari Quadcopter. Implementasi

low layer control dan mid layer control dilakukan pada program yang ditanamkan pada

mikrokontroler ini.

Tuntutan dari mikrokontroler sebagai pengendali utama pada Quadcopter adalah

kecepatan eksekusi program, ukuran RAM (Random Access Memory) dan ROM (Read Only

Memory) yang memadai untuk menjalankan program. Pada implementasi algoritma DCM-

IMU banyak menggunakan operasi matrik dan floating point, sehingga kebutuhan akan

memori dan kecepatan eksekusi harus diperhatikan.

Tipe mikrokontroler yang dipakai pada Skripsi ini adalah LPC1114 produksi NXP.

LPC1114 berarsitektur ARM (Advanced RISC Machine) 32bit keluarga Cortex M0. Fitur dari

mikrokontroler terdapat pada Tabel 3.4.

Page 13: BAB III PERANCANGAN - repository.uksw.edurepository.uksw.edu/bitstream/123456789/2354/4/T1_612005082_BAB III... · Kendali aras rendah atau low layer control adalah lapisan yang ...

60

Tabel 3.4. Spesifikasi LPC1114[6]

Spesifikasi Nilai

Arsitektur 32 bit ARM Cortex M0

RAM 8KB

Flash Memory 32KB

Speed 50 MHz

Protokol komunikasi UART,RS485,I2C,SSP0, SSP1,CAN

IO 42 pin

Timer Systick 24bit,2x16bit,2x32bit

Agar memudahkan dalam implementasi rangkaian dan mengakomodasi perubahan

rangkaian dalam pengujian, rangkaian mikrokontroler ini dibuat dalam bentuk stamp seperti

pada Gambar 3.10.

Gambar 3.10. LPC1114 Stamp

Page 14: BAB III PERANCANGAN - repository.uksw.edurepository.uksw.edu/bitstream/123456789/2354/4/T1_612005082_BAB III... · Kendali aras rendah atau low layer control adalah lapisan yang ...

61

Gambar 3.11. Skematik Mikrokontroler LPC1114

Pada Gambar 3.11 ditunjukan pin assignment untuk mikrokontroler LPC1114. Ada

beberapa port yang digunakan untuk interkoneksi dengan sub-modul seperti IMU, 4 buah

ESC, bluetooth module dan ISP (In System Programming).

Port IMU merupakan jalur I2C yang dapat di-expand dengan piranti lain seperti

Serial-EEPROM yang digunakan untuk menyimpan parameter pengaturan. Port ESC

terhubung ke rangkaian 4 buah ESC dan dialokasikan 1 pin ADC (Analog to Digital

Converter) untuk mengukur tegangan battery.

LPC1114 memiliki fitur In System Programming dengan UART. Karena

mikrokontroler ini hanya memiliki satu port UART dan bluetooth module juga menggunakan

UART sebagai antarmuka-nya, maka port serial ISP dan bluetooth module digabung. Pin RX

pada ISP dan bluetooth module dapat langsung digabung. Untuk TX, karena pin ini

LPC1114 LQP48

Page 15: BAB III PERANCANGAN - repository.uksw.edurepository.uksw.edu/bitstream/123456789/2354/4/T1_612005082_BAB III... · Kendali aras rendah atau low layer control adalah lapisan yang ...

62

merupakan pin output, untuk menghindari hubungan singkat digunakan dioda dan resistor

pull-up.

3.3.5 Rangkaian ESC dan BLDC

Untuk menggerakan baling-baling digunakan BLDC yang dikendalikan komutasinya

oleh ESC. Karena Quadcopter memiliki empat buah BLDC, sehingga dibutuhkan empat buah

ESC untuk mengendalikan masing-masing motor. Antarmuka ESC dengan mikrokontroler

menggunakan PWM, sehingga dibutuhkan empat pin PWM untuk semua ESC.

Gambar 3.12. Konfigurasi ESC dan BLDC

Setiap ESC memiliki regulator tegangan 5V 2A. Regulator ini merupakan regulator

linier yang terdiri dari dua buah LM7805 yang diparalel. Keluaran dari regulator pada ESC ini

dimanfaatkan untuk mencatu rangkaian elektronik lainnya.

A B C

+ -

ESC

PW

M

5V/2

A

BLDC

A B C

+ -

ESC

PW

M

5V/2

A

BLDC

A B C

+ -

ESC

PW

M

5V/2

A

BLDC

A B C

+ -

ESC

PW

M

5V/2

A

BLDC

+

- battery

Page 16: BAB III PERANCANGAN - repository.uksw.edurepository.uksw.edu/bitstream/123456789/2354/4/T1_612005082_BAB III... · Kendali aras rendah atau low layer control adalah lapisan yang ...

63

Untuk mengukur tegangan battery, digunakan resistor sebagai pembagi tegangan dan

kapasitor sebagai filter. Pengukuran tegangan ini sangat penting agar battery tidak over

discharge yang menyebabkan umur battery LiPo semakin pendek.

Quadcopter memiliki dua buah motor yang berputar searah jarum jam dan dua buah

motor yang berputar berlawanan dengan arah jarum jam. Untuk mendapatkan konfigurasi arah

putar yang berbeda, BLDC hampir mirip dengan motor DC konvensional yaitu mengatur

polaritas-nya. BLDC dapat diatur arah putarnya dengan menukar urutan tiga kabel yang

dimilikinya, dengan menukar urutan kabel sama saja dengan mengatur urutan komutasinya.

3.4. Perancangan dan Realisasi Low Layer Control

Low layer control merupakan layer yang mengatur fungsi-fungsi low level dari

Quadcopter seperti akuisisi data sensor-sensor, algoritma sensor fusion pada AHRS dan

pengendalian aktuator dengan kendali PID. Layer ini diimplementasikan pada mikrokontroler

LPC1114.

3.4.1 Akuisisi Sensor

Proses akuisisi sensor adalah proses yang dilakukan oleh mikrokontroler untuk

mendapatkan data sensor yang digunakan sebagai input bagi sistem. Tuntutan dari proses

akuisisi ini adalah meminimalisir latency yang terjadi saat mikrokontroler melakukan transfer

data dengan sensor-sensor yang digunakan.

Ketiga sensor (akselerometer, giroskop dan magnetometer) yang digunakan sebagai masukan

untuk AHRS menggunakan protokol I2C dan terkoneksi dalam satu bus. Sehingga

mikrokontroler tidak bisa melakukan transfer data dalam waktu yang bersamaan. Pada Tabel

Page 17: BAB III PERANCANGAN - repository.uksw.edurepository.uksw.edu/bitstream/123456789/2354/4/T1_612005082_BAB III... · Kendali aras rendah atau low layer control adalah lapisan yang ...

64

3.5 ditunjukkan hardware address dan register-register hasil pengukuran dari masing-masing

sensor.

Tabel 3.5. Hardware Address dan Register IMU[1; 4; 5]

Slave Hadware Address Register Pengukuran

LIS3LV02DL 0x3A X Y Z

0xA8 0xA9 0xAA 0xAB 0xAC 0xAD

ITG3205 0xD0 X Y Z

0xD0 0xD1 0xD2 0xD3 0xD5 0xD6

CMPS10 0xC0 Heading

0x02 0x03

Akuisisi sensor dapat dilakukan dengan cara konvensional yaitu polling (Gambar

3.13). Teknik ini kurang efektif karena terlalu banyak proses menunggu selesainya transfer

data dari masing-masing sensor.

LPC1114 mempunyai kendali perangkat keras untuk I2C dan dapat membangkitkan

interupsi pada setiap event yang terjadi. Fitur ini dapat dimanfaatkan untuk mengurangi waktu

tunggu yang terjadi (Gambar 3.13). Selama proses transfer berlangsung oleh kendali

perangkat keras I2C di dalam mikrokontroler, proses lainnya dapat berjalan dan tidak ada

waktu yang dihabiskan untuk menunggu proses transfer.

Page 18: BAB III PERANCANGAN - repository.uksw.edurepository.uksw.edu/bitstream/123456789/2354/4/T1_612005082_BAB III... · Kendali aras rendah atau low layer control adalah lapisan yang ...

65

Gambar 3.13. Perbandingan akuisisi polling dan interrupt driven

Sesuai dengan spesifikasi protokol komunikasi I2C [14], setiap sensor memilki

hardware address sebagai identitas setiap sensor. Masing-masing sensor juga mempunyai

fitur burst baik pada saat membaca maupun menulis. Dengan burst read memungkinkan untuk

membaca hasil pengukuran sensor secara berurutan mulai dari alamat register pertama data

pengukuran sensor tersebut.

3.4.2 Implementasi Algoritma DCM-IMU untuk AHRS

Algoritma DCM-IMU yang digunakan sebagai AHRS, diimplementasikan ke dalam

program mikrokontroler. Langkah-langkah pada algoritma ini dibagi menjadi beberapa fungsi

sebagai implementasi persamaan-persamaan pada teori DCM-IMU. Fungsi-fungsi tersebut

adalah sebagai berikut:

Proses transfer Proses lain Proses awal akuisisi

a. Polling

b. Interrupt driven

proses utama

hardware I2C

Page 19: BAB III PERANCANGAN - repository.uksw.edurepository.uksw.edu/bitstream/123456789/2354/4/T1_612005082_BAB III... · Kendali aras rendah atau low layer control adalah lapisan yang ...

66

1. sensor_update(), merupakan fungsi untuk memperbarui data sensor giroskop,

akselerometer dan magnetometer. Karena proses akuisisi data sensor adalah

interrupt driven, untuk mengatasi kesalahan karena penggunaan variabel secara

bersamaan, hasil dari akuisisi ini disimpan dalam dalam sebuah buffer dan

disediakan flag yang menandakan bahwa buffer sudah terbarui. Kemudian dalam

fungsi sensor_update(), jalannya program utama menunggu flag dari interupsi dan

menyalin nilai sensor tersebut ke variabel lain untuk diproses ke langkah

selanjutnya.

2. DCM_update(), fungsi ini mengimplementasikan persamaan 2.50, yaitu pembaruan

matrik rotasi sebagai representasi arah hadap dengan data dari giroskop. Karena

pada persamaan 2.50 melibatkan dt yang merupakan waktu cuplik dari akuisisi

sensor, maka untuk menghitung lamanya waktu cuplik ini digunakan timer. Pada

fungsi ini, pembaruan matrik rotasi dilakukan dengan data dari giroskop dan

kompensasi drift yang dihitung pada proses DCM_drift_detection() sebelumnya.

3. DCM_normalize(), fungsi ini merupakan implementasi dari persamaan 2.52, 2.53,

2.54, 2.55, 2.56, 2.57, 2.58 yang bertujuan untuk menjaga orthogonalitas matrik

rotasi yang terbentuk.

4. DCM_drift_detection(), merupakan fungsi untuk mendeteksi error akibat drift dari

giroskop yang nantinya diumpankan ke fungsi DCM_update(). Error yang

terbentuk merupakan matrik 3x1 dan dikalikan kP sebagai parameter kontrol

proporsional sebelum diumpankan ke fungsi DCM_update(). Pada proses ini

dideteksi pula apakah magnitude dari sensor akselerometer melebihi 1g. Jika

melebihi 1g yang artinya ada percepatan dinamis, proses kompensasi tidak

Page 20: BAB III PERANCANGAN - repository.uksw.edurepository.uksw.edu/bitstream/123456789/2354/4/T1_612005082_BAB III... · Kendali aras rendah atau low layer control adalah lapisan yang ...

67

dilakukan (correction =[0 0 0]), karena akselerometer tidak valid lagi untuk

mengukur arah percepatan gravitasi akibat adanya percepatan dinamis dari luar.

5. DCM_to_Euler(), merupakan implementasi persamaan 2.68, 2.69 dan 2.70 untuk

mendapatkan tiga sudut Euler (roll, pitch, yaw). Tiga sudut ini merupakan sumber

masukan utama kontrol PID Quadcopter.

3.4.3 Kontrol Gerak Quadcopter

Gambar 3.14 menunjukkan kontrol gerak dari Quadcopter yang dibuat pada skripsi ini.

Gambar 3.14. Blok Diagram Kontrol Gerak Quadcopter

Quadcopter

Dynamics Rotor Mixer

PID

Controller

ωhover

Δ ω(ψ,θ,φ)

Δ ωalt

ω1

ω2

ω3

ω4

F1

F2

F3

F4

AHRS

Altitude Refererence

(Ultrasonic)

h

mid layer control

ψset φset θset hset

high level

command

Resp

on

se

high layer

application

low layer control

Page 21: BAB III PERANCANGAN - repository.uksw.edurepository.uksw.edu/bitstream/123456789/2354/4/T1_612005082_BAB III... · Kendali aras rendah atau low layer control adalah lapisan yang ...

68

Kontrol gerak Quadcopter yang dibuat merupakan kontrol PID dengan masukan set

sudut (roll, pitch, yaw) dan set ketinggian dari mid layer control. Keluaran dari kontrol PID

kemudian diolah pada proses mixing untuk menghasilkan empat keluaran kecepatan rotor.

Kontrol PID low layer control terdiri atas empat kontrol PID, yaitu kontrol sudut roll,

kontrol sudut pitch, kontrol sudut yaw dan kontrol ketinggian. Keluaran dari masing-masing

kontrol PID merupakan kompensasi dari masing-masing besaran (roll, pitch, yaw dan

ketinggian) berdasarkan set value dari mid layer control dan nilai aktual dari AHRS dan

altitude reference. Setiap kontrol memenuhi persamaan sebagai berikut:

( )alt alt alt

alt set

altalt p alt d i alt

e h h

d ek e k k e dt

dt

( )

set

p d i

e

d ek e k k e dt

dt

( )

set

p d i

e

d ek e k k e dt

dt

( )

set

p d i

e

d ek e k k e dt

dt

Pada implementasinya dalam program mikrokontroler, kontrol PID yang dibuat dibuat

langkah-langkah program sebagai berikut:

1. Hitung error yang terjadi: error=set_value-actual_value

2. Hitung selisih error dari nilai error sebelumnya: d_error=error-

last_error;last_error=error;

3. Hitung nilai keluaran proporsional: P = kp * error;

(3.1)

(3.2)

(3.3)

(3.4)

Page 22: BAB III PERANCANGAN - repository.uksw.edurepository.uksw.edu/bitstream/123456789/2354/4/T1_612005082_BAB III... · Kendali aras rendah atau low layer control adalah lapisan yang ...

69

4. Hitung nilai keluaran integral: I=constraint(I + (ki * error), max_I);

5. Hitung nilai keluaran derivatif: D=kd * d_error;

6. Jumlahkan nilai proporsional, integral dan derivatif sebagai keluaran PID:

output=P+I+D;

Fungsi constraint() pada langkah 4 merupakan fungsi untuk membatasi nilai keluaran

kontrol integral untuk menghindari nilai integral yang berlebihan. Pembatasan ini sangat

efektif terutama saat Quadcopter melakukan lepas landas di permukaan yang kurang datar.

Pada saat awal kontrol bekerja di permukaan yang tidak datar, nilai I akan terakumulasi dan

memungkinkan nilainya melebihi batas.

Setelah nilai-nilai kompensasi didapatkan (Δωφ, Δωθ, Δωψ dan Δωalt) proses

selanjutnya adalah memadukan keempat keluaran kontrol untuk mendapatkan empat

kecepatan motor.

Gambar 3.15. Gaya Dorong, Yawing Moment, dan Sudut Quadcopter

Fg

Xb

Yb

Zb

Fp4

F p3 Fp2

Fp1

M1

M2 M3

M4

φ θ

ψ ω4 ω1

ω3

ω2

Page 23: BAB III PERANCANGAN - repository.uksw.edurepository.uksw.edu/bitstream/123456789/2354/4/T1_612005082_BAB III... · Kendali aras rendah atau low layer control adalah lapisan yang ...

70

Pada Gambar 3.15, ω1, ω2, ω3, dan ω4 adalah kecepatan putar masing-masing rotor.

Setiap rotor menghasilkan gaya dorong yang berbanding lurus dengan kuadrat kecepatan

sudut rotor (persamaan 2.1). Berdasarkan persamaan 2.5, setiap rotor menghasilkan yawing

moment pada sumbu Zb (sudut yaw).

Jika Fp4 lebih besar dari Fp2, maka Quadcopter akan berotasi terhadap sumbu Yb atau

sudut pitch(θ) positif. Begitu juga pada sudut roll(φ), jika Fp1 lebih besar dari Fp3, Quadcopter

akan berotasi ke sudut roll positif. Yawing moment positif pada sudut yaw(ψ) dihasilkan oleh

rotor-1 dan rotor-3, sedangkan rotor-2 dan rotor-4 menghasilkan yawing moment negatif.

Dengan mekanisme tersebut, keluaran kompensasi kontrol PID untuk sudut roll, pitch dan

yaw dipadukan untuk mengendalikan kecepatan empat rotor:

1 hover alt

2 hover alt

3 hover alt

4 hover alt

ωhover merupakan kecepatan minimum dari rotor untuk menghasilkan gaya dorong

sebesar seperempat berat Quadcopter. Jika tidak ada kompensasi dan hanya ωhover saja yang

bekerja pada masing-masing rotor, Quadcopter dalam kondisi siap terbang.

Low layer control direalisasikan dalam bentuk loop dalam program sesuai dengan

diagram alir pada Gambar 3.16.

Page 24: BAB III PERANCANGAN - repository.uksw.edurepository.uksw.edu/bitstream/123456789/2354/4/T1_612005082_BAB III... · Kendali aras rendah atau low layer control adalah lapisan yang ...

71

Gambar 3.16. Diagram alir low layer control

Low layer control dan mid layer control diimplementasikan dalam satu mikrokontroler

LPC1114. Pada low layer control, periode siklus looping program dibuat kurang dari 2 ms,

sesuai dengan periode PWM dari ESC sehingga perubahan kecepatan yang diberikan kontrol

PID dapat langsung di-update oleh ESC.

start

Kalkulasi roll,pitch dan yaw

dengan algoritma DCM-IMU

Jalankan task untuk mid layer

control.

Kalkulasi kontrol PID untuk gerak

Quadcopter

Mixing

Update kecepatan rotor

Inisialisasi peripheral dan sensor

akuisisi data ketinggian

Page 25: BAB III PERANCANGAN - repository.uksw.edurepository.uksw.edu/bitstream/123456789/2354/4/T1_612005082_BAB III... · Kendali aras rendah atau low layer control adalah lapisan yang ...

72

3.5. Perancangan Mid Layer Control

Mid layer control terdiri dari dua bagian penting, yaitu algoritma autonomous yang

bekerja bersama-sama dengan low layer control dan high level command protocol sebagai

protokol komunikasi paket data antara high layer application dengan mid layer control.

3.5.1 Algoritma Autonomous

Algoritma autonomous Quadcopter diimplementasikan dengan mesin kondisi terbatas

(FSM, finite state machine) seperti pada Gambar 3.17.

Gambar 3.17. Diagram Finite State Machine dari Mid Layer Control

FSM yang dibuat terdiri dari beberapa kondisi (state), yaitu: idle, take off , attitude &

altitude hold, altitude correction, yaw corection dan navigate. Kondisi-kondisi ini dapat

beralih ke kondisi-kondisi tertentu yang terbatas jika ada pemicu (trigger) yang sesuai. Ada

idle

Altitude &

attitude hold

altitude

corection

landing

yaw

correction

navigate

take_off() take off

take_off: done

landing: done

landing()

altitude_set(x)

alt_set: done

navigate: done or stop()

yaw_set: done

set_direction(x)

START

move(x,y,dt)

Page 26: BAB III PERANCANGAN - repository.uksw.edurepository.uksw.edu/bitstream/123456789/2354/4/T1_612005082_BAB III... · Kendali aras rendah atau low layer control adalah lapisan yang ...

73

dua jenis trigger yang berlaku, yaitu perintah dari high layer application dan trigger internal

seperti terpenuhinya kondisi dari sebuah state. Penjelasan dari setiap state tersebut adalah

sebagai berikut:

1. Idle

Merupakan kondisi awal dari pesawat. Semua rotor dalam kondisi berhenti, tetapi

proses low layer seperti akuisisi sensor dan algoritma DCM-IMU masih berjalan.

2. Take off

Proses take off atau lepas landas dilakukan setelah ada perintah dari high layer

application untuk lepas landas dari kondisi idle. Sudut set untuk roll dan pitch diberi

nilai 0, yang artinya low layer control harus mempertahankan Quadcopter pada posisi

seimbang mendatar. Saat proses ini dipicu, sudut yaw disimpan dan dijadikan sudut

set, sehingga tidak ada koreksi pada sudut yaw yang mengganggu kontrol

keseimbangan Quadcopter, terutama komponen proporsional pada kontrol PID low

layer control. State ini akan memicu state attitude & altitude hold jika ketinggian

pesawat menyentuh nilai default yaitu 1 meter.

3. Attitude & altitude hold

State attitude & altitude hold atau hovering merupakan kondisi di mana Quadcopter

mempertahankan keseimbangan, sudut yaw dan ketinggian. Sudut set untuk yaw

diambil dari sudut yaw aktual pertama kali saat state ini dipicu. State ini merupakan

state idle dari Quadcopter saat berada di udara. Dari state ini dapat dipicu oleh

perintah high layer application untuk berpindah ke state altitude correction, yaw

correction atau navigate.

Page 27: BAB III PERANCANGAN - repository.uksw.edurepository.uksw.edu/bitstream/123456789/2354/4/T1_612005082_BAB III... · Kendali aras rendah atau low layer control adalah lapisan yang ...

74

4. Altitude correction

State altitude correction dipicu dari state attitude & altitude hold setelah ada perintah

dari high layer application untuk menyesuaikan ketinggian pesawat. Pada kondisi ini,

set ketinggian disesuaikan secara bertahap sesuai dengan perintah yang dikirimkan

oleh high layer application. Setelah set ketinggian dianggap sudah terpenuhi

(magnitude error ketinggian kurang dari 10 cm selama 3 detik atau 1500 siklus

kontrol), state ini memicu kembali state attitude & altitude hold.

5. Yaw correction

State yaw correction dipicu dari state attitude & altitude hold setelah ada perintah dari

high layer application untuk menyesuaikan arah hadap Quadcopter. Besarnya sudut

yaw perintah diteruskan ke set sudut yaw pada kontrol PID. State yaw correction akan

memicu state attitude & altitude hold jika sudut yaw yang diperintahkan dianggap

sudah terpenuhi (magnitude error sudut yaw kurang dari 5 derajat selama 3 detik atau

1500 siklus kontrol).

6. Navigate

State navigate adalah kondisi di mana Quadcopter bergerak sesuai dengan perintah

dari high layer application. Pergerakan Quadcopter dilakukan dengan mengatur set

sudut pitch dan roll pada kontrol PID. Pada saat state ini dipicu, parameter perintah

arah gerak (x dan y) dari high layer application diubah menjadi set sudut untuk roll

dan pitch yang dibatasi sampai ± 20° agar pergerakan dari Quadcopter tidak terlalu

ekstrim. State ini akan memicu state attitude & altitude hold dengan dua kemungkinan

trigger, yaitu saat parameter perintah dt yang merupakan perintah lamanya

Page 28: BAB III PERANCANGAN - repository.uksw.edurepository.uksw.edu/bitstream/123456789/2354/4/T1_612005082_BAB III... · Kendali aras rendah atau low layer control adalah lapisan yang ...

75

Quadcopter bergerak sudah berakhir, dan saat high layer application memerintahkan

untuk berhenti dengan perintah stop().

3.5.2. High Level Command Protocol

Untuk menghubungkan mid layer control dan high layer application digunakan

komunikasi UART dengan bluetooth. Pada skripsi ini dirancang format paket data yang

digunakan untuk bertukar data antar kedua layer tersebut.

LPC1114 memilki FIFO (First In First Out) buffer sebesar 16 byte baik untuk mengirim

maupun untuk menerima [6]. Dengan FIFO buffer ini memungkinkan untuk mengirim

ataupun menerima data tanpa harus menunggu proses selesai, tetapi dengan catatan FIFO

buffer tidak penuh.

Perancangan paket data dibuat dengan meminimalisir latency pada saat mikrokontroler

mengirim paket data. Satu paket data dibuat dengan ukuran kurang dari 16 byte (total 15 byte),

sehingga pada sekali transfer, program tidak akan menunggu sampai transfer selesai karena

ada FIFO buffer untuk pengiriman.

Komunikasi dirancang dengan sistem master-slave dengan high layer application

sebagai master dan mid layer control sebagai slave. Format paket data dibagi menjadi dua,

yaitu perintah (command) dan balasan (response). Command (Tabel 6) merupakan paket data

dari high layer application dan response (Tabel 7) merupakan paket data dari mid layer

control. Master menginisiatif komunikasi dengan mengirimkan command, selanjutnya slave

membalasnya dengan response. Setiap command memiliki command id, dan parameter

perintah dalam payload. Setiap command akan dibalas dengan response id yang sama dengan

command id dari command yang diterima oleh low layer control. 12 byte data pada payload

Page 29: BAB III PERANCANGAN - repository.uksw.edurepository.uksw.edu/bitstream/123456789/2354/4/T1_612005082_BAB III... · Kendali aras rendah atau low layer control adalah lapisan yang ...

76

dari command dan response direpresentasikan dengan huruf ASCII ‘0’ – ‘9’. Pada Tabel 8

diperlihatkan keseluruhan perintah tingkat tinggi yang dapat digunakan oleh high layer

application.

Tabel 3.6. Format Paket Data Command

Header (‘C’) Command ID Payload Checksum

1 byte 1 byte 12 byte 1 byte

Tabel 3.7. Format Paket Data Response

Header (‘R’) Response ID Payload Checksum

1 byte 1 byte 12 byte 1 byte

Tabel 3.8. High level Command Set

Command ID Command Payload Response Payload

get_state ‘S’ 000000000000 state[3] batt[3] 00000

get_yaw ‘Y’ 000000000000 yaw[3] 000000000

get_altitude ‘H’ 000000000000 altitude[4] 00000000

take_off ‘T’ 000000000000 status[1] 00000000

landing ‘L’ 000000000000 status[1] 00000000

altitude_set ‘A’ A[4] 00000000 status[1] 00000000

move ‘M’ X[3] Y[3] Z[3] dt[3] status[1] 00000000

set_direction ‘D’ D[3] 000000000 status[1] 00000000

stop ‘X’ 000000000000 status[1] 00000000