tugas akhir ground control station pada sistem … · tugas akhir ground control station pada...
TRANSCRIPT
TUGAS AKHIR
GROUND CONTROL STATION PADA
SISTEM QUADCOPTER
Diajukan untuk memenuhi salah satu syarat
memperoleh gelar Sarjana Teknik pada
Program Studi Teknik Elektro
Jurusan Teknik Elektro
Fakultas Sains dan Teknologi Universitas Sanata Dharma
disusun oleh:
ADOVAN PUJIANTA GINTING
NIM: 125114045
PROGRAM STUDI TEKNIK ELEKTRO
JURUSAN TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2016
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
FINAL PROJECT
GROUND CONTROL STATION FOR
QUADCOPTER SYSTEM
In partial fulfillment of requirements
for the degree of Sarjana Teknik
In Electrical Engineering Study Program
ADOVAN PUJIANTA GINTING
125114045
ELECTRICAL ENGINEERING STUDY PROGRAM
ELECTRICAL ENGINEERING DEPARTMENT
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2016
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iii
LEMBAR PERSETUJUAN
TUGAS AKHIR
GROUND CONTROL STATION PADA SISTEM
QUADCOPTER
disusun oleh:
ADOVAN PUJIANTA GINTING
NIM: 125114045
telah disetujui oleh:
Pembimbing,
Martanto, S.T., M.T. Tanggal: _________________
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iv
HALAMAN PENGESAHAN
TUGAS AKHIR
GROUND CONTROL STATION PADA SISTEM
QUADCOPTER
disusun oleh:
ADOVAN PUJIANTA GINTING
NIM : 125114045
Telah dipertahankan didepan panitia penguji
Pada tanggal 26 Juli 2016
dan dinyatakan memenuhi syarat
Susunan Panitia Penguji:
Nama Lengkap Tanda Tangan
Ketua : Petrus Setyo Prabowo, S.T., M.T. ___________________
Sekretaris : Martanto, S.T., M.T. ___________________
Anggota : Ir. Tjendro, M.Kom ___________________
Yogyakarta, 28 Juli 2016
Fakultas Sains dan Teknologi
Universitas Sanata Dharma
Dekan,
Sudi Mungkasi, S.Si., M.Math. Sc. Ph.D
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
v
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa tugas akhir ini tidak memuat karya
atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka
sebagaimana layaknya karya ilmiah.
Yogyakarta, 11 Juli 2016
Adovan Pujianta Ginting
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vi
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP
MOTTO:
Apa pun juga yang kamu perbuat,
perbuatlah dengan segenap hatimu
seperti untuk Tuhan dan bukan untuk manusia
Kolose 3:23
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vii
LEMBAR PERNYATAAN PERSETUJUAN
PUBLIKASI KARYA ILMIAH UNTUK
KEPENTINGAN AKADEMIS
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma:
Nama : Adovan Pujianta Ginting
Nomor Mahasiswa : 125114045
Demi perngembangan ilmu pengetahuan, saya memberikan karya ilmiah peneltian ini
kepada Perpusatakaan Univesitas Sanata Dharma karya ilmiah saya yang berjudul:
GROUND CONTROL STATION PADA SISTEM
QUADCOPTER
Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada
Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk
media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara terbatas,
dan mempublikasikannya di media massa lain, seperti: internet untuk kepentingan akademis
tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap
mencantumkan nama saya sebagai penulis.
Demikian pernyataan ini saya buat dengan sebenarnya.
Yogyakarta, 11 Juli 2016
Adovan Pujianta Ginting
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
viii
INTISARI
Perkembangan ilmu pengetahuan membawa manusia masuk ke jaman mordernisasi,
jaman dimana manusia menggunakan segenap pengetahuan untuk menciptakan sebuah
teknologi rekayasa terbarukan. Salah satu bentuk teknologi terbarukan adalah quadcopter,
sebuah robot terbang yang mampu membantu manusia melakukan kegiatan yang
berhubungan dengan aerial space. Dalam melaksanakan tugasnya wahana quadcopter tidak
dapat bekerja sendiri, di perlukan sebuah perangkat pemantau kerja wahana yang biasa
disebut dengan Ground Control Stations (GCS) yang dapat diperoleh dengan membeli
dengan harga yang mahal.
Untuk mengatasi permasalahan diatas, perlu dilakukan penelitian lebih lanjut
mengenai sistem GCS. Selain dapat menghemat biaya, pengguna bisa menciptakan sistem
GCS dengan fungsi yang dikehendaki. Oleh karena itu, dibuat sistem GCS yang terjangkau
dan dapat diproduksi sendiri. Sistem GCS menggunakan Arduino Mega 2560 sebagai pusat
pusat kontrol dan RFM12 sebagai modul komunikasi dua arah. GCS mampu mengendalikan
wahana dalam dua jenis pengendalian, yaitu: manual dan autonomous.
Sistem GCS telah berhasil dibuat dengan kecepatan data komunikasi 3,9 kbps pada
frekuensi kerja 432MHz menggunakan modul transceiver RFM12. Sistem ini telah diuji
untuk mengontrol dan memantau wahana quadcopter dengan jarak maksimal penggunaan
alat kurang dari 100 meter di ruang terbuka. Terdapat dua jenis pengendalian wahana, yaitu:
manual dan autonomous.
Kata kunci: Modernisasi, Quadcopter, GCS, RFM12.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ix
ABSTRACT
In the science world, knowledge of human’s being brings human to a modernization
era. They transfer their knowledge into a new technology. One of the most new technology
in the world is quadcopter, an aerial space robot that could helps humans to do his job. In
performing the task, this vehicle couldn’t be used alone. It needs Ground Control Station
(GCS) as its monitoring device. But, user who want to use GCS need to buy with an
expensive prices.
To overcome this, needs a deep research to build some devices resemble of GCS.
User could save their money if they build GCS by theirself. So, GCS could be built by an
arduino mega 2560 as microcontroller and RFM12 as transceiver modul.
GCS system was succesfully created based on RFM12 as transceiver modul which
could transfering 3,9 kbps data at 432 MHz. This system already tested to controlled and
monitored quadcopter and can communicated less than 100 meters. In this GCS lies two kind
of flying mode, that is: manual and autonomous.
Key word: modernization, Quadcopter, GCS, RFM12
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
x
KATA PENGANTAR
Segala hormat dan puji syukur penulis persembahkan kepada Tuhan Yesus karena
melalui kasih-Nya penulis boleh menyelesaikan tugas akhir yang berjudul “Ground Control
Station pada Sistem Quadcopter”. Selama proses perkuliahan berlangsung penulis
mengalami banyak tantangan dan hambatan, hingga pada akhirnya penulis dapat
menyelesaikan penulisan tugas akhir ini dengan bantuan dari beberapa pihak. Oleh karena
itu, penulis ini mengucapkan terimakasih kepada:
1. Orang tua dan keluarga penulis yang senantiasa berdoa dan mendidik, terkhusus
untuk tante Alm.Prasetyaningsih.
2. Universitas Sanata Dharma yang telah memberikan bantuan beasiswa penuh 4 tahun.
3. Bapak Petrus Setyo Prabowo dan Bapak Tjendro selaku Ketua dan Wakil Ketua
Program Studi Teknik Elektro Universitas Sanata Dharma dan sebagai dosen penguji.
4. Bapak Martanto selaku dosen pembimbing yang telah meluangkan waktu dan
tenaganya untuk memberikan solusi dan saran.
5. Seluruh staf dan pengajar Program Studi Teknik Elektro yang telah bersedia
membagikan ilmu dan nilai hidup.
6. Seorang wanita yang diberikan Tuhan dalam hidup saya, Indriyani Permatasi atas
dukungan dan perhatian.
7. Hans dan Nenu yang mengerjakan sistem wahana quadcopter.
8. Teman-teman Persekutuan Mahasiswa Kristen Apostolos dan Prodi Teknik Elektro
2012, terkhusus: Ketut, Riski, dan Yudhi.
Dengan rendah hati penulis menyadari bahwa tugas akhir ini masih jauh dari
sempuna, oleh karena itu berbagai kritik dan saran yang membangun untuk perbaikan tugas
akhir ini sangat diharapkan. Penulis percaya tugas akhir ini dapat bermanfaat bagi semua
pihak. Akhir kata penulis mengucapkan terima kasih.
Yogyakarta, 11 Juli 2016
Adovan Pujianta Ginting
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xi
DAFTAR ISI
HALAMAN JUDUL (Bahasa Indonesia) ............................................................................. i
HALAMAN JUDUL (Bahasan Inggris) ............................................................................... ii
HALAMAN PERSETUJUAN ............................................................................................. iii
HALAMAN PENGESAHAN .............................................................................................. iv
PERNYATAAN KEASLIAN KARYA ............................................................................... v
HALAMAN MOTTO HIDUP DAN PERSEMBAHAN ..................................................... vi
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA .............................. vii
INTISARI .......................................................................................................................... viii
ABSTRACT ........................................................................................................................ ix
KATA PENGANTAR .......................................................................................................... x
DAFTAR ISI ....................................................................................................................... xi
DAFTAR GAMBAR .......................................................................................................... xiv
DAFTAR TABEL ............................................................................................................. xvii
BAB 1 PENDAHULUAN .................................................................................................. 1
1.1. Latar Belakang ........................................................................................................ 1
1.2. Tujuan dan Manfaat ................................................................................................. 2
1.3. Batasan Masalah ...................................................................................................... 2
1.4. Metodologi Penelitian ............................................................................................. 4
BAB 2 DASAR TEORI ..................................................................................................... 5
2.1. Sistem Kontrol ......................................................................................................... 5
2.1.1. Sistem Kontrol Kalang Terbuka ....................................................................... 5
2.1.2. Sistem Kontrol Kalang Tertutup ...................................................................... 5
2.2. Radio Kontrol .......................................................................................................... 6
2.3. Gerakan Dasar Wahana Quadcopter ....................................................................... 7
2.4. Sistem Komunikasi .................................................................................................. 8
2.5. Modulasi ................................................................................................................ 10
2.6. Modulasi Digital .................................................................................................... 10
2.7. Frequency Shift Keying ......................................................................................... 11
2.8. Atmega 2560 ......................................................................................................... 11
2.8.1. Serial Peripheral Interface .............................................................................. 12
2.8.2. Analog to Dogotal Converter ......................................................................... 16
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xii
2.9. Modul Transmitter RFM02 ................................................................................... 20
2.9.1. Configuration Setting Command ................................................................... 21
2.9.2. Power Management Command ...................................................................... 22
2.9.3. Frequency Stting Command ........................................................................... 23
2.10. Modul Transceiver RFM12 ................................................................................... 24
2.10.1. Configuration Setting Command ................................................................... 25
2.10.2. Power Management Command ...................................................................... 26
2.10.3. Transmitter Register Write Command ........................................................... 27
2.10.4. FIFO and Reset Mode Command ................................................................... 27
2.10.5. Receiver FIFO Read Command ..................................................................... 28
BAB 3 RANCANGAN PENELITIAN ............................................................................ 29
3.1. Konsep Perangcangan ........................................................................................... 29
3.2. Rancangan Perangkat Keras .................................................................................. 31
3.2.1. Komponen Elektronik .................................................................................... 31
3.2.2. Komponen Mekanik ....................................................................................... 37
3.3. Rancangan Perangkat Lunak ................................................................................. 39
3.3.1. Diagram Alir Program Utama ........................................................................ 39
3.3.2. Diagram Alir Sub Rutin Ping ......................................................................... 39
3.3.3. Diagram Alir Sub Rutin Pengendalian ........................................................... 40
3.3.4. Diagram Alir Sub Rutin Autonomous ............................................................ 42
3.3.5. Diagram Alir Sub Rutin Pengendalian Manual .............................................. 43
3.3.6. Diagrram Alir Sub Rutin Error ....................................................................... 45
3.3.7. Sistem Failsafe ............................................................................................... 46
3.4. Prosedur Pengiriman Data Modul Transmitter RFM02 ........................................ 47
3.5. Prosedur Pengiriman Data Modul Transceiver RFM12 ........................................ 47
3.6. Prosedur Penerimaan Data Modul Transceiver RFM12 ....................................... 48
3.7. Format Paket Data ................................................................................................. 48
3.7.1. Format Paket Data Saat Pengendalian Manual .............................................. 49
3.7.2. Format Paket Data Saat Pengendalian Autonomous ...................................... 50
BAB 4 HASIL DAN PEMBAHASAN ............................................................................ 51
4.1. Perangkat Keras Penyusun GCS ........................................................................... 51
4.1.1. Bentuk Fisik GCS ........................................................................................... 51
4.1.2. Rangkaian Elektronik pada GCS .................................................................... 52
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiii
4.1.3. Pengujian Alat ................................................................................................ 55
4.2. Perangkat Lunak Penyusun GCS .......................................................................... 64
4.2.1. Inisialisasi ....................................................................................................... 64
4.2.2. Program Utama .............................................................................................. 64
4.2.3. Sub Rutin Cek Komunikasi ............................................................................ 65
4.2.4. Sub Rutin Pengendalian ................................................................................. 66
4.2.5. Program Pengendalian Manual ...................................................................... 67
4.2.6. Program Pengendalian Autonomous .............................................................. 71
BAB 5 KESIMPULAN DAN SARAN ........................................................................... 74
5.1. Kesimpulan ............................................................................................................ 74
5.2. Saran ...................................................................................................................... 74
DAFTAR PUSTAKA .......................................................................................................... 74
LAMPIRAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiv
DAFTAR GAMBAR
Gambar 1.1 Model Sistem Quadcopter ................................................................................. 2
Gambar 1.2 Cakupan Longitude dan Lattitude Lapangan PMSD ......................................... 3
Gambar 2.1 Blok Diagram Sistem Kontrol Kalang Terbuka [9] ........................................... 5
Gambar 2.2 Blok Diagram Sistem Kontrol Kalang Tertutup [9] .......................................... 6
Gambar 2.3 Gerakan Pitch, Roll, dan Yaw pada Quadcopter [6] .......................................... 7
Gambar 2.4 Pengaruh Kecepatan Putar Motor terhadap Gerakan Wahana [7] ..................... 8
Gambar 2.5 (a) Sinyal Digital (b) Sinyal Modulasi FSK [11]............................................. 11
Gambar 2.6 Konfigurasi Pin Atmega 2560 [4].................................................................... 12
Gambar 2.7 Hubungan Tuan dan Hamba pada Sistem Komunikasi SPI [12] ..................... 13
Gambar 2.8 Register Kontrol SPI (SPCR) [12] ................................................................... 13
Gambar 2.9 Register Keadaan SPI (SPSR) [12] .................................................................. 14
Gambar 2.10 Register Data SPI (SPDR) [12] ..................................................................... 15
Gambar 2.11 ADC dengan (a) Sampling Rendah dan (b) Sampling Tinggi [5] .................. 16
Gambar 2.12 ADC Multiplexing Selection Register [12] ................................................... 17
Gambar 2.13 ADC Control and Status Register A [12] ...................................................... 17
Gambar 2.14 ADC Control and Status Register B [12] ...................................................... 18
Gambar 2.15 ADC Data Register ketika ADLAR Bernilai 1 (a) dan Bernilai 0 (b) [12] ... 19
Gambar 2.16 Konfigurasi kaki RFM02 [13] ....................................................................... 20
Gambar 2.17 Keterangan Bit-bit pada Configuration Setting Command [13] .................... 21
Gambar 2.18 Keterangan Bit-bit pada Power Management Command [13] ...................... 22
Gambar 2.19 Keterangan Bit-bit pada Frequency Setting Command [13].......................... 23
Gambar 2.20 Konfigurasi Kaki RFM12 [14] ...................................................................... 24
Gambar 2.21 Keterangan Bit-bit pada Configuration Setting Command [14] .................... 25
Gambar 2.22 Keterangan Bit-bit pada Power Management Command [14] ...................... 26
Gambar 2.23 Keterangan Bit-bit pada Transmitter Register Write Command [14] ............ 27
Gambar 2.24 Keterangan Bit-bit pada FIFO and Reset Mode Command [14] ................... 27
Gambar 2.25 Keterangan Bit-bit pada Receiver FIFO Read Command [14] ..................... 28
Gambar 3.1 Blok Diagram Sistem GCS (Bagian di dalam Kotak dengan Garis Putus) ..... 29
Gambar 3.2 Keypad 4x4 [16] .............................................................................................. 30
Gambar 3.3 Pembagian Komponen Elektronik ................................................................... 32
Gambar 3.4 Rangkaian Keypad 4 x 4 [16] .......................................................................... 32
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xv
Gambar 3.5 Tuas pada Joystick USB [17] ........................................................................... 33
Gambar 3.6 Rangkaian pada Perangkat Navigasi ............................................................... 34
Gambar 3.7 Rangkaian Sistem Arduino Mega 2560 R3 [15] .............................................. 35
Gambar 3.8 Rangkaian RFM12 [14] ................................................................................... 37
Gambar 3.9 Rangkaian RFM02 [13] ................................................................................... 37
Gambar 3.10 Rangkaian LCD 16x2 .................................................................................... 37
Gambar 3.11 Desain Bingkai Perangkat Navigasi .............................................................. 38
Gambar 3.12 Desain Bingkai Perangkat GCS ..................................................................... 38
Gambar 3.13 Diagram Alir Program Utama GCS ............................................................... 39
Gambar 3.14 Diagram Alir Sub Rutin PING ...................................................................... 40
Gambar 3.15 Diagram Alir Sub Rutin Pengendalian .......................................................... 41
Gambar 3.16 Diagram Alir Sub Rutin Pengendalian Autonomous ..................................... 42
Gambar 3.17 (Lanjutan) Diagram Alir Sub Rutin Pengendalian Autonomous ................... 43
Gambar 3.18 Diagram Alir Sub Rutin Pengendalian Manual ............................................. 44
Gambar 3.19 (Lanjutan) Diagram Alir Sub Rutin Pengendalian Manual ........................... 45
Gambar 3.20 Diagram Alir Sub Rutin Error ....................................................................... 46
Gambar 3.21 Diagram Alir Sub Rutin Failsafe ................................................................... 46
Gambar 3.22 Timing Diagram Proses Penerimaan Data RMF12 [14]................................ 48
Gambar 4.1 Purwarupa GCS ............................................................................................... 51
Gambar 4.2 Rangkaian Analog Ball pada Perangkat Navigasi ........................................... 52
Gambar 4.3 Perangkat Navigasi .......................................................................................... 53
Gambar 4.4 Rangkaian LCD 20x4 ...................................................................................... 54
Gambar 4.5 Grafik Perbandingan Perubahan Potensiometer .............................................. 55
Gambar 4.6 Pengujian LCD 20x4 ....................................................................................... 56
Gambar 4.7 Simulasi Penulisan Tampilan LCD 20x4 ........................................................ 57
Gambar 4.8 Penjelasan Perintah Pengaturan RFM12 [18] .................................................. 58
Gambar 4.9 Contoh Keluaran Sinyal SDI ........................................................................... 59
Gambar 4.10 Denah Pengujian Modul Transceiver ............................................................ 60
Gambar 4.11 Grafik Perbandingan Jarak Komunikasi Satu Arah ....................................... 61
Gambar 4.12 Grafik Perbandingan Jarak Komunikasi Dua Arah ....................................... 63
Gambar 4.13 Tampilan LCD saat Program Cek Komunikasi Berjalan .............................. 65
Gambar 4.14 Hasil Serial Monitor Sub Rutin Cek Komunikasi ......................................... 66
Gambar 4.15 Tampilan LCD saat Program Sub Rutin Pengendalian Berjalan ................... 66
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvi
Gambar 4.16 Serial Monitor Sub Rutin Pengendalian ........................................................ 67
Gambar 4.17 Serial Monitor Program Manual .................................................................... 69
Gambar 4.18 Sinyal PWM buatan untuk Throttle (a) 1000us dan (b) 2000us .................... 70
Gambar 4.19 Uji Coba Penggunaan Perangkat Navigasi .................................................... 70
Gambar 4.20 Tampilan-tampilan LCD saat Program Autonomous Berjalan ..................... 72
Gambar 4.21 Serial Monitor pada Program Autonomous ................................................... 72
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvii
DAFTAR TABEL
Tabel 2.1 Hubungan Kecepatan Pulsa dengan Frekuensi Osilasi [12] ................................ 15
Tabel 2.2 Pilihan Tegangan Referensi pada ADC [12] ....................................................... 17
Tabel 2.3 Pilihan Nilai Prescaler ADC [12] ....................................................................... 18
Tabel 2.4 Pilihan Sumber Picuan ADC [12] ....................................................................... 19
Tabel 2.5 Fungsi Kaki Modul Transmitter RFM02 [13] ..................................................... 21
Tabel 2.6 Keterangan Fungsi Bit x3, x2, x1, dan x0 [13] ................................................... 22
Tabel 2.7 Keterangan Fungsi bit d2, d1, dan d0 [13] .......................................................... 22
Tabel 2.8 Keterangan Fungsi Bit b1 dan b0 [13] ................................................................ 22
Tabel 2.9 Fungsi Bit-bit pada Power Management Command [13] .................................... 23
Tabel 2.10 Nilai C1 dan C2 berdasarkan Pita Frekuensi [13] ............................................. 23
Tabel 2.11 Fungsi Kaki Modul Transceiver RFM12 [14]................................................... 25
Tabel 2.12 Keterangan Bit b1 dan b0 [14] .......................................................................... 26
Tabel 2.13 Keterangan Bit x3, x2, x1, dan x0 [14] ............................................................. 26
Tabel 2.14 Fungsi Bit-bit pada Power Management Command [14] .................................. 27
Tabel 3.1 Keterangan Data-Data yang Diolah pada GCS ................................................... 31
Tabel 3.2 Nilai 𝑉𝑖𝑛 dan ADC pada Perangkat GCS ............................................................ 34
Tabel 3.3 Format Pengaturan Frekuensi [14] ...................................................................... 36
Tabel 3.4 Parameter Kapasitor untuk Masing-masing Pita Frekuensi [14] ......................... 36
Tabel 3.5 Keterangan Format Paket Data saat Pengendalian Manual ................................. 49
Tabel 4.1 Daftar Perubahan Perangkat Keras Penyusun GCS ............................................ 52
Tabel 4.2 Daftar Komponen pada Perangkat Navigasi ....................................................... 53
Tabel 4.3 Daftar Keluaran Perangkat Navigasi ................................................................... 54
Tabel 4.4 Daftar Keluaran LCD 20x4 ................................................................................. 54
Tabel 4.5 Perbandingan Perubahan Potensiometer terhadap Nilai ADC ............................ 56
Tabel 4.6 Data Pengujian Komunikasi Satu Arah ............................................................... 61
Tabel 4.7 Data Pengujian Komunikasi Dua Arah ............................................................... 63
Tabel 4.8 Paket Data Manual .............................................................................................. 68
Tabel 4.9 Sinyal PWM yang dibutuhkan oleh Wahana ....................................................... 69
Tabel 4.10 Paket Data Autonomous .................................................................................... 71
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1
BAB 1
PENDAHULUAN
1.1. Latar Belakang
Pada saat ini, manusia memasuki zaman globalisasi yang disebut juga dengan zaman
modernisasi. Modernisasi sendiri dalam ilmu sosial merujuk pada bentuk transformasi dari
keadaan yang kurang maju atau kurang berkembang ke arah yang lebih baik dengan harapan
kehidupan masyarakat akan menjadi lebih baik. Modernisasi mencakup banyak bidang, salah
satu contoh adalah bidang ilmu pengetahuan dan teknologi [1].
Perkembangan teknologi merupakan dasar untuk mengembangkan kehidupan
berbangsa dan bernegara. Kemajuan suatu negara dapat diukur dari seberapa jauh ilmu
pengetahuan dan teknologi yang dikuasai oleh negara tersebut. Hal ini terjadi karena saat ini
ilmu pengetahuan dan teknologi telah menjadi dasar dari segala aspek kehidupan manusia.
Dengan adanya perkembangan ilmu dan teknologi manusia semakin merasakan dampak
positif, seperti halnya penggunaan robot untuk membantu menyelesaikan pekerjaan manusia
sehari-hari.
Salah satu jenis robot yang turut andil dalam kegiatan manusia sehari-hari adalah
robot terbang (aerial robot), seperti: drone. Drone merupakan robot terbang yang
menggunakan beberapa rotor untuk bisa terbang. Jumlah rotor dari drone bermacam-
macam, mulai tiga buah rotor yang biasa disebut dengan tricopter, empat buah rotor
(quadcopter), enam buah (hexacopter), dan delapan buah rotor (octocopter).
Wahana drone tidak dapat bekerja sendiri dalam pengoperasiannya, perlu adanya
perangkat sistem kontrol nirkabel untuk bisa memantau dan mengatur kinerja dari wahana
yang pada umumnya dikenal dengan istilah Ground Control Station (GCS). Penelitian
mengenai GCS pernah dilakukan oleh Ali Akbar Farghani, dkk dengan judul “Purwarupa
Ground Control Station untuk pengamatan dan pengendalian Unmanned Aerial Vehicle
Bersayap Tetap”. Dalam penelitian tersebut, Ali dan tim merancang sebuah GCS
menggunakan media komputer dengan tampilan antarmuka GCS menggunakan perangkat
lunak Visual Studio 2010. Data yang mampu diolah GCS meliputi indikator ketinggian,
indikator kecepatan udara, indikator sikap, indikator kecepatan vertikal, dan indikator arah.
[8].
I
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
Mengacu pada penelitian yang dilakukan oleh Farghani, dkk, perangkat GCS masih
dapat dikembangkan lebih lanjut untuk mendapatkan sebuah perangkat kontrol dan
pemantau yang tidak bergantung pada perangkat komputer. Perangkat GCS akan menjadi
topik pembahasan pada penelitian ini. Berbeda dengan penelitian yang dilakukan oleh
Farghani, dkk yang menggunakan unmanned aerial vehicle bersayap tetap sebagai wahana,
nantinya perangkat GCS yang ada akan menggunakan wahana quadcopter.
1.2. Tujuan dan Manfaat
Tujuan dari penelitian ini adalah menciptakan sebuah perangkat GCS sebagai pusat
kontrol dan monitor dari wahana quadcopter.
Manfaat penelitian ini antara lain mempermudah memantau dan mengontrol wahana
quadcopter menggunakan perangkat GCS dan perangkat navigasi buatan pribadi. Bagi dunia
pendidikan penggunaan GCS pada quadcopter nantinya bisa dikembangkan sesuai dengan
penerapan dan fungsi wahana quadcopter.
1.3. Batasan Masalah
Gambar 1.1 Model Sistem Quadcopter
Sistem quadcopter dirancang seperti Gambar 1.1. Berdasarkan gambar tersebut,
penelitian tentang sistem quadcopter dibagi menjadi tiga bagian, yaitu:
1. Ground Control Station pada Sistem Quadcopter.
2. Flight Controller pada Sistem Quadcopter Menggunakan Sensor Inertial
Measurement Unit Berbasis Mikrokontroler ATmega 2560.
3. Autonomous Mode pada Sistem Quadcopter Menggunakan Modul GPS dan
Compass Berbasis Mikrokontroler ATmega 2560.
Controller Flight
Controller
Perangkat
Navigasi Sensor
Layar
Penampil
Modul
Komunikasi
Motor 1, 2,
3, dan 4
Ground Control Station Wahana Quadcopter
Modul Komunikasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
Bagian pertama dari sistem quadcopter tentang “Ground Control Station pada
Sistem Quadcopter” menjadi konsep perancangan pada penelitian ini dengan batasan
masalah sebagai berikut:
1. GCS digunakan untuk mengendalikan satu buah wahana quadcopter dengan dua
buah pilihan pengendalian, yaitu: manual dan autonomous.
2. Modul komunikasi yang digunakan ada dua jenis. Modul Komunikasi yang pertama
adalah modul RFM12 dengan pita frekuensi 433 Mhz digunakan sebagai modul
transceiver untuk mengirim dan menerima data-data yang berhubungan dengan
wahana, baik saat pengendalian manual maupun pengendalian autonomous. Dan
modul komunikasi yang kedua adalah modul RFM02 dengan pita frekuensi 433 Mhz
untuk mengirimkan data navigasi ke wahana saat pengendalian manual diaktifkan.
3. Proses penggunaan GCS hanya berlangsung satu siklus pengerjaan. Jika ingin
mengulangi penggunaan GCS dapat dilakukan dengan memulai kembali penggunaan
dari awal.
4. Pada saat wahana beroperasi manual, GCS mempunyai tugas untuk memonitor
ketinggian dan kecepatan masing-masing motor di wahana, serta mengontrol gerak
wahana sebatas naik dan turun (throttle), depan dan belakang (pitch), kanan dan kiri
(roll), serta memutar ke kanan dan putar ke kiri (yaw).
5. Pada saat wahana beroperasi autonomous, GCS mempunyai tugas untuk memberikan
koordinat tujuan berupa longitude dan latitude kepada wahana dan memonitor secara
aktual koordinat wahana (pitch, roll, dan yaw). Luas cakupan longitude dan latitude
diatur seperti terlihat pada Gambar 1.2 yang menggunakan lapangan Politeknik
Mekatronika Sanata Dharma (PMSD) sebagai tempat pengujian.
Gambar 1.2 Cakupan Longitude dan Lattitude Lapangan PMSD
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
1.4. Metodologi Penelitian
Dalam proses penelitian ini, metodologi yang digunakan untuk mempermudah
mencapai tujuan adalah sebagai berikut:
1. Studi literatur berupa pemahaman teori dari sumber referensi berupa buku, jurnal,
artikel, dan situs edukasi di internet. Tahapan ini dilakukan untuk mengetahui dasar
teori dari penelitian yang akan dilakukan.
2. Perancangan model sistem untuk merancang blok sistem perangkat GCS yang sesuai
dengan batasan masalah yang sudah dikemukakan.
3. Perancangan perangkat keras dan perangkat lunak berupa pemilihan perangkat keras
yang akan digunakan sesuai dengan spesifikasi perancangan model sistem beserta
pembuatan diagram alir program tentang sistem yang akan dirancang.
4. Pembuatan perangkat keras dan perangkat lunak berupa pengimplementasian
rancangan perangkat keras dan perangkat lunak kedalam rangkaian yang sudah
saling terintegrasi dan program-program pendukung.
5. Pengujian sistem berupa uji coba perangkat GCS dan navigasi, perbaikan perangkat
jika terjadi kesalahan sistem, dan pengambilan data-data komunikasi GCS dan
wahana.
6. Analisis dan pengambilan kesimpulan berupa analisis performa sistem dengan
membandingkan data-data komunikasi GCS dan wahana dengan hasil perancangan,
serta mengambil hasil kesimpulan dari penelitian yang telah dilakukan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
BAB 2
DASAR TEORI
2.1. Sistem Kontrol
Dalam sebuah sistem, pengontrolan perlu dilakukan agar nilai keluaran sesuai
dengan yang pengguna inginkan. Menurut fungsinya, sistem kontrol terbagi menjadi dua
jenis, yaitu: sistem kontrol kalang terbuka dan sistem kontrol kalang tertutup [9].
2.1.1. Sistem Kontrol Kalang Terbuka
Sistem kontrol kalang terbuka (open loop control system) adalah suatu sistem yang
keluarannya tidak mempunyai pengaruh terhadap aksi kontrol. Dengan kata lain, sistem
kontrol kalang terbuka keluarannya tidak dapat digunakan sebagai perbandingan umpan
balik dengan masukan [9].
Dalam suatu kontrol sistem kalang terbuka keluaran tidak dapat dibandingkan
dengan masukan sebagai acuan. Jadi, untuk tiap masukan berhubungan dengan kondisi
operasi tertentu sebagai akibat ketetapan dari sistem tergantung pada kalibrasi. Dengan
adanya gangguan, sistem kontrol kalang terbuka tidak dapat melaksanakan tugas seperti
yang kita harapkan. Sistem kontrol kalang terbuka dapat digunakan hanya jika hubungan
antara masukan dan keluaran diketahui dan tidak terdapat gangguan internal maupun
eksternal [9].
Gambar 2.1 Blok Diagram Sistem Kontrol Kalang Terbuka [9]
2.1.2. Sistem Kontrol Kalang Tertutup
Sistem kontrol kalang tertutup merupakan pengembangan dari sistem kontrol kalang
terbuka yang tidak bisa mempertahankan kuantitas nilai keluaran mendekati nilai masukan
yang diinginkan. Blok diagram sistem kontrol kalang tertutup dapat dilihat pada Gambar 2.2.
Terdapat tambahan fungsional blok umpan balik yang akan menghasilkan sinyal umpan
Masukan Keluaran
Sinyal
Acuan
Plant Pemilih Sinyal
Acuan
II
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
balik yang akan mengurangi sinyal acuan. Hasil dari pengurangan sinyal tersebut
berupa sinyal aktual. Sinyal aktual inilah yang akan mempertahankan nilai keluaran
menyerupai nilai masukan [9].
Sebutan kalang tertutup diambil dari aksi pengurangan nilai keluaran dengan nilai
masukan untuk menghasilkan nilai keluaran yang sesuai dengan nilai masukan. Hal ini
berarti bahwa sistem kalang tertutup mengontrol keluaran untuk mendapatkan hasil sesuai
dengan nilai masukan [9].
Gambar 2.2 Blok Diagram Sistem Kontrol Kalang Tertutup [9]
2.2. Radio Kontrol
Radio kontrol adalah penggunaan sinyal radio untuk mengontrol perangkat dari jarak
jauh. Sinyal radio dikirimkan oleh sebuah remote genggam melalui modul pengirim menuju
modul penerima yang terpasang pada suatu model perangkat. Sinyal inilah yang akan
mengontrol pergerakkan dari model perangkat. Model perangkat tersebut bermacam-macam
jenisnya, salah satu contoh adalah model pesawat terbang [2].
Pada radio kontrol model pesawat terbang, sinyal radio yang dikirimkan adalah
sinyal untuk memutar shaft pada motor. Dengan berputarnya shaft pada masing-masing
motor, model pesawat terbang dapat ber-manuver. Pergerakan manuver pada model pesawat
terbang dikendalikan oleh posisi tuas yang terdapat pada remote genggam [3].
Radio kontrol untuk model pesawat terbang membutuhkan minimal empat saluran
komunikasi untuk dapat mengatur pergerakkan dari model pesawat terbang. Empat saluran
komunikasi tersebut masing-masing digunakan untuk [3]:
1. Ailerons untuk mengontrol gerakan roll, yaitu bergerak ke kiri dan ke kanan.
2. Elevator untuk mengontrol gerakan pitch, yaitu bergerak ke depan dan ke belakang.
3. Throttle untuk mengontrol gerakan throttle, yaitu bergerak ke atas dan ke bawah.
4. Rudder untuk mengontrol gerakan yaw, yaitu bergerak memutar ke kiri dan ke kanan.
Keluaran Masukan Plant
Umpan Balik
Pemilih
Sinyal Acuan
Sinyal
Acuan
Sinyal Umpan
Balik
Sinyal
Aktual
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
Gambar 2.3 Gerakan Pitch, Roll, dan Yaw pada Quadcopter [6]
Frekuensi kerja modul pengirim dan penerima juga perlu disamakan agar dapat
mengirimkan sinyal untuk menggerakkan motor. Pengaturan frekuensi ini dilakukan untuk
menghindari interferensi sinyal radio yang ada. Oleh karena itu setiap negara mengatur
penggunaan pita frekuensi untuk keperluan radio kontrol [3].
Di Indonesia penggunaan frekuensi untuk perangkat telekomunikasi jarak dekat telah
diatur dalam peraturan Menteri Komunikasi dan Informatika Republik Indonesia nomor 34
tahun 2012. Penggunaan pengendali radio jarak jauh untuk aktivitas hobi/penggemar
pesawat terbang, terbang layang, model-model mobil, kapal atau perahu diatur pada
frekuensi 26,96 - 27,28 Mhz dan 29,7 – 30 Mhz, sedangkan untuk frekuensi 315 – 470 Mhz
merupakan frekuensi bebas.
2.3. Gerakan Dasar Wahana Quadcopter
Dalam dunia penerbangan, jenis pesawat terbang dapat dibagi berdasarkan
mekanisme gaya angkat. Dan mekanisme gaya angkat yang telah berhasil diterapkan ke
dalam dunia penerbangan, antara lain: pesawat sayap, jet, balon, serta rotor, dan salah satu
contoh pesawat rotor adalah quadcopter. Prinsip kerja quadcopter menyerupai
helikopter, meskipun terdapat perbedaan seperti jumlah rotor yang digunakan serta
mekanisme terbang yang diterapkan ke dalam sistem. Quadcopter menggunakan empat buah
rotor, dengan arah putaran dua buah rotor searah jarum jam (clockwise) dan dua buah rotor
lainnya berlawanan arah jarum jam (counter clockwise). Dan hal ini digunakan sebagai dasar
sistem untuk mengendalikan gerakan pesawat [6].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
Konfigurasi wahana yang paling sering digunakan adalah X-quadcopter. Ketika
quadcopter sedang terbang dan melayang di udara (hovering) kecepatan putar pada setiap
rotor diselaraskan. Saat quadcopter melakukan gerakan maju, dua buah baling-baling
(propeller) yang berada dibelakang akan berputar lebih cepat sehingga body quadcopter
akan condong ke depan. Gaya dorong yang dihasilkan keempat propeller akan mempunyai
komponen gaya ke atas dan ke depan sehingga quadcopter akan terdorong ke arah depan
sambil mempertahankan ketinggiannya [7]. Gambar 2.4 memperlihatkan pengaruh
kecepatan putar propeller terhadap gerakan wahana quadcopter.
Gambar 2.4 Pengaruh Kecepatan Putar Motor terhadap Gerakan Wahana [7]
2.4. Sistem Komunikasi
Komunikasi adalah pertukaran data antara dua perangkat atau lebih melalui sebuah
media transmisi. Untuk mencapai proses komunikasi, perangkat-perangkat yang ingin
berkomunikasi harus saling terhubung menjadi sebuah bagian dari sistem komunikasi.
Sistem komunikasi terdiri atas kombinasi dari hardware (perangkat keras) dan software
(perangkat lunak). Efektivitas sistem komunikasi bergantung pada empat karakteristik,
yaitu: pengiriman, akurasi, ketepatan waktu, dan jitter [4].
Dalam sebuah sistem komunikasi, perlu adanya beberapa komponen utama sebagai
standar sebuah sistem disebut sebagai sistem komunikasi. Komponen-komponen tersebut
antara lain [4]:
Kec. Tinggi Kec. Rendah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
1. Pengirim yaitu perangkat yang mengirimkan data.
2. Penerima perangkat yang menerima data.
3. Data sebagai informasi yang akan dipindahkan atau dikirimkan.
4. Media pengiriman yaitu media ataupun saluran yang dapat digunakan untuk
mengirimkan data tersebut.
5. Protokol yaitu aturan-aturan yang berfungsi untuk menyesuaikan atau
menyelaraskan hubungan.
Salah satu komponen komunikasi yang cukup menjadi perhatian dalam dunia
komunikasi adalah media pengiriman. Melalui sebuah media pengirim maka data dapat
berpindah dari pengirim menuju penerima. Kualitas dari media pengiriman inilah yang
sangat menentukan juga kualitas hasil data yang diterima oleh penerima. Berdasarkan media
pengiriman sebuah sistem, komunikasi dapat di bagi menjadi dua jenis, yaitu [4]:
1. Media kabel sering disebut juga guided media, yaitu media yang mengendalikan
gelombang dalam jalur fisik kepada penerima data. Sebagai contoh: fiber optik, UTP
dan kabel coaxial.
2. Media tanpa kabel / nirkabel (wireless), sering disebut dengan unguided media.
Media tanpa kabel menyediakan alat untuk mentransmisikan gelombang, akan tetapi
tidak mengendalikannya. Seperti contohnya: perambatan (propagation) di udara
maupun di laut.
Melalui sebuah media komunikasi data dapat berpindah dari pengirim menuju
penerima. Perpindahan data berlangsung selama proses komunikasi berjalan. Dan dari proses
perpindahan data yang bermacam-macam jenisnya, komunikasi dapat dibagi menjadi tiga
jenis, yaitu [4]:
1. Simplex adalah komunikasi satu arah, dimana komunikasi hanya berjalan satu arah
dari pengirim menuju penerima tanpa adanya timbal balik. Sebagai contoh: siaran
radio dan siaran televisi.
2. Half duplex adalah komunikasi dua arah dimana komunikasi dilakukan secara
bergantian. Perangkat yang digunakan terdiri atas dua pasang pengirim dan
penerima. Sebagai contoh: Short Message Services (SMS) dan Handy Talkie (HT).
3. Full duplex merupakan pengembangan dari half duplex, prinsip yang diadopsi sama
namun dalam full duplex komunikasi berjalan dua arah penuh (tidak bergantian).
Sebagai contoh: telepon genggam.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
2.5. Modulasi
Modulasi adalah proses perubahan suatu gelombang periodik sehingga menjadikan
suatu sinyal mampu membawa suatu informasi. Dengan proses modulasi, suatu informasi
(biasanya berfrekuensi rendah) bisa dimasukkan ke dalam suatu gelombang pembawa,
biasanya berupa gelombang sinus berfrekuensi tinggi. Terdapat tiga parameter kunci pada
suatu gelombang sinusoidal, yaitu: amplitudo, fase, dan frekuensi. Ketiga parameter
tersebut dapat dimodifikasi sesuai dengan sinyal informasi (berfrekuensi rendah) untuk
membentuk sinyal yang termodulasi [10].
Peralatan untuk melaksanakan proses modulasi disebut modulator, sedangkan
peralatan untuk memperoleh informasi awal (kebalikan dari proses modulasi)
disebut demodulator dan peralatan yang melaksanakan kedua proses tersebut
disebut modem (modulator demodulator) [10].
Informasi yang dikirim bisa berupa data analog maupun digital sehingga berdasarkan
informasi yang bisa dikirimkan, modulasi dapat dibagi kedalam dua jenis, yaitu: modulasi
analog dan modulasi digital [10].
2.6. Modulasi Digital
Dalam hal komunikasi mobile, kemajuan teknologi di bidang Very Large-Scale
Integration (VLSI) dan Digital Signal Processing (DSP) menjadikan modulasi dengan
sistem digital terasa lebih efektif daripada modulasi menggunakan sistem analog. Modulasi
digital menawarkan banyak keuntungan dibandingkan dengan modulasi analog, antara lain
seperti [10]:
1. Daya tahan terhadap noise dan gangguan saluran lebih besar.
2. Lebih mudah dalam melakukan multiplexing.
Biasanya sinyal modulasi digital ditulis sebagai besaran waktu atau besaran simbol
untuk pulsa, dimana masing-masing simbol mempunyai keadaan terbatas m. Dan masing-
masing simbol mewakili banyaknya n bit informasi, dimana n = log 2m bit/simbol [10].
Secara keseluruhan semua teknik modulasi digital menggunakan skema diatas, jika
ada perbedaan antara satu teknik dengan teknik yang lain tidak akan mengubah skema
modulasi diatas. Beberapa teknik yang sering digunakan pada proses modulasi digital antara
lain: Amplitude Shift Keying, Frequency Shift Keying, dan Phase Shift Keying [10].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
2.7. Frequency Shift Keying
Frequency Shift Keying (FSK) adalah salah satu teknik modulasi digital dimana
sinyal informasi digital di transmisi melalui sebuah sinyal pembawa yang frekuensinya
berubah sesuai dengan perubahan sinyal informasi. Salah satu jenis yang paling sederhana
dari FSK adalah Binary FSK (BFSK). Pada BFSK, variasi frekuensi sinyal pembawa
merepresentasikan bit 1 atau 0 [11].
𝑠(𝑡) = 𝐴 cos(2𝜋𝑓0𝑡) 0
𝐴 cos(2𝜋𝑓1𝑡) 1 (2.1)
Dimana 𝑓0 merupakan frekuensi yang merepresentasikan bit 0, sedangkan 𝑓1
merepresentasikan bit 1. Istilah pergeseran frekuensi (frequency shift) dikenal sebagai
perbedaan dari kedua sinyal pembawa ini [11]. Gambar 2.5 memperlihatkan bagaimana
sinyal informasi digital berubah saat melalui proses transmisi data dalam teknik modulasi
FSK.
Gambar 2.5 (a) Sinyal Digital (b) Sinyal Modulasi FSK [11]
2.8. Atmega 2560
ATmega 2560 merupakan sebuah mikrokontroler dengan arsitektur Reduced
Instruction Set Computer (RISC) yang memroses sebuah instruksi pada setiap satu siklus
pulsa. Spesifikasi utama yang dimiliki ATmega 2560 antara lain seperti [12]:
1. Tegangan operasi 4,5 – 5,5 volt.
2. Jumlah Input /Output sebanyak 54 buah.
3. ADC 10 bit sebanyak 16 saluran.
4. PWM 8 bit sebanyak 4 saluran dan PWM 16 bit sebanyak 12 saluran.
5. Satu unit port komunikasi SPI dan dua unit port USART.
6. Memiliki EEPROM sebesar 4 Kb, Internal SRAM sebesar 8 Kb, dan memori flash
sebesar 256 Kb.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
Gambar 2.6 Konfigurasi Pin Atmega 2560 [4]
2.8.1. Serial Peripheral Interface
Serial Peripheral Interface (SPI) merupakan salah satu jenis transmisi data serial
tidak sinkron yang menghubungkan dua atau lebih perangkat mikrokontroler, dimana satu
perangkat berperan sebagai master (tuan) dan perangkat lainnya sebagai slave (hamba).
Hubungan antara tuan dan hamba dapat dilihat pada Gambar 2.7. Terdapat dua buah register
geser (shift register) 8 bit yang mempunyai peran masing-masing sebagai tuan dan hamba.
Kedua register tersebut bekerja dengan masukan pulsa dari sebuah pembangkit pulsa yang
dimiliki oleh tuan [12].
Secara umum ada empat jalur yang menghubungkan register tuan dengan hamba,
yaitu: Source Clock (SCK), Master Output Slave Input (MOSI), Master Input Slave Output
(MISO), dan Select Slave (SS). Masing-masing jalur memilki fungsi dan kegunaan yang
berbeda, berikut ini adalah fungsi masing-masing jalur pada komunikasi SPI [12]:
1. SCK untuk mendistribusikan pulsa masukan kepada tuan dan hamba.
2. MOSI merupakan jalur data dari tuan menuju hamba.
3. MISO merupakan jalur data dari hamba menuju tuan.
4. SS yang berfungsi mengaktifkan hamba.
Pada komunikasi SPI data-data berpindah dari tuan menuju hamba ataupun
sebaliknya. Data-data tersebut berpindah satu-persatu bit seiring dengan masukan pulsa dari
pembangkit pulsa. Proses perpindahan data seperti ini terlihat seperti bergeser dari tuan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
menuju hamba, karena itu jenis register tuan dan hamba disebut juga dengan register geser.
Proses perpindahan satu siklus data akan berakhir saat telah mencapai delapan kali
pergeseran [12].
Gambar 2.7 Hubungan Tuan dan Hamba pada Sistem Komunikasi SPI [12]
Pengaturan komunikasi SPI pada ATmega 2560 melibatkan beberapa register,
seperti: SPCR (SPI Control Register), SPSR (SPI Status Register), dan SPDT (SPI Data
Register).
2.8.1.1 SPCR – SPI Control Register
Gambar 2.8 Register Kontrol SPI (SPCR) [12]
Gambar 2.8 memperlihatkan isi dari SPCR. SPCR terdiri dari delapan buah bit yang
masing-masing memiliki fungsi dan penjelasan sebagai berikut [12]:
1. Bit 7 – SPIE: SPI Interrupt Enable. SPIE merupakan bit yang mengaktifkan
fasilitas interupsi pada SPI.
2. Bit 6 – SPE: SPI Enable. SPE merupakan bit yang dapat mengaktifkan atau
menonaktifkan komunikasi SPI. Jika SPE bernilai 1 (tinggi) maka komunikasi SPI
akan aktif dan bisa digunakan, sedangkan jika bernilai 0 (rendah) maka komunikasi
SPI tidak aktif.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
3. Bit 5 – DORD: Data Order. DORD merupakan bit yang mengatur urutan
pengiriman data saat komunikasi data antara tuan dan hamba berlangsung. Jika
DORD bernilai 1 maka urutan pengiriman dimulai dari bit Low Sign Bit (LSB)
sedangkan jika bernilai 0 maka urutan pengiriman data dimulai dari bit Most Sign Bit
(MSB).
4. Bit 4 – MSTR: Master or Slave Select. MSTR merupakan bit yang mengatur posisi
dari mikrokontroler apakah akan bertindak sebagai tuan atau bertindak sebagai
hamba. Jika MSTR bernilai 1 maka mikrokontroler akan bertindak sebagai tuan,
sedangkan jika MSTR bernilai 0 maka mikrokontroler akan bertindak sebagai
hamba. Bit MSTR tidak akan dapat diatur jika pin SS di konfigurasi sebagai
masukan, karena apabila pin SS di konfigurasi sebagai masukan maka penentuan
mikrokontroler bertindak sebagai tuan atau hamba dilakukan dengan cara membaca
level tegangan pada pin SS.
5. Bit 3 – CPOL: Clock Polarity. CPOL merupakan bit yang mengatur jenis tepian
pulsa yang digunakan sebagai acuan pembacaan data. Jika CPOL bernilai 1 maka
pembacaan data dilakukan setiap tepian turun, sedangkan jika bernilai 0 pembacaan
data setiap tepian naik.
6. Bit 2 – CPHA: Clock Phase. CPHA merupakan bit yang mengatur fase pulsa yang
digunakan, yaitu fase pulsa positif atau fase tepian pulsa negatif. Jika CPHA bernilai
1 maka fase pulsa positif diaktifkan, sedangkan jika CPHA bernilai 0 maka fase pulsa
negatif yang diaktifkan.
7. Bit 1, 0 - SPR1, SPR0: SPI Clock Rate Select 1 and 0. Kedua bit ini mengatur
kecepatan pulsa untuk komunikasi. Pengaturan ini hanya diberikan kepada
mikrokontroler yang bertindak sebagai tuan dan tidak diberikan kepada hamba.
Sehingga mikrokontroler yang bertindak sebagai hamba hanya bisa menerima pulsa
hasil dari tuan dan tidak bisa menghasilkan pulsa sendiri.
2.8.1.2 SPSR – SPI Status Register
Gambar 2.9 Register Keadaan SPI (SPSR) [12]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
Gambar 2.9 memperlihatkan isi dari SPSR. SPSR terdiri dari delapan buah bit yang
masing-masing memiliki fungsi dan penjelasan sebagai berikut [12]:
1. Bit 7 – SPIF: SPI Interrupt Flag. SPIF merupakan bit yang memberikan tanda jika
proses pengiriman data 1 byte (8 bit) sudah selesai, karena pengiriman data dalam
komunikasi SPI dilakukan per 8 bit. Jika proses pengiriman data telah selesai maka
SPIF akan bernilai 1 (tinggi), dan saat proses pengiriman data belum genap 8 bit,
maka SPIF akan selalu bernilai 0 (rendah).
2. Bit 6 – WCOL: Write Collision Flag. WCOL merupakan bit yang memberikan
tanda jika terjadi proses pembacaan data pada SPDR selama komunikasi berjalan.
Selama proses pembacaan data berlangsung bit WCOL akan bernilai 1.
3. Bit 5:1 – Reserved Bit. Bit-bit ini diabaikan dan harus selalu bernilai 0 (rendah).
4. Bit 0 – SPI2X: Double SPI Speed Bit. SPI2X merupakan bit yang menjadikan
kecepatan pulsa menjadi dua kali lipat lebih cepat, seperti terlihat pada Tabel 2.1.
Hal ini berarti kecepatan komunikasi bertambah cepat dua kali lipat.
Tabel 2.1 Hubungan Kecepatan Pulsa dengan Frekuensi Osilasi [12]
SPI2x SPR1 SPR0 Frekuensi Pulsa
0 0 0 fosc/4
0 0 1 fosc/16
0 1 0 fosc/64
0 1 1 fosc/128
1 0 0 fosc/2
1 0 1 fosc/8
1 1 0 fosc/32
1 1 1 fosc/64
2.8.1.3 SPDR – SPI Data Register
SPDR merupakan register yang digunakan untuk menyimpan data 8 bit pada
komunikasi SPI [12]. Jika data yang dikirimkan lebih dari 8 bit data maka data akan tetap
diterima keseluruhan, namun dipisahkan per 8 bit. Gambar 2.10 memperlihatkan isi SPDR.
Gambar 2.10 Register Data SPI (SPDR) [12]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
2.8.2. Analog to Dogotal Converter
Analog to Digital Converter (ADC) adalah pengubah masukan sinyal analog menjadi
kode-kode digital. ADC banyak digunakan sebagai pengatur proses industri, komunikasi
digital dan rangkaian pengukuran atau pengujian yang menghubungkan sensor-sensor
dengan sistem komputer [5].
Gambar 2.11 ADC dengan (a) Sampling Rendah dan (b) Sampling Tinggi [5]
ADC memiliki dua karakter prinsip, yaitu kecepatan sampling dan resolusi.
Kecepatan sampling suatu ADC menyatakan seberapa sering sinyal analog di konversikan
ke bentuk sinyal digital pada selang waktu tertentu. Kecepatan sampling biasanya dinyatakan
dalam Sample per Second (SPS) [5].
Resolusi ADC menentukan ketelitian nilai hasil konversi ADC. Sebagai contoh:
ADC 8 bit akan memiliki keluaran 8 bit data digital, ini berarti sinyal masukan dapat
dinyatakan dalam 255 (2n – 1) nilai diskret. ADC 12 bit memiliki 12 bit keluaran data digital,
ini berarti sinyal masukan dapat dinyatakan dalam 4096 nilai diskret. Dari contoh diatas
ADC 12 bit akan memberikan ketelitian nilai hasil konversi yang jauh lebih baik daripada
ADC 8 bit [5].
Prinsip kerja ADC adalah mengonversi sinyal analog ke dalam bentuk besaran yang
merupakan rasio perbandingan sinyal masukan dan tegangan referensi. Sebagai contoh, bila
tegangan referensi 5 volt, tegangan masukan 3 volt, rasio masukan terhadap referensi adalah
60%. Jadi, jika menggunakan ADC 8 bit dengan skala maksimum 255, akan didapatkan
sinyal digital sebesar 60% x 255 = 153 (bentuk desimal) atau 10011001 (bentuk biner) [5].
𝑡𝑒𝑔𝑎𝑛𝑔𝑎𝑛 = (𝑠𝑖𝑛𝑦𝑎𝑙 × 𝑛𝑖𝑙𝑎𝑖 𝑚𝑎𝑘𝑠𝑖𝑚𝑎𝑙) 𝑡𝑒𝑔𝑎𝑛𝑔𝑎𝑛 𝑟𝑒𝑓𝑒𝑟𝑒𝑛𝑠𝑖 (2.2)
= (153 × 255) 5
= 3 𝑣𝑜𝑙𝑡
(a) (b)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
Beberapa mikrokontroler telah menambahkan fitur ADC kedalam sistemnya, tidak
terkecuali juga IC ATmega 2560 yang memiliki 16 port ADC dengan resolusi 10 bit.
Beberapa register yang digunakan untuk mengaktifkan ADC pada IC ATmega 2560, antara
lain adalah: ADMUX, ADCSRB, ADCSRA, ADCL, ADCH, DIDR0, dan DIDR2 [12].
2.8.2.1 ADMUX – ADC Multiplexing Selection Register
Gambar 2.12 ADC Multiplexing Selection Register [12]
Gambar 2.12 memperlihatkan bit-bit yang terdapat pada ADMUX dengan penjelasan
masing-masing bit sebagai berikut:
1. Bit 7:6 – REF1:0: Reference Selection Bits. Bit-bit ini digunakan untuk memilih
tegangan referensi ADC dengan pengaturan seperti terlihat pada Tabel 2.2.
2. Bit 5 – ADLAR: ADC Left Adjust Result. ADLAR merupakan bit untuk mengatur
penjajaran hasil konversi ADC. Jika ADLAR bernilai 1 maka hasil konversi akan
dimulai dari MSB, sedangkan jika bernilai 0 akan dimulai dari LSB.
3. Bit 4:0 – MUX 4:0: Analog Channel and Gain Selection Bits. Keempat bit ini
merupakan bit yang mengatur masukan analog yang akan dihubungkan ke ADC.
Tabel 2.2 Pilihan Tegangan Referensi pada ADC [12]
REFS1 REFS0 Pilihan Tegangan Referensi
0 0 AREF, VREF dimatikan
0 1 AVCC dengan kapasitor eksternal pada pin AREF
1 0 Tegangan referensi dalam sebesar 1,11 volt
1 1 Tegangan referensi dalam sebesar 2,56 volt
2.8.2.2 ADCSRA – ADC Control and Status Register A
Gambar 2.13 ADC Control and Status Register A [12]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
Gambar 2.13 memperlihatkan bit-bit yang terdapat pada ADCSRA dengan
penjelasan masing-masing bit sebagai berikut:
1. Bit 7 – ADEN: ADC Enable. Jika bit ini bernilai 1 maka fitur ADC akan aktif.
Menuliskan nilai 0 pada bit ini akan mematikan fitur ADC. Nilai konversi akan secara
langsung dihentikan jika fitur ADC dimatikan pada saat proses konversi dilakukan.
2. Bit 6 – ADSC: ADC Start Conversion. Dengan memberikan nilai 1 pada bit ini maka
proses konversi akan dimulai untuk masing-masing nilai jika menggunakan mode
konversi tunggal dan mengkorversi nilai awal jika menggunakan mode free running.
3. Bit 5 – ADATE: ADC Auto Trigger Enable. Ketika bit ini bernilai 1, picuan pada
ADC akan aktif. ADC akan memulai konversi nilainya pada pinggiran positif dari
sinyal picuan yang dipilih.
4. Bit 4 – ADIF: ADC Interupt Flag. Bit ini akan bernilai 1 saat konversi nilai ADC
telah selesai dan data pada register ADCL dan ADCH telah diperbaharui. Nilai pada
ADIF akan terhapus ketika ADC mengeksekusi sebuah interupsi yang baru.
5. Bit 3 – ADIE: ADC Interupt Enable. Menuliskan nilai 1 pada bit ini akan
mengaktifkan fitur interupsi konversi nilai pada ADC.
6. Bit 2:0 – ADPS 2:0: ADC Prescaler Select Bits. Bit-bit ini menentukan nilai pembagi
antara frekuensi XTAL dengan masukan pulsa pada ADC.
Tabel 2.3 Pilihan Nilai Prescaler ADC [12]
ADPS2 ADPS1 ADPS0 Faktor Pembagi
0 0 0 2
0 0 1 2
0 1 0 4
0 1 1 8
1 0 0 16
1 0 1 32
1 1 0 64
1 1 1 128
2.8.2.3 ADCSRB – ADC Control and Status Register B
Gambar 2.14 ADC Control and Status Register B [12]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
Gambar 2.14 memperlihatkan bit-bit yang terdapat pada ADCSRB dengan
penjelasan masing-masing bit sebagai berikut:
1. Bit 7, 5, 4 – Reserved bit. Bit ini harus selalu bernilai 0.
2. Bit 3 – MUX5: Analog Channel and Gain Selection Bit. Bit ini digunakan bersama
dengan bit MUX4:0 pada register ADMUX untuk menentukan masukan analog
menuju ADC.
3. Bit 2:0 – ADTS2:0: ADC Auto Trigger Source. Jika bit ADATE pada ADCSRA
bernilai 1, nilai pada bit-bit ini akan menentukan sumber picuan konversi ADC
seperti terlihat pada Tabel 2.4.
Tabel 2.4 Pilihan Sumber Picuan ADC [12]
ADTS2 ADTS1 ADTS0 Sumber Picuan
0 0 0 Mode Free Running
0 0 1 Komparator Analog
0 1 0 Permintaan Interupt eksternal 0
0 1 1 Timer/Counter 0 dengan perbandingan match A
1 0 0 Timer/Counter 0 overflow
1 0 1 Timer/Counter 1 dengan perbandingan match A
1 1 0 Timer/Counter 1 overflow
1 1 1 Timer/Counter 1 capture Event
2.8.2.4 ADCL dan ADCH – ADC Data Register
Gambar 2.15 ADC Data Register ketika ADLAR Bernilai 1 (a) dan Bernilai 0 (b) [12]
Ketika konversi nilai ADC sudah selesai, hasilnya bisa ditemukan di kedua register
ADCL dan ADCH. Kedua register ini memiliki kapasitas 16 bit data. Dan pembacaan nilai
pada kedua register tersebut dipengaruhi oleh nilai pada bit ADLAR. Penjelasan bit-bit yang
ada pada ADCL dan ADCH adalah sebagai berikut [12]:
(a)
(b)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
1. ADC9:0 – ADC Conversion Result. Bit-bit ini berisi data hasil konversi nilai ADC,
dengan perhitungan seperti persamaan berikut ini.
𝐴𝐷𝐶 =𝑉𝑖𝑛.1024
𝑉𝑟𝑒𝑓 (2.3)
2.9. Modul Transmitter RFM02
RFM02 merupakan modul transmitter yang bekerja menggunakan modulasi FSK
untuk pita frekuensi kerja 433/868/915 Mhz. Modul ini memilki modul pasangan RFM01
sebagai modul receiver. Kedua modul ini mampu berkomunikasi sampai sejauh 300m di
udara terbuka. Spesifikasi utama dari modul transmitter RFM02 adalah sebagai berikut [13]:
1. Tegangan suplai DC 2,2 sampai 5,4 volt.
2. Antarmuka sistem komunikasi berbasis Serial Peripheral Interface (SPI).
3. Menggunakan teknologi Phase Lock Loop (PLL) dengan resolusi 2,5 KHz per step.
4. Menggunakan kristal osilasi 10 MHz untuk PLL.
5. Konsumsi daya rendah.
6. Kecepatan transmisi data digital mencapai 115,2 kbps.
7. Terdapat fitur: wake-up timer, automatic antenna tuning, low battery detection, dan
differential antenna output.
Gambar 2.16 memperlihatkan konfigurasi kaki-kaki yang terdapat pada modul
transmitter RFM02 dan kegunaan dari kaki-kaki tersebut dijelaskan pada Tabel 2.5.
Gambar 2.16 Konfigurasi kaki RFM02 [13]
Untuk dapat mengontrol fungsi-fungsi yang terdapat pada modul transmitter
RFM02, pengguna perlu memberikan instruksi melalui port SDI. Tabel 2.7 memperlihatkan
instruksi-instruksi yang dimiliki oleh modul transmitter RFM02 untuk melakukan
fungsinya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
Beberapa instruksi utama yang digunakan untuk proses pengiriman dan penerimaan
data modul ini adalah: Configuration Setting Command, Power Management Command,
Frequency Setting Command, dan Data Transmit Command.
Tabel 2.5 Fungsi Kaki Modul Transmitter RFM02 [13]
Kaki Keterangan Fungsi
FSK DI Masukan data FSK
VDD S Suplai tegangan positif
SDI DI Masukan data SPI
SCK DI Masukan pulsa SPI
nSEL DI Pemilihan chip (aktif rendah)
SDO DO Keluaran data serial dengan bus
nIRQ DO Keluaran interrupt (aktif rendah)
CLK DO Keluaran pulsa untuk mikrokontroler tambahan
GND S Pembumian
2.9.1. Configuration Setting Command
Gambar 2.17 Keterangan Bit-bit pada Configuration Setting Command [13]
Configuration setting command merupakan perintah yang diberikan kepada modul
transmitter RFM02 untuk menentukan konfigurasi pengaturan beberapa parameter, seperti:
pemilihan penggunaan pita frekuensi, pemilihan frekuensi pulsa keluaran, dan penggunaan
nilai kapasitansi beban kristal. Nilai awal dari instruksi ini saat modul dihidupkan adalah
8008h [13].
Dengan memberikan nilai 1 pada bit 12 hingga bit 0 yang ada pada configuration
setting command maka akan mengaktifkan fungsi dari bit tersebut. Tabel 2.6, 2.7, dan 2.8
menjelaskan fungsi masing-masing bit 12 hingga bit 1 pada configuration setting command
[13]. Bit 12 dan bit 11 digunakan untuk memilih pita frekuensi kerja, bit 10 sampai bit 8
digunakan untuk memilih frekuensi pulsa keluaran, bit 7 sampai bit 4 digunakan untuk
memilih nilai kapasitansi XTAL, sedangkan bit 3 sampai bit 0 digunakan untuk menghitung
frekuensi kerja dari modul transmitter RFM02. Perhitungan frekuensi kerja modul ini dapat
dilihat pada persamaan berikut ini:
𝑓𝑜𝑢𝑡 = 𝑓0 − (−1)𝑆𝐼𝐺𝑁 ∗ (𝑀 + 1) ∗ (30 𝐾𝐻𝑧) (2.4)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
Dimana nilai 𝑓0 adalah nilai tengah frekuensi yang dapat dihitung seperti terlihat
pada persamaan 2.5, SIGN merupakan nilai masukan FSK, dan M merupakan nilai desimal
dari bit-bit m2 sampai dengan m0 yang dimasukkan nilainya pada configuration setting
command. Jika nilai 𝑓0, SIGN, dan M diketahui maka nilai dari 𝑓𝑜𝑢𝑡 bisa dicari berdasarkan
persamaan 2.4.
Tabel 2.6 Keterangan Fungsi Bit x3, x2, x1, dan x0 [13]
x3 x2 x1 x0 Kapasitansi Beban XTAL (pF)
0 0 0 0 8,5
0 0 0 1 9,0
0 0 1 0 9,5
0 0 1 1 10,0
…
1 1 1 0 15,5
1 1 1 1 16,0
Tabel 2.7 Keterangan Fungsi bit d2, d1, dan d0 [13]
d2 d1 d0 Frekuensi Pulsa Keluaran (MHz)
0 0 0 1
0 0 1 1.25
0 1 0 1.66
0 1 1 2
1 0 0 2.5
1 0 1 3.33
1 1 0 5
1 1 1 10
Tabel 2.8 Keterangan Fungsi Bit b1 dan b0 [13]
b1 b0 Pita Frekuensi (MHz)
0 0 315
0 1 433
1 0 868
1 1 915
2.9.2. Power Management Command
Gambar 2.18 Keterangan Bit-bit pada Power Management Command [13]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
Power management command merupakan instruksi untuk mengatur penggunaan
sistem yang ada pada blok pengirim. Sebelum modul transmitter memulai pengiriman data,
bit-bit yang terdapat pada power management command harus diatur terlebih dahulu. Pada
instruksi ini memuat beberapa bit yang memiliki fungsinya masing-masing. Tabel 2.9
memperlihatkan fungsi masing-masing bit pada power management command [13].
Tabel 2.9 Fungsi Bit-bit pada Power Management Command [13]
Bit Fungsi
a1 Mengatur jenis kontrol synthesizer dan XTAL
a0 Mengaktifkan penguat daya
ex Mengaktifkan XTAL
es Mengaktifkan synthesizer
ea Mengaktifkan penguat daya
eb Mengaktifkan pendeteksi baterai
et Mengaktifkan wake-up timer
dc Mematikan keluaran pulsa
2.9.3. Frequency Stting Command
Gambar 2.19 Keterangan Bit-bit pada Frequency Setting Command [13]
Bit 11 sampai bit 0 merupakan bit-bit yang merepresentasikan nilai dari F, dimana
nilai F adalah nilai frekuensi yang diberikan ke frequency setting command dan harus berada
pada rentang 96 sampai 3903. Jika nilai F berada diluar cakupan maka nilai sebelumnya akan
dipertahankan. Nilai tengah dari frekuensi 𝑓0 dapat dihitung sebagai berikut [13]:
𝑓0 = 10 𝑀𝐻𝑧 ∗ 𝐶1 ∗ (𝐶2 +𝐹
4000) 2.5
Dimana nilai C1 dan C2 merupakan besaran yang sudah ditentukan oleh masing-
masing pilihan pita frekuensi seperti terlihat pada Tabel 2.10.
Tabel 2.10 Nilai C1 dan C2 berdasarkan Pita Frekuensi [13]
Pita Frekuensi (MHz) C1 C2
433 1 43
868 2 43
915 3 30
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
2.10. Modul Transceiver RFM12
RFM12 merupakan modul FSK multichannel transceiver buatan HOPE
ELECTRONICS. Terdapat beberapa jenis pita frekuensi yang disediakan yaitu: 315, 433,
868, dan 915 MHz. Untuk modul RFM12-433 jenis pita frekuensi yang digunakan adalah
433 MHz, dengan cakupan frekuensi antara 430,24 MHz – 439,75 MHz. Spesifikasi dari
modul transceiver RFM12 adalah sebagai berikut [14]:
1. Tegangan suplai DC antara 2,2 sampai 5,4 volt.
2. Antarmuka sistem komunikasi berbasis Serial Peripheral Interface (SPI).
3. 2 jenis Keluaran RSSI, yaitu: analog dan digital.
4. Kecepatan transmisi mencapai 256 kbps untuk analog dan 115,2 kbps untuk digital.
5. Terdapat fitur Phase Lock Loop (PLL).
6. Sinyal pulsa dan reset dari mikrokontroler.
7. Konsumsi daya rendah.
8. 8 bit register data TX dan 16 bit FIFO data RX.
9. Terdapat fitur: wake-up timer, automatic frequency control, data quality detection,
internal data filtering dan clock recovery.
Konfigurasi kaki-kaki modul transceiver RFM12 dapat dilihat pada Gambar 2.20
dengan penjabaran fungsi setiap kaki dijelaskan pada Tabel 2.11.
Gambar 2.20 Konfigurasi Kaki RFM12 [14]
Untuk dapat mengontrol fungsi-fungsi dan mengaktifkan penguat daya pengirim dan
penerima yang terdapat pada modul transceiver RFM12, pengguna perlu memberikan
instruksi melalui port SDI (MOSI pada mikrokontroler). Instruksi tersebut diberikan dengan
memberikan sebuah nilai heksadesimal tertentu sesuai dengan ketetapan yang sudah
ditentukan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
Beberapa instruksi utama yang digunakan modul transceiver RFM12 untuk proses
pengiriman dan penerimaan data modul ini adalah: Configuration Setting Command, Power
Management Command, Frequency Setting Command, Transmitter Register Write
Command, Receiver Control Command, FIFO and Reset Mode Command, dan Receiver
FIFO Read Command.
Tabel 2.11 Fungsi Kaki Modul Transceiver RFM12 [14]
2.10.1. Configuration Setting Command
Gambar 2.21 Keterangan Bit-bit pada Configuration Setting Command [14]
Configuration setting command merupakan perintah yang diberikan kepada modul
transceiver RFM12 untuk menentukan konfigurasi pengaturan beberapa parameter, seperti:
pemilihan penggunaan pita frekuensi, pengaktifan register data dan jenis FIFO, dan
penggunaan nilai kapasitansi beban kristal. Nilai awal dari instruksi ini saat modul
dihidupkan adalah 8008h, yang berarti pengaturan nilai kapasitansi beban kristal awal diatur
pada nilai 13pF [14]. Nantinya nilai kapasitansi kristal dapat diubah-ubah dengan
memasukan pengaturan digit pada bit x3 sampai x0 seperti terlihat pada tabel 2.13.
Kaki Keterangan Fungsi
nINT/VDI DI/DO Masukan Interrupt (aktif rendah) / indikator
data benar
VDD S Suplai tegangan positif
SDI DI Masukan data SPI
SCK DI Masukan pulsa SPI
nSEL DI Pemilihan chip (aktif rendah)
SDO DO Keluaran data serial dengan bus
nIRQ DO Keluaran interrupt (aktif rendah)
FSK/DATA/nFFS DI/DO/DI Masukan data FSK/keluaran data/pemilihan
FIFO
DCLK/CFIL/FFIT DO/AIO/DO
Keluaran pulsa (bukan FIFO)/kapasitor filter
(untuk analog)/interrupt FIFO, saat FIFO
berlogika 1
CLK DO Keluaran pulsa untuk mikrokontroler
tambahan
nRES DIO Me-reset keluaran (aktif rendah)
GND S Pembumian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
Bit 7 hingga bit 0 merupakan parameter yang nilainya dapat diubah. Dengan
memberikan nilai 1 pada bit maka akan mengaktifkan fungsi dari bit tersebut [14]. Bit el
digunakan untuk mengaktifkan penggunaan register data, sedangkan bit ef digunakan untuk
mengaktifkan mode FIFO. Jika Bit el bernilai 1 menandakan bahwa register data sedang
digunakan dan jika bit ef bernilai 0 maka pin DATA dan DCLK akan digunakan sebagai
keluaran data dan pulsa [14]. Tabel 2.12 menjelaskan fungsi mulai dari bit b1 dan b0 pada
configuration setting command.
Tabel 2.12 Keterangan Bit b1 dan b0 [14]
b1 b0 Pita Frekuensi (MHz)
0 0 315
0 1 433
1 0 868
1 1 915
Tabel 2.13 Keterangan Bit x3, x2, x1, dan x0 [14]
x3 x2 x1 x0 Kapasitansi Beban XTAL (pF)
0 0 0 0 8.5
0 0 0 1 9.0
0 0 1 0 9.5
0 0 1 1 10.0
…
1 1 1 0 15.5
1 1 1 1 16.0
2.10.2. Power Management Command
Gambar 2.22 Keterangan Bit-bit pada Power Management Command [14]
Penjelasan mengenai bit-bit yang terdapat pada instruksi power management
command dapat dilihat pada Tabel 2.14. Nilai awal instruksi power management command
saat modul dihidupkan adalah 8208h yang menandakan bahwa kristal osilasi sudah
diaktifkan dengan nilai awal 13pF dan nilai osilasi kristal dapat diubah dengan mengatur
konfigurasi bit x3 sampai x0 [14].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
Tabel 2.14 Fungsi Bit-bit pada Power Management Command [14]
Bit Fungsi
er Pengaktifan keseluruhan receiver
ebb Pengaktifan rangkaian baseband receiver
et Switch untuk PLL dan power amplifier, serta untuk
memulai transmisi jika register TX dihidupkan
es Pengaktifan synthesizer
ex Pengaktifan kristal osilasi
eb Pengaktifan alat pendeteksi baterai
ew Pengaktifan wake-up timer
dc Menonaktifkan keluaran pulsa
2.10.3. Transmitter Register Write Command
Gambar 2.23 Keterangan Bit-bit pada Transmitter Register Write Command [14]
Dengan menuliskan perintah ini, pengguna akan dapat menulis 8 bit data (t7 sampai
t0) menuju ke register pengirim data, dengan syarat bit el pada configuration control
command harus bernilai 1. Nilai awal instruksi ini saat modul dihidupkan adalah B8AAh.
Nila B8h merupakan nilai inisialisasi untuk pengiriman 8 bit data. Nilai dari 8 bit data akan
mengikuti nilai inisialisasi tersebut. Jika data yang akan dikirimkan lebih dari 8 bit maka
proses pengiriman data dapat diulang sampai seluruh data berhasil dikirimkan [14].
2.10.4. FIFO and Reset Mode Command
Gambar 2.24 Keterangan Bit-bit pada FIFO and Reset Mode Command [14]
Nilai awal instruksi ini saat modul dihidupkan adalah 0xCA80h. berikut ini adalah
fungsi masing-masing bit pada instruksi FIFO and reset mode command [14]:
1. Bit 7:4 - FIFO IT Level. FIFO akan menghasilkan IT ketika jumlah data yang
diterima mencapai level ini
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
2. Bit 2 – al. Bit ini digunakan untuk memilih kondisi masukan FIFO saat memulai
pengisian data. Jika bernilai 0 maka FIFO akan diisi dengan karakter sinkonisasi,
sedangkan jika bernilai 1 maka masukan akan selalu diisi oleh data.
3. Bit 1 – ff. Dengan memberikan nilai 1 pada bit ini akan mengaktifkan FIFO sesaat
setelah karakter sinskronisasi diterima.
4. Bit 0 – dr. Bit ini akan mematikan mode reset jika diberi nilai 1.
2.10.5. Receiver FIFO Read Command
Gambar 2.25 Keterangan Bit-bit pada Receiver FIFO Read Command [14]
Dengan menuliskan nilai B000h pada receiver FIFO read command, kontroler akan
membaca 8 bit data dari penerima data FIFO, dengan syarat bit ef pada configuration control
command harus bernilai 1 [14].
Pembacaan data 8 bit dilakukan setelah instruksi B000h dituliskan melalui pin SDI.
Jika data yang di baca lebih dari 8 bit maka proses pembacaan data akan berulang sampai
ada karakter yang menandai berakhirnya pembacaan data [14].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
BAB 3
RANCANGAN PENELITIAN
3.1. Konsep Perangcangan
Perancangan perangkat GCS mengacu pada blok diagram model sistem pada Gambar
3.1. Perangkat GCS menggunakan dua buah modul komunikasi, karena saat wahana
beroperasi pada pengendalian manual komunikasi data dan komunikasi perangkat navigasi
berjalan bersamaan.
Gambar 3.1 Blok Diagram Sistem GCS (Bagian di dalam Kotak dengan Garis Putus-putus)
Blok diagram yang tersusun di dalam GCS memiliki peranannya masing-masing.
Berikut ini adalah penjelasan fungsional masing-masing blok diagram pada GCS:
a. Tombol power digunakan untuk mengaktifkan atau menonaktifkan perangkat GCS.
b. Keypad 4x4 digunakan untuk memilih jenis pengendalian wahana dan memberikan
koordinat tujuan (latitude-longitude) saat wahana dioperasikan pada pengendalian
autonomous. Gambar 3.2 menunjukkan tombol-tombol yang terdapat pada keypad
4x4.
Mikro-
kontroler
A
Mikro-
kontroler B
Perangkat
navigasi
Keypad
4x4
Sensor GPS
dan Kompas
Sensor Inertial
Measurement
Komunikasi
perangkat
navigasi
Komunikasi
Transceiver A
Transceiver B
Layar
Penampil
Motor 1, 2,
3, dan 4 ESC 1, 2, 3,
dan 4
data
Transmitter
Receiver
Tombol
power
III
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
Saat memilih jenis pengendalian, dengan menekan tombol 1 maka pengguna akan
mengaktifkan pengendalian manual dan dengan menekan tombol 2 maka pengguna
akan mengaktifkan pengendalian autonomous.
Nilai latitude-longitude dapat diberikan dengan menekan angka-angka yang tertera
pada keypad. Dan dengan menekan tombol # maka koordinat akan dikunci kemudian
dikirimkan ke wahana.
Gambar 3.2 Keypad 4x4 [16]
c. Pada perangkat GCS juga dilengkapi dengan perangkat navigasi yang digunakan
pada saat pengendalian manual diaktifkan. Perangkat navigasi memuat dua buah tuas
dengan masing-masing tuas memiliki 4 Degrees of Freedom (DOF).
Tuas pertama akan menggerakkan wahana ke atas dan ke bawah serta memutar ke
kanan dan ke kiri, sedangkan tuas kedua akan menggerakkan wahana ke depan dan
ke belakang serta ke kanan dan ke kiri.
d. Mikrokontroler merupakan komponen yang akan memproses data-data yang
berkaitan dengan wahana. Data-data tersebut dijabarkan pada Tabel 3.1.
e. Penampil layar berfungsi sebagai media visualisasi data-data yang diterima dari
wahana pada GCS. Keterangan data yang divisualisasikan pada layar penampil
terdapat pada Tabel 3.1.
f. Modul transceiver digunakan sebagai pemancar (transmitter) atau penerima
(receiver) secara bergantian, tergantung dari mikrokontroler mengirimkan data ke
wahana atau menerima data dari wahana.
g. Modul transmitter diaktifkan saat pengguna memilih jenis pengendalian manual.
Modul ini akan mengirimkan data navigasi dari GCS menuju wahana. Sedangkan
komunikasi data tetap dilakukan melalui modul transceiver.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
Tabel 3.1 Keterangan Data-Data yang Diolah pada GCS
No Jenis
Pengendalian
Data yang dikirim ke
wahana
Data yang diterima dari
wahana
(ditampilkan pada LCD)
1 Manual
Arah navigasi kiri Ketinggian wahana
Arah navigasi atas Kecepatan motor 1
Arah navigasi kanan Kecepatan motor 2
Arah navigasi bawah Kecepatan motor 3
Putar kiri Kecepatan motor 4
Putar kanan
Naik
Turun
2 Autonomous Koordinat tujuan Koordinat wahana
3.2. Rancangan Perangkat Keras
Perangkat keras yang terdapat pada prototipe GCS terbagi kedalam dua bagian, yaitu:
komponen elektronik dan komponen mekanik.
3.2.1. Komponen Elektronik
Berdasarkan blok diagram sistem terlihat seperti pada Gambar 3.1, komponen
elektronik yang terdapat pada sistem GCS dapat dibagi kembali menjadi 3 bagian, yaitu:
masukan, proses, dan keluaran. Seperti terlihat pada Gambar 3.3, bagian masukan terdiri dari
komponen keypad 4x4 dan perangkat navigasi. Keypad 4x4 digunakan dengan alasan mudah
ditemukan di pasaran dan memiliki dimensi yang cukup tipis.
Bagian proses terdiri dari mikrokontroler, modul transceiver, dan modul transmitter.
Mikrokontroler yang digunakan adalah IC ATmega 2560 dengan shield Arduino karena
memilki dua buah port komunikasi SPI yang bisa dihubungkan dengan modul transceiver
dan transmitter. Modul RFM12 dan modul RFM02 akan digunakan sebagai modul
transceiver dan transmitter karena menyediakan antarmuka SPI untuk berkomunikasi dan
memiliki kecepatan transmisi data digital sampai 115.2 kbps.
Bagian keluaran hanya terdiri dari layar penampil. Layar LCD dengan resolusi 16x2
akan digunakan sebagai media penampil karena jumlah karakter pada layar LCD sudah
cukup untuk menampilkan data-data yang berhubungan dengan wahana.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
Gambar 3.3 Pembagian Komponen Elektronik
1. Bagian Masukan
Pada bagian masukan terdapat dua buah komponen elektronik, yaitu: keypad dan
perangkat navigasi. Keypad 4x4 mempunyai delapan buah kaki, dimana empat buah kaki
mewakili tombol secara baris dan 4 buah lainnya mewakili tombol secara kolom. Gambar
3.4 memperlihatkan jalur rangkaian keypad 4 x 4. Kedelapan keluaran tersebut akan
dihubungkan ke port D ATmega 2560, karena pada port ini tidak digunakan untuk fitur yang
lain.
Gambar 3.4 Rangkaian Keypad 4 x 4 [16]
Perangkat navigasi terdiri dari dua buah tuas, dengan spesifikasi masing-masing tuas
memiliki 4 DOF. Perangkat navigasi yang digunakan dalam penelitian ini memanfaatkan
kedua buah tuas pada modul joystick Universal Serial Bus (USB). Keluaran data pada modul
tersebut akan dihubungkan ke masukan ADC pada mikrokontroler. Gambar 3.6
memperlihatkan gambar rangkaian perangkat navigasi dimana potensiometer-potensiometer
tersebut dimanfaatkan dari tuas yang terdapat pada joystick seperti terlihat pada Gambar 3.5
Keluaran
LCD 16x2
Proses
Mikrokontroler MEGA 2560
Modul Transceiver
RFM12
Masukan
Keypad 4x4
Perangkat
Navigasi
Modul Transmitter RFM02
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
Gambar 3.5 Tuas pada Joystick USB [17]
Sinyal ADC dirancang pada rentang 0 – 255 atau 8 bit karena nantinya sinyal ADC
ini akan diolah sebagai sinyal PWM yang juga beresolusi 8 bit untuk menggerakkan masing-
masing motor pada wahana. Nilai ADC tersebut dapat diperoleh dengan mengaktifkan fitur
prescaler pada arduino sebagai mikrokontroler. Prescaler pada fitur ADC perlu diaktifkan
untuk mendapatkan nilai ADC 8 bit, hal ini dikarenakan resolusi awal ADC pada arduino
adalah 10 bit. Dengan melihat persamaan 3.1, maka nilai tegangan yang perlu dihasilkan
oleh masing-masing potensiometer pada perangkat navigasi bisa dicari berdasarkan nilai
ADC yang telah dirancang.
𝐴𝐷𝐶 =𝑉𝑖𝑛 . 1023
𝑉𝑟𝑒𝑓
(3.1)
Dimana nilai 𝑉𝑖𝑛 merupakan nilai tegangan keluaran dari masing-masing
potensiometer pada perangkat navigasi, ADC merupakan besaran 8 bit data yang
merepresentasikan besaran PWM yang nantinya akan dikirimkan ke wahana, dan untuk 𝑉𝑟𝑒𝑓
peneliti menggunakan tegangan referensi sebesar 3,3 volt yang terdapat pada fitur bawaan
arduino. Jika nilai ADC dan 𝑉𝑟𝑒𝑓 telah ditentukan maka nilai 𝑉𝑖𝑛 bisa dicari dengan
memasukan parameter-parameter yang ada pada persamaan 3.2. Hasil perhitungan tegangan
masukan telah dirangkum ke dalam Tabel 3.2 dengan contoh perhitungannya sebagai
berikut:
255 =𝑉𝑖𝑛 . 1023
3,3
841,5 = 𝑉𝑖𝑛 . 1023
𝑉𝑖𝑛 = 0,823 𝑣𝑜𝑙𝑡
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
Tabel 3.2 Nilai 𝑉𝑖𝑛 dan ADC pada Perangkat GCS
No ADC Vin (volt)
1 0 0
2 50 0,161
3 100 0,323
4 255 0,823
Gambar 3.6 Rangkaian pada Perangkat Navigasi
2. Bagian Proses
Pada bagian proses, komponen elektronik dibagi menjadi tiga, yaitu: mikrokontroler,
modul transceiver, dan modul transmitter. IC mikrokontroler yang digunakan adalah
ATmega 2560 dengan shield arduino revisi yang ketiga. Gambar 3.7 memperlihatkan
rangkaian sistem Arduino MEGA 2560 R3 dimana IC ATmega 16 ditambahkan untuk
memperbanyak saluran komunikasi yang disediakan. Salah satu saluran komunikasi yang
ditambahkan adalah satu buah sambungan komunikasi SPI pada Arduino MEGA 2560 R3.
Total sambungan komunikasi SPI pada Arduino MEGA 2560 R3 adalah dua buah, dimana
kedua sambungan komunikasi SPI ini akan dibutuhkan untuk sambungan modul transceiver
RFM12 dan modul transmitter RFM02.
Untuk dapat berkomunikasi, baik modul transceiver RFM12 maupun modul
transmitter RFM02 harus melewati proses pengaturan frekuensi kerja menggunakan
perintah “Frequency Setting Command”. Instruksi ini memiliki total 16 bit sama halnya
dengan instruksi lain yang terdapat pada masing-masing modul, dengan 4 bit awal nilainya
selalu tetap yaitu 1010 diikuti dengan 12 bit yang menyatakan besaran frekuensi yang akan
digunakan modul transceiver RFM12 saat beroperasi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
Gambar 3.7 Rangkaian Sistem Arduino Mega 2560 R3 [15]
Tabel 3.3 memperlihatkan format pengaturan frekuensi pada modul transceiver
RFM12 menggunakan perintah “Frequency Setting Command”. Bit 11 sampai bit 0
merepresentasikan nilai F yang dapat dihitung menggunakan persamaan 3.2 yang didapat
dari datasheet modul transceiver RFM12.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
Tabel 3.3 Format Pengaturan Frekuensi [14]
Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Data 1 0 1 0 f11 f10 f9 f8 f7 f6 f5 f4 f3 f2 f1 f0
𝐹 = 10 ∗ 𝐶1 ∗ (𝐶2 +𝑓
4000) 𝑀𝐻𝑧 (3.2)
Peneliti memilih menggunakan frekuensi f=432 MHz sebagai frekuensi kerja dari
modul transceiver RFM12. Hal ini ditujukan untuk membedakan frekuensi kerja modul
transceiver dengan modul transmitter. Pada modul transmitter, frekuensi kerja akan diatur
selain frekuensi 432 MHz. Sedangkan nilai C1 dan C2 didapatkan dengan melihat Tabel 3.4.
Tabel 3.4 Parameter Kapasitor untuk Masing-masing Pita Frekuensi [14]
Pita Frekuensi (MHz) C1 C2
315 1 31
433 1 43
868 2 43
915 3 30
Karena frekuensi yang peneliti pakai masuk kedalam pita frekuensi 433 MHz maka
nilai parameter C1 dan C2 adalah 1 dan 43. Untuk itu nilai F menjadi:
𝐹 = 10 ∗ 1 ∗ (43 +432
4000) 𝑀𝐻𝑧
𝐹 = 800 𝑀𝐻𝑧
Nilai 800 MHz perlu dikonversi kedalam bentuk biner, yang selanjutnya dimasukan
kedalam perintah frequency setting command untuk mengaktifkan modul transceiver
RFM12 yang bekerja pada frekuensi 432 MHz.
Untuk dapat melaksanakan tugasnya, modul transceiver RFM12 maupun modul
transmitter RFM02 telah terintegrasi dengan beberapa komponen pendukung. Gambar 3.8
dan 3.9 memperlihatkan jalur rangkaian pada modul transceiver RFM12 dan modul
transmitter RFM02.
Pin-pin masukan dan keluaran yang terdapat pada modul transceiver RFM12 akan
dihubungkan pada port B Arduino MEGA 2560, dengan spesifikasi: pin SDI terhubung
dengan pin MOSI (PB2), pin SCK terhubung dengan pin SCK (PB1), pin nSEL terhubung
dengan pin SS (PB0), pin SDO terhubung dengan pin MISO (PB3), dan pin nIRQ terhubung
dengan pin PB4 sebagai keluaran untuk perintah interupsi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
Gambar 3.8 Rangkaian RFM12 [14]
Gambar 3.9 Rangkaian RFM02 [13]
3. Bagian Keluaran
Layar penampil beresolusi 16x2 merupakan komponen elektronik keluaran dari
perangkat GCS. Pada umumya rangkaian layar penampil dapat dilihat pada Gambar 3.10.
Konektor J2 akan dihubungkan ke PORT A pada mikrokontroler sebagai masukan data pada
layar penampil.
Gambar 3.10 Rangkaian LCD 16x2
3.2.2. Komponen Mekanik
Komponen mekanik sistem meliputi bingkai perangkat GCS yang terbuat dari kayu
dan acrylic sebagai bahan utamanya. Pada bingkai akan terpasang juga sebuah perangkat
navigasi yang menggunakan joystick USB sebagai bingkainya. Perangkat navigasi akan
terhubung ke perangkat GCS melalui sebuah media kabel penghantar sepanjang satu meter
yang akan memudahkan pengguna mengontrol wahana saat pengendalian manual diaktifkan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
Gambar 3.11 memperlihatkan desain bingkai perangkat navigasi yang
memanfaatkan bingkai joystick USB. Karena hanya memanfaatkan tuas pada joystick maka
tombol-tombol lain pada joystick di hilangkan dan akan digantikan dengan penjelasan fungsi
gerakan masing-masing tuas.
Gambar 3.11 Desain Bingkai Perangkat Navigasi
Perangkat navigasi akan terpasang pada perangkat GCS seperti terlihat pada Gambar
3.12. Gambar tersebut memperlihatkan desain bingkai perangkat GCS, dimana perangkat
GCS beroperasi menggunakan sumber tegangan AC 220 volt 50Hz yang nantinya akan
masuk ke rangkaian penyearah untuk mendapatkan tegangan DC 5 volt.
Gambar 3.12 Desain Bingkai Perangkat GCS
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
3.3. Rancangan Perangkat Lunak
3.3.1. Diagram Alir Program Utama
Peneliti merancang program perangkat lunak kedalam sistem diagram alir. Gambar
3.13 menunjukkan diagram alir program utama yang memuat gambaran program secara
keseluruhan diawali dengan insialisasi pin-pin masukan dan keluaran, pemanggilan pustaka
dan identifikasi variabel di mikrokontroler dan berakhir saat pengguna telah selesai
menggunakan salah satu jenis pengendalian.
Gambar 3.13 Diagram Alir Program Utama GCS
3.3.2. Diagram Alir Sub Rutin Ping
Sub rutin ini berfungsi untuk menguji jalur komunikasi data antar GCS dan wahana.
Jika pengujian gagal, pengguna bisa mencoba kembali pengujian komunikasi dengan
menekan tombol “*” atau menekan tombol “#” untuk berhenti.
Wahana = Manual
?
Mulai
Selesai
Sub rutin
Manual
Sub rutin
Autonomous
Sub rutin
PING
Inisialisasi
Sub rutin pengendalian
Terhubung
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
Untuk awal pengecekan, GCS akan mengirimkan karakter “??” ke wahana. jika
wahana membalas dengan karakter “!!” maka sambungan komunikasi dengan wahana baik.
Namun jika tidak ada balasan selama satu menit maka GCS akan menganggap koneksi tidak
terhubung. Program ini akan berulang terus hingga koneksi sambungan terhubung atau
pengguna memutuskan berhenti melakukan tes uji coba komunikasi.
Gambar 3.14 Diagram Alir Sub Rutin PING
3.3.3. Diagram Alir Sub Rutin Pengendalian
Pada sub rutin ini pengguna dimungkinkan untuk memilih jenis pengendalian yang
akan di kerjakan oleh wahana. Berdasarkan cara kerja yang sudah dijelaskan pada konsep
perancangan, pemilihan jenis pengendalian dilakukan dengan menekan tombol 1 atau 2 pada
keypad. Jika pengguna salah menekan tombol maka pada layar LCD akan tampil “Masukan
Mulai
Aktifkan transceiver
sebagai pengirim
Terima
karakter “!!”
?
Aktifkan transceiver
sebagai penerima
Kirim karakter “??”
Coba
lagi
?
Kembali
Cek Sambungan
Komunikasi
Keypad =
# ?
Tidak
Ya
Sub rutin
Error
Selesai
Keypad = *?
Masukan
Salah
Ya
Tidak
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
salah” dan pengguna dihimbau untuk mencoba lagi dengan menekan tombol “*”. Setelah
jenis pengendalian dipilih, maka layar pada LCD akan menampilkan jenis pengendalian
yang dipilih untuk memastikan pengguna mengetahui wahana berada dalam pengendalian
yang dipilih.
Gambar 3.15 Diagram Alir Sub Rutin Pengendalian
Mulai
Keypad
= 1?
Keypad
= 2?
Kembali
Kirim karakter “--“
Manual Autonomous
Aktifkan transceiver
sebagai pengirim
Aktifkan transceiver
sebagai penerima
Siapkan Perangkat
Navigasi
Pilih
Pengendalian
Tekan 1 untuk
Manual dan 2
untuk autonomous
Masukan Salah,
coba lagi?
Keypad
=
*?
Terima
Karakter “//”
? 2?
Sub rutin
Error
Ya Ya
Ya
Tidak
Tidak
Tidak
Keypad
=
# ?
Tekan * untuk Ya dan #
untuk Tidak
Selesai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
3.3.4. Diagram Alir Sub Rutin Autonomous
Program sub rutin autonomous akan secara langsung terpanggil saat pengguna
memilih pengendalian autonomous. Pada sub rutin ini pengguna hanya akan memberikan
nilai latitude-longitude ke wahana sebagai koordinat tujuan dari wahana, dan pengguna akan
memantau nilai latitude-longitude wahana secara real time saat wahana bergerak menuju
koordinat tujuan.
Data koordinat yang dikirimkan berupa besaran derajat, menit, dan detik untuk
masing-masing latitude dan longitude dengan format tampilan di LCD seperti berikut ini:
---*---’---,---” S
---*---’---,---” E
Pengguna akan memasukan angka pada kolom “---“secara berurutan mulai dari kiri
atas sampai pada kanan bawah. Jika ingin menghapus, pengguna bisa menekan tombol “A“
dan dengan menekan tombol “*” (bintang) pada keypad maka koordinat akan dikunci. Untuk
format tampilan koordinat pada LCD di GCS didesain sama dengan pada saat pengguna
memasukkan koordinat tujuan.
Gambar 3.16 Diagram Alir Sub Rutin Pengendalian Autonomous
Mulai
Masukan
koordinat tujuan
Aktifkan Transceiver
sebagai pengirim
Masukan
Koordinat tujuan
Keypad = * ?
a
Ya
Tidak Silakan
mengulang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
Gambar 3.17 (Lanjutan) Diagram Alir Sub Rutin Pengendalian Autonomous
3.3.5. Diagram Alir Sub Rutin Pengendalian Manual
Program sub rutin manual akan secara langsung terpanggil saat pengguna memilih
pengendalian manual. Tujuan dari program ini adalah memberikan data navigasi kepada
wahana sesuai dengan masukan pengguna pada perangkat navigasi. Namun sebelum
memulai memberikan data navigasi, GCS perlu memastikan wahana siap diterbangkan
dengan memberikan perintah arming (persiapan). Pemberian perintah arming dilakukan
dengan menahan tuas sebelah kiri pada posisi kiri bawah selama sepuluh detik. Jika perintah
ini berhasil sampai ke wahana maka wahana akan membalas dengan mengirim balik karakter
“!!” dan GCS akan memberitahukan kepada pengguna bahwa wahana siap diterbangkan.
Ambil data koordinat
Sampai
tujuan?
Kembali
Ya
Tidak
Aktifkan Transceiver sebagai penerima
Misi selesai
Kirim data koordinat
tujuan
a a
Sub rutin
PING
failsafe
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
Setelah wahana siap diterbangkan maka pengguna bisa mulai memberikan instruksi
gerak kepada wahana dengan memutar tuas pada perangkat navigasi. Dengan berpindahnya
posisi pada tuas, maka format paket data akan berubah dan langsung dikirimkan ke wahana
untuk diproses menjadi gerakan wahana oleh mikrokontroler wahana. Demikian proses ini
terus berulang hingga pengguna berhasil mendaratkan wahana kembali ke tanah.
Gambar 3.18 Diagram Alir Sub Rutin Pengendalian Manual
b
Mulai
Kirim data arming
Karakter
“!!” diterima ?
Aktifkan transceiver
sebagai pengirim
Wahana siap
terbang
Aktifkan transceiver
sebagai penerima
a
Aktifkan transceiver
sebagai penerima
Ambil data ketinggian
dan kecepatan motor
Keypad =
* ?
Ya
Tidak
Tidak
Keypad =
# ?
Sub rutin
Error
Selesai
Sambungan gagal,
coba lagi?
Tekan * untuk Ya dan #
untuk Tidak
Tidak
Ya
Ya
c a
Tinggi= m Motor1= rpm Motor2= rpm
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
45
Gambar 3.19 (Lanjutan) Diagram Alir Sub Rutin Pengendalian Manual
Sub rutin ini akan kembali ke program utama setelah wahana telah dalam keadaan
mendarat total. Jika wahana telah mencapai keadaan mendarat maka akan ada penundaan
waktu selama dua menit. Jika dalam rentang waktu dua menit perangkat navigasi tidak
memberikan data navigasi maka wahana akan mengirimkan karakter “!” yang menandakan
wahana sudah menyelesaikan tugasnya.
3.3.6. Diagrram Alir Sub Rutin Error
Sub rutin ini disediakan untuk menampilkan pesan kesalahan sistem, jika GCS tidak
mampu mengolah data, terjadi kesalahan komunikasi, dan atau kesalahan penggunaan GCS.
Pada sub rutin ini pengguna akan mendapatkan informasi dengan melihat layar penampil
LCD 16x2 yang terdapat pada GCS.
Karakter “!!” diterima
?
Kembali
Aktifkan transceiver
sebagai pengirim
Kirim paket data
navigasi
Motor3= rpm Motor4= rpm
b a
Selesai
c a
Aktifkan transceiver
sebagai penerima
Ya
Tidak
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
Gambar 3.20 Diagram Alir Sub Rutin Error
3.3.7. Sistem Failsafe
Failsafe merupakan sebuah fitur pengaman yang diberikan ke wahana jika terjadi
hal-hal yang tidak diinginkan. Sistem failsafe ini diberikan pada wahana dengan tujuan
memberikan informasi kepada pengguna yang berada di GCS. Pada penelitian ini, informasi
yang diberikan kepada pengguna tentang sistem failsafe berupa keadaan baterai. Jika
tegangan baterai pada wahana kurang dari 10 volt maka sistem failsafe akan aktif.
Pengguna bisa mengetahui aktifnya sistem failsafe dengan melihat langsung wahana
atau melihat tampilan pada LCD. Saat wahana beroperasi pada pengendalian manual,
pengguna cenderung melihat ke arah wahana sambil mengoperasikan perangkat navigasi.
Dengan melihat kondisi tersebut maka pada wahana akan dipasang lampu berwarna merah
sebagai indikator aktifnya sistem failsafe.
Gambar 3.21 Diagram Alir Sub Rutin Failsafe
Mulai
Terjadi kesalahan
pada sistem
Reset nilai parameter
dan memori
Kembali
Mulai
Karakter ‘low’
diterima ?
Kembali
Daya baterai minim,
wahana diturunkan
Selesai
Ya
Tidak
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
Berbeda dengan kondisi yang terjadi saat penngendalian manual, kondisi pengguna
saat mengaktifkan pengendalian autonomous adalah tidak melihat wahana akan tetapi
melihat ke tampilan LCD yang ada di GCS. Untuk itu, jika sistem failsafe aktif pada saat
pengendalian autonomous maka wahana akan mengirimkan karakter “low” ke GCS dan
perangkat GCS akan secara langsung memberikan informasi ke pengguna. Gambar 3.21
memperlihatkan diagram alir sistem failsafe untuk pengendalian autonomous.
3.4. Prosedur Pengiriman Data Modul Transmitter RFM02
Prosedur pengiriman data pada modul transceiver RFM12 melibatkan instruksi
“Power Management Command” dan “Data Transmit Command” dengan catatan
parameter-parameter seperti pemilihan frekuensi kerja dan data rate sudah ditentukan.
power management command merupakan perintah untuk menghidupkan penguat daya,
kristal osilasi, dan synthesizer. Sedangkan data transmit command merupakan perintah
untuk mengirimkan satu byte data ke register pemancar RFM02 [13].
Sebelum pengiriman data dimulai, perintah 0xC0F8 diberikan ke power management
command sebagai nilai awal untuk menghidupkan penguat daya, synthesizer, dan oscillator.
Selanjutnya satu byte data dapat dikirimkan setelah memberikan perintah 0xC6 [13].
3.5. Prosedur Pengiriman Data Modul Transceiver RFM12
Prosedur pengiriman data pada modul transceiver RFM12 melibatkan instruksi
“Power Management Command” dan “Transmitter Register Write Command” dengan
catatan parameter-parameter seperti pemilihan frekuensi kerja dan data rate sudah
ditentukan. power management command merupakan perintah untuk menghidupkan
komponen pemancar RF, sedangkan transmitter register write command merupakan
perintah untuk mengirimkan satu byte data ke register pemancar RFM12 [14].
Sebelum pengiriman data dimulai, perintah 0x8238 ke power management command
sebagai nilai awal untuk menghidupkan penguat daya RF, synthesizer, dan crystal oscillator
sebagai pembangkit pulsa modul transceiver. Selanjutnya satu byte data dikirim setelah
memberikan perintah 0xB8AA ke transmitter register write command [14].
Langkah ini dapat diulangi jika data yang dikirim berjumlah lebih dari satu byte. Jika
proses pengiriman sudah selesai, pemancar dapat dimatikan dengan memberikan nilai
0x8208 ke power management command [14]. Perintah ini akan mematikan penguat daya
RF dan synthesizer.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
3.6. Prosedur Penerimaan Data Modul Transceiver RFM12
Prosedur penerimaan data melibatkan instruksi “Power Management Command”,
“FIFO and Reset Mode Command” yang berfungsi untuk mengatur pemakaian register data
FIFO (First In First Out), dan “Receiver FIFO Read Command” yang berfungsi untuk
menerima satu byte data yang ditampung pada register FIFO [14].
Prosedur penerimaan data dimulai dengan memberikan nilai 0x82C8 pada power
management command yang secara langsung akan menghidupkan bagian penerima yang
meliputi RF front end, baseband, synthesizer, dan oscillator. Selanjutnya, pengambilan data
dapat dilakukan dengan mengirimkan nilai 0xB000 yang diatur pada receiver FIFO read
command. Data pada FIFO dapat direset dengan memberi nilai 0xCA81 pada FIFO and reset
mode command [14]. Gambar 3.22 memperlihatkan timing diagram proses penerimaan data.
Gambar 3.22 Timing Diagram Proses Penerimaan Data RMF12 [14]
3.7. Format Paket Data
GCS dan wahana berkomunikasi secara kontinyu baik pada saat pengendalian
manual maupun autonomous. Untuk itu dibuat standar format paket data bersama antara
GCS dan wahana untuk mempermudah proses komunikasi. Format paket data akan di
transmisi dari dan menuju wahana saat wahana telah memasuki sub rutin masing-masing
pengendalian. Karena wahana hanya dapat digunakan satu siklus maka format paket data
manual dibuat berbeda dari format paket data autonomous.
Paket data saat pengendalian manual dikhususkan untuk komunikasi dari perangkat
navigasi ke wahana. Hal ini dikarenakan perintah navigasi harus segera dilaksanakan oleh
wahana sebari wahana mengirimkan data ke GCS. Sedangkan paket data saat pengendalian
autonomous dibuat khusus untuk pengiriman data dari wahana ke GCS.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
3.7.1. Format Paket Data Saat Pengendalian Manual
Pada saat wahana beroperasi manual, format paket data yang dikirimkan berupa
sinyal digital hasil dari perangkat navigasi pada GCS melalui modul transmitter. Data-data
yang dikirimkan ke wahana mewakili empat data navigasi, yaitu: data a, data b, maju- data
c, dan data d. Masing-masing data akan berisikan nilai 8 bit (256) yang merepresentasikan
besaran sinyal Pulse Width Modulation (PWM).
Contoh format paket data salah satu navigasi adalah “Aa,Bb,Cc,Dd”, dimana
karakter pertama merupakan karakter inisial data navigasi yang fungsinya sebagai
pengamanan fomat paket data, karakter kedua merupakan variabel data navigasi 8 bit, dan
karakter ketiga merupakan karakter pemisah, dan seterusnya. Berikut ini adalah contoh
format paket data secara lengkap:
@A140,B145,C200,D143#
Penjelasan dari format paket data diatas dapat dilihat pada Tabel 3.5. Melihat contoh
format paket data diatas, maka bisa dipastikan jika wahana bergerak ke depan karena nilai
data untuk pitch lebih besar dari data yang lain. Perubahan data navigasi ditentukan oleh
posisi tuas pada perangkat navigasi. Saat tuas berada pada tengah maka nilai dari masing-
masing data navigasi akan berada pada rentang 130-150 untuk mempertahankan putaran
masing-masing motor pada wahana. Format paket data dengan jumlah total 21 karakter ini
akan dikirimkan secara kontinyu dari GCS menuju wahana seiring dengan perubahan posisi
pada tuas perangkat navigasi yang akan mengubah pula masing-masing data sesuai dengan
fungsinya, sedangkan data
Tabel 3.5 Keterangan Format Paket Data saat Pengendalian Manual
No Karakter ke Nilai Keterangan
1 1 @ Inisial awal format paket data.
2 2 A Inisial untuk data navigasi naik dan turun (throttle).
3 3 - 5 140 Nilai data a untuk navigasi naik dan turun.
4 7 B Inisial untuk data navigasi putar kanan dan kiri (yaw)
5 8 - 10 145 Nilai data b untuk navigasi putar kanan dan kiri.
6 12 C Inisial untuk data navigasi maju dan mundur (pitch)
7 13 - 15 200 Nilai data c untuk navigasi maju dan mundur.
8 17 D Inisial untuk data navigasi geser kanan dan kiri (roll)
9 17 - 19 143 Nilai data d untuk navigasi geser kanan dan kiri.
10 2, 6, 11, 16 , Pemisah.
11 21 # Inisial akhir format paket data.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
3.7.2. Format Paket Data Saat Pengendalian Autonomous
Pada saat wahana beroperasi autonomous, format paket data antara GCS dan wahana
hanya berupa format paket data yang hasil keluaran sensor Global Positioning System (GPS)
yang dikirimkan oleh modul transceiver dari wahana ke GCS, dengan format seperti berikut
ini:
$GPGLL,4717.11634,N,00833.91297,E,124923.00,A,A*6E
Dari format paket data tersebut adalah contoh hasil keluaran sensor GPS dengan
standar protokol NMEA. Dari format paket data diatas, data yang akan diproses oleh GCS
hanyalah berupa data latitude dan data longitude. Pada contoh format paket data diatas, data
4717.11634 merupakan data latitude, diikuti data N yang menandakan utara (north) dan data
00833.91297 merupakan data longitude, diikuti data E yang menandakan timur (east).
Terdapat karakter “,’ untuk memisahkan data masing-masing besaran. Pemisahan
masing-masing besaran data perlu dilakukan, agar saat pembacaan data wahana bisa
membedakan data-data yang dikirimkan. Format paket data dengan total 50 karakter ini akan
dikirimkan secara kontinyu selama wahana beroperasi pada pengendalian autonomous.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
BAB 4
HASIL DAN PEMBAHASAN
4.1. Perangkat Keras Penyusun GCS
4.1.1. Bentuk Fisik GCS
Purwarupa GCS terlihat pada Gambar 4.1 terbuat dari bahan kayu dengan ukuran
35x20x10cm. Desain bentuk GCS disesuaikan dengan kebutuhan perangkat-perangkat
penyusun, seperti: LCD, keypad, joystick, dan antena pemancar RFM12-433S. Ada
beberapa perubahan penggunaan perangkat penyusun pada GCS. Dimulai dari tampilan,
GCS menggunakan LCD 20x4 yang menggantikan LCD 16x2 pada tahapan perancangan.
Dan dari segi perangkat masukan, keypad 3x4 yang terpasang pada bagian kanan GCS sudah
memenuhi kebutuhan GCS dalam beroperasi.
Tabel 4.1 memperlihatkan daftar perangkat keras yang terpasang pada GCS. Modul
transmiter tidak akan digunakan pada GCS karena fungsi dari pengiriman data dapat
dilakukan dengan mengaktifkan modul transceiver sebagai pengirim. Dengan konsep
program dan cara kerja yang identik maka penggunaan modul transceiver sebagai pengirim
dan penerima dianggap sudah mengerjakan proses komunikasi GCS dengan wahana.
Gambar 4.1 Purwarupa GCS
IV
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
Tabel 4.1 Daftar Perubahan Perangkat Keras Penyusun GCS
No Klasifikasi Perangkat Penyusun
Hasil Perancangan
Perangkat Penyusun
Hasil Penelitian Keterangan
1 Masukan Keypad 4x4 Keypad 3x4 Perangkat diganti
Perangkat Navigasi Perangkat Navigasi tetap
2 Proses
Arduino Mega 2560
R3
Arduino Mega 2560
R3 tetap
Modul Transceiver
RFM12
Modul Transceiver
RFM12 tetap
Modul Transmiter
RFM02 -
Perangkat tidak
digunakan
3 Keluaran LCD 16x2 LCD 20x4 Perangkat diganti
4.1.2. Rangkaian Elektronik pada GCS
Seluruh perangkat penyusun terhubung satu dengan yang lainnya di dalam GCS.
Rangkaian elektronik hasil perancangan yang tersusun di dalam GCS adalah rangkaian
perangkat navigasi dan rangkaian LCD 20x4. Rangkaian perangkat navigasi membutuhkan
bingkai dan analog ball pada joystick playstation. Rangkaian analog ball dipakai karena
hasil keluaran dari rangkaian tersebut berisi potensiometer yang akan digunakan untuk
menggerakkan wahana. Gambar 4.2 memperlihatkan rangkaian analog ball pada perangkat
navigasi. Hasil keluaran rangkaian analog ball akan dihubungkan ke sebuah rangkaian
elektronik yang menggabungkan keseluruhan sistem perangkat navigasi.
Gambar 4.2 Rangkaian Analog Ball pada Perangkat Navigasi
Rangkaian elektronik pada perangkat navigasi didesain di sebuah Printable Circuit
Board (PCB) dengan ukuran 10,5 x 4 cm. Papan rangkaian untuk perangkat navigasi
merupakan papan rangkaian khusus yang tidak memerlukan proses pencetakan PCB. Hasil
rangkaian elektronik pada perangkat navigasi dapat dilihat pada Gambar 4.3.
Terdapat sedikit perubahan pada rangkaian perangkat navigasi, yaitu adanya
penambahan dua buah push button yang menggantikan potensiometer untuk pergerakkan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
yaw. Masing-masing dari push button akan meberikan nilai 0 dan 9 pada data yaw jika
ditekan. Jika tidak ada penekanan pada kedua push button maka data yaw akan bernilai 4.
Data ini nantinya akan dikirimkan ke wahana jika pengendalian manual diaktifkan.
Gambar 4.3 Perangkat Navigasi
Pada Tabel 4.2 dijabarkan nilai parameter masing-masing komponen yang digunakan
di perangkat navigasi. Terdapat led pada perangkat navigasi yang akan menyala jika
pengendalian manual dipilih. Led indikator ini dihubungkan ke pin digital 47 pada Arduino.
Jumlah keluaran dari perangkat navigasi adalah delapan buah pin yang akan dihubungkan
ke perangkat GCS menggunakan kabel pelangi yang dapat dipasang dan dilepas. Untuk
membedakan antara satu keluaran dengan keluaran yang lain maka warna masing-masing
keluaran dibedakan seperti terlihat pada Tabel 4.3.
Tabel 4.2 Daftar Komponen pada Perangkat Navigasi
No Nama Komponen Fungsi Nilai Parameter (Ω)
Rmin Rtengah Rmaks
1 Potensiometer Throtlle Naik – turun 323,9 4,77M 9,39M
2 Potensiometer Pitch Maju – mundur 327,2 4,80M 9,42M
3 Potensiometer Roll Kanan - kiri 325,5 4,79M 9,40M
4 Push Button Yaw Kanan Putar Kanan Rpull-up = 22K
5 Push Button Yaw Kiri Putar Kiri Rpull-up = 22K
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
Tabel 4.3 Daftar Keluaran Perangkat Navigasi
No Nama Konektor Warna
1 Power Putih
2 Ground Hitam
3 Led Indikator Cokelat
4 Throtlle Ungu
5 Pitch Hijau
6 Roll Oranye
7 Yaw Kiri Kelabu
8 Yaw Kanan Merah
Pada LCD 20x4 juga diperlukan rangkaian untuk mengatur tingkat kecerahan dari
lampu latar. Gambar 4.4 memperlihatkan rangkaian LCD 20x4 yang dilengkapi dengan
variabel resistor 10kΩ untuk mengatur tingkat kecerahan LCD. Variabel resistor akan
bekerja sebagai pembagi tegangan dengan sumber tegangan diambil dari +5v Arduino.
Semakin tinggi keluaran tegangan yang dihasilkan oleh variabel resistor maka kecerahan
pada LCD 20x4 akan semakin meningkat. Pada Tabel 4.4 dijabarkan nama-nama konektor
yang dihasilkan oleh rangkaian LCD 20x4, dengan total 8 buah keluaran. Konektor RS, E,
D4 hingga D7 akan dihubungkan ke port digital 35, 33, 29, 27, dan 25 pada Arduino,
sedangkan sumber daya rangkaian diambil dari port daya pada Arduino..
Tabel 4.4 Daftar Keluaran LCD 20x4
No Nama Konektor Warna
1 Power Kelabu
2 Ground Ungu
3 RS Hitam
4 E Cokelat
5 D4 Merah
6 D5 Oranye
7 D6 Kuning
8 D7 Hijau
Gambar 4.4 Rangkaian LCD 20x4
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
4.1.3. Pengujian Alat
4.1.3.1 Pengujian Perangkat Navigasi
Pengujian perangkat navigasi bertujuan untuk mengetahui bentuk keluaran dari
perangkat navigasi yang nantinya akan dikirimkan ke wahana jika pengendalian manual
diaktifkan. Pengujian perangkat ini meliputi pengujian nilai keluaran ADC oleh masing-
masing potensiometer dan pengujian hasil dari push button.
Hasil nilai keluaran ADC 9bit dari masing-masing potensiometer identik, namun
nilai ADC yang dihasilkan oleh potensiometer tidaklah linear. Untuk membuktikan hal ini,
telah dilakukan pengujian terhadap salah satu potensiometer untuk mengetahui hasil
perubahan keluaran ADC terhadap perubahan potensiometer. Gambar 4.5 memperlihatkan
perbandingan antara pengaruh perubahan potensiometer dengan nilai hambatan dan juga
nilai ADC 9bit.
Gambar 4.5 Grafik Perbandingan Perubahan Potensiometer dengan Hasil Keluaran ADC
9bit
Terlihat pada Gambar 4.5 perubahan nilai potensiometer pada perangkat navigasi
tidak linear. Perubahan keluaran potensiometer pada posisi 25% - 75% sangat rendah.
berbeda dengan perubahan pada posisi 20% - 25% atau 75% - 80% yang sangat tinggi. Untuk
itu pada potensiometer akan terjadi perubahan yang sangat drastis hanya pada area 20% -
25% dan 70% - 75%, selain itu perubahan nilai potensiometer akan sangat rendah.
y = 4,7853x + 10,956R² = 0,9644
0
100
200
300
400
500
600
0 20 40 60 80 100 120
Nil
ai
AD
C
Posisi Potensiometer (%)
Grafik Perbandingan Perubahan Potensiometer Throtlle dengan Hasil
Keluaran ADC 9 bit
Teg. Potensiometer * 100
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
Tabel 4.5 Perbandingan Perubahan Potensiometer terhadap Nilai ADC
No Posisi Potensiometer
(%)
Teg. Keluaran Potensiometer
(volt)
Nilai ADC
(9bit)
1 0 0 0
2 10 0,24 25
3 20 1,16 106
4 25 1,95 200
5 50 2,50 254
6 75 3,08 315
7 80 3,91 402
8 90 4,38 442
9 100 4,95 508
Untuk pengujian push button, masing-masing push button di hubungkan dengan
sebuah resistor pull-up 22 kΩ. Nilai hambatan ini dipilih karena spesifikasi nilai hambatan
pull-up Arduino berkisar dari 20 kΩ sampai dengan 50 kΩ sesuai dengan datasheet Atmega
2560 yang menjadi IC utama Arduino. Penekanan yang diberikan kepada push button akan
mengubah nilai dari variabel putar pada program. Nilai awal dari variabel putar adalah 4,
dan jika push button bagian kiri perangkat navigasi ditekan maka nilai putar akan berubah
menjadi 0. Jika push button bagian kanan perangkat navigasi ditekan maka nilai putar akan
berubah menjadi 8. Nilai 0, 4, dan 8 dipilih karena merupakan nilai bilangan desimal berbasis
satu digit dan nilai nilai ini dipilih karena simetris, sehingga untuk menggerakkan wahana
didapatkan pula gerakan memutar yang simetris.
4.1.3.2 Pengujian Rangkaian LCD 20x4
Pengujian rangkaian ini dilakukan dengan maksud untuk mengetahui kelayakan
LCD 20x4. Sebelum melakukan pengujian, rangkaian LCD 20x4 dihubungkan ke +5v dan
ground pada Arduino. Setelah sambungan daya dihubungkan maka lampu latar LCD akan
menyala dan untuk mengatur tingkat kecerahan dari lampu latar LCD dilakukan kalibrasi
resistor variabel. Semakin rendah nilai resistor variabel maka tingkat kecerahan LCD juga
akan semakin berkurang.
Gambar 4.6 Pengujian LCD 20x4
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
57
Pada pengujian rangkaian LCD 20x4 juga dilakukan pengujian menampilkan
beberapa karakter pada layar LCD dengan maksud memastikan bahwa LCD 20x4 siap untuk
digunakan. Untuk itu pengujian ini dilakukan dengan menampilkan tulisan sederhana, yaitu:
Ground Control Stations pada layar LCD seperti terlihat pada Gambar 4.6.
Dalam meletakan sebuah tulisan pada las LCD 20x4 cukup mudah, hanya
memerlukan program singkat untuk mengatur tulisan akan dimulai pada baris dan kolom
tertentu. Dan supaya tulisan yang tertampil mudah dilihat dan dibaca maka pengaturan dan
peletakan tulisan perlu diatur sedemikian rupa agar terlihat pas. Untuk itu, sebelum memulai
menampilkan tulisan pada LCD 20x4 perlu dilakukan simulasi penulisan pada Microsoft
Excel agar ke depan dalam menuliskan tampilan LCD menjadi lebih mudah. Simulasi
penulisan pada Microsoft Excel dapat dilihat pada Gambar 4.7. Untuk menuliskan karakter
cukup menekan huruf yang diinginkan pada baris dan kolom yang dituju. Setelah tampilan
dirasa cukup baik maka nilai baris dan kolom bisa dimasukkan ke program penampilan LCD
20x4 pada Arduino.
Gambar 4.7 Simulasi Penulisan Tampilan LCD 20x4
4.1.3.3 Pengujian Modul Transceiver
Pengujian ini dilakukan untuk mengetahui prinsip kerja dari modul transceiver
RFM12 dengan pita frekuensi 433MHz. Sebelum modul transceiver digunakan untuk
berkomunikasi, perlu dilakukan pengaturan kerja dengan memberikan perintah-perintah
melalui komunikasi SPI. Pada bab sebelumnya telah dijelaskan mengenai perintah-perintah
kerja dari modul RFM. Gambar 4.8 memperlihatkan perintah-perintah beserta penjelasan
yang diberikan kepada modul transceiver RFM12. Inisialisasi tersebut dapat digunakan
untuk pengaktifan modul transceiver sebagai pengirim maupun penerima. Salah satu
perintah yang diberikan kepada RFM12 adalah 0xB0DB. B0 merupakan perintah yang
diberikan oleh Arduino untuk mengatur konfigurasi RFM12, sedangkan nilai D8 merupakan
nilai untuk mengkatifkan register receiver, memilih pita frekuensi 433MHz, dan nilai
kapasitor 12,5pF.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
58
Gambar 4.8 Penjelasan Perintah Pengaturan RFM12 [18]
Perintah-perintah diberikan oleh Arduino kepada modul transceiver melalui pin
Serial Data Input (SDI). Untuk melihat perintah-perintah yang diberikan oleh Arduino maka
diperlukan osciloscope sebagai media penampil gelombang. Gambar 4.9 memperlihatkan
contoh gelombang hasil keluaran di port SDI. Pada Gambar 4.9 terdapat dua buah sinyal,
sinyal 1 merupakan hasil keluaran clock SPI, sedangkan sinyal 2 merupakan hasil keluaran
SDI.
Sinyal SDI dapat diketahui dengan melihat nilai yang terbentuk saat sinyal pulsa SPI
berada pada tepian naik. Nilai SDI yang terbaca pada Gambar 4.9 adalah B82D. Nilai
tersebut merupakan nilai yang diberikan oleh Arduino setiap kali mengawali pengiriman
karakter setelah data preamble dikirimkan. Nilai tersebut muncul karena pada saat
pembacaan sinyal oleh osciloscope, terdapat pengiriman karakter dalam program Arduino.
Program Arduino berjalan begitu cepat, setiap pulsa pada Arduino dihasilkan dalam waktu
62,5 ns sekali sehingga pembacaan sinyal oleh osciloscope juga tertampil begitu cepat.
Untuk dapat menampilkan sinyal SDI digunakan fitur hold pada osciloscope yang membuat
tampilan sinyal berhenti.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
59
Gambar 4.9 Contoh Keluaran Sinyal SDI
4.1.3.4 Pengujian Modul Transceiver untuk Komunikasi Satu Arah
Pengujian ini dilakukan untuk mengetahui jarak maksimal dari modul transceiver
jika berkomunikasi satu arah. Untuk melakukan pengujian ini, dibutuhkan dua buah modul
transceiver. Modul transceiver pertama akan diaktifkan sebagai pengirim dan modul
transceiver kedua sebagai penerima. Modul transceiver pertama dilengkapi dengan Arduino
MEGA 2560, LCD 20x4, keypad 3x4, dan adaptor 9v sebagai sumber daya Arduino,
sedangkan pada modul transceiver kedua dilengkapi dengan Arduino MEGA 2560 sebagai
mikroprosesor pengolah data dan sebuah komputer portabel yang akan digunakan untuk
sumber daya Arduino dan serial monitor. Kecepatan data komunikasi modul transceiver
diatur meyesuaikan default kecepatan komunikasi SPI pada Arduino, yaitu 3,9Kbps.
Proses pengujian dilakukan di dua buah tempat yang berbeda untuk mengetahui
pengaruh halangan terhadap proses komunikasi. Gambar 4.10 memperlihatkan denah lokasi
pengujian modul komunikasi. Pengujian tanpa halangan dilakukan di denah Gambar 4.10a
di sepanjang jalan taman cemara atas, sedangkan pengujian dengan halangan pohon
dilakukan di denah Gambar 4.10b di dalam area kampus III Universitas Sanata Dharma.
Pada proses pengujian komunikasi satu arah, prosedur yang dilakukan untuk mendapatkan
jarak komunikasi maksimal adalah sebagai berikut:
1. Pengirim akan mengirimkan karakter “?” jika tombol * pada keypad ditekan.
2. Setelah karakter “?” terkirim maka pada LCD 20x4 akan tertampil “terkirim”.
3. Jika karakter yang telah dikirim sampai ke penerima maka hasil serial monitor pada
penerima akan menampilkan karakter “?”. Hal ini mengindikasi bahwa jarak antara
pengirim dan penerima masih dalam jangkauan modul komunikasi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
60
4. Untuk mengetahui jarak maksimal dari komunikasi satu arah maka prosedur
pengujian pertama hingga ketiga akan terus menerus diulang sampai karakter “?”
tidak tertampil di serial monitor. Untuk mengetahui kevalidan data maka setiap
pengiriman jumlah karakter dilakukan lima kali pengambilan data jarak.
Gambar 4.10 Denah Pengujian Modul Transceiver (a) Tanpa Halangan dan (b) dengan
Halangan Pohon
Dalam melakukan prosedur pengujian, dilakukan lima kali pengujian jarak maksimal
komunikasi satu arah pada masing-masing jumlah karakter yang berbeda. Data yang
diperoleh tersaji pada Tabel 4.6 menunjukkan bahwa pada lima kali pengujian terlihat
rentang jarak maksimal komunikasi satu arah pada pengujian tanpa halangan lebih kecil
dibandingkan pada pengujian dengan halangan pohon. Jarak maksimal untuk perngiriman
10 karakter adalah 120,2 meter untuk tanpa halangan, sedangkan untuk pengujian yang sama
dengan berhalang pohon dan banguan di dapatkan jarak maksimal 103,4 meter. Gambar 4.11
memperlihatkan perbedaan rentang jarak pada pengujian komunikasi satu arah dengan
halangan pohon lebih bervariasi atau tidak konsisten.
Dengan mengacu pada data jarak komunikasi tanpa halangan maka dapat dilihat
bahwa jumlah karakter yang dikirimkan dari pengirim menuju penerima juga mempengaruhi
jarak komunikasi satu arah. Terlihat pada Gambar 4.11 dengan semakin banyak jumlah
karakter yang dikirimkan maka jarak komunikasi akan semakin pendek. Pengurangan jarak
komunikasi terhadap jumlah paket yang dikirimkan tidaklah linear, terlihat pada Gambar
4.11 bahwa pengurangan jarak akan lebih dominan saat karakter yang dikirmkan berada pada
jumlah satu sampai sepuluh karakter.
(a) (b)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
61
Jika melihat data pada Tabel 4.6, lama proses pengiriman menggunakan modul
RFM12 rata-rata memakan waktu 50 ms untuk setiap satu karakter. Hal ini berbeda dengan
waktu penerimaan yang hanya membutuhkan 6 ms karena pada bagian penerima hanya
memerlukan satu kali proses perintah pengaktifan penerima untuk karakter hingga ada
indikasi berhenti, sedangkan pada bagian pengirim setiap proses pengiriman karakter
memerlukan proses pengaktifan pengirim. Penundaan pada bagian penerima akan semakin
bertambah saat jumlah karakter yang diterima semakin banyak.
Tabel 4.6 Data Pengujian Komunikasi Satu Arah
No Jumlah
Karakter
Jarak Tanpa
Halangan (m)
Jarak dengan
Halangan (m) Lama
Waktu
Pengiriman
(ms)
Lama
Waktu
Penerimaan
(ms) Rentang
Minimal
Rentang
Maksimal
Rentang
Minimal
Rentang
Maksimal
1 1 133 134,3 106,9 112,3 50 6
2 2 131,7 132,5 99,7 108 101 57
3 3 129,2 130 95,8 105,3 151 106
4 4 125 126 92 100,1 251 207
5 10 120,2 121,5 83,3 103,4 503 459
6 15 118,9 119,4 76,1 91,4 754 710
7 20 114,9 116,5 77,1 106,3 1005 962
Gambar 4.11 Grafik Perbandingan Jarak Komunikasi Satu Arah dengan dan Tanpa
Halangan
0
20
40
60
80
100
120
140
160
0 5 10 15 20
Jara
k (
m)
Jumlah karakter yang dikirimkan
Perbandingan Jarak Komunikasi Satu Arah
Berhalang dan Tanpa Halangan
Jarak Rentang Maksimal Tanpa Halangan Jarak Rentang Maksimal dengan Halangan
Jarak Rentang Minimal tanpa Halangan Jarak Rentang Minimal dengan Halangan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
62
4.1.3.5 Pengujian Modul Transceiver untuk Komunikasi Dua Arah
Pengujian ini dilakukan untuk mengetahui pengaruh komunikasi dua arah (half
duplex) terhadap jarak komunikasi. Peralatan dan kecepatan komunikasi pada pengujian ini
sama dengan pengujian komunikasi satu arah. Denah pengujian komunikasi dua arah juga
sama dengan denah pengujian komunikasi satu arah seperti terlihat pada Gambar 4.10.
Pada pengujian komunikasi dua arah, proses pengujian dilakukan lima kali untuk
masing-masing jumlah karakter yang berbeda. Pengujian pertama dilakukan dengan
mengirim satu karakter dan dibalas dengan satu karakter. Pengujian kedua dilakukan dengan
mengirim dua karakter dan dibalas dengan satu karakter. Pengujian selanjutnya sama seperti
pengujian pertama dan kedua, hanya saja jumlah karakter yang dikirimkan mengikuti
pengujian komunikasi satu arah. Prosedur pengujian komunikasi dua arah adalah seperti
berikut:
1. Modul transceiver pertama bertugas sebagai pengirim terlebih dahulu dan modul
transcceiver kedua bertugas sebagai penerima. Modul transceiver pertama akan
mengirimkan karakter “1” ke modul transceiver kedua.
2. Setelah karakter “1” dikirimkan, modul transceiver pertama akan diaktifkan sebagai
penerima dan modul transceiver kedua akan diaktifkan sebagai pengirim.
3. Selanjutnya modul transceiver kedua akan mengirimkan karakter “2” ke modul
transceiver pertama. Jika karakter “2” berhasil diterima oleh modul transceiver
pertama maka pada LCD akan tertampil “terhubung”.
4. Untuk mengetahui jarak maksimal dari komunikasi dua arah maka prosedur
pengujian pertama hingga ketiga akan terus menerus diulang. Jika LCD pada modul
transceiver pertama masih tertampil “terhubung” maka penerima bergerak menjauh
hingga pada LCD tidak tertampil “terhubung”.
5. Data jarak diuji sebanyak lima kali setiap pengiriman jumlah karakter yang berbeda
untuk membuktikan kevalidan data.
Data hasil pengujian komunikasi dua arah tersaji pada Tabel 4.7. Dari ketujuh
pengujian berdasarkan jumlah karakter yang dikirimkan dan diterima dapat dilihat bahwa
rentang nilai pengujian jarak tanpa halangan lebih kecil dibanding dengan halangan pohon,
seperti terlihat pada Gambar 4.12. Dengan mengacu paka pengujian ke enam, jarak
maksimal yang dapat dilaukan modul dengan tanpa halangan adalah 111,6 meter, sedangkan
untuk komunikasi berhalang pohon dan bangunan jarak maksimal yang bisa dicapai adalah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
63
103,4 meter. Jika mengacu pada data jarak tanpa halangan maka bisa dikatakan bahwa
pengujian jarak terjauh komunikasi dua arah akan lebih pendek sekitar 6,7 meter
dibandingkan dengan pengujian komunikasi satu arah.
Tabel 4.7 Data Pengujian Komunikasi Dua Arah Half Duplex
No Jumlah
Karakter
Jarak Tanpa
Halangan (m)
Jarak dengan
Halangan (m) Lama
Proses
Modul 1
(ms)
Lama
Proses
Modul 2
(ms) Rentang
Minimal
Rentang
Maksimal
Rentang
Minimal
Rentang
Maksimal
1 1-1 128 129 108,4 114,8 105 56
2 2-1 125,9 127,1 101,3 113,3 155 107
3 3-1 123 123,4 99,8 109,9 205 157
4 5-1 119,5 120,6 89,2 104,2 306 258
5 10-1 113,8 115,9 92,7 98,7 557 508
6 15-1 109,7 111,6 92,1 103,4 809 761
7 20-1 105,3 107 81,5 90,5 1060 1011
Untuk proses lama waktu masing-masing bagian pada pengujian komunikasi dua
arah, hasilnya tidak berbeda dari pengujian komunikasi satu arah. Lama proses modul satu
merupakan jumlahan waktu menurut pengiriman dan penerimaan karakter. Sebagai contoh
pengujian ketiga dilakukan pengiriman tiga buah karakter oleh modul satu dan penerimaan
satu buah karakter dari modul dua.
Gambar 4.12 Grafik Perbandingan Jarak Komunikasi Dua Arah dengan dan Tanpa
Halangan
0
20
40
60
80
100
120
140
0 5 10 15 20
Jara
k (
m)
Jumlah karakter yang dikirimkan
Perbandingan Jarak Komunikasi Dua Arah,
Berhalang dan Tanpa Halangan
Jarak Range Maksimal Tanpa Halangan Jarak Range Maksimal dengan Halangan
Jarak Range Minimal tanpa Halangan Jarak Range Minimal dengan Halangan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
64
4.2. Perangkat Lunak Penyusun GCS
Perangkat lunak yang menyusun sistem GCS adalah bahasa pemrograman C yang
terinstal di dalam Arduino Mega 2560 R3. Semua fungsi perangkat keras akan diatur oleh
program yang ada di dalam Arduino. Program yang terinstal pada Arduino mengacu pada
perancangan diagram alir perangkat lunak pada bab sebelumnya telah berhasil bekerja
dengan baik. Untuk mengetahui perangkat lunak pada GCS lebih detail akan dijelaskan pada
penjelasan masing-masing sub rutin perangkat lunak penyusun GCS.
4.2.1. Inisialisasi
Program GCS dimulai dengan menginisialisasi header dan variabel global yang akan
digunakan untuk memasukkan fungsi dan nilai pada program utama. Header yang digunakan
pada program GCS adalah “SPI.h”, “LiquidCrystal.h”, dan “Keypad.h”, sedangkan variabel
pada program GCS ada ±38 variabel dengan spesifikasi: tipe data string 10 variabel, byte 4
variabel, char 8 variabel, int 15 variabel, dan long 1 variabel. Setiap variabel memiliki nama
atau identitas yang berbeda, untuk melihat setiap nama dari variabel yang dideklarasi pada
program GCS dapat dilihat di lampiran.
Isi dari SPI.h adalah program yang mengatur parameter-parameter pengaturan
komunikasi serial SPI. Dengan menuliskan SPI.h pada inisialisasi program maka fungsi-
fungsi dari serial komunikasi SPI seperti: SPI transfer dan pengaturan clock SPI dapat
dipanggil pada program utama. Header selanjutnya, yaitu LiquidCyrstal.h merupakan header
yang harus di deklarasi sebelum menggunakan fungsi LCD, sedangkan Keypad.h merupakan
header untuk mengaktifkan fungsi keypad matriks.
4.2.2. Program Utama
Program utama di bagi menjadi dua bagian, yaitu: setup dan loop. Program di setup
hanya akan berjalan sekali, sedangkan program di loop akan berjalan berulang-ulang sampai
ada indikasi reset atau daya pada arduino dimatikan. Program pada setup berisi pengaturan
fungsi dari SPI, LCD, modul komunikasi RFM12, dan program untuk menampilkan tulisan
“Ground Control Stations”. Setelah program dari setup terlewati maka program akan
dilanjutkan ke program loop. Program pada loop berisi pemanggilan beberapa sub rutin
seperti yang telah dirancang pada bab sebelumnya.
Untuk mengawali program di loop, GCS akan memanggil sub rutin cek komunikasi
untuk mengetahui kesiapan dari wahana. Jika proses cekkom berhasil terlewati maka
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
65
selanjutnya GCS akan memberikan pilihan untuk jenis pengendalian wahana yang diingkan
oleh pengguna. Ada dua buah jenis pengendalian yang disediakan oleh wahana, yaitu:
pengendalian manual dan autonomous. Jika pengguna memilih pengendalian manual maka
program manual akan dijalankan, namun jika pengendalian autonomous yang terpilih maka
program akan memanggil sub rutin baca koordinat, sub rutin kirim koordinat, dan sub rutin
autonomous.
4.2.3. Sub Rutin Cek Komunikasi
Sub rutin cek komunikasi akan di panggil saat awal dari program GCS dijalankan.
Pada subrutin ini, GCS akan mengirimkan karakter “??” kepada wahana dan jika wahana
menerima karakter tersebut maka wahana akan membalas dengan mengirimkan karakter
“!!”. Saat karakter “!!” diterima oleh GCS maka cek komunikasi dianggap berhasil dan
wahana dalam kondisi siap untuk digunakan. Namun untuk menghindari keadaan tidak ada
balasan dari wahana maka pada sub rutin cek komunikasi diberikan batasan waktu tiga detik.
Jika dalam waktu tiga detik wahana tidak membalas dengan mengirim karakter “!!” maka
cek komunikasi dianggap gagal. Saat cek komunikasi gagal, pengguna tidak bisa
melanjutkan penggunaan GCS dan bisa mengulangi proses cek komunikasi dengan menekan
tombol “*” pada keypad. Gambar 4.13 menunjukkan kemungkinan-kemungkinan tampilan
LCD 20x4 saat proses cek komunikasi berlangsung.
Gambar 4.13 Tampilan LCD saat Program Cek Komunikasi Berjalan
LCD tidak menampilkan karakter-karakter yang dikomunikasikan dengan wahana
saat sub rutin cek komunikasi berlangsung. Untuk membuktikan karakter-karakter sudah
dikirim atau diterima oleh GCS maka pada subrutin cek komunikasi ditambahkan fungsi
serial print, sehingga hasil dari karakter-karakter yang dikirim dan diterima oleh GCS dapat
ditampilkan di serial monitor aplikasi dari Arduino. Gambar 4.14 memperlihatkan hasil
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
66
serial monitor dari sub rutin cek komunikasi. Cek komunikasi dianggap berhasil ketika
karakter “!!” berhasil diterima oleh GCS, sedangkan jika karakter “!!” tidak diterima oleh
GCS maka cek komunikasi dianggap gagal.
Gambar 4.14 Hasil Serial Monitor Sub Rutin Cek Komunikasi
4.2.4. Sub Rutin Pengendalian
Sub rutin pengendalian berisi pemilihan jenis pengendalian wahana yang akan dipilih
oleh pengguna. Pada sub rutin ini jenis pengendalian manual bisa dipilih dengan menean
tombol “1” pada keypad, sedangkan pengendalian autonomous dapat dipilih dengan
menekan tombol “2”. Pada sub rutin ini juga dilengkapi pengamanan penekanan keypad.
Pengamanan diberikan untuk mengantisipasi jika pengguna salah menekan tombol pada
keypad. Jika pengguna salah menekan tombol pada keypad maka layar LCD akan
memberitahukan bahwa masukan dari pengguna salah dan akan menunggu masukkan yang
baru dari pengguna. Gambar 4.15 memperlihatkan kemungkinan tampilan LCD yang terjadi
saat program sub rutin pengendalian berjalan. Jika pengguna salah menekan tombol pada
keypad maka program pengendalian tidak akan merespon masukkan dari pengguna.
Gambar 4.15 Tampilan LCD saat Program Sub Rutin Pengendalian Berjalan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
67
Sesaat setelah jenis pengendalian terpilih maka GCS akan memberitahukan jenis
pengendalian terpilih ke wahana dengan cara mengirimkan karakter “++” untuk jenis
pengendalian manual dan karakter “--“ untuk jenis pengendalian autonomous. Jika karakter
tersebut diterima oleh wahana maka wahana akan merespon dengan mengirim balik karakter
“..” ke GCS untuk masing-masing pemilihan pengendalian. Karakter “..” menandakan
bahwa wahana telah menerima perintah dari GCS dan siap beroperasi.
Pada sub rutin pengendalian juga dilengkapi dengan serial print yang berfungsi untuk
melihat hal lain yang perlu ditampilkan selain dari tampilan LCD 20x4, sebagai contoh
adalah terdapat nilai 49 atau 50 saat tombol 1 atau 2 ditekan. Nilai 49 dan 50 merupakan
kode ascii dari karakter 1 dan 2. Nilai tersebut muncul karena tipe data yang digunakan untuk
mendeklarasi variabel pada keypad adalah tipe data char. Gambar 4.16 menujukkan hasil
serial monitor saat program sub rutin pengendalian berjalan.
Gambar 4.16 Serial Monitor Sub Rutin Pengendalian
4.2.5. Program Pengendalian Manual
Saat pengendalian manual telah terpilih maka program GCS akan mengaktifkan
perangkat navigasi. Aktifnya perangkat navigasi ditandai dengan menyalanya led indikator
berwarna merah pada perangkat navigasi. Setelah pengendalian manual terpilih, GCS akan
mengolah dan mengirimkan data yang diperoleh dari perangkat navigasi ke wahana. Untuk
mempermudah proses komunikasi, data-data yang dikirimkan ke wahana dijadikan satu ke
dalam sebuah paket data. Tabel 4.8 memperlihatkan paket data yang dikirimkan GCS ke
wahana saat pengendalian manual terpilih. Data throttle, pitch, dan roll diperoleh dari
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
68
perubahan ketiga potensiometer yang masing-masing mewakili data yang berbeda,
sedangkan data yaw diperoleh dari push button di sebelah kiri dan kanan pada perangkat
navigasi yang ditandai dengan nomor satu.
Tabel 4.8 Paket Data Manual
Digit ke- 0 1 2 3 4 5 6 7 8 9 10 11
Fungsi Pembuka Throtlle Pitch Roll Yaw Penutup
Nilai * 5 1 1 5 1 1 5 1 1 0/4/8 #
Hasil paket data ini sedikit berbeda dari hasil perancangan. Perbedaan terlihat dari
jumlah karakter yang lebih sedikit. Jika sebelumnya pada hasil perancangan bentuk paket
data yang dihasilkan adalah @A140,B145,C200,D143#, namun dengan mempertimbangkan
waktu pengiriman maka paket data diubah menjadi *5115115114#. Karakter inisialisasi "A,
B, C, dan D" serta karakter pemisah " , " dihilangkan untuk mempercepat proses pengiriman
data. Karakter pembuka paket juga diubah menjadi "*" dan data yaw yang sebelumnya
memerlukan tiga buah karakter (511) sekarang diubah menjadi satu karakter (digit ke-10)
karena untuk proses yaw tidak terlalu mempengaruhi proses keseimbangan dari wahana
sehingga nilai yang diberikan bisa berupa besaran digital. Gambar 4.17 memperlihatkan
paket data yang dihasilkan saat program manual dijalankan.
Paket data manual akan dikirimkan secara kontinyu kepada wahana saat
pengendalian manual terpilih, sedangkan wahana tidak akan mengirimkan data apapun
kepada GCS. Hal ini berbeda dengan hasil perancangan yang menyatakan bahwa wahana
akan mengirimkan data ketinggian dan kecepatan masing-masing motor. Data ketinggian
dan kecepatan masing-masing motor dirasa tidak perlu ditampilkan di GCS karena pengguna
tidak akan melihat ke arah LCD sembari menerbangkan wahana, walaupun demikian pada
wahana telah terpasang pengamanan berupa pemberian batasan ketinggian 3 meter. Saat
pengguna berusaha menggerakkan wahana untuk naik melebih batas tiga meter maka
wahana akan secara langsung mengurangi kecepatan masing-masing motornya.
Kecepatan komunikasi juga menjadi alasan mengapa data-data dari wahana tidak
dikirimkan ke GCS. Dengan hanya mengolah dan mengirimkan data perangkat navigasi,
program manual pada GCS memakan waktu hingga 554 ms. Hal tersebut menjadi hambatan
bagi wahana yang tanggapan sistemnya diatur sebesar 4 ms.
Untuk mengatasi hal tersebut maka pada wahana akan ditambahkan sebuah
mikrokontroler khusus untuk mengolah penerimaan paket data dari GCS dan pada GCS
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
69
dilakukan pemadatan program dengan membuang perintah yang tidak diperlukan. Dengan
adanya mikrokontroler tambahan dan pemadatan program manual, wahana akan tetap dapat
menjalankan program kendali manual selama 4 ms, akan tetapi pembaruan data yang diolah
tersendiri oleh mikrokontroler tambahan dilakukan setiap 447 ms sekali.
Gambar 4.17 Serial Monitor Program Manual
Program mikrokontroler kedua yang menjadi mikrokontroler tambahan pada wahana
berisi proses penerimaan paket data dari GCS. Setelah paket data diterima mikrokontroler
akan mengolahnya menjadi pulsa pwm buatan. Pada proses penerimaan paket data dari GCS
data navigasi akan di-maping seperti tertampil pada Tabel 4.9. Perubahan data dilakukan
sesuai kebutuhan wahana yang akan beroperasi pada pengendalian manual. Data sinyal pwm
buatan akan diciptakan di port b4, b5, b6, dan b7 pada mikrokontroler tambahan. Sehingga
wahana akan mengambil data dari port b4 hingga b7 tanpa harus melalui protokol
komunikasi serial ataupun paralel di dalam Arduino.
Tabel 4.9 Sinyal PWM yang dibutuhkan oleh Wahana
No Keluaran Navigasi Sinyal PWM Buatan
Keterangan Minimal Maksimal Minimal Maksimal
1 0 511 1000 2000 Throttle
2 0 511 1650 1350 Pitch
3 0 511 1350 1650 Roll
4 0 8 1250 1750 Yaw
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
70
Sinyal pulsa pwm buatan diperoleh dengan memanfaatkan fitur pewaktuan micro
seconds (micros) pada Arduino, dengan cara mengatur lama waktu pemberian nilai satu
(high) pada masing-masing port yang digunakan sebagai keluaran sinyal pwm buatan. Lama
waktu pemberian nilai satu (high) bergantung pada nilai sinyal pwm buatan. Dengan kata
lain besaran sinyal pwm buatan hasil mapping keluaran navigasi akan diubah menjadi waktu
pemberian nilai satu (high) pada port sesuai fungsinya.
Gambar 4.18 Sinyal PWM buatan untuk Throttle (a) 1000us dan (b) 2000us
Hasil pengujian perangkat navigasi dengan menggunakan mikrokontroler tambahan
pada wahana dapat dilihat pada Gambar 4.19. Wahana berhasil bergerak sesuai dengan
perintah perangkat navigasi, namun pada wahana diberikan pengamanan tali di setiap
sudutnya. Pemberian pengamanan ini dilakukan karena terdapat penundaan respon wahana
terhadap perubahan navigasi. Dengan adanya penundaan ini akan sangat riskan jika wahana
diterbangkan tanpa sebuah sistem pengaman.
Gambar 4.19 Uji Coba Penggunaan Perangkat Navigasi untuk Mengatur Gerakan Wahana
(a) (b)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
71
4.2.6. Program Pengendalian Autonomous
Saat pengendalian autonomous terpilih, program GCS akan masuk ke dalam
serangkaian program autonomous. Untuk mengawali program autonomous, GCS akan
menunggu pengiriman paket data dari wahana yang berisi koordinat dimana wahana berada.
Selanjutnya GCS akan menampilkan koordinat wahana kepada pengguna lewat layar LCD.
Setelah pengguna membaca koordinat wahana, pengguna dipersilakan memasukkan nilai
koordinat yang akan dijadikan tujuan dari wahana. Format nilai koordinat yang di masukkan
oleh pengguna hanya enam digit terakhir dari lattitude dan longitude saja.
Format paket data pada pengendalian autonomous berbeda dari hasil perancangan.
Jika hasil perancangan menyebutkan bahwa format paket data mengikuti keluaran sensor
GPS maka untuk fomat paket data pengendalian autonomous berubah menjadi seperti pada
Tabel 4.10. Data lattitude dan longitude yang diterima GCS hanyalah enam digit terakhir
dari nilai lattitude dan longitude hasil keluaran sensor GPS, sehingga untuk mempermudah
pemrograman data koordinat tujuan yang akan dikirimkan ke wahana juga mengikuti format
paket data tersebut.
Tabel 4.10 Paket Data Autonomous
Digit
ke- 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Fungsi Pembuka Lattitude Gerakan
wahana Longitude Penutup
Nilai * 5 5 6 6 8 1 1/2/3/4 2 0 2 0 7 9 #
Setelah koordinat tujuan diterima oleh wahana, wahana akan melakukan manuver
sampai mendapatkan posisi yang stabil. Setelah menemukan kestabilan, wahana akan
berputar menghadap ke utara, dengan tujuan bisa melakukan gerakan selanjutnya dengan
valid. Sembari wahana berputar ke arah utara, wahana juga mengirimkan karakter ke GCS
yang akan diolah sebagai indikasi gerakan wahana. Karakter yang dikirim oleh wahana
adalah karakter “a” yang menandakan wahana berputar ke kanan atau karakter “i”. Yang
menandakan wahana berputar ke kiri.
Setelah wahana menghadap ke utara, wahana akan melakukan kalkulasi untuk
menentukan gerakan selanjutnya. GCS dapat mengetahui gerakan wahana saat menuju
koordinat tujuan dengan melihat dari nilai paket data autonomous digit ke-7. Jika paket data
autonomous digit ke-7 bernilai 1 maka wahana sedang bergerak ke kanan, jika bernilai 2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
72
maka wahana sedang bergerak ke kiri, jika bernilai 3 maka wahana sedang bergerak ke
belakang, dan jika bernilai 4 maka wahana sedang bergerak ke depan.
Gambar 4.20 Tampilan-tampilan LCD saat Program Autonomous Berjalan
Setelah mencapai koordinat tujuan, wahana akan mengirimkan karakter “s” kepada
GCS dan GCS akan menampilkan informasi kepada pengguna bahwasannya wahana telah
mencapai titik tujuan sesuai dengan masukkan pengguna. Sistem GCS dengan pengendalian
autonomous telah berhasil dilakukan dengan jarak komunikasi kurang dari 100m.
Gambar 4.21 Serial Monitor pada Program Autonomous
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
73
Pada program autonomous telah dilengkapi dengan failsafe baterai yang akan
berjalan jika daya baterai pada wahana mencapai limit bawah penggunaan, yaitu: 10,5 volt
untuk baterai tiga cell dan 7 volt untuk baterai dua cell. Saat failsafe baterai pada wahana
berjalan maka wahana akan mengirimkan karakter “L” kepada GCS sebagai isyarat bahwa
daya baterai pada wahana lemah. Setelah GCS menerima karakter “L” dari wahana, GCS
akan menampilkan informasi baterai lemah kepada pengguna melalui layar dan wahana akan
turun dengan sendiri. Sistem failsafe pada program autonomous telah berhasil dicoba dengan
menggunakan potensimeter pembagi tegangan sebagai pengganti baterai. Gambar 4.20
memperlihatkan hasil tampilan LCD yang terjadi saat program autonomous berjalan.
Berbeda dengan tampilan pada LCD, paket data autonomous yang di kirim dan di
terima oleh GCS tidak ditampilkan karena pengguna akan kesulitan dalam memahami.
Untuk melihat hasil pengiriman paket data dibutuhkan fungsi serial monitor. Gambar 4.21
memperlihatkan hasil serial monitor saat program autonomous berjalan. Informasi yang
diterima oleh GCS berupa koordinat aktual dari wahana diperbaharui pada layar LCD setiap
empat detik sekali. Nilai empat detik diberikan agar pengguna mudah dalam membaca dan
memahami nilai koordinat wahana.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
74
BAB 5
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Dari hasil pengujian dan pengambilan data pada sistem ground control stations,
didapatkan kesimpulan sebagai berikut:
1. GCS dapat berfungsi sebagai pengontrol dan pemonitor sistem wahana quadcopter
dengan jarak pengunaan tidak lebih dari 100 meter pada ruangan terbuka.
2. Penggunaan modul komunikasi RFM12 dengan default kecepatan transfer data 3,9
kbps untuk perangkat navigasi memerlukan waktu hingga 447 ms. Sedangkan lama
waktu yang dibutuhkan untuk dapat mengontrol wahana adalah 4 ms.
3. Semakin banyak karakter yang dikirimkan melalui modul komunikasi RFM12 maka
jarak komunikasi akan semakin berkurang.
4. Perubahan nilai tegangan pada potensiometer perangkat navigasi tidak berbanding
lurus dengan perubahan posisi potensiometer.
5. Modul komunikasi RFM12 berbasis modulasi FSK kurang tepat digunakan untuk
perangkat navigasi karena memerlukan waktu hingga 50 ms untuk setiap pengiriman
karakter dengan default kecepatan transfer data 3,9 kbps.
5.2. Saran
Berikut ini dipaparkan beberapa saran untuk proses pengembangan penelitian
mengenai ground control stations:
1. Penggunaan modul komunikasi RFM12 dianggap kurang cocok untuk mengontrol
wahana, sehingga diperlukan modul lain dengan tipe modulasi atau kecepatan data
yang lebih tinggi untuk dapat menghasilkan perintah navigasi dengan batas waktu
maksimal pengiriman 4 ms.
V
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
75
DAFTAR PUSTAKA
[1] Swastika, V. M., 2015, Perkembangan Teknologi di Indonesia,
http://www.kompasiana.com/vanessams/perkembangan-teknologi-di-
indonesia_55547634b67e615e14ba545b, diakses 4 Oktober 2015
[2] Wikipedia, 2015, Radio Control, https://en.wikipedia.org/wiki/Radio_control,
diakses 14 November 2015.
[3] Wikipedia, 2015, Radio-controlled aircraft, https://en.wikipedia.org/wiki/Radio-
controlled_aircraft, diakses pada 14 November 2015.
[4] Sora, N., 2014, Definisi atau Pengertian Komunikasi Data Lengkap,
http://www.pengertianku.net/2014/09/definisi-atau-pengertian-komunikasi-data-
lengkap.html, diakses pada 13 Desember 2015.
[5] Hariyanto, D., 2010, Analog to Digital Converter,
http://staff.uny.ac.id/sites/default/files/Teknik%20Antarmuka%20-%20ADC.pdf,
diakses pada 20 Desember 2015.
[6] Hutama, M., 2015, Prinsip Kerja Quadcopter, http://www.insinyoer.com/prinsip-
kerja-quadcopter/, diakses pada 15 Januari 2016.
[7] Ikhsan, F., 2014, Mengenal Dasar-dasar Quadcopter,
http://firmanikhsan.com/mengenal-quadcopter/, diakses pada 17 Januari 2016.
[8] Farghani, A. A., Sumiharto, R., dan Wibowo, S. B., 2013, Purwarupa Ground
Control Station untuk Pengamatan dan Pengendalian Unmanned Aerial Vehicle
Bersayap Tetap, Jurnal, IJEIS, vo. 3, no 8, hal 1-10.
[9] D’Azzo, J., Houpis, C., 1960, Feedback Control System Analysis and Synthesis,
McGRAW-HILL KOGAKUSHA.
[12] Rappaport, T., 2002, Wireless Communications – Principles and Practice, Prentice-
Hall, United Stated of America.
[13] Arguelles, J., 2010, Frequency Shift Keying, ECCE Department, Philippines.
[14] ----------, 2014, Data Sheet ATmega640/V-1280/V-1281/V-2560/V-2561/V, Atmel.
[15] ----------, 2006, Data Sheet ISM Band FSK Transmitter Module RFM02, HOPE
MICROELECTRONICS CORPORATION.
[16] ----------, 2006, Data Sheet RFM12 Universal ISM Band FSK Transceiver, HOPE
MICROELECTRONICS CORPORATION.
[17] ----------, 2016, Schematic Arduino Mega 2560 R3, Arduino.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
76
[18] ----------, 2011, Data Sheet Keypad 4x4, 4x4 Matrix Membrane Keypad (#27899),
Parallax.
[19] Fries, D., 2014, Reverse Engineering a PlayStation 3 Controller, EEL 4906:
Engineering Design and Professionalism.
[18] Adhoq, 2013, RFM12B Command Calculator, http://tools.jeelabs.org/rfm12b.html,
diakses pada 25 Maret 2016.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LAMPIRAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
l.1
Rangkaian GCS Terintegrasi
Perangkat Navigasi
Rangkaian LCD 20x4 Keypad 3x4
Modul RFM12
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
l.2
Diagram Blok Sistem Quadcopter dan GCS
Mikrokontroler
KeypadPerangkat
Navigasi
Layar
Penampil
Transceiver TransceiverMikrokontroler
TambahanMikrokontroler
Modul
GPS-Compass
ESC
1,2,3,4
Motor
1,2,3,4
Gyrometer
Barometer
GROUND CONTROL STATION WAHANA
Metode Pengambilan Data Jarak Komunikasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
l.3
Rangkaian Pengujian Komunikasi dan GCS
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
l.4
Data Komunikasi Satu Arah
Satu Arah (RFTX) (default BR = 4k)
No Jumlah
Paket
Jarak Maksimal
Tanpa Halangan
(meter)
Jarak Maksimal
dengan Halangan
Pohon & Lorcin
(meter)
Lama Proses
Pengiriman
(ms)
Lama Proses
Penerima
(ms)
1 1
133 106,9 50 6
133,6 111,2 52 6
134,3 110 51 6
133 108,4 50 6
133 112,3 50 6
2 2
131,7 108 100 56
132,4 104,4 101 57
132,4 99,7 101 56
132,5 108 101 57
132 100,5 101 57
3 3
129,2 95,8 151 106
130 105,3 150 108
129,3 100,7 150 106
130 97,4 151 107
130 98,1 152 108
4 5
125,5 94,1 251 207
125,3 92 251 207
125 93,7 251 208
125 95,9 251 207
126 100,1 252 207
5 10
120,2 83,3 503 459
120,2 92,2 502 459
121,5 88,6 503 458
121 103,4 503 459
121,1 87,9 503 458
6 15
120 83,3 754 709
119,4 84,9 754 710
118,9 76,1 754 711
119,4 91,4 754 710
119,4 80,2 755 711
7 20
116,5 106,3 1006 962
115,7 90,2 1004 961
115,8 89,8 1005 961
115,7 77,1 1006 962
114,9 85,3 1005 962
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
l.5
Data Komunikasi Dua Arah
Dua Arah (RFTX) (default BR = 4k)
No Jumlah
Paket
Jarak Maksimal
Tanpa Halangan
(meter)
Jarak Maksimal
dengan Halangan
Pohon & Lorcin
(meter)
Lama Proses
TRx1
(ms)
Lama Proses
TRx2
(ms)
1 1--1
129 112,1 105 56
128 113 106 57
128,6 114,8 104 57
128 111,8 106 56
129 108,4 105 56
2 2--1
126,7 113,3 156 107
127,1 108,7 154 107
127,1 108,7 155 106
127,1 101,3 154 106
125,9 107,1 155 107
3 3--1
123 109,9 206 158
123,4 106,1 205 157
124 103,7 206 157
124,3 99,8 205 158
124,3 99,8 204 157
4 5--1
120,6 104,2 306 258
120,6 100,5 306 258
119,5 104 306 258
120,6 95,5 307 257
120,1 89,2 306 257
5 10--1
113,8 92,7 558 510
114,7 98 557 508
115,9 96,5 557 509
114,3 97 558 508
115,9 98,7 557 508
6 15--1
111,6 100 809 761
110,5 100,7 809 761
109,7 99,9 809 760
111,6 92,1 809 761
111,6 103,4 809 760
7 20--1
105,3 89,7 1061 1012
107 90,5 1060 1011
107 86,3 1060 1012
106,2 81,5 1060 1011
105,8 81,5 1060 1011
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
l.6
Manual Penggunaan Sistem Quadcopter
Risha Augerah Nenu Lema,
Ferdinandus Hans, dan
Adovan Pujianta Ginting
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
l.7
Manual Penggunaan Sistem Quadcopter
Sistem quadcopter terdiri dari sebuah quadcopter sebagai wahana dan sebuah Ground
Control Stations (GCS) sebagai perangkat pemantau dan pengontrol wahana. Wahana dapat
beroperasi pada 2 jenis pilihan pengendalian, yaitu: Manual dan Autonomous. Untuk jenis
pengendalian manual, wahana akan bergerak sesuai dengan perintah perangat navigasi pada
GCS. Sedangkan untuk jenis pengendalian autonomous, wahana akan bergerak secara
mandiri dari sebuah titik awal ke sebuah titik tujuan hasil masukkan dari pengguna.
Spesifikasi Wahana
1. Menggunakan 2 buah mikokontroler Arduino Mega 2560 R3.
2. Menggunakan modul transceiver RFM12S 433MHz dengan antarmuka SPI.
3. 4 buah motor penggerak : motor brushless turnigy 1400kv.
4. 4 buah driver motor: Electronic Speed Control (ESC) 30A.
5. Sensor: Barometer (manual), Gyro (manual/autonomous) , GPS (autonomous), dan
Compass (autonomous).
6. Membutuhkan catu daya baterai lithium polymer (li-po) 2 cell atau 3 cell.
Spesifikasi GCS
1. Menggunakan mikrokontoler Arduino Mega 2560 R3.
2. Menggunakan modul transceiver RFM12S 433MHz dengan antarmuka SPI.
3. Menggunakan keypad 3x4 sebagai perangkat masukkan nilai parameter.
4. Menggunakan LCD 20x4 sebagai layar penampil informasi.
5. Terdapat sebuah perangkat navigasi untuk mengontrol wahana (manual).
6. Membutuhkan catu daya AC 220 volt.
Prosedur Penggunaan
Langkah
ke Deskripsi Proses
1 Rangkai komponen penyusun Quadcopter dan GCS sesuai
panduan Wahana
2 Sambungkan kabel daya dari baterai ke wahana Wahana
3 Tunggu sampai blinking LED pada modul GPS-Compass
menyala Wahana
4 Lepas sambungan daya antara baterai dan wahana Wahana
5 Lepas sambungan daya rangkaian tambahan Wahana
6 Sambungkan daya dari baterai ke wahana Wahana
7 Tunggu sampai blinking LED hijau pada flight controller
untuk menyala Wahana
8 Sambungkan daya dari rangkaian flight controller ke
rangkaian tambahan Wahana
9 Sambungkan daya pada GCS GCS
10 Tunggu proses cek komunikasi GCS
11 Pilih mode pengendalian yang diinginkan GCS
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
l.8
Catatan:
Masing-masing mikrokontroler pada wahana telah terinstal program
flight_controller.ino dan autonomous.ino, sedangkan pada GCS terinstal program
GCS.ino.
Proses kerja GCS berlangsung hanya untuk satu pemilihan pengendalian. Jika
menghendaki berganti jenis pengendalian maka perlu dilakukan reset ulang GCS
dengan mematikan daya GCS.
Panduan Pengendalian Manual
Pengguna dapat menghubungkan kabel konektor dari port perangkat navigasi pada GCS ke
perangkat navigasi saat pengendalian manual terpilih. Jika led indikator pada perangkat
navigasi menyala, maka perangkat navigasi telah berhasil di aktifkan dan siap untuk
digunakan. Berikut ini merupakan rangkaian dari perangkat navigasi:
Untuk dapat menggerakkan wahana naik dan turun dilakukan dengan cara menggerakkan
potensiometer throttle. Jika potensiometer throttle di gerakkan ke atas maka wahana juga
akan bergerak ke atas. Pergerakan wahana maju atau mundur dilakukan dengan
menggerakkan potensimeter pitch, sedangkan untuk ke kiri atau ke kanan dilakukan dengan
menggerakkan potensiometer roll. Berbeda dengan throttle, pitch, dan roll, pada yaw adalah
berupa push button, sehingga untuk mengendalikan gerakan wahana berputar ke kiri dengan
menekan tombol yaw kiri dan begitu juga untuk pergerakkan memutar ke kanan dengan yaw
kanan.
Panduan Pengendalian Autonomous
Pada saat wahana bekerja pada pengendalian autonomous, pengguna dapat memerintahkan
wahana untuk bergerak ke sebuah titik tujuan secara otomatis. Namun demikian, pengguna
tetap dapat memantau pergerakkan dan titik koordinat wahana secara aktual melalui GCS.
Pengguna tetap harus memantau secara langsung jarak pengoperasian wahana,
pengoperasian wahana harus dilakukan kurang dari 100 meter.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
l.9
Berikut ini adalah prosedur penggunaan wahana dan GCS saat pengendalian autonomous
terpilih:
1. GCS akan menampilkan titik koordinat dari wahana pada LCD. Pengguna disarankan
untuk mencatat titik koordinat awal.
2. Silakan masukan koordinat tujuan tujuan dari wahana melalui keypad 3x4 pada GCS.
Nilai yang diberikan pada masing-masing lattitude dan longitude hanya enam digit
terakhir. Jika koordinat tujuan sudah bener maka pengguna dipersilakan mengunci
koordinat tujuan dengan menekan tombol ‘*’. Jika terdapat kesalahan dalam
memasukan koordinat, pengguna bisa menghapus nilai koordinat yang diberikan dengan
menekan tombol ‘#’.
3. Wahana akan melakukan arming (kondisi dimana keempat mulai berputar).
4. Wahana mulai bermanuver dan akan berputar untuk menghadap ke utara.
5. Wahana akan mulai bergerak menuju ke titik tujuan dengan menyelesaikan nilai
lattitude terlebih dahulu. Setelah nilai lattitude terpenuhi, wahana akan melanjutkan
pergerakkan untuk menyelasaikan nilai longitude.
6. Seluruh proses pergerakkan wahana dan titik koordinat wahana dapat dipantau di layar
penampil GCS.
7. Saat prosedur 5 selesai dikerjakan, wahana akan mengecek ulang kesesuaian titik
koordinat tempat wahana berada dengan koordinat tujuan. Jika didapati nilai koordinat
belum sesuai, maka wahana akan mengulang prosedur ke-5 kembali.
8. Seluruh prosedur pengendalian autonomous akan berhenti saat koordinat aktual wahana
telah masuk ke dalam rentang nilai koordinat tujuan ±5 meter.
9. Saat wahana telah mencapai koordinat tujuan, maka wahana akan landing dengan
sendirinya.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
l.10
Wahana mikro-1
Wahana mikro-2
GCS
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
l.11
Program GCS
#include <SPI.h>
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include <LiquidCrystal.h>
LiquidCrystal lcd(34, 32, 30, 28, 26, 24);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#define RFIRQ 4
#define RFSS 9
#include <Keypad.h>
const byte baris = 4;
const byte kolom = 3;
char keys[baris][kolom] =
'1', '2', '3',
'4', '5', '6',
'7', '8', '9',
'*', '0', '#'
;
byte pinBar[baris] = 35, 33, 31, 29;
byte pinKol[kolom] = 27, 25, 23;
Keypad kpd = Keypad( makeKeymap(keys), pinBar, pinKol, baris, kolom );
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
String terimaCek, kendali, terimaKendali;
String koordinat, Long, Latt, koordinatWahana, paketKoorAktual;
String gerakanWahana;
char kondisiBatere, tombol, x, y;
int a, b, i, tanda, waktu, timer1_counter;
long cacah = 0, limit;
int Isr = 0;
const int putarKanan = 2;
const int putarKiri = 3;
const int perangkatNavigasiStatus = 47;
int putarKananStatus = 1, putarKiriStatus = 1;
String joystick[4];
char pd[4][4], paketdata[17], putarChar[2];
int sign, putar, pinpot;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void setup()
Serial.begin(9600);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
l.12
//delay(500);
SPI.setBitOrder(MSBFIRST);
SPI.setDataMode(SPI_MODE0);
SPI.setClockDivider(SPI_CLOCK_DIV8);
SPI.begin();
pinMode(RFIRQ, INPUT);
digitalWrite(RFIRQ, HIGH);
pinMode(RFSS, OUTPUT);
digitalWrite(RFSS, HIGH);
lcd.begin(20, 4);
pinMode(putarKanan, INPUT);
pinMode(putarKiri, INPUT);
pinMode(perangkatNavigasiStatus, OUTPUT);
digitalWrite(perangkatNavigasiStatus, HIGH);
// initialize timer1
noInterrupts(); // disable all interrupts
TCCR1A = 0;
TCCR1B = 0;
// Set timer1_counter to the correct value for our interrupt interval
//timer1_counter = 64911; // preload timer 65536-16MHz/256/100Hz
//timer1_counter = 64286; // preload timer 65536-16MHz/256/50Hz
timer1_counter = 34286; // preload timer 65536-16MHz/256/2Hz
TCNT1 = timer1_counter; // preload timer
TCCR1B |= (1 << CS12); // 256 prescaler
TIMSK1 |= (1 << TOIE1); // enable timer overflow interrupt
interrupts(); // enable all interrupts
lcd.clear();
lcd.setCursor(3, 1);
lcd.print("Ground Control");
lcd.setCursor(6, 2);
lcd.print("Stations");
delay(2500);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ISR(TIMER1_OVF_vect) // interrupt service routine
TCNT1 = timer1_counter; // preload timer
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
l.13
cacah++;
//Serial.println(cacah);
if (cacah == 4)
Isr = 1;
cacah = 0;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
unsigned int RFtransfer(unsigned int data)
unsigned char nH, nL;
unsigned int n;
digitalWrite(RFSS, LOW);
delay(1);
nH = SPI.transfer(data / 256);
nL = SPI.transfer(data % 256);
delay(1);
digitalWrite(RFSS, HIGH);
n = (nH * 256) + nL;
return n;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void RFTXinit(void)
RFtransfer(0x0000);
/*RFtransfer(0x80D8); //configuration setting command
RFtransfer(0x8278); //power management command
RFtransfer(0xA640); //frequency setting command
RFtransfer(0xC657); //data rate command
RFtransfer(0x94A0);
RFtransfer(0xC2AC);
RFtransfer(0xCA80);
RFtransfer(0xCA83);*/
RFtransfer(0x94A0);
RFtransfer(0xC49B);
RFtransfer(0x9850);
RFtransfer(0xE000);
RFtransfer(0xC80E);
RFtransfer(0xC000);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void RFRXinit(void)
RFtransfer(0x0000);
RFtransfer(0x80D8);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
l.14
RFtransfer(0x82D8);
RFtransfer(0xA640);
RFtransfer(0xC657);
RFtransfer(0x94A0);
RFtransfer(0xC2AC);
RFtransfer(0xCA80);
RFtransfer(0xCA83);
RFtransfer(0xC49B);
RFtransfer(0x9850);
RFtransfer(0xE000);
RFtransfer(0xC800);
RFtransfer(0xC000);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void RF12Open(void)
RFtransfer(0x80D8);
RFtransfer(0x8278);
RFtransfer(0xA640);
RFtransfer(0xC657);
RFtransfer(0xC2AC);
RFtransfer(0xCA80);
RFtransfer(0xCA83);
RFtransfer(0xB8AA);
RFtransfer(0xB8AA);
RFtransfer(0xB8AA);
RFtransfer(0x8238);
while (digitalRead(RFIRQ));
RFtransfer(0xB82D);
RFtransfer(0xB8D4);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void RF12SendByte(unsigned char data)
while (digitalRead(RFIRQ));
RFtransfer(0xB800 + data);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void RF12Close(void)
RFtransfer(0xB8AA);
RFtransfer(0x82D8);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
unsigned char RF12ReadByte(void)
unsigned char n;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
l.15
digitalWrite(RFSS, LOW);
delay(1);
SPI.transfer(0xB0);
n = SPI.transfer(0);
delay(1);
digitalWrite(RFSS, HIGH);
return n;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void error()
lcd.clear();
delay(400);
lcd.setCursor(2, 1);
lcd.print("Tidak ada respon");
lcd.setCursor(4, 2);
lcd.print("dari wahana!");
delay(2000);
lcd.clear();
delay(400);
lcd.setCursor(0, 1);
lcd.print("Silakan tekan * pada");
lcd.setCursor(0, 2);
lcd.print("keypad utk coba lagi");
for (long i = 0; i < 300000; i++)
tombol = kpd.getKey();
if (tombol != NO_KEY)
b = tombol;
if (b == 42)
loop();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void cekkom()
String cek = "??";
RFTXinit();
for (i = 0; i < 2; i++)
RF12Open();
RF12SendByte(cek[i]);
RF12Close();
RFtransfer(0x8008);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
l.16
Serial.println(cek);
limit = 0;
//a = 1;
RFRXinit();
while (terimaCek != "!!")
if (digitalRead(RFIRQ) == LOW)
y = RF12ReadByte();
RFtransfer(0xCA80);
RFtransfer(0xCA83);
terimaCek += y;
if (terimaCek.length() > 3)
terimaCek = "";
limit++;
if (limit == 40000)
for (int i = 0; i < 3; i++)
lcd.print(".");
delay(600);
Serial.println("Cek Komunikasi Gagal");
while (1)
error();
Serial.println(terimaCek);
Serial.println("GCS terhubung ke wahana");
for (int i = 0; i < 3; i++)
lcd.print(".");
delay(600);
lcd.clear();
delay(400);
lcd.setCursor(2, 1);
lcd.print("Wahana terhubung");
delay(1400);
lcd.setCursor(1, 2);
lcd.print("GCS siap digunakan");
delay(2000);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
l.17
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void batere()
limit = 0;
RFRXinit();
while (kondisiBatere != 'L' && limit < 2000)
if (digitalRead(RFIRQ) == LOW)
kondisiBatere = RF12ReadByte();
RFtransfer(0xCA80);
RFtransfer(0xCA83);
limit++;
RFTXinit();
if (kondisiBatere == 'L')
for (i = 0; i < 10; i++)
RF12Open();
RF12SendByte('G');
RF12Close();
RFtransfer(0x8008);
Serial.println('G');
failsafe();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void pengendalian()
Serial.println("Pilih Pengendalian");
Serial.println("Tekan 1 untuk manual atau tekan 2 untuk autonomous");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Pilih pengendalian:");
a = 1;
lcd.setCursor(0, 1);
lcd.print("1. Manual");
lcd.setCursor(0, 2);
lcd.print("2. Autonomous");
lcd.setCursor(3, 3);
while (a)
tombol = kpd.getKey();
if (tombol != NO_KEY)
b = tombol;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
l.18
Serial.println(b);
if (b == 49)
digitalWrite(perangkatNavigasiStatus, LOW);
kendali = "++";
kendali.trim();
a = 0;
else if (b == 50)
kendali = "--";
kendali.trim();
a = 0;
else
Serial.println("Masukkan salah, ingin coba lagi?");
lcd.print("masukkan salah");
delay(1000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Pilih pengendalian:");
lcd.setCursor(0, 1);
lcd.print("1. Manual");
lcd.setCursor(0, 2);
lcd.print("2. Autonomous");
lcd.setCursor(3, 3);
Serial.println(kendali);
RFTXinit();
for (int i = 0; i < 2; i++)
RF12Open();
RF12SendByte(kendali[i]);
RF12Close();
RFtransfer(0x8008);
//Serial.print(kendali[i]);
//Serial.println();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void bacaKoordinat()
a = 1;
limit = 0;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
l.19
RFRXinit();
while (koordinat[14] != '#' && a)
if (digitalRead(RFIRQ) == LOW)
x = RF12ReadByte();
RFtransfer(0xCA80);
RFtransfer(0xCA83);
koordinat = koordinat + x;
//Serial.print(koordinat);
limit++;
if (limit == 2000000)
lcd.print("wahana tdk merespon");
a = 0;
//kasih program keluar dari loop baca koordinat
//Serial.println(i);
Latt = "";
Long = "";
for (i = 0; i < 6; i++)
Latt += koordinat[i + 1];
Long += koordinat[i + 8];
Serial.println(koordinat);
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("Koordinat Wahana");
lcd.setCursor(0, 1);
lcd.print("Latt: -7.7");
lcd.print(Latt);
lcd.setCursor(0, 2);
lcd.print("Long: 110.4");
lcd.print(Long);
delay(1000);
delay(1000);
delay(1000);
delay(1000);
delay(1000);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void kirimKoordinat()
a = 1, b = 0;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
l.20
i = 0;
char longitude[6], lattitude[7], koordinat[15];
Serial.println("Masukan koordinat");
Serial.print("Lattitude: ");
lcd.clear();
lcd.setCursor(1, 1);
lcd.print("Masukkan koordinat");
lcd.setCursor(0, 2);
lcd.print("yang ingin anda tuju");
delay(3500);
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("Koordinat tujuan");
lcd.setCursor(0, 1);
lcd.print("Latt= -7.7");
while (a)
tombol = kpd.getKey();
if (tombol != NO_KEY)
b = tombol;
if (i == 5)
a = 0;
lattitude[i + 1] = '\0';
if (tombol != '*') //menghilangkan tanda * pd array longitude
lattitude[i] = tombol;
Serial.print(tombol);
lcd.print(tombol);
i++;
if (tombol == '#')
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("Koordinat tujuan");
lcd.setCursor(0, 1);
lcd.print("latt= -7.7");
i = 0;
i = 0;
Serial.println();
lcd.setCursor(0, 2);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
l.21
lcd.print("Long= 110.4");
a = 1; b = 0;
Serial.print("Longitude: ");
while (a)
char tombol = kpd.getKey();
if (tombol != NO_KEY)
b = tombol;
if (i == 5) //jika * maka input lattitude selesai
longitude[i] = tombol;
Serial.print(tombol);
lcd.print(tombol);
longitude[i + 1] = '\0';
lcd.setCursor(1, 3);
lcd.print("Tekan * utk lanjut");
while (1)
tombol = kpd.getKey();
if (tombol == '*')
a = 0;
break;
else if (tombol == '#')
kirimKoordinat();
if (tombol != '*') //menghilangkan tanda * pd array lattitude
longitude[i] = tombol;
Serial.print(tombol);
lcd.print(tombol);
i++;
if (tombol == '#')
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("Koordinat tujuan");
lcd.setCursor(0, 1);
lcd.print("Latt= -7.7"); lcd.setCursor(11, 1); lcd.print(lattitude);
lcd.setCursor(0, 2);
lcd.print("Long= 110.4");
i = 0;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
l.22
Serial.println();
for (i = 0; i <= 15; i++)
if (i == 0)
koordinat[i] = '*';
//Serial.println(koordinat[i]);
else if (i > 0 && i < 7)
koordinat[i] = lattitude[i - 1];
//Serial.println(koordinat[i]);
else if (i == 7)
koordinat[i] = ',';
//Serial.println(koordinat[i]);
else if (i > 7 && i < 14)
koordinat[i] = longitude[i - 8];
//Serial.println(koordinat[i]);
else if (i == 14)
koordinat[i] = '#';
//Serial.println(koordinat[i]);
else if (i == 15)
koordinat[i] = '\0';
//Serial.println(koordinat[i]);
RFTXinit();
for (i = 0; i < 15; i++)
x = koordinat[i];
RF12Open();
RF12SendByte(x);
RF12Close();
RFtransfer(0x8008);
Serial.println(koordinat);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void failsafe()
Serial.println("Daya Batere Wahana Minim");
tanda = 0;
while (1)
lcd.clear();
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
l.23
delay(600);
lcd.setCursor(1, 1);
lcd.print("Daya batere wahana");
lcd.setCursor(7, 2);
lcd.print("lemah!");
delay(1200);
tombol = kpd.getKey();
if (tombol == '0')
setup();
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void autonomous()
paketKoorAktual = "";
RFRXinit();
while (paketKoorAktual[14] != '#')
if (digitalRead(RFIRQ) == LOW)
x = RF12ReadByte();
RFtransfer(0xCA80);
RFtransfer(0xCA83);
Serial.print(x);
if (x == 'L')
RFTXinit();
for (i = 0; i < 10; i++)
RF12Open();
RF12SendByte('G');
RF12Close();
RFtransfer(0x8008);
Serial.println('G');
failsafe();
if (x == 'S')
Serial.println("Wahana sampai di koordinat tujuan");
while (1)
lcd.clear();
delay(400);
lcd.setCursor(2, 1);
lcd.print("Wahana sampai di");
lcd.setCursor(2, 2);
lcd.print("koordinat tujuan");
delay(2000);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
l.24
if (x == '*')
paketKoorAktual += x;
RFRXinit();
while (paketKoorAktual[14] != '#')
if (digitalRead(RFIRQ) == LOW)
x = RF12ReadByte();
RFtransfer(0xCA80);
RFtransfer(0xCA83);
paketKoorAktual += x;
Serial.print(x);
if (paketKoorAktual.length() == 16)
paketKoorAktual = "";
//Serial.println();
paketKoorAktual.trim();
koordinatWahana = "";
koordinatWahana = paketKoorAktual;
koordinatWahana.trim();
Long = "";
Latt = "";
for (int i = 0; i < 6; i++)
Latt += paketKoorAktual[i + 1];
Long += paketKoorAktual[i + 8];
Serial.println();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void loop()
lcd.clear();
delay(400);
lcd.setCursor(3, 1);
lcd.print("Cek komunikasi");
delay(1500);
lcd.setCursor(2, 2);
lcd.print("Menghubungkan");;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
l.25
delay(1000);
cekkom();
batere();
pengendalian();
lcd.clear();
a = 1;
limit = 0;
RFRXinit();
while ( terimaKendali != ".." & a)
if (digitalRead(RFIRQ) == LOW)
x = RF12ReadByte();
RFtransfer(0xCA80);
RFtransfer(0xCA83);
terimaKendali += x;
if (terimaKendali.length() > 2)
terimaKendali = "";
limit++;
if (limit == 1000000)
lcd.setCursor(1, 1);
lcd.print("wahana tidak merespon");
lcd.setCursor(1, 2);
lcd.print("kesalahan komunikasi");
delay(2500);
while (1)
error();
a = 1;
Serial.println(terimaKendali);
while (a)
//---------------------------------------------Autonomous-------------------------------------------//
if (terimaKendali == ".." && kendali == "--")
Serial.println("Autonomous");
lcd.setCursor(1, 1);
lcd.print("Kendali autonomous");
lcd.setCursor(3, 2);
lcd.print("telah terpilih");
delay(2000);
lcd.clear();
delay(400);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
l.26
lcd.setCursor(3, 1);
lcd.print("Menunggu data");
lcd.setCursor(2, 2);
lcd.print("koordinat wahana");
bacaKoordinat();
delay(1);
kirimKoordinat();
lcd.clear();
lcd.setCursor(3, 1);
lcd.print("Wahana bersiap");
lcd.setCursor(1, 2);
lcd.print("menuju koor tujuan");
delay(2500);
RFRXinit();
while (x != 'o')
if (digitalRead(RFIRQ) == LOW)
x = RF12ReadByte();
RFtransfer(0xCA80);
RFtransfer(0xCA83);
Serial.print(x);
if (x == 'a')
//Serial.println(x);
lcd.clear();
lcd.setCursor(3, 1);
lcd.print("Wahana berputar");
lcd.setCursor(6, 2);
lcd.print("ke kanan");
//delay(300);
if (x == 'i')
//Serial.println(x);
lcd.clear();
lcd.setCursor(3, 1);
lcd.print("Wahana berputar");
lcd.setCursor(6, 2);
lcd.print("ke kiri");
//delay(300);
Serial.println();
Serial.println("wahana menghadap utara");
lcd.clear();
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
l.27
lcd.setCursor(2, 1);
lcd.print("Wahana menghadap");
lcd.setCursor(7, 2);
lcd.print("utara");
delay(2000);
while (1)
autonomous();
if (Isr == 1)
Serial.print("paket data di terima: "); Serial.println(koordinatWahana);
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("Koordinat Wahana");
lcd.setCursor(0, 1);
lcd.print("Latt: -7.7"); lcd.print(Latt);
lcd.setCursor(0, 2);
lcd.print("Long: 110.4"); lcd.print(Long);
lcd.setCursor(0, 3);
lcd.print("Wahana ");
if (koordinatWahana[7] == '1')
lcd.print("ke kanan");
Serial.println("Wahana ke kanan");
else if (koordinatWahana[7] == '2')
lcd.print("ke kiri");
Serial.println("Wahana ke kiri");
else if (koordinatWahana[7] == '3')
lcd.print("mundur");
Serial.println("Wahana ke belakang");
else if (koordinatWahana[7] == '4')
lcd.print("ke depan");
Serial.println("Wahana ke depan");
Isr = 0;
RFRXinit();
for (i = 0; i < 50; i++)
if (digitalRead(RFIRQ) == LOW)
x = RF12ReadByte();
RFtransfer(0xCA80);
RFtransfer(0xCA83);
if (x == 'S')
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
l.28
Serial.println("Wahana sampai di koordinat tujuan");
while (1)
lcd.clear();
delay(400);
lcd.setCursor(2, 1);
lcd.print("Wahana sampai di");
lcd.setCursor(2, 2);
lcd.print("koordinat tujuan");
delay(2000);
if (x == 'L')
RFTXinit();
for (i = 0; i < 10; i++)
RF12Open();
RF12SendByte('G');
RF12Close();
RFtransfer(0x8008);
Serial.println('G');
failsafe();
//------------------------------------------------Manual----------------------------------------------//
if (terimaKendali == ".." && kendali == "++")
//Serial.println(terimaKendali);
lcd.setCursor(2, 1);
lcd.print("Gunakan joystick");
lcd.setCursor(2, 2);
lcd.print("untuk mengontrol");
while (1)
putar = 4;
for (int i = 0; i < 3; i++)
pinpot = analogRead(i);
if (i == 0 || i == 1)
pinpot = map (pinpot, 0, 1023, 511, 0);
else if (i == 2)
pinpot = map (pinpot, 0, 1023, 0, 511);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
l.29
String spinpot = String(pinpot);
joystick[i] = spinpot;
joystick[i].trim();
joystick[i].toCharArray(pd[i], joystick[i].length() + 1);
//Serial.println(joystick[0].length());
if (joystick[i].length() == 2) //memberikan nilai 0 jika nilai ADC tidak 3 digit
for (int j = 2; j >= 0; j--)
pd[i][j] = pd[i][j - 1];
pd[i][0] = '0';
if (joystick[i].length() == 1) //memberikan nilai 00 jika ADC tidak 3 digit
pd[i][2] = pd[i][0];
pd[i][1] = '0';
pd[i][0] = '0';
putarKananStatus = digitalRead(putarKanan);
putarKiriStatus = digitalRead(putarKiri);
if (putarKananStatus == HIGH && putarKiriStatus == LOW)
putar = 0;
else if (putarKiriStatus == HIGH && putarKananStatus == LOW)
putar = 8;
else if (putarKananStatus == HIGH && putarKiriStatus == HIGH)
putar = 4;
String putarString = String (putar);
putarString.toCharArray(putarChar, putarString.length() + 1);
putarChar[1] = '\0';
for (int i = 0; i <= 12; i++)
if (i == 0)
paketdata[i] = '*';
else if (i >= 1 && i <= 3)
paketdata[i] = pd[0][i - 1];
else if (i >= 4 && i <= 6)
paketdata[i] = pd[1][i - 4];
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
l.30
else if (i >= 7 && i <= 9)
paketdata[i] = pd[2][i - 7];
else if (i == 10)
paketdata[i] = putarChar[0];
else if (i == 11)
paketdata[i] = '#';
else if (i == 12)
paketdata[i] = '\0';
//Serial.println(paketdata);
RFTXinit();
for (int i = 0; i < 12; i++)
RF12Open();
RF12SendByte(paketdata[i]);
RF12Close();
RFtransfer(0x8008);
Serial.println(paketdata);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI