Cara Manual Membaca Raw Data di Protokol MAVLink v1 [Bagian 3, HABIS]

Bagian terakhir ini akan membahas terlebih dahulu beberapa jenis tipe data. Khususnya adalah tipe data integer. Mungkin diantara kalian sudah banyak yang tahu macam-macam tipe data integer. Agar lebih mengingat lagi, berikut adalah tabel yang menjabarkan secara detail tipe data integer berdasarkan cakupan dan besarnya nilai:

Secara sederhana kalian bisa menganggap uint8 atau pada pemrograman biasa ditulis sebagai uint8_t adalah data yang berukuran 8 bit atau sama dengan 1 byte. Untuk lebih mudahnya, pada tipe data integer yang lain, belaku kelipatannya. Misal uint16_t adalah 16 bit atau sama dengan 2 byte dan seterusnya.

Jika kita kembali perhatikan di artikel sebelumnya, pada penempatan masing-masing data dari byte ke-7 dan seterusnya sesuai dengan urutannya, maka semua data tersebut berukuran 4 byte. Lebih jelasnya kita lihat kembali perbandingan di bawah:

Lima data pertama payload yang berhasil diterjemahkan dari Hexa ternyata tersisa 2 data lagi namun tidak memenuhi kriteria daripada frame data GPS yang sudah diatur. Dan data yang dimaksud adalah diantaranya data Heading.

Pertanyaanya adalah apakah cara kita salah dalam menerjemahkan data Hexa kemarin? Jawabannya tentu tidak. Karena memang tidak sampai situ saja.

Integer 16 Bit

Coba diingat kembali pada artikel bagian kedua, kita menerjemahkan seluruh data yang ada dengan format dan tipe data 32 bit signed integer. Tentu saja itu tidak bisa dipakai untuk menerjemahkan data yang memiliki tipe integer 16 bit.

Hal yang perlu kita lakukan adalah mengubah konfigurasi panel kedua menjadi 16-bit signed integer. Tujuannya untuk menerjemahkan data dengan tipe 16 bit agar bisa dibaca isinya.

Lalu apakah bisa mengikuti langkah-langkah seperti artikel kedua? Tidak. Kalian perlu hilangkan atau kalian hapus seluruh data yang teridentifikasi sebagai integer 32 bit. Caranya adalah dengan mengikuti tabel aturan susunan payload yang kita bahas di artikel sebelumnya.

Jumlah data yang terindentifikasi sebagai integer 32 bit sejumlah 5 data. Maka 32 bit = 4 byte x 5 = 20 byte. Kalian menghapus 20 byte pertama payload atau 20 byte dari byte ke-7 dalam satu frame MAVLink. Sehingga tersisa data bertipe integer 16 bit. Karena jika tidak kalian hapus terlebih dahulu, data tidak dapat diproses dengan benar. Kalian tidak akan mendapatkan hasil informasi asli.

Sisa data yang tersedia setelah kalian hapus 20 byte pertama kalian copy-pastekan ke Cryptii. Jika cara kalian sudah benar maka output-nya seperti ini:

Dan pembagian datanya seperti ini:

Selesai! Kita sudah mendapatkan apa isi dari satu frame data dari protokol MAVLink v1. Dan kita juga sudah tahu bagaimana cara manual membaca data mentah atau Raw Data dari protokol MAVLink v1. Untuk frame data yang lain caranya sama. Tinggal kalian sesuaikan tipe datanya, maka kalian dapat membaca isi informasi dari satu frame. Membaca semua frame? Kami tidak menyarankan cara manual ini digunakan. Silahkan kalian gunakan library program yang banyak bertebaran di internet.

Pertanyaan dari artikel sebelumnya

Oh ya, di artikel sebelumnya terdapat pertanyaan kemana arah heading atau arah Drone bergerak? Karena kita sudah tahu isi di tiap-tiap byte dari satu frame data, maka mudah saja mengetahui kemana Drone atau GPS menghadap. Jawabannya adalah menghadap atau berjalan ke arah 27607 cdeg.

Cdeg adalah Centi Degree atau ada yang menyebutnya sebagai Celsius Degree adalah satuan derajat yang biasa ditemui untuk pengukuran suhu. Namun tak jarang orang memakainya untuk mengukur derajat kemiringan sebagai skala terkecil agar lebih teliti. Angka 27607 cdeg jika di konversi menjadi 276.070000005 deg. Atau kita asumsikan 276.07 derajat saja.

Kemanakah 276.07 derajat itu? Kita menggunakan acuan gambar kompas di bawah ini. Angka tersebut menunjukkan ke arah mendekati Barat Laut. Tapi memang lebih dominan ke barat.

Jika kita satukan data yang telah berhasil kita konversi, ringkasnya data tersebut menyampaikan informasi sebagai berikut:

Latitude        :    -6.2249829 

Longitude     :    106.6104437

Heading        :    276.07

Dan berikut hasil berdasarkan tampilan Google Street View

Demikian tiga artikel bersambung, mohon maaf apabila ada banyak salah kata, semoga bermanfaat. Jika ada yang belum dimengerti, ada pertanyaan, kalian bisa tuliskan di kolom komentar atau bisa lewat email maupun akun Telegram kami yang tertera di bagian bawah blog ini. Terima kasih.


Referensi:
https://discuss.ardupilot.org/t/how-many-centidegrees-to-a-degree/8072
https://convertdata.online/convert/angle/cdeg/to/deg
https://ilmucoding.com/tipe-data-golang/
https://kodingin.com/variable-dan-tipe-data-golang/
https://www.rapidtables.com/convert/number/hex-to-decimal.html
https://mavlink.io/en/guide/serialization.html
https://mavlink.io/en/messages/common.html
https://cryptii.com/

Posting Komentar

0 Komentar