Inisialisasi Subrutin Terbang Pembahasan Perangkat Lunak

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