• Tidak ada hasil yang ditemukan

T1 612005082 BAB III

N/A
N/A
Protected

Academic year: 2017

Membagikan "T1 612005082 BAB III"

Copied!
29
0
0

Teks penuh

(1)

48

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

ap

an

k

er

(2)

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

(3)

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

(4)

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.

(5)

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

(6)

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 BU

S

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

(7)

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

(8)

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.

(9)

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]

(10)

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

(11)

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.

(12)

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.

(13)

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.

(14)

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

(15)

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 /2A BLDC

A B C

+

-

ESC PW M 5V /2A BLDC

A B C

+

-

ESC PW M 5V /2A BLDC

A B C

+

-

ESC PW M 5V /2A BLDC +
(16)

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.

(17)

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.

(18)

Gambar 3.13. Perbandingan akuisisi polling dan interruptdriven

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

(19)

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.

(20)

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 Re sp on se high layer application

(21)

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

alt

alt p alt d i alt

e

h h

d e

k e

k

k e dt

dt

 

 

( )

set

p d i

e

d e

k e

k

k e dt

dt

       

 

 

 

( )

set

p d i

e

d e

k e

k

k e dt

dt

       

 

 

 

( )

set

p d i

e

d e

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

(22)

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

(23)

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

(24)

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

(25)

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

(26)

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

(27)

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

(28)

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

(29)

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 levelCommand 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

Gambar

Gambar 3.1. Layered Design
Gambar 3.2. Kerangka Quadcopter
Gambar 3.3. Baling-baling 10x4.5
Tabel 3.1. Spesifikasi LIS3LV02DL
+7

Referensi

Garis besar

Dokumen terkait

Sebelum dilakukan pemeriksaan penyidikan, polisi melakukan tindakan penangkapan yang berdasarkan laporan atau pengaduan dari masyarakat. Surat perintah yang dikeluarkan

arah dalam menggali data mental accounting yang terdapat pada mahasiswa. Program Studi

Gambar 3.25 adalah diagram alir proses mikrokontroler beserta perintah- perintah aplikasi desktop yang diberikan ke mikrokontroler melalui komunikasi data

Perintah yang digunakan untuk mengatur data awal dari waktu dan. kalendar adalah

Secara garis besar, data yang diperoleh dari Voice Recognition V3 Module akan diolah oleh mikrokontroler menjadi data perintah yang akan menggerakan kursi roda

kendali pendulum terbalik ini digunakan sebuah sensor sudut rotary encoder untuk.. melihat besarnya sudut aktual yang dihasilkan oleh pendulum terhadap sumbu

Mikrokontroler akan mengirimkan perintah agar robot melakukan gerakan yang tidak berulang dalam bentuk paket data ke RCB-4 atau servo

Dalam penelitian ini gerak lagu yang digunakan merupakan gerak lagu yang di dalam syair atau liriknya berisi pembelajaran mengenai kemampuan lateralisasi yaitu