Table des matières:

Rocket Telemetry/Position Tracker : 7 étapes
Rocket Telemetry/Position Tracker : 7 étapes

Vidéo: Rocket Telemetry/Position Tracker : 7 étapes

Vidéo: Rocket Telemetry/Position Tracker : 7 étapes
Vidéo: Schematic Design - Landing Model Rockets Ep. 4 2024, Juillet
Anonim
Télémétrie de fusée/Traqueur de position
Télémétrie de fusée/Traqueur de position

Ce projet est destiné à enregistrer les données de vol d'un module de capteur 9 DOF sur une carte SD et à transmettre simultanément sa position GPS via des réseaux cellulaires à un serveur. Ce système permet de retrouver la fusée si la zone d'atterrissage du système est au-delà de la LOS.

Étape 1: Liste des pièces

Liste des pièces
Liste des pièces
Liste des pièces
Liste des pièces

Système de télémétrie:

1x microcontrôleur ATmega328 (Arduino UNO, Nano)

1x Micro SD Breakout -

1x Carte Micro SD - (la taille n'a pas d'importance au format FAT 16/32) - Amazon Link

1x Gy-86 IMU - Lien Amazon

Suivi des positions:

1x microcontrôleur ATmega328 (Arduino UNO, Nano) (chaque système a besoin de son propre micro)

1x Module GSM GPRS Sim800L - Lien Amazon

1x carte SIM (doit avoir un plan de données) - https://ting.com/ (ting ne facture que ce que vous utilisez)

1x module GPS NEO 6M - Amazon Link

Pièces générales:

1x batterie lipo 3.7v

1x convertisseur élévateur 3.7-5v (si vous ne construisez pas le pcb)

1x Raspberry pi, ou tout ordinateur pouvant héberger un serveur php

-Accès à l'imprimante 3D

-BOM pour pcb est répertorié dans la feuille de calcul

-Les gerbers sont au dépôt github -

Étape 2: Sous-système 1: Suivi de position

Essai:

Une fois que vous avez les pièces du système (NEO-6M GPS, Sim800L) en main, vous devez tester la fonctionnalité des systèmes de manière indépendante afin que vous n'ayez pas mal à la tête à essayer de comprendre ce qui ne fonctionne pas lorsque vous intégrez les systèmes.

Test GPS:

Pour tester le récepteur GPS, vous pouvez soit utiliser le logiciel fourni par Ublox (U-Center Software)

ou le sketch de test lié dans le repo github (GPS Test)

1. Pour tester avec le logiciel U-center, branchez simplement le récepteur GPS via USB et sélectionnez le port com dans U-center, le système devrait automatiquement commencer à suivre votre position après cela.

2. Pour tester avec un microcontrôleur, téléchargez le croquis de test GPS sur un arduino via l'IDE. Ensuite, connectez 5V et GND aux broches étiquetées du récepteur à l'arduino et la broche GPS RX au numérique 3 et la broche TX au numérique 4 sur l'arduino. Enfin, ouvrez le moniteur série sur l'IDE arduino et réglez le débit en bauds sur 9600 et vérifiez que les coordonnées reçues sont correctes.

Remarque: Un identificateur visuel du verrouillage satellite sur le module NEO-6M est que l'indicateur LED rouge clignotera toutes les quelques secondes pour indiquer une connexion.

Test SIM800L:

Pour tester le module cellulaire, vous aurez besoin d'une carte SIM enregistrée avec un plan de données actif, je recommande Ting car ils ne facturent que ce que vous utilisez au lieu d'un plan de données mensuel.

L'objectif du module Sim est d'envoyer une requête HTTP GET au serveur avec l'emplacement qui est reçu par le récepteur GPS.

1. Pour tester le module cellulaire, insérez la carte SIM dans le module avec l'extrémité chanfreinée vers l'extérieur

2. Connectez le module sim à GND et à une source 3.7-4.2v, n'utilisez pas 5v!!!! le module n'est pas capable de fonctionner à 5v. Connectez le module Sim RX à Analog 2 et TX à Analog 3 sur l'Arduino

3. Téléchargez le sketch de pass-through série depuis le github pour pouvoir envoyer des commandes au module cellulaire.

4. suivez ce tutoriel ou téléchargez la version d'essai d'AT Command Tester pour tester la fonctionnalité HTTP GET

Mise en œuvre:

Une fois que vous avez vérifié que les deux systèmes fonctionnent indépendamment, vous pouvez passer au téléchargement de l'esquisse complète sur le github du microcontrôleur. vous pouvez ouvrir le moniteur série à 9600 bauds pour vérifier que le système envoie des données au serveur Web.

* n'oubliez pas de remplacer l'adresse IP et le port du serveur par les vôtres et assurez-vous de trouver l'APN du fournisseur de téléphonie mobile que vous utilisez.

Passer à l'étape suivante où nous avons configuré le serveur

Étape 3: configuration du serveur

Configuration du serveur
Configuration du serveur

Pour configurer un serveur pour afficher l'emplacement de la fusée, j'ai utilisé un raspberry pi comme hôte, mais vous pouvez utiliser n'importe quel ordinateur.

Suivez ce tutoriel sur la configuration de lightphp sur un RPI, puis copiez les fichiers php du github dans le dossier /var/www/html de votre RPI. Après avoir juste utilisé la commande

service sudo lighttpd forcer le rechargement

pour recharger le serveur.

Assurez-vous de rediriger les ports associés au serveur sur votre routeur afin de pouvoir accéder aux données à distance. Sur le rpi, il doit s'agir du port 80 et le port externe peut être un nombre arbitraire.

C'est une bonne idée de définir une adresse IP statique pour le RPI afin que les ports que vous redirigez pointent toujours vers l'adresse du RPI.

Étape 4: Sous-système 2: Journalisation de la télémétrie

Le programme de télémétrie s'exécute sur un microcontrôleur distinct du système de suivi de position. Cette décision a été prise en raison de limitations de mémoire sur l'ATmega328 empêchant les deux programmes de fonctionner sur un seul système. Un autre choix de microcontrôleur avec des spécifications améliorées pourrait résoudre ce problème et permettre l'utilisation d'un processeur central, mais je voulais utiliser les pièces que j'avais sous la main pour une facilité d'utilisation.

Caractéristiques: Ce programme est basé sur un autre exemple que j'ai trouvé en ligne ici.

  • Le programme lit nativement l'altitude relative (lecture d'altitude mise à zéro au démarrage), la température, la pression, l'accélération dans la direction X (vous devrez changer la direction de l'accélération lue en fonction de l'orientation physique du capteur), et un horodatage (en millis).
  • Pour éviter que les données ne soient enregistrées lorsqu'il est assis sur la rampe de lancement et gaspiller de l'espace de stockage, le système ne commencera à écrire des données qu'une fois qu'il aura détecté un changement d'altitude (configurable dans le programme) et arrêtera d'écrire des données une fois qu'il aura détecté que la fusée est revenue à son état d'origine. altitude, ou après un temps de vol de 5 min.
  • Le système indiquera qu'il est sous tension et qu'il écrit des données via un seul indicateur LED.

Essai:

Pour tester le système, connectez d'abord la carte SD

Carte SD Arduino

Broche 4 ---------------- CS

Broche 11 -------------- DI

Broche 13 -------------- SCK

Broche 12 -------------- FAIRE

Connectez maintenant le GY-86 au système via I^2C

Arduino GY-86

Broche A4 -------------- SDA

Broche A5 -------------- SCL

Broche 2 ---------------- INTA

Sur la carte SD, créez un fichier dans le répertoire principal nommé datalog.txt, c'est là que le système écrira les données.

Avant de télécharger l'esquisse Data_Logger.ino sur le microcontrôleur, modifiez la valeur de ALT_THRESHOLD sur 0 afin que le système ignore l'altitude pour les tests. Après le téléchargement, ouvrez le moniteur série à 9600 bauds pour afficher la sortie du système. Assurez-vous que le système est capable de se connecter au capteur et que les données sont écrites sur la carte SD. Débranchez le système et insérez la carte SD dans votre ordinateur pour vérifier que les données ont été écrites sur la carte.

Étape 5: Intégration du système

Systeme d'intégration
Systeme d'intégration
Systeme d'intégration
Systeme d'intégration

Après avoir vérifié que chaque partie du système fonctionne dans la même configuration que celle utilisée sur le PCB principal, il est temps de tout rassembler et de se préparer pour le lancement ! J'ai inclus les fichiers Gerbers et EAGLE pour le PCB et le schéma dans le github. vous devrez télécharger les gerbers vers un fabricant tel que OSH park ou JLC pour les faire produire. Ces planches sont composées de deux couches et sont suffisamment petites pour s'adapter à la plupart des fabricants de la catégorie 10 cm x 10 cm pour les planches bon marché.

Une fois que vous avez récupéré les cartes de la fabrication, il est temps de souder tous les composants trouvés dans la feuille de calcul et la liste des pièces sur la carte.

La programmation:

Une fois que tout est soudé, vous devrez télécharger les programmes sur les deux microcontrôleurs. Pour économiser de l'espace sur la carte, je n'ai inclus aucune fonctionnalité USB, mais j'ai laissé les ports ICSP et série séparés afin que vous puissiez toujours télécharger et surveiller le programme.

  • Pour télécharger le programme, suivez ce tutoriel sur l'utilisation d'une carte Arduino en tant que programmeur. Téléchargez SimGpsTransmitter.ino sur le port ICSP_GPS et Data_Logger.ino sur le port ICSP_DL (le port ICSP sur le PCB est de la même disposition que ce que l'on trouve sur les cartes Arduino UNO standard).
  • Une fois tous les programmes téléchargés, vous pouvez alimenter l'appareil à partir de l'entrée de la batterie avec 3,7 à 4,2 V et utiliser les 4 voyants pour vérifier que le système fonctionne.

    • Les deux premiers voyants 5V_Ok et VBATT_OK indiquent que la batterie et les rails 5v sont alimentés.
    • Le troisième voyant DL_OK clignotera toutes les 1 seconde pour indiquer que l'enregistrement de télémétrie est actif.
    • Le dernier voyant SIM_Transmit s'allumera une fois que les modules cellulaires et GPS seront connectés et que les données seront envoyées au serveur.

Étape 6: Enceinte

Enceinte
Enceinte

La fusée autour de laquelle je conçois ce projet a un diamètre interne de 29 mm, afin de protéger l'électronique et permettre à l'assemblage de s'adapter à l'intérieur du corps cylindrique de la fusée, j'ai fait un simple boîtier imprimé en 3D en deux parties qui est boulonné ensemble et a ports de visualisation pour les voyants. Les fichiers STL pour l'impression et les fichiers.ipt originaux se trouvent dans le référentiel github. Je n'ai pas modélisé cela car je n'étais pas sûr de la batterie que j'utiliserais à l'époque, mais j'ai créé manuellement un évidement pour qu'une batterie de 120 mAh affleure le fond du boîtier. On estime que cette batterie offre une autonomie maximale d'environ 45 minutes pour le système à une consommation d'énergie d'environ 200 mA (cela dépend de l'utilisation du processeur et de la consommation d'énergie pour la transmission de données, le SIM800L est censé consommer plus de 2 A en rafales pendant la communication).

Étape 7: Conclusion

Ce projet était une implémentation assez simple de deux systèmes distincts, étant donné que je n'utilisais que des modules discrets trouvés sur Amazon, l'intégration globale du système est un peu terne car la taille globale du projet est assez grande pour ce qu'il fait. En regardant les offres de certains fabricants, l'utilisation d'un SIP qui inclut à la fois le cellulaire et le GPS réduirait considérablement la taille globale du package.

Je suis certain qu'après plus de tests en vol, je devrai apporter quelques modifications au programme et je serai sûr de mettre à jour le référentiel Github avec tout changement.

J'espère que vous avez apprécié ce projet, n'hésitez pas à me contacter pour toute question que vous pourriez avoir.

Conseillé: