72
PERANCANGAN
3.1 Garis Besar Perancangan
Secara garis besar perancangan pada tugas akhir ini terdiri dari sistem UAV (quadrotor) dan sistem kendali (ground control) dari jarak jauh dengan komunikasi wireless seperti yang disajikan pada gambar 3.1.
GROUND CONTROL UAV
Gambar 3.1 Sistem UAV sederhana
Perancangan sistem UAV terdiri dari frame, motor dan propeller sebagai aktuator, mikrokontroler sebagai modul kontrol elektronik, modul IMU sebagai sumber data AHRS dan modul wireless sebagai penunjang komunikasi dengan ground control.
Perangkat elektronik secara garis besar disajikan pada gambar 3.2, terdiri dari Mikrokontroler, IMU, baterai, regulator tegangan, modul nirkabel, empat buat ESC dan empat buat motor BLDC.
MICROCONTROLLER 10 DOF MODULE IMU ACCELEROMETER GYROSCOPE MAGNETOMETER BAROMETER WIRELESS MODULE BATTERY Electronic Speed Controller 1 Electronic Speed Controller 2 Electronic Speed Controller 3 Electronic Speed Controller 4 M1 M2 M3 M4
Voltage Regulator Module
I2C BUS DMP FIFO
UART
Gambar 3.2 Blok diagram elektronik pada quadrotor 3.2 Alur Perancangan
Secara keseluruhan struktur perancangan pada tugas akhir ini mempunyai beberapa layer seperti pada gambar dibawah ini
COMMUNICATION LAYER TA H A P A N P ER A N C A N G A N PRESENTATION LAYER NAVIGATION INPUT MONITORING CONFIGURATION HARDWARE LAYER ELEKTRONIK
Mikrokontroller IMU Radio Baterai
EMBEDDED LAYER D M P FLIGHT CONTROLLER MEKANIK Propeller BLDC & ESC Frame
Alur perancangan dibuat dengan beberapa layer bertujuan untuk tahapan perancangan yang jelas, sistematis dan terstruktur. Perancangan dimulai dari layer yang paling bawah, yaitu hardware layer yang terdiri dari mekanik dan elektronik, kemudian dilanjutkan ke embedded layer, communication layer dan presentation layer.
3.3 Perancangan Perangkat Keras (Hardware Layer)
Untuk memudahkan perancangan perangkat keras dibagi menjadi dua bagian, yaitu perancangan mekanik dan perancangan elektronik.
3.3.1 Perancangan Mekanik
Perancangan mekanik merupakan layer fisik dari quadrotor, Bagian ini terdiri dari sistem mekanik yaitu kerangka, motor BLDC dan propeller.
3.3.1.1 Rangka (Frame)
Quadrotor yang dirancang pada tugas akhir ini menggunakan bentuk kerangka yang sederhana dengan kerangka jenis X (X-frame). Penempatan empat motor pada frame ini memiliki jarak yang sama terhadap pusat massa quadrotor.
Gambar 3.4 X-frame FPV250 quadrotor
Kerangka ini dipilih karena ukurannya yang kecil (diameter 25cm), berat yang ringan (109gram) dan memiliki rangka yang kuat.
3.3.1.2 BLDC Motor dan ESC
Perancangan menggunakan motor BLDC sebagai penggerak propeller, karena lebih efisien daya dan lebih mudah perawatan dibandingkan dengan motor DC konvensional dengan sikat.
Gambar 3.5 BLDC Motor SunnySky X224S-16
Motor BLDC yang digunakan memiliki spesifikasi 2300 kV (2300 RPM/V), dengan menggunakan sumber tegangan 11.1 Volt maka mendapatkan kecepatan maksimum 25530 RPM.
Tabel 3.1 Sepesifikasi BLDC Motor SunnySky X224S-16
Model SUNNYSKY X224S-16
Diameter Stator 22 mm
Ketebalan Stator 4 mm
Jumlah tangan Stator 12
Jumlah Pole Stator 14
Motor Kv 2300
Arus tanpa Beban (A/10V) 0.6 A
Motor Resistance 112m
Arus Kontinu Maksimum 10A/30s
Daya Kontinu Maksimum 140 W
Berat 21 gram Diameter Luar 27 mm Diameter Shaft M5 Panjang Bodi 16 mm Panjang Shaft 27.7 mm LiPo Cell 2-3S
Berdasarkan dari spesifikasi arus maksimum motor adalah 10 Ampere, pemilihan pengendali kecepatan motor menggunakan ESC dengan rating 12A .
Gambar 3.6 ESC EMAX 12A
ESC Emax 12A mempunyai input sinyal PWM dan mempunyai internal BEC (Battery Eliminator Circuit) dengan rating 5V/1A. BEC ini dimanfaatkan untuk supply mikrokontroler.
Tabel 3.2 Spesifikasi ESC Emax 12A
Model Emax ESC 12 A SimonK Series
Arus Kontinu 12 A
Arus Burst (10 s) 15 A
LiPo Cell 2 - 3 S
Dimensi PxLxT (mm) 25x20x7
Berat 9 gram
Mode BEC Linier
BEC output 1 A / 5 V
Dapat diprogram Ya
3.3.1.3 Propeller
Untuk menghasilkan daya angkat pada quadrotor, propeller yang digunakan mempunyai ukuran 6x3 (panjang 6 inci, pitch 3 inci) dengan 2 buah CCW (berlawanan arah jarum jam) dan 2 buah CW (searah jarum jam).
Gambar 3.7 Propeller HQ-PROP 6x3 inci
Pertimbangan memilih propeller HQ-PROP 6x3 karena propeller ini memiliki panjang 6 inci yang merupakan panjang maksimal yang dapat digunakan pada frame dan juga, merupakan rekomendasi ukuran propeller dari produsen motor. Propeller ini memiliki diameter dalam sebesar 5mm yang sesuai dengan diameter shaft motor yang digunakan. Selain itu propeller ini menggunakan material carbon composite, yaitu campuran material carbon, plastik dan campuran lain sehingga menjadikannya ringan, tidak terlalu kaku (fleksibel) dan tidak mudah patah.
Tabel 3.3 Spesifikasi HQ Propeller DD6030
Model HQ Propeller DD6030
Panjang 6 inch
Pitch 3 inch
Material Carbon Composite
Berat 3.3 gram
Hub ID Dia 5mm / 9.5mm
Hub OD Dia 13 mm
Hub thickness 7 mm
3.3.2 Perancangan Elektronik
Perancangan elektronik terdiri dari komponen elektronik yaitu mikrokontroler, IMU, wireless dan baterai.
3.3.2.1 Mikrokontroler
Pada perancangan ini, Arduino Pro Mini dijadikan sebagai otak quadrotor, karena ukurannya yang kecil, berat yang ringan, memiliki 1 port I2C, 1 port Serial dan 6 pin PWM. Arduino Pro Mini menggunakan mikrokontroler ATMega328P produsen Atmel, dengan clock speed 16MHz Menjadikan mikrokontroler ini cukup dijadikan otak pada quadrotor.
Gambar 3.8 Arduino Pro Mini ATMega328P 5V
Mikrokontroler ATMega328P memiliki EEPROM (Electrically Erasable Programmable Read-Only Memory) yang dapat digunakan sebagai penyimpanan konfigurasi quadrotor seperti informasi kalibrasi sensor gyroscope, accelerometer dan lain-lain.
Tabel 3.4 Spesifikasi Arduino Pro Mini ATMega328P 5V
Model Arduino Pro Mini
Mikrokontroler ATMega328P
Tegangan Kerja 5 Volt
Input Tegangan 5-12 Volt
I/O Pin 14 pin (6 pin untuk PWM)
Analog Pin 8 pin
Arus I/O Pin 150mA
Flash Memory 32 KB (2 KB Bootloader)
SRAM 1 KB EEPROM 1 KB Kecepatan 16 MHz I2C 1 Serial Port 1 3.3.2.2 Sensor Inersia
Drotek 10 DOF IMU merupakan modul yang terdiri dari sensor accelerometer, gyroscope, magnetometer dan barometer. Sensor-sensor tersebut merupakan sumber informasi utama untuk perhitungan algoritma AHRS.
Gambar 3.9 Modul Drotek 10 DOF IMU
Drotek 10 DOF IMU terhubung dengan jalur bus dengan protocol asinkron serial 2 kawat I2C (Inter-Integrated Circuits). Dan dapat menggunakan sumber tenaga 5V atau 3.3V
Gambar 3.10 Skema rangkaian Drotek 10 DOF IMU
Pada modul ini, menggunakan dua chip, yaitu chip MPU9150 yang berfungsi sebagai sensor accelerometer, gyroscope, magnetometer. Dan chip MS5611-01BA sebagai sensor barometer. Chip MPU9150 produksi Invensense. merupakan gabungan dari dua chip, yaitu, chip MPU6050 (sensor gyroscope dan sensor accelerometer) dan chip AK8975 (sensor magnetometer).
3.3.2.3 Wireless
Komunikasi nirkabel merupakan salah satu tantangan. Beberapa faktor yang menjadi pertimbangan seperti konsumsi daya, berat, kecepatan transmisi dan kehandalan. Modul XBee Pro 900 HP merupakan salah satu modul yang cocok untuk mendukung kriteria tersebut. Komunikasi modul XBee Pro 900 HP dapat
menggunakan perintah serial, memiliki kecepatan data maksimum 200kbps dan jangkauan maksimum 6.5km.
Gambar 3.11 Telemetri radio XBEE Pro 900 HP
Modul Xbee Explorer digunakan untuk memudahkan rangkaian dan konektitas modul Xbee dengan mikrokontroler maupun dengan komputer.
Tabel 3.5 Spesifikasi radio XBEE Pro 900 HP
Model XBee‐PRO® 900HP
Frekuensi 902 to 928 MHz
Daya output Transmit 24 dBm (250 mW)
(software selectable)
RF Data Rate (High) 200 kbps
RF Data Rate (Low) 10 kbps
Serial Interface data rate 9600-230400 baud
(software selectable)
Supply Voltage 2.1 Volt - 3.6 Volt
Current 2.5 µA to 290 mA
10 kbps 200 kbps
Jankauan Indoor/Urban 2000 feet
(610 m) 1000 feet (305 m) Jankauan LOS (line of sight) 9 miles (15.5 km) 4 miles (6.5 km)
3.3.2.4 Sumber Tenaga
Berdasarkan spesifikasi Motor dan ESC sumber tenaga quadrotor menggunakan baterai LiPo 3S 1300 mAh produksi Turnigy dengan discharge rate sebesar 45C, kapasitas 1.300 mAh, tegangan output sebesar 11,1 volt dan memiliki 3 cell di dalamnya. Dengan sepesifikasi tersebut, baterai mempunyai kemampuan memberikan arus sebesar 58.3A yang cukup untuk men-supply empat buah ESC dengan empat buat motor BLDC dan modul elektronika lainnya tanpa merusak baterai.
Gambar 3.12 Baterai Lipo
Pada tabel 3.6 merupakan detail spesifikasi Baterai LiPo yang digunakan pada perancangan quadrotor.
Tabel 3.6 Spesifikasi Baterai LiPo
Model Turnigy nano-tech 1300mAh
3S 45~90C Lipo Pack
Capacity 1300 mAh
Config 3S
Discharge 45 C
Max Discharge 90 C
Max Charge Rate 10 C
Internal Resistance 1.2 mΩ
Dimension 72x23x35 mm
3.3.2.5 Perancangan Rangkaian Elektronik
PWM pada Arduino Pro Mini memiliki 2 frekuensi standar , yaitu frekuensi 490Hz dan frekuensi 980Hz. PWM dengan frekuensi 490Hz terdapat pada pin 3, 9, 10 dan 11 sedangkan PWM dengan frekuensi 980Hz terdapat pada pin 5 dan 6. [13]
Untuk memudahkan programming pada proses PWM encoder, pin PWM yang digunakan adalah pin 3, 9, 10 dan 11.
Output sinyal PWM pada ESC pada perancangan ini menggunakan frekuensi 8kHz.
ARDUINO PRO MINI ATMEGA328P 5V, 16MHz BLDC MOTOR 1 ESC 1 A B C BLDC MOTOR 2 ESC 2 A B C BLDC MOTOR 3 ESC 3 A B C BLDC MOTOR 4 ESC 4 A B C D3/PWM D9/PWM D10/PWM D11/PWM XBEE 10 DOF IMU RX TX D0/RXD D1/TXD D2/INT0 INT SDA SCL A4/SDA A5/SCL PWM PWM PWM PWM VCC 5V 5V RAW 5V/1A 5V/1A 5V/1A 5V/1A GND GND GND GND GND GND GND LiPo Battery 3S 11.1 Volt, 1300mAh GND 7.4-12.6V 7.4-12.6V 7.4-12.6V 7.4-12.6V
Gambar 3.13 Perancangan skema rangkaian elektronik 3.4 Perancangan Embedded System
Secara keseluruhan piranti lunak yang dikembangkan dapat diilustrasikan seperti pada gambar 3.14.
10 DOF IMU 3 Axis Gyroscope 3 Axis Accelerometer 3 Axis Magnetometer Digital Motion Processor Barometer
ARDUINO PRO MINI ATMEGA328 I2C Driver SENSOR FUSION SERIAL PROTOCOL XBEE FLIGHT CONTROLLER PWM ENCODER DRIVER EEPROM DRIVER STABILIZER TASK MANAGEMENT THROTTLE MIXER ATTITUDE CONTROLLER COMMAND TRANSLATOR ESC 2 ESC 3 ESC 4 ESC 1 MOTOR 1BLDC BLDC MOTOR 2 BLDC MOTOR 3 BLDC MOTOR 4 PWM 1 PWM 2 PWM 4 PWM 3 UART RC INPUT GLOBAL VARIABLES
Block piranti lunak yang akan dirancang
Yaw, Pitch, Roll Rotation Speed, Vertical Speed, Altitude I2 C B U S
Gambar 3.14 Arsitektur embedded system 3.4.1 Struktur Class dan Tipe Data
Struktur class dan tipe data digunakan untuk memudahkan pemprograman yang berorientasi objek atau dikenal dengan object oriented programming (OOP).
+pid : pid_t[7] +rcSetting : rcSetting_t +gyroCalibration : simple_calibration_t +accelCalibration : calibration_t +magCalibration : calibration_t +bodyQuaternion : int16_t[4] +groundAlt : float +checksum : uint8_t «struct»mem_config_t +ThrottleMin : int16_t +ThrottleMax : int16_t +rcRate : uint8_t +rcExpo : uint8_t +rollPitchRate : uint8_t +yawRate : uint8_t +dynThrPID : uint8_t +thrMid : uint8_t +thrExpo : uint8_t «struct»rcSetting_t +xOffset : float +yOffset : float +zOffset : float +weight : float «struct» simple_calibration_t +P : uint8_t +I : uint8_t +D : uint8_t «struct»pid_t +xMin : int16_t +xMax : int16_t +yMin : int16_t +yMax : int16_t +zMin : int16_t +zMax : int16_t +weight : float +xOffset : int16_t +yOffset : int16_t +zOffset : int16_t +xScale : float +yScale : float +zScale : float «struct»calibration_t +p : int32_t +pressure : float +temperature : float +altitude : float +velocity : float «struct»baro_t +gyro : int16_t[3] +accel : int16_t[3] +mag : int16_t[3] «struct»imu_t +p : int32_t +q : int16_t[4] +gyro : int16_t[3] +accel : int16_t[3] +mag : int16_t[3] «struct» dmp_raw_t +dmp : dmp_raw_t +imu : imu_t «struct» dmp_raw_vs_imu_t
Pada gambar 3.15 merupakan keseluruhan struktur tipe data yang digunakan pada perancangan embedded system. Struktur tipe data pid_t digunakan untuk menyimpan data konstanta Kp, Ki dan Kd pada masing-masing jenis pengendalian PID. Untuk menghemat memory pada mikrokontroler, tipe data yang digunakan adalah uint8_t (unsigned integer 8 bit). Namun pada saat pemakaiannya harus selalu dikonversi ke skala yang sebenarnya.
Tabel 3.7 Detail struktur tipe data pid_t
Nama Field Tipe Data Keterangan Satuan
P uint8_t Propotional (pada pemakaian /10) I uint8_t Integral (pada pemakaian /1000) D uint8_t Derivative (pada pemakaian /100)
Struktur tipe data baro_t merupakan data pengukuran tekanan dan temperature dengan menggunakan sensor barometer berserta nilai-nilai hasil perhitungannya seperti altitude dan velocity (kecepatan vertikal) dengan waktu cuplik terakhir.
Tabel 3.8 Detail struktur tipe data barometer
Nama Field Tipe Data Keterangan Satuan
p int32_t millis
pressure float tekanan udara
temperature float suhu
altitude float ketinggian
velocity float kecepatan vertikal
Kalibrasi accelerometer dan magnetometer disimpan di EEPROM dengan menggunakan struktur tipe data calibration_t. Nilai maksimum dan minimum untuk
accelerometer sample datanya dapat diambil dengan membuat orientasi sumbunya terhadap gravitasi, sedangkan untuk magnetometer sample datanya dengan orientasi masing-masing sumbunya terhadap arah utara. Pada tabel 3.9 merupakan penjelasan detail untuk masing-masing field-nya.
Tabel 3.9 Detail struktur tipe data kalibrasi
Nama Field Tipe Data Keterangan Satuan
xMin int16_t Sumbu X minimum
xMax int16_t Sumbu X maksimum
yMin int16_t Sumbu Y minimum
yMax int16_t Sumbu Y maksimum
zMin int16_t Sumbu Z minimum
zMax int16_t Sumbu Z maksimum
weight float
xOffset int16_t automatis
yOffset int16_t automatis
zOffset int16_t automatis
xScale float
yScale float
zScale float
Kalibrasi gyroscope menggunakan struktur tipe data simple_calibration_t. Struktur tipe data ini tidak sekompleks struktur tipe data calibration_t, hal ini karena kalibrasi gyroscope pada prakteknya sulit untuk mengukur nilai maksimum dan minimum secara pasti.
Tabel 3.10 Detail struktur tipe data kalibrasi gyroscope
Nama Field Tipe Data Keterangan Satuan
xOffset int16_t
yOffset int16_t
zOffset int16_t
Struktur tipe data dmp_raw_t merupakan data dari hasil buffer FIFO dmp pada setiap pembacaan waktu cupliknya.
Tabel 3.11 Detail struktur tipe data dmp_raw_t
Nama Field Tipe Data Keterangan Satuan
p int32_t millis
q int16_t[4] Quaternion
gyro int16_t[3] pengukuran gyroscope (x, y, z) accel int16_t[3] pengukuran accelerometer (x, y, z) mag int16_t[3] pengukuran magnetometer (x, y, z)
Stuktur tipe data imu_t merupakan hasil pengukuran dari tipe data dmp_t yang sudah terkalibrasi dan atau sudah dirotasi sesuai dengan body frame quadrotor.
Tabel 3.12 Detail struktur tipe data imu_t
Nama Field Tipe Data Keterangan Satuan
gyro int16_t[3] pengukuran gyroscope (x, y, z) accel int16_t[3] pengukuran accelerometer (x, y, z) mag int16_t[3] pengukuran magnetometer (x, y, z)
Struktur tipe data mem_config_t merupakan struktur data yang akan disimpan pada EEPROM.
Tabel 3.13 Detail struktur tipe data konfigurasi mem_config_t
Nama Field Tipe Data Keterangan Satuan
pid pid_t[7] rcSetting rcSetting_t gyroCalibration simple_calibration_t accelCalibration calibration_t magCalibration calibration_t bodyQuaternion int16_t[4] groundAlt float checksum uint8_t
Struktur tipe data rcSetting_t merupakan struktur tipe data konfigurasi sifat daripada input dari ground control.
Tabel 3.14 Detail struktur tipe data rcSetting_t
Nama Field Tipe Data Keterangan Satuan
ThrottleMin int16_t ThrottleMax int16_t rcRate uint8_t rcExpo uint8_t rollPitchRate uint8_t yawRate uint8_t dynThrPID uint8_t thrMid uint8_t thrExpo uint8_t 3.4.2 Task Management
Standar pemprograman Arduino mempunyai dua proses, yaitu proses setup dan proses loop. Proses setup terjadi hanya satu kali ketika Arduino menyala atau di-reset. Proses setup dapat digunakan untuk inisalisasi variabel, mode pin, atau inisialisasi aplikasi. Sedangkan proses loop merupakan proses yang diulang-ulang. Proses loop dipakai untuk kontrol atau respon pada mikrokontroler.
Task Management dirancang untuk memudahkan sub-proses pada loop Arduino yang dimana sub-proses tersebut membutuhkan aktivasi pada periode tertentu.
Task Management terbagi menjadi 3 proses, yaitu Instance Task, Scheduler Task, dan End Task. Instance Task merupakan task yang berada pada awal loop,
Scheduler Task merupakan task yang dijadwalkan dalam periode tertentu dan End Task merupakan task yang berada pada akhir loop. Hubungan proses Arduino dengan proses task management disajikan pada gambar 3.4.2.
Alur standar pada Arduino Alur proses Task Manajemen pada Loop Arduino Alur Proses Penjadwalan Task
Start START INSTANCE TASK END TASK END START END Apakah selisih waktu sesuai dengan periode
Task ?
Ekseskusi Proses Task Terkait
Y MILLIS Baca Waktu
Set waktu Task terakhir = waktu
saat ini T Baca Jumlah Jadwal
Task
Apakah semua jadwal Task sudah
diproses ? Jadwal Task Proses Penjadwalan Task LOOP SETUP
Gambar 3.16 Alur proses task management 3.4.3 Variabel Global
Variabel global adalah data state yang disimpan pada RAM mikrokontroler yang dapat dibaca dan atau dimanipulasi oleh beberapa blok proses/sub-proses pada embedded system.
3.4.4 EEPROM Driver
EEPROM digunakan untuk menyimpan data konfigurasi, kalibrasi dan tuning pada mikrokontroler.
Load EEPROM Reset EEPROM Save EEPROM Baca Binary EEPROM Apakah Checksum sesuai ? START END Set Global Variable EEPROM Y START Reset EEPROM T Clear EEPROM END Set Default Configuration START Kalkulasi checksum EEPROM Simpan ke EEPROM END Serialisasi class/ struct memConfig ke Binary Save EEPROM deserialisasi binary ke class/struct memConfig Kalkulasi checksum Global Variable memConfig
Gambar 3.17 Alur proses EEPROM 3.4.5 Sensor Fusion
Blok sensor fusion merupakan proses pengolahan AHRS yang sumber datanya dari modul IMU. Hasil pengolahannya berupa posisi sudut (ψ, θ, ϕ), kecepatan rotasi, percepatan dan ketinggian. Data tersebut akan dimanfaatkan untuk proses flight controller dan atau proses yang lainnya.
Pada prakteknya modul IMU yang dipasang pada body frame tidak selalu akurat pada pusat body frame. Untuk mengurangi kesalahan perhitungan posisi sudut, maka 𝒒𝒅𝒎𝒑 perlu dirotasikan ke 𝒒𝒃𝒐𝒅𝒚 terlebih dahulu, kemudian dilakukan perhitungan menentukan posisi sudut (ψ, θ, ϕ). Untuk mendapatkan kecepatan angular (𝝎) dan percepatan (a) yang akurat juga dirotasikan dengan 𝒒𝒃𝒐𝒅𝒚.
YAW PITCH ROLL 2 3 2 2 2 1 2 0 3 0 2 1 2 arctan q q q q q q q q 2 0 2 1 3 arcsin qq qq 2 3 2 2 2 1 2 0 3 2 1 0 2 arctan q q q q q q q q * body dmp q q q dmp
q
ROTATION offset
dmp
+-Gambar 3.18. Diagram blok perhitungan sudut
dmp
bodyq
* 0 body dmp body q q dmpa
* 0 body dmp body q a q a
a
Gambar 3.19. Diagram blok perhitungan rotasi untuk vektor kecepatan angular
dan vektor percepatan
Karena DMP pada tugas akhir ini menggunakan firmware 6 Motion Fusion, maka sudut Yaw perlu disinkronkan terlebih dahulu dengan sudut kompas. Proses sinkronisasi dieksekusi hanya satu kali atau dalam periode tertentu.
dmp
m
COMPASS x y dmp dmp m m arctan offset dmp compass +
-Gambar 3.20. Diagram blok perhitungan offset Yaw
Pada gambar 3.21 merupakan proses perhitungan ketinggian dengan menggunakan persamaan (2.91). Hasil pengukuran tekanan dari sensor barometer dijadikan input dan menghasilkan output ketinggian.
p
ALTITUDE
25
.
1013
19027 . 0 1 77 . 44330 xp
hk
h
Gambar 3.21. Diagram blok perhitungan ketinggian
h
1 th
-+
h
t
h
v
baro
za
t
a
v
v
acc
t1
z
LPF
HPF
+
+
v
accv
barov
Complementary FilterGambar 3.22 Diagram blok perhitungan kecepatan ketinggian 3.4.6 Flight Controller
Sesuai dengan namanya flight controller berfungsi sebagai kontrol penerbangan dari ground control. Kontrol-kontrol penebangaan pada perancangan
ini, yaitu kontrol untuk menghidupkan atau mematikan motor, mempertahankan posisi sudut, melakukan perintah perubahan posisi sudut, dan atau mempertahankan ketinggian.
Pada proses ini, AHRS dan perintah penerbangan dari ground control dijadikan input kontrol PID. Output dari pengendali PID tersebut kemudian didistribusikan ke masing-masing motor. Pada perancangan pengendali PID ini, mode penerbangan terbagi menjadi dua, yaitu mode akrobatik dan mode angle (posisi sudut). Khusus untuk mode angle posisi sudut hanya digunakan untuk sudut Pitch dan Roll.
Mode akrobatik memanfaatkan kecepatan angular sebagai keseimbangan posisi. Input dari joystick mempengaruhi seberapa cepat quadrotor berputar pada sumbunya. Posisi quadrotor tidak kembali ke posisi sudut semula jika input dari joystick kembali ke posisi nol.
Mode angle memanfaatkan posisi sudut sebagai referensi untuk mempertahankan posisi sudut dan memanfaat kecepatan angular sebagai keseimbangan posisi. Input dari joystick mempengaruhi quadrotor untuk berputar pada sumbunya dengan posisi sudut yang sesuai dengan input. Posisi quadrotor akan kembali ke posisi sudut nol derajat.
Kontrol PID pada perancangan ini menggunakan skema kontrol PI-D [9]. Secara garis besar flight controller pada perancangan ini seperti pada gambar yang disajikan dibawah ini.
Command Translator
Yaw Attitude (PI-D Controller)Yaw Stabilizer
Pitch Attitude (PI-D Controller) Roll Attitude (PI-D Controller) Height Stabilizer (PI-D Controller) Pitch Stabilizer (PI-D Controller) Roll Stabilizer (PI-D Controller) Mixer Attitude Controller Stabilizer FLIGHT CONTROLLER Gambar 3.23 Digram blok flight controller secara keseluruhan
Pada gambar 3.4.6 penjelasan masing-masing blok akan dirinci pada sub-bab selanjutnya.
3.4.6.1 Command Translator
Proses command translator befungsi untuk menerjemahkan dan menyesuaikan format perintah penerbangan dari ground control. Pada umumnya remote kontrol komersial mempunyai sinyal PWM masing-masing channel berkisar antara 1000 sampai dengan 2000. Sinyal Throttle 1000 menunjukan angka nol dan 2000 menunjukan angka masimun. Untuk Elevator, Aileron dan Rudder angka 1500 menunjukan posisi nol. Pada perancangan ini command translator mengkonversi input Elevator, Aieleron dan Rudder menjadi kirasaran -500 sampai dengan 500. Fungsi ekponen digunakan untuk mengurangi atau memperbesar
sensitivitas input, hal ini berguna untuk memudahkan pengguna untuk mengontrol dari joystick bedasarkan input jangkauan kerjanya.
KONVERSI KE SKALA -500 s/d 500 Elevator KONVERSI KE SKALA -500 s/d 500 Aileron KONVERSI KE SKALA -500 s/d 500 Rudder KONVERSI KE SKALA 1000 s/d 2000 Throttle Pitch Exponent Roll Exponent Throttle Exponent command
command
command
commandT
Gambar 3.24 Diagram blok Command Translator 3.4.6.2 Attitude Controller
Attitude Controller merupakan implementasi sikap quadrotor dari perintah yang sudah diterjemahkan oleh command translator. Perancangan Attitude Controller ini mempunyai proses yang berbeda untuk masing-masing jenis penerbangan.
3.4.6.2.1 Yaw Attitude
Yaw Attitude merupakan implementasi perintah sudut Yaw. Yaw attitude terbagi menjadi dua jenis mode yaitu mode Yaw Lock On dan mode Yaw Lock Off. Yaw Lock berfungsi sebagai pengunci sudut Yaw, agar quadrotor tetap mempertahankan posisi sudut yang sesuai dengan perintahnya.
rate
command
command
Gambar 3.25 Diagram blok yaw attitude dengan Mode Yaw Lock Off
Pada gambar 3.25 menujukan bahwa 𝜓𝑐𝑜𝑚𝑚𝑎𝑛𝑑 merupakan input untuk gerakan yaw (𝜓), rate merupakan variabel konstanta yaw rate yang telah dikonfigurasi dan 𝜔𝜓𝑐𝑜𝑚𝑚𝑎𝑛𝑑 merupakan hasil perkalian 𝜓𝑐𝑜𝑚𝑚𝑎𝑛𝑑 dengan yaw rate.
lock
+ -rate
command
Gambar 3.26 Diagram blok yaw attitude dengan mode Yaw Lock On
Perlu diperhatikan dalam pemprograman pada gambar 3.26, mode Yaw Lock On akan bekerja jika tidak ada input (𝜓𝑐𝑜𝑚𝑚𝑎𝑛𝑑 = 0). Jika ada input
(𝜓𝑐𝑜𝑚𝑚𝑎𝑛𝑑 ≠ 0) maka secara automatis menggunakan mode Yaw Lock Off seperti
pada gambar 3.25. Variabel sudut 𝜓𝑙𝑜𝑐𝑘 selalu diupdate dengan posisi sudut yaw(𝜓) ketika 𝜓𝑐𝑜𝑚𝑚𝑎𝑛𝑑 ≠ 0 pada setiap waktu cupliknya.
3.4.6.2.2 Pitch Attitude
Pitch attitude merupakan implementasi dari perintah sudut pitch (𝜃). Pitch attitude terbagi menjadi dua jenis mode yaitu mode Akrobatik atau mode angle.
rate command
command
Pada gambar 3.27 menujukan bahwa 𝜃𝑐𝑜𝑚𝑚𝑎𝑛𝑑 merupakan input untuk gerakan pitch (𝜃), rate merupakan variabel konstanta pitch rate yang dikonfigurasi melalui GUI dan 𝜔𝜃𝑐𝑜𝑚𝑚𝑎𝑛𝑑 merupakan hasil perkalian 𝜃𝑐𝑜𝑚𝑚𝑎𝑛𝑑 dengan pitch rate. command
t e Kplevel + -+ + t e
dt t d Kdlevel
-
t level e t dt Ki 0 scale command
Gambar 3.28 Diagram blok pitch attitude dengan mode Angle
Pengendali PI-D digunakan untuk mengendali posisi sudut pitch (𝜃), dimana input 𝜃𝑐𝑜𝑚𝑚𝑎𝑛𝑑 dikalikan dengan scale (konstanta pitch angle. Konstanta scale, 𝐾𝑝𝑙𝑒𝑣𝑒𝑙, 𝐾𝑖𝑙𝑒𝑣𝑒𝑙 dan 𝐾𝑑𝑙𝑒𝑣𝑒𝑙 pada implementasinya dapat dikonfigurasi melalui GUI.
3.4.6.2.3 Roll Attitude
Perancangan roll attitude sama halnya dengan pitch attitude, yaitu merupakan implementasi dari perintah sudut roll (𝜙). Roll attitude terbagi menjadi dua jenis mode yaitu mode Akrobatik atau mode angle.
rate command
command
Perancangan roll attitude mode akrobatik sebenarnya tidak berbeda jauh dengan perancangan pitch attitude mode akrobatik, rate merupakan variabel konstanta roll rate yang dikonfigurasi melalui GUI dan 𝜔𝜙𝑐𝑜𝑚𝑚𝑎𝑛𝑑 merupakan hasil perkalian 𝜙𝑐𝑜𝑚𝑚𝑎𝑛𝑑 dengan roll rate.
command
t e Kplevel + -+ + t e
dt
t
d
Kd
level
-
t level e t dt Ki 0 scale command
Gambar 3.30 Diagram blok roll attitude dengan mode anglePada gambar 3.30, pengendali PI-D digunakan untuk mengendali posisi sudut roll (𝜙), dimana input 𝜙𝑐𝑜𝑚𝑚𝑎𝑛𝑑 dikalikan dengan scale (konstanta roll
angle). Konstanta scale, 𝐾𝑝𝑙𝑒𝑣𝑒𝑙, 𝐾𝑖𝑙𝑒𝑣𝑒𝑙 dan 𝐾𝑑𝑙𝑒𝑣𝑒𝑙 pada implementasinya dapat
dikonfigurasi melalui GUI.
3.4.6.3 Stabilizer
Stabilizer pada perancangan ini berfungsi untuk menjaga keseimbangan posisi sudut atau posisi ketinggian yang inputnya berdasarkan perancangan blok attitude. Stabilizer terdiri dari Yaw Stabilizer, Pitch Stabilizer, Roll Stabilizer dan Altitude Stabilizer.
t e Kp
t dt e Ki t
0 + -+ + output
command
e
t
dt t d Kd -Gambar 3.31 Diagram blok PI-D Controller untuk yaw stabilizer
Pada gambar 3.31, merupakan perancangan yaw stabilizer dengan menggunakan pengendali PI-D. Input kecepatan angular yaw 𝜔𝜓𝑐𝑜𝑚𝑚𝑎𝑛𝑑 yang
dihasilkan dari yaw attitude dijadikan sebagai set point, kemudian kecepatan angular yaw dari pengukuran gyroscope (𝜔𝜓) sebagai perbandingan sehingga
selisihnya error 𝑒𝜔𝜓 digunakan sebagai input koreksi. Konstanta 𝐾𝑝𝜔𝜓, 𝐾𝑖𝜔𝜓 dan 𝐾𝑑𝜔𝜓 pada implementasinya dapat dikonfigurasi melalui GUI.
t
e
Kp
t e t dt Ki 0 + -+ + output
command
e
t
dt
t
d
Kd
Pada gambar 3.32, merupakan perancangan pitch stabilizer dengan menggunakan pengendali PI-D. Input kecepatan angular pitch 𝜔𝜃𝑐𝑜𝑚𝑚𝑎𝑛𝑑 yang dihasilkan dari yaw attitude dijadikan sebagai set point, kemudian kecepatan angular yaw dari pengukuran gyroscope (𝜔𝜓) sebagai perbandingan sehingga
selisihnya error 𝑒𝜔𝜓 digunakan sebagai input koreksi. Konstanta 𝐾𝑝𝜔𝜓, 𝐾𝑖𝜔𝜓 dan 𝐾𝑑𝜔𝜓 pada implementasinya dapat dikonfigurasi melalui GUI.
t e Kp
t e t dt Ki 0 + -+ + output
command
e
t
dt
t
d
Kd
-Gambar 3.33 Diagram blok PI-D Controller untuk roll stabilizer
Perancangan roll stabilizer menggunakan menggunakan pengendali PI-D yang sama dengan pengendali pitch stabilizer. Konstanta 𝐾𝑝𝜔𝜙, 𝐾𝑖𝜔𝜙 dan 𝐾𝑑𝜔𝜙 pada implementasinya dapat dikonfigurasi melalui GUI.
t e Kpalt hh
dt t dv Kd h alt -+ + -+ holdh
+ + output T
t eh
t dt e Ki t h alt
0
t
v
h hold TGambar 3.34 Diagram blok PI-D Controller untuk altitude stabilizer
Pada perancangan mode altitude stabilizer, perlu diketahui dalam pemprograman mode ini hanya bekerja ketika mode altitude hold diaktifkan dan input throttle tidak berubah. Setiap ada perubahan input throttle, variabel ℎℎ𝑜𝑙𝑑 selalu diupdate dengan pengukuran ketinggian setiap waktu cupliknya. Logika ini digunakan sebagai referensi kapan quadrotor untuk mempertahankan ketinggian tertentu. Jika input throttle tidak ada perubahan maka altitude stabilizer bekerja, referensi ketinggian ℎℎ𝑜𝑙𝑑 dimana quadrotor untuk menjaga ketinggian dijadikan
sebagai set point.
3.4.6.4 Throttle Mixer & PWM Encoder
Pada proses ini, hasil dari kontrol PID didistribusikan ke masing-masing motor sesuai dengan jenis frame-nya, kemudian di-encode menjadi sinyal PWM ke ESC. Berdasarkan persamaan (2.27-2.29), distribusi 𝑇ℎ𝑟𝑜𝑡𝑡𝑙𝑒𝑜𝑢𝑡𝑝𝑢𝑡 pada perancangan ini dapat direpresentasikan pada gambar 3.35.
output
output
output
output Throttle + + + + + + + + --+ + -+ ++ - +-1 PWMM
2 PWMM
3 PWMM
4 PWMM
PWM ENCODER PWM ENCODER PWM ENCODER PWM ENCODERGambar 3.35 Blok diagram perhitungan mixer 3.5 Perancangan Communication Layer
Komunikasi paket data antara embedded layer dengan presentation layer menggunakan komunikasi UART dengan XBee. Komunikasi dirancang dengan sistem master-slave pada presentation layer sebagai master dan embedded layer sebagai slave.
Pada tugas akhir ini paket format data dirancang untuk bertukar data dengan kedua sistem tersebut. Format paket data dibagi menjadi dua, yaitu Request dan Response. Format paket data secara umum adalah sebagai berikut :
𝐻𝑒𝑎𝑑𝑒𝑟 ⏟ 2 𝐵𝑦𝑡𝑒 𝐷𝑖𝑟𝑒𝑐𝑡𝑖𝑜𝑛⏟ 1 𝐵𝑦𝑡𝑒 𝑆𝑖𝑧𝑒⏟ 1 𝐵𝑦𝑡𝑒 𝐶𝑜𝑚𝑚𝑎𝑛𝑑⏟ 1 𝐵𝑦𝑡𝑒 𝑀𝑒𝑠𝑠𝑎𝑔𝑒⏟ 𝑛 𝐵𝑦𝑡𝑒 𝐶ℎ𝑒𝑐𝑘𝑠𝑢𝑚⏟ 1 𝐵𝑦𝑡𝑒 Header :
Direction
Menunjukan arah perintah Request atau Response berisi satu karakter statis, yaitu‘<’ jika perintah Request dan karakter ‘>’ jika perintah Response Size
Menunjukan besarnya message Command
Adalah kode perintah message Message
Merupakan isi pesan dengan format Big Endian Checksum
Merupakan akumulasi XOR dari setiap byte yang dimulai dari Size, Command, dan Message
Perancangan paket data pada tugas akhir ini terdiri dari beberapa jenis dapat dilihat pada lampiran tabel
Proses pengiriman paket request atau response dilakukan dengan beberapa langkah seperti pada alur proeses yang disajikan pada gambar 3.36
START END Inisialisasi paket data Serialize Message Kalkulasi Checksum Konstruksi paket data
Kirim paket data
Gambar 3.36 Alur proses pengiriman data paket
Proses penerimaan paket request atau response dilakukan dengan logika seperti pada alur proses yang disajikan pada gambar 3.37
Apakah jumlah Serial input buffer
>= 5
INPUT SERIAL BUFFER
Baca 5 Byte Ya
Apakah format Header, Direction, Command dan Size
Sesuai ?
Set State = Message, Set Size, Set Command
GLOBAL VAR
Set State = Header GLOBAL VAR START Get State, Get Command, Get Size GLOBAL VAR State = Header ? Ya Ya END Set Error += 5 ERROR Tidak Apakah jumlah Serial input buffer
>= Size + 1
Tidak
Tidak
Baca (Size + 1) Byte INPUT SERIAL BUFFER Ya Deserialize Message berdasarkan jenis Message-nya Checksum Sesuai ? Set Error += Size + 1 ERROR Tidak Serialisasi Berhasil ? Ya Tidak Proses Message Ya Tidak Gambar 3.37 Alur proses penerimaan paket data
3.6 Perancangan Presentation Layer
Presentation layer merupakan piranti lunak yang diinstal pada komputer yang berfungsi untuk memudahkan pengguna berinteraksi dengan sistem
quadrotor. Secara keseluruhan layout utama disajikan seperti pada gambar 3.38, yang terdiri dari konten header, konten menu, dan konten utama. Konten utama merupakan konten yang terkait dengan masing-masing menu.
My Ground Control
Menu 5 Menu 2
Menu 1 Menu 3 Menu 4
MAIN CONTAINER
HEADER CONTAINER
MENU CONTAINER
Gambar 3.38 Perancangan layout utama 3.6.1 Perancangan Aplikasi Utama
Aplikasi utama merupakan aplikasi yang aplikasi Ground control yang berfungsi untuk kontrol dan konfigurasi quadrotor.
3.6.1.1 Perancangan GUI Komunikasi Port
Pada perancangan ini diharapkan komunikasi port dapat fleksibel mungkin. Dapat memilih Port dan dapat juga mengganti boud rate.
COM 1 57600 Connect
Port : Bound Rate :
3.6.1.2 Perancangan GUI Navigasi
Informasi data navigasi UAV ditampilkan pada GUI ini. Perancangan GUI seperti dashboard pada kokpit pesawat. GUI dibuat demikian akan memudahkan pilot untuk mengontrol dan memantau quadrotor.
Pada perancangan ini menampilkan posisi sudut quadrotor, arah quadrotor, informasi ketinggian, informasi suhu, informasi input, informasi PWM Motor dan lampu indikator lainnya.
My Ground Control COM 1 Monitoring Configuration Navigation RC Input 57600 Calibration Connect Port : Bound Rate :
W E N S Throttle Elevator Aileron Rudder 15° 30° 45° 60° 0° -15° -30° 15° 30° 45° 60° 0° -15° -30° M2 M4 M3 M1 1220 1624 1220 1624 0 1 2 3 4 5 6 7 8 9 0 0 1 9 Altimeter Attitude Compass 3D Attitude Temperature 0 0 1 9 00 19 0 0 1 9 A R M ALT HOLD YAW HOLD
Yaw Pitch Roll
Gambar 3.40 Perancangan GUI navigasi 3.6.1.3 Perancangan GUI Konfigurasi
Perancangan GUI konfigurasi merupakan konfigurasi yang berfokus pada flight controller. Tujuan dari perancangan GUI ini, yaitu untuk memudahkan input konstanta PID pada masing-masing jenis pengendalian PID dan juga merupakan konfigurasi untuk sifat input dari joystick.
My Ground Control COM 1 Monitoring Configuration Navigation RC Input 57600 Calibration 17.2 0.020 2.20 15.0 0.010 1.00 10.0 0.012 1.90 12.2 0.022 1.90 17.2 15.0 12.2 0.022 1.90 900 2000 Connect Port : Bound Rate :
Yaw : Pitch : Roll : I D P Reset Save P I D Controller Level : Yaw Rate : Pitch/Roll Rate : RC Behaviour Altitude : Motor Throttle Min : Throttle Max : RC Rate : RC Expo : Throttle Rate : Throttle Expo :
Gambar 3.41 Perancangan GUI konfigurasi 3.6.1.4 Perancangan GUI Kontrol Input
Perancangan GUI kontrol input berguna untuk konfigurasi joystick yang terpasang pada ground control, yaitu sebagai kalibrasi atau juga sebagai konfigurasi masing-masing tombol pada input joystick.
My Ground Control COM 1 Monitoring Configuration Navigation RC Input 57600 Calibration Input 1 1500 1500 1700 1700 1500 1500 1700 1700 2000 2000 1000 1000 1000 1500 1500 2000 2000 1000 2000 1000 Connect
Port : Bound Rate :
Device Connect ARM Start DISARM Back ELEVATOR Up RUDDER Right RUDDER Left ELEVATOR Down Down / Up Left/Right
Thumb NOT SET
---Down / Up Left/Right Thumb THROTTLE RUDDER ELEVATOR AILERON Left/Right Thumb AILERON Left/Right Thumb AILERON NOT SET ---X NOT SET ---A NOT SET ---Y NOT SET ---B NOT SET
---YAW LOCK - UNLOCK ALT HOLD - UNHOLD
CALIBRATE / SAVE
Gambar 3.42 Perancangan GUI kontrol input 3.6.1.5 Perancangan GUI Kalibrasi Sensor
Perancangan GUI kalibrasi IMU merupakan fitur yang sangat penting dalam perancangan presentation layer. Kalibrasi perlu dilakukan pertama kali sebelum quadrotor diterbangkan. Dan kalibrasi ulang perlu dilakukan jika ada perubahan penempatan fisik modul IMU pada frame quadrotor.
My Ground Control COM 1 Monitoring Configuration Navigation RC Input 57600 Calibration Connect Port : Bound Rate :
Raw : Min Value : Max Value : Offset : Weight : Scale : Calibration Result : X Y Z Save Pause Calibrate Accelerometer Raw : Min Value : Max Value : Offset : Weight : Scale : Calibration Result : X Y Z Save Pause Calibrate Magnetometer Offset : Weight : Scale : Calibration Result : X Y Z Save Pause Calibrate Gyroscope Sensor Quaternion : Body Quaternion : Sensor Quaternion : X Y Z W Reset Calibrate Sensor Alititude : Ground Altitude : Reset Calibrate Barometer Body Offset
Gambar 3.43 Perancangan GUI kalibrasi 3.6.1.6 Perancangan GUI Monitoring
GUI Monitoring berguna untuk memantau dan menganalisa dari data-data hasil pengukuran dari IMU secara realtime. Data-data tersebut disajikan dalam bentuk grafik.
My Ground Control COM 1 Monitoring Configuration Navigation RC Input 57600 Calibration Connect
Port : Bound Rate :
-100 -80 -60 -40 -20 0 20 40 60 80 100 Gyro X Gyro Y Gyro Z Acc X Acc Y Acc Z Mag X Mag Y Mag Z Quaterion W Quaterion X Quaterion Y Quaterion Z
Gambar 3.44 Perancangan GUI monitoring 3.6.2 Perancangan Aplikasi Pendukung
Pada perancangan ini aplikasi pendukung digunakan untuk pengujian modul-modul pada quadrotor.
3.6.2.1 Perancangan Aplikasi Pengujian Komunikasi
Piranti lunak pengujian komunikasi digunakan untuk benchmark komunikasi quadrotor dengan ground control. Pada pengujian ini, beberapa jenis perintah (request dan response) dan frekuensinya dapat dikonfigurasi. Segala komunikasi yang terjadi disimpan dan dimonitoring dalam satuan waktu. Untuk memudahkan analisa, hasil monitoring tersebut disimpan dalam bentuk file Excel.
3.6.2.2 Perancangan Aplikasi Pengujian AHRS
Piranti lunak pengujian AHRS diperuntukan untuk pengujian DMP. Pengujian ini membandingkan beberapa jenis algoritma AHRS dengan DMP.
Proses perhitungan dilakukan pada aplikasi ini. Untuk memudahkan analisa, hasil perhitungan tersebut disimpan dalam bentuk file Excel.