Menyiapkan perangkat lunak untuk mengekstrak data sensor khusus baru melalui MAVLink tampaknya lebih sulit dari yang seharusnya.
Langkah pertama adalah membuat quadcopter mengirimkan data.
- Pertama, Anda perlu mendefinisikan jenis pesan MAVLink baru menggunakan XML di mavlink / message_definitions. Anda bisa membuat integer baru yang tidak digunakan untuk message_id.
- Kedua, Anda menghasilkan fungsi paket / pembongkaran pesan menggunakan generator MAVLink.
- Maka Anda perlu menambahkan kode ke ArduCopter / GCS_Mavlink.pde di data_stream_send untuk membuat dan mengirim pesan Anda. Anda perlu sedikit berhati-hati di sini, karena dinamika penerbangan mulai menurun jika sensor Anda membaca hentikan loop utama selama lebih dari beberapa milidetik, terutama untuk quad kecil atau dalam ruangan terbang (itulah yang dimaksud dengan bisnis "gcs_out_of_time" ). Saya akan menambahkan sensor baru ke pemicu STREAM_EXTRA3.
- Buat kembali dan unggah firmware penerbangan baru.
Separuh proyek lainnya ada di PC, di mana Anda perlu memodifikasi perangkat lunak stasiun bumi untuk membaca paket MAVLink Anda dari aliran telemetri. Saya tidak tahu di mana Anda akan mulai melakukan hal ini kepada Mission Planner, yang sepertinya merupakan perangkat lunak yang sangat canggih. Tapi untungnya itu membuang telemetri radio mentah ke "tlog" , jadi Anda mungkin dapat membangun program yang sepenuhnya terpisah yang mencari paket MAVLink baru Anda dari tlog. (Anda tentu tidak ingin Sketsa Arduino untuk ini, karena Sketsa berjalan pada Arduino, bukan PC.)
Jika ini terdengar menakutkan bagi Anda, Anda tidak sendirian! Untuk quad indoor kami, kami akhirnya membangun protokol komunikasi radio dan "stasiun darat" kami sendiri, karena kami tidak dapat menggunakan GPS atau titik arah atau fitur MAVLink lainnya, dan berurusan dengan kompleksitas MAVLink tidak sebanding dengan kami.