Làm cách nào tôi có thể thao tác dữ liệu sonar thời gian thực từ Arducopter trong Arduino?


8

Tôi có APM 3DR Quad với bộ thiết bị đo từ xa radio 3DR. Tôi muốn gửi dữ liệu sonar thời gian thực tới máy tính xách tay của tôi (chạy Windows 7) để thao tác với Arduino Sketch bổ sung.

Cảm biến sóng siêu âm được kết nối với kênh Analog In trên Arduino của tôi. Dữ liệu đó được xử lý để tính toán độ cao và tôi muốn gửi dữ liệu độ cao này đến một số trạm mặt đất trên máy tính của mình thông qua việc sử dụng bộ đo từ xa (2 3DR Radios: 1 trên quad quad và 1 trên máy tính của tôi).

Tôi không chắc chắn làm thế nào để đi về nhiệm vụ này. Có cách nào để tôi có thể sửa đổi mã nguồn (GCS.h hoặc GCS_Mavlink.pde) kết hợp với trạm mặt đất Mission Planner Mav 1.0 để thực hiện việc này không? Hoặc tôi sẽ cần phải viết một mô-đun python để thực hiện điều này?


Xin chào David, chào mừng đến với robot . Chúng tôi thường rất tốt và hữu ích ở đây, vì vậy tôi đã cắt bỏ dòng "cảm ơn" từ câu hỏi của bạn - nó đã hiểu :). Một câu hỏi tôi có là liệu bạn có nói sonar khi bạn nói "từ xa radio" không.
Ian

Không, tôi có một cảm biến sóng siêu âm được kết nối với kênh Analog In trên Arduino của tôi. Dữ liệu đó được xử lý để tính toán độ cao và tôi muốn gửi độ cao này đến một số loại trạm mặt đất trên máy tính của mình thông qua việc sử dụng bộ công cụ đo từ xa (2 3DR Radios: 1 trên quad quad và 1 trên máy tính của tôi)
user1702

Xin chào user1702, các bình luận nhằm giúp làm cho câu hỏi và câu trả lời tốt hơn, vì vậy tốt hơn là thêm thông tin được yêu cầu trong các bình luận bằng cách chỉnh sửa câu hỏi của bạn, theo cách đó các bình luận có thể được dọn dẹp (xóa) và sẽ không còn làm mọi người mất tập trung vào câu hỏi.
Đánh dấu gian hàng

Bạn có muốn xử lý dữ liệu sonar trên máy tính xách tay của bạn, hoặc gửi nó qua máy tính xách tay đến một arduino khác?
John Wiseman

John, tôi muốn xử lý dữ liệu trên máy tính xách tay của tôi. Tôi đã cố gắng để mavproxy hoạt động, nhưng tôi đã gặp phải một vài vấn đề. Hy vọng, tôi có thể tích hợp một mô-đun python để giúp với điều này.
user1702

Câu trả lời:


2

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.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.