Pengujian failsafe untuk hilang komunikasi dengan perangkat navigasi dilakukan dengan menerbangkan wahana pada keadaan hovering, lalu mematikan sumber daya perangkat
navigasi. Hasilnya program akan membaca pembaharuan waktu didalam mengolah sinyal receiver, apabila tidak ada sinyal receiver, maka waktu tidak akan diperbaharui, sehingga
program akan mengurangi nilai throttle yang diterima terakhir dengan 0.025 nilai throttle sebelumnya untuk membuat wahana turun secara perlahan . Seperti pada Gambar 4.18,
menunjukkan nilai salah satu ESC berubah saat perangkat navigasi dimatikan pada lingkaran merah dan nilai output ESC akan semakin turun. Sistem ini digunakan untuk
autolanding secara perlahan pada wahana. Untuk pengujian failsafe daya baterai rendah, sistem tidak melakukan pengiriman data
daya baterai kepada GCS karena dibutuhkan waktu yang cukup besar untuk mengirimkan data melalui perangkat RFM12 menuju GCS. Untuk mengatasi hal tersebut, sistem
memanfaatkan modul battery checker yang ada dan dipasang pada wahana. Battery checker ini memiliki fungsi membaca tegangan baterai dan mengatur setpoin tegangan baterai
rendah. Jika baterai mencapat tegangan setpoin, maka alat ini akan membunyikan buzzer yang cukup keras, sehingga dapat didengar oleh pilot untuk menandakan baterai pada
keadaan low voltage. Selain itu, failsafe untuk low voltage battery dan hilang komunikasi dengan perangkat
navigasi dapat dilihat melalui led indikator warna merah. Led merah akan menyala apabila terdapat kondisi low voltage dan lost connection.
4.3. Pembahasan Perangkat Lunak
Program yang dibuat pada perancangan ini terdiri dari bebebrapa subrutin dan mengacu pada gambar diagram alir pada bab sebelumnya. Program ini berfungsi sesuai yang
dirancang, berikut penjelasanya.
4.3.1. Inisialisasi
Inisialisasi dimulai dengan memasukan library Wire.h, dan pendeklarasian variable-variable yang akan digunakan di dalam program, selain itu juga pengaturan
parameter Kp, Ki, dan Kd pada pitch,roll,dan yaw pada sensor Gyro. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Gambar 4.19 Grafik failsafe system
Pada bagian inisialisasi juga sudah memulai progam void setup yang berisi tentang konfigurasi pin output untuk ESC, konfigurasi pin untuk lampu led, konfigurasi setting pada
sensor gyro dan barometer, kalibrasi sensor gyro dan barometer, konfigurasi pin input untuk receiver, menentukan jenis baterai, dan menghitung tegangan awal baterai, serta menunggu
sinyal receiver. Pada proses void setup, konfigurasi yang membutuhkan waktu lebih dari 3 detik akan
melakukan perintah untuk memberikan pulsa sebesar 1000µS ke semua ESC. Hal ini dilakukan karena apabila saat power dihubungkan dan ESC menerima input 1000µS atau
2000µS selama lebih dari 5 detik, maka ESC akan memberi perintah kepada motor untuk membunyikan buzzer. Jadi hal tersebut dilakukan agar saat proses konfigurasi motor tidak
berisik.
4.3.2. Subrutin Terbang
Subrutin Terbang ada didalam program main loop atau program utama jika memiliki kondisi start = 2. Kondisi tersebut adalah kondisi saat motor sudah arming atau siap terbang.
Dalam subrutin terbang terdapat beberapa proses yang dilakukan, yaitu ; 1.
Mengambil data sensor barometer setiap 1 x 350 looping program.
200 400
600 800
1000 1200
1400 1600
1800
.0 3
.5 6
1 1
.1 1
9 1
.6 7
7 2
.2 3
5 2
.7 9
3 3
.3 5
1 3
.9 9
4 .4
6 7
5 .0
2 5
5 .5
8 3
6 .1
4 1
6 .6
9 9
7 .2
5 7
7 .8
1 5
8 .3
7 3
8 .9
3 1
9 .4
8 9
1 .0
4 7
1 .6
5 1
1 .1
6 3
1 1
.7 2
1 1
2 .2
7 9
1 2
.8 3
7
1 3
.3 9
5 1
3 .9
5 3
1 4
.5 1
1 1
5 .0
6 9
1 5
.6 2
7 1
6 .1
8 5
1 6
.7 4
3 1
7 .3
1
o u
tp u
t E
SC
waktu detik
Grafik failsafe sistem
2. Mengambil data pitch, roll, dan yaw sensor gyro untuk input PID dengan cara
mengambil nilai terukur 20 yang akan ditambahkan dengan nilai sebelumnya sebesar 80. Hal ini dilakukan untuk mengurangi noise atau
gangguan pada sensor gyro. Nilai ini sudah di konversi kedalam desi degree per second ddps dengan cara membagi nilai sensor terukur dengan hasil dari
pengubahan sensitivitas mili degree per second mdps menjadi desi degree per second ddps.
3. Memberi perintah untuk led indikator sesuai perintah yang dikirim dari GCS
pada masing masing led dibawah motor. 4.
Menghitung nilai setpoint yang dikirimkan dari perangkat remote GCS dengan cara mengubah input receiver pitch, roll, yaw menjadi rate yang setara
dengan nilai input PID. 5.
Memanggil subrutin menghitung PID. 6.
Menghitung tegangan baterai dan juga menghitung tegangan baterai pada saat baterai low voltage yang akan di indikasikan melalui led warna merah.
7. Mengurangi nilai masing masing ESC jika wahana terbang melebihi batas
ketinggian yang ditetapkan. 8.
Mengkalkulasi output PID dengan nilai throttle. Hasil perhitungan ini yang akan diindikasikan kepada setiap ESC untuk menggerakan masing-masing
motor. Dan juga menghitung nilai tambahan kepada setiap motor apabila kinerja motor berkurang seiring dengan berkurangnya tegangan baterai.
9. Membuat pulsa untuk masing masing ESC sesuai dengan nilai ESC yang
telah dikalkukasikan sebelumnya. Pembuatan pulsa ini memanfaatkan fungsi micros yang disediakan oleh mikrokontroler ATMEGA2560 dengan cara
mengaktifkan pulsa HIGH selama waktu ESC yang telah dikalkulasi dan mengaktifkan LOW saat waktu ESC sudah tidak berlaku lagi, sampai proses
looping berikutnya. Didalam subrutin terbang terdapat fail safe system, system failsafe ini bertujuan
memberi perintah autolanding untuk wahana apabila terputus dari sistem navigasi pada GCS. Cara kerjanya dengan mengukur waktu pada ISR interrupt service routine saat
receiver input menerima data dari perangkat receiver. Waktu tersebut digunakan sebagai parameter pembanding waktu yang terdapat pada program main loop. Jika waktu program
mainloop lebih besar daripada waktu receiver input pada ISR, artinya receiver input tidak menerima pulsa pwm dari perangkat receiver, maka system failsafe akan bekerja dengan
cara memberikan nilai pada throttle sebesar 1550µS, sehingga ESC akan memerintahkan motor untuk berputar dengan pwm 1550µS dan wahana akan landing secara perlahan.
4.3.3. Subrutin Menghitung Sensor