Comment puis-je manipuler les données sonar en temps réel de mon Arducopter dans Arduino?

8

J'ai un APM 3DR Quad avec un kit de radiotélémétrie 3DR. Je voudrais envoyer des données de sondeur en temps réel à mon ordinateur portable (exécutant Windows 7) afin de les manipuler dans un Arduino Sketch supplémentaire.

Le capteur sonar est connecté à un canal d'entrée analogique sur mon Arduino. Ces données sont traitées pour les calculs d'altitude, et je voudrais envoyer ces données d'altitude à une sorte de station au sol sur mon ordinateur à l'aide d'un kit de télémétrie (2 radios 3DR: 1 sur le quadricoptère et 1 sur mon ordinateur).

Je ne sais pas trop comment procéder. Existe-t-il un moyen de modifier le code source (GCS.h ou GCS_Mavlink.pde) conjointement avec la station au sol Mission Planner Mav 1.0 pour ce faire? Ou aurais-je besoin d'écrire un module python pour accomplir cela?

user1702
la source
Salut David, bienvenue dans la robotique . Nous sommes généralement gentils et serviables ici, j'ai donc supprimé la ligne "merci" de votre question - c'est entendu :). Une question que je me pose est de savoir si vous dites sonar quand vous parlez de "radiotélémétrie".
Ian
Non, j'ai un capteur sonar qui est connecté à un canal analogique sur mon Arduino. Ces données sont traitées pour les calculs d'altitude, et je voudrais envoyer cette altitude à une sorte de station au sol sur mon ordinateur à l'aide d'un kit de télémétrie (2 radios 3DR: 1 sur le quadcopter et 1 sur mon ordinateur)
user1702
Bonjour utilisateur 1702, les commentaires sont destinés à améliorer les questions et les réponses, il est donc préférable d'ajouter les informations demandées dans les commentaires en modifiant votre question, de cette façon les commentaires peuvent être rangés (supprimés) et ne distraireont plus les gens de la question.
Mark Booth
Voulez-vous traiter les données du sondeur sur votre ordinateur portable ou les envoyer via l'ordinateur portable à un autre Arduino?
John Wiseman
John, j'aimerais traiter les données sur mon ordinateur portable. J'ai essayé de faire fonctionner mavproxy, mais j'ai rencontré quelques problèmes. J'espère que je pourrai intégrer un module python pour vous aider.
user1702

Réponses:

2

La configuration du logiciel pour extraire de nouvelles données de capteur personnalisées via MAVLink semble être plus difficile qu'elle ne devrait l'être.

La première étape consiste à faire envoyer les données par le quadricoptère.

  • Tout d'abord, vous devez définir un nouveau type de message MAVLink à l'aide de XML dans mavlink / message_definitions. Vous pouvez simplement créer un nouvel entier inutilisé pour le message_id.
  • Deuxièmement, vous générez les fonctions de message pack / unpack à l'aide du générateur MAVLink.
  • Ensuite, vous devrez ajouter du code à ArduCopter / GCS_Mavlink.pde dans data_stream_send pour créer et envoyer votre message. Vous devez être un peu prudent ici, car la dynamique de vol commence à se dégrader si votre capteur lit arrêter la boucle principale pendant plus de quelques millisecondes, en particulier pour un petit quad ou voler à l'intérieur (c'est à cela que sert l'activité "gcs_out_of_time" ). J'ajouterais un nouveau capteur au déclencheur STREAM_EXTRA3.
  • Reconstruisez et téléchargez le nouveau firmware de vol.

L'autre moitié du projet est sur le PC, où vous devez modifier le logiciel de la station au sol pour lire vos paquets MAVLink hors du flux de télémétrie. Je n'ai aucune idée d'où vous commenceriez à faire cela à Mission Planner, qui semble être un logiciel vraiment sophistiqué. Mais heureusement, il transfère la télémétrie radio brute vers le "tlog" , donc vous pourriez être en mesure de créer un programme complètement séparé qui recherche votre nouveau paquet MAVLink à partir du tlog. (Vous ne voulez certainement pas un croquis Arduino pour cela, car un croquis fonctionne sur l'Arduino, pas sur le PC.)

Si cela vous semble intimidant, vous n'êtes pas seul! Pour notre quad intérieur, nous avons fini par construire notre propre protocole de communication radio et notre "station au sol", car nous ne pouvions pas utiliser le GPS ou les waypoints ou les autres fonctionnalités de MAVLink, et gérer la complexité de MAVLink ne valait pas la peine pour nous.

Orion Lawlor
la source