Table des matières:
- Étape 1: Liste des pièces
- Étape 2: Sous-système 1: Suivi de position
- Étape 3: configuration du serveur
- Étape 4: Sous-système 2: Journalisation de la télémétrie
- Étape 5: Intégration du système
- Étape 6: Enceinte
- Étape 7: Conclusion
Vidéo: Rocket Telemetry/Position Tracker : 7 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
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
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
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
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
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é:
Capteur de position de béquille de vélo de Magicbit [Magicblocks] : 8 étapes
Capteur de position de béquille de vélo de Magicbit [Magicblocks] : projet de bricolage simple pour fabriquer un capteur de position de béquille avec un Magicbit à l'aide de Magicblocks. Nous utilisons magicbit comme carte de développement dans ce projet basé sur ESP32. Par conséquent, n'importe quelle carte de développement ESP32 peut être utilisée dans ce projet
Volant personnalisé (pot comme capteur de position): 10 étapes
Volant personnalisé (pot en tant que capteur de position): avertissement: ne me blâmez pas de ne pas montrer étape par étape, c'est juste censé être une référence et je dis juste ce que j'ai fait et le résultat, il a quelques défauts fondamentaux comme bruit alors ne faites pas exactement comme je l'ai fait et attendez-vous à un résultat exceptionnel, et f
Horloge cube multifonction basée sur la position : 5 étapes (avec images)
Horloge cube multifonction basée sur la position : Il s'agit d'une horloge basée sur Arduino dotée d'un écran OLED qui fonctionne comme une horloge avec la date, comme une minuterie de sieste et comme une veilleuse. Les différentes "fonctions" sont contrôlés par un accéléromètre et sont sélectionnés en faisant tourner l'horloge cubique
Système de rétroaction de position servo avec Arduino : 4 étapes
Système de rétroaction de position servo avec Arduino : Hé leur, c'est mon premier instructable. MON projet vous permet de recevoir la position de votre servo sur votre moniteur série ou traceur série de votre IDE Arduino. Cela facilite la programmation des robots arduino qui utilisent des servomoteurs comme les robots humanoïdes bip
Capteur à ultrasons pour capturer les changements de position des objets : 3 étapes
Capteur à ultrasons pour capturer les changements de position des objets : il est important d'avoir vos objets de valeur en sécurité, ce serait boiteux si vous continuiez à garder votre château toute la journée. En utilisant la caméra Raspberry Pi, vous pouvez prendre des clichés au bon moment. Ce guide vous aidera à tourner une vidéo ou à prendre la photo