Thiết lập phần mềm để trích xuất dữ liệu cảm biến tùy chỉnh mới thông qua MAVLink dường như khó hơn so với yêu cầu.
Bước một là làm cho quad quad gửi dữ liệu.
- Trước tiên, bạn cần xác định loại thông báo MAVLink mới bằng cách sử dụng XML trong mavlink / message_def địnhs. Bạn chỉ có thể tạo một số nguyên mới không sử dụng cho message_id.
- Thứ hai, bạn tạo các gói tin / giải nén các hàm bằng cách sử dụng trình tạo MAVLink.
- Sau đó, bạn sẽ cần thêm mã vào ArduCopter / GCS_Mavlink.pde trong data_stream_send để tạo và gửi tin nhắn của bạn. Bạn cần phải cẩn thận một chút ở đây, vì động lực học của máy bay bắt đầu xuống cấp nếu cảm biến của bạn đọc dừng vòng lặp chính trong hơn một vài mili giây, đặc biệt là cho một hình tứ giác nhỏ hoặc bay trong nhà (đó là công việc "gcs thừng_of_time" nói về ). Tôi sẽ thêm một cảm biến mới vào trình kích hoạt STREAM_EXTRA3.
- Xây dựng lại và tải lên chương trình cơ sở chuyến bay mới.
Nửa còn lại của dự án là trên PC, nơi bạn cần sửa đổi phần mềm trạm mặt đất để đọc các gói MAVLink của bạn ra khỏi luồng từ xa. Tôi không biết bạn bắt đầu làm điều này với Mission Planner ở đâu, có vẻ như là một phần mềm thực sự tinh vi. Nhưng may mắn thay, nó chuyển từ xa vô tuyến thô sang "tlog" , do đó bạn có thể xây dựng một chương trình hoàn toàn riêng biệt tìm gói MAVLink mới của bạn từ tlog. (Bạn chắc chắn không muốn có Arduino Phác thảo cho việc này, vì Phác thảo chạy trên Arduino chứ không phải PC.)
Nếu điều này nghe có vẻ đáng sợ với bạn, bạn không đơn độc! Đối với bộ tứ trong nhà của chúng tôi, chúng tôi đã kết thúc việc xây dựng giao thức liên lạc vô tuyến và "trạm mặt đất" của riêng mình, vì chúng tôi không thể sử dụng GPS hoặc điểm tham chiếu hoặc các tính năng MAVLink khác và việc xử lý sự phức tạp của MAVLink không xứng đáng với chúng tôi.