Table des matières:

CanSat - Guide du débutant : 6 étapes
CanSat - Guide du débutant : 6 étapes

Vidéo: CanSat - Guide du débutant : 6 étapes

Vidéo: CanSat - Guide du débutant : 6 étapes
Vidéo: configuration decodeur de programmation antennes paraboliques 2024, Juillet
Anonim
CanSat - Guide du débutant
CanSat - Guide du débutant
CanSat - Guide du débutant
CanSat - Guide du débutant
CanSat - Guide du débutant
CanSat - Guide du débutant

L'objectif principal de ces instructables est de partager le processus de développement d'un CanSat, étape par étape. Mais, avant de commencer, précisons ce qu'est un CanSat, et quelles sont ses principales fonctionnalités, en profitant également de l'occasion, nous allons présenter notre équipe. Ce projet a commencé comme un projet d'extension dans notre université, Universidade Tecnológica Federal do Paraná (UTFPR), campus Cornélio Procópio. Guidés par notre conseiller, nous avons élaboré un plan d'action avec l'intention d'entrer dans CanSats, ce qui impliquait d'étudier tous ses aspects et caractéristiques, afin de pouvoir comprendre son fonctionnement, ce qui aboutirait à la construction de un CanSat et l'élaboration de ce guide. Un CanSat est classé comme picosatellite, ce qui signifie que son poids est limité à 1 kg, mais normalement les CanSat pèsent environ 350 g, et sa structure est basée sur une canette de soda, un cylindre de 6, 1 cm de diamètre, 11, 65 cm de haut. Ce modèle a été présenté dans le but de simplifier le processus de développement d'un satellite, afin de permettre l'accès des universités à ces technologies, devenant populaire grâce aux compétitions qui ont adopté ce modèle. En général, les CanSats reposent sur 4 structures, à savoir le système d'alimentation, le système de détection, le système de télémétrie et le système principal. Examinons donc de plus près chaque système: - Système d'alimentation: ce système est chargé de fournir l'énergie électrique aux autres, en fonction de ses besoins. En d'autres termes, il est censé fournir aux systèmes la tension et le courant nécessaires, en respectant ses limites. De plus, il peut comporter des composants de protection, afin de garantir la sécurité et le bon comportement des autres systèmes. Il est généralement basé sur une batterie et un circuit régulateur de tension, mais de nombreuses autres fonctionnalités peuvent être ajoutées, telles que des techniques de gestion de l'alimentation et plusieurs types de protections. - Système de détection: ce système est composé de tous les capteurs et dispositifs chargés de collecter les données requises. il peut être connecté au système principal de plusieurs manières, protocoles série, protocoles parallèles entre autres, c'est pourquoi il est vraiment important de maîtriser toutes ces techniques, afin de pouvoir déterminer la plus pratique. En général, les protocoles série sont ceux qui sont souvent choisis, en raison de leur plus petit nombre de connexions et de leur polyvalence, les plus populaires sont de loin les protocoles SPI, I2C et UART. - Système de télémétrie: ce système est chargé d'établir la communication sans fil entre le CanSat et la station de contrôle au sol, qui comprend le protocole et le matériel de communication sans fil. - Système principal: ce système est responsable de l'interconnexion de tous les autres systèmes, de manière à contrôler et synchroniser également leur séquence de fonctionnement en tant qu'organisme.

Étape 1: Le système principal

Le système principal
Le système principal

Pour de nombreuses raisons, nous avons choisi un microcontrôleur basé sur ARM® Cortex®-M4F, c'est un microcontrôleur à faible consommation, qui offre une puissance de traitement beaucoup plus élevée, ainsi que plusieurs fonctionnalités qui ne sont pas couramment vues dans les microcontrôleurs RISK, telles que les fonctions DSP. Ces caractéristiques sont intéressantes car elles permettent d'augmenter la complexité des fonctionnalités des applications CanSat, sans qu'il soit nécessaire de changer le microcontrôleur (en respectant bien sûr ses limites aussi).

Tant que le projet avait plusieurs limitations financières, le microcontrôleur choisi était également censé être abordable, donc suivant les spécifications, nous avons fini par choisir le LaunchPad ARM® Cortex®-M4F Based MCU TM4C123G, c'est une rampe de lancement qui vient d'adapter notre projet. De plus, la documentation (fiches techniques et documentation des caractéristiques fournies par le fabricant) et l'IDE du MCU étaient des avantages qu'il fallait vraiment considérer, du moment qu'ils aidaient beaucoup le processus de développement.

Dans ce Cansat, nous avons décidé de rester simple et de simplement le développer en utilisant le launchpad, mais bien sûr dans les projets futurs, ce ne sera pas une option, étant donné que plusieurs fonctionnalités incluses dans le launchpad ne sont pas réellement nécessaires pour notre projet, de plus son format limitait beaucoup le projet de la structure de notre CanSat, tant que les dimensions d'un CanSat sont minimales.

Ainsi, après avoir choisi le bon « cerveau » pour ce système, l'étape suivante a été le développement de son logiciel, également pour rester simple, nous avons décidé d'utiliser simplement un programme séquentiel, qui effectue la séquence suivante à une fréquence de 1 Hz:

Lectures des capteurs > stockage des données > transmission des données

La partie capteurs va être expliquée plus tard dans le système de détection, ainsi que la transmission des données va être expliquée dans le système de télémétrie. Enfin, il s'agissait d'apprendre à programmer le microcontrôleur, dans notre cas nous devions apprendre les fonctions suivantes du MCU, des GPIO, du module I2C, du module UART et du module SPI.

Les GPIO, ou simplement les entrées et sorties à usage général, sont des ports qui peuvent être utilisés pour exécuter plusieurs fonctions, à condition qu'ils soient correctement configurés. Considérant que nous n'utilisons aucune bibliothèque C pour les GPIO, pas même pour les autres modules, nous étions censés configurer tous les registres nécessaires. Pour ces raisons, nous avons rédigé un guide de base contenant des exemples et des descriptions liés aux registres des modules que nous utilisons, qui sont disponibles ci-dessous.

Aussi, afin de simplifier et d'organiser le code, plusieurs bibliothèques ont été créées. Ainsi, les bibliothèques ont été créées aux fins suivantes:

- Protocole SPI

- Protocole I2C

- Protocole UART

- NRF24L01+ - transcepteur

Ces bibliothèques sont également disponibles ci-dessous, mais rappelez-vous que nous avons utilisé l'IDE Keil uvision 5, donc ces bibliothèques ne fonctionneront pas pour le compositeur de code. Enfin, après avoir créé toutes les bibliothèques et appris toutes les choses nécessaires, le code final a été assemblé et, comme vous pouvez l'imaginer, il est également disponible ci-dessous.

Étape 2: Le système de détection

Le système de détection
Le système de détection
Le système de détection
Le système de détection
Le système de détection
Le système de détection
Le système de détection
Le système de détection

Ce système est composé de tous les capteurs et dispositifs chargés de recueillir des informations sur les conditions de fonctionnement du CanSat. Dans notre cas, nous avons choisi les capteurs suivants:

- un accéléromètre numérique 3 axes - MPU6050

- un gyroscope numérique 3 axes - MPU6050

- un magnétomètre numérique 3 axes - HMC5883L

- un baromètre digital - BMP280

- et un GPS - Tyco A1035D

Les choix étaient principalement basés sur l'accessibilité, ce qui signifiait que tant que les caractéristiques mécaniques et électriques (protocole de communication, alimentation etc.) étaient compatibles avec notre projet, aucun autre paramètre n'était imposé aux choix, aussi parce que pour certains capteurs la disponibilité d'options était limité. Après avoir acquis les capteurs, il était temps de les mettre en œuvre.

Ainsi, le premier à être exploré était l'accéléromètre et gyroscope numérique à 3 axes, appelé MPU6050 (il peut être facilement trouvé n'importe où, tant qu'il est largement utilisé dans les projets ARDUINO), sa communication est basée sur le protocole I2C, un protocole dans lequel chaque esclave possède une adresse, permettant à plusieurs appareils d'être connectés en parallèle, étant donné que l'adresse est longue de 7 bits, environ 127 appareils peuvent être connectés sur le même bus série. Ce protocole de communication fonctionne sur deux bus, un bus de données et un bus d'horloge, donc pour échanger les informations, le maître doit envoyer 8 cycles d'horloge (d'ailleurs les informations doivent tenir dans un octet, tant que cette communication est basée sur la taille en octets) soit dans une opération de réception soit dans une opération de transmission. L'adresse du MPU6050 est 0b110100X, et le X est utilisé pour appeler (indique) une opération de lecture ou d'écriture (0 indique une opération d'écriture et 1 indique une opération de lecture), donc chaque fois que vous voulez lire le capteur, utilisez simplement son adresse comme 0xD1 et chaque fois que vous voulez écrire, utilisez simplement son adresse comme 0xD0.

Après avoir exploré le protocole I2C, le MPU6050 a en effet été étudié, c'est-à-dire que sa fiche technique a été lue, afin d'obtenir les informations nécessaires pour le faire fonctionner, pour ce capteur seuls trois registres ont été nécessaires à configurer, la gestion de l'alimentation 1 registre - adresse 0x6B (afin de garantir que le capteur n'est pas en mode veille), le registre de configuration du gyroscope - adresse 0x1B (afin de configurer la plage pleine échelle pour le gyroscope) et enfin le registre de configuration de l'accéléromètre - adresse 0x1C (en pour configurer la plage de pleine échelle pour l'accéléromètre). Il existe plusieurs autres registres qui peuvent être configurés, permettant l'optimisation des performances du capteur, mais pour ce projet ces configurations suffisent.

Ainsi, après avoir correctement configuré le capteur, vous êtes maintenant en mesure de le lire. L'information désirée a lieu entre le registre 0x3B et le registre 0x48, chaque valeur d'axe est composée de deux octets qui sont codifiés en complément à 2, ce qui signifie que les données lues doivent être converties pour avoir du sens (ces choses seront discuté plus tard).

Après avoir terminé avec le MPU6050, il était temps d'étudier le magnétomètre numérique à 3 axes, nommé HMC5883L (il peut également être facilement trouvé n'importe où, tant qu'il est largement utilisé dans les projets ARDUINO), et encore une fois son protocole de communication est le protocole série I2C. Son adresse est 0b0011110X et le X est utilisé pour appeler (indique) une opération de lecture ou d'écriture (0 indique une opération d'écriture et 1 indique une opération de lecture), donc chaque fois que vous voulez lire le capteur, utilisez simplement son adresse comme 0x3D et à chaque fois vous voulez écrire, utilisez simplement son adresse comme 0x3C.

Dans ce cas, afin d'initialiser le HMC5883L, trois registres devaient être configurés, le registre de configuration A - adresse 0x00 (afin de configurer le débit de sortie des données et le mode de mesure), le registre de configuration B - adresse 0x01 (afin de configurer le gain du capteur) et enfin et surtout le registre de mode - adresse 0x02 (afin de configurer le mode de fonctionnement de l'appareil).

Ainsi, après avoir correctement configuré le HMC5883L, il est maintenant possible de le lire. L'information désirée a lieu entre le registre 0x03 et le registre 0x08, chaque valeur d'axe est composée de deux octets qui sont codifiés en complément à 2, ce qui signifie que les données lues doivent être converties pour avoir du sens (ces choses seront discuté plus tard). En particulier, pour ce capteur, vous êtes censé lire toutes les informations à la fois, sinon cela pourrait ne pas fonctionner comme proposé, tant que les données de sortie ne sont écrites dans ces registres que lorsque tous les registres ont été écrits. alors assurez-vous de les lire tous.

Enfin, le baromètre numérique, autre capteur de protocole I2C, a été étudié, également appelé BMP280 (il peut aussi être facilement trouvé n'importe où, du moment qu'il est largement utilisé dans les projets ARDUINO). Son adresse est b01110110X également le X est utilisé pour appeler (indique) une opération de lecture ou d'écriture (0 indique une opération d'écriture et 1 indique une opération de lecture), donc chaque fois que vous voulez lire le capteur, utilisez simplement son adresse comme 0XEA et à chaque fois vous voulez écrire, utilisez simplement son adresse comme 0XEB. Mais dans le cas de ce capteur, l'adresse I2C peut être modifiée en changeant le niveau de tension sur la broche SDO, donc si vous appliquez GND à cette broche, l'adresse sera b01110110X et si vous appliquez VCC à cette broche, l'adresse va être b01110111X, également afin d'activer le module I2C dans ce capteur, vous devez appliquer un niveau VCC sur la broche CSB du capteur, sinon cela ne fonctionnera pas correctement.

Pour le BMP280, seuls deux registres étaient censés être configurés afin de le faire fonctionner, le registre ctrl_meas - adresse 0XF4 (afin de définir les options d'acquisition de données) et le registre de configuration - adresse 0XF5 (afin de définir le taux, le filtre et les options d'interface pour le capteur).

Après avoir terminé avec les trucs de configuration, il est temps pour ce qui compte vraiment, les données elles-mêmes, dans ce cas les informations souhaitées ont lieu entre les registres 0XF7 et 0XFC. La température et la valeur de pression sont toutes deux composées de trois octets qui sont codés en complément à 2, ce qui signifie que les données lues doivent être converties pour être significatives (ces choses seront discutées plus tard). Aussi pour ce capteur, afin d'obtenir une plus grande précision, il existe plusieurs coefficients de corrections qui peuvent être utilisés lors de la conversion des données, ils sont situés entre les registres 0X88 et 0XA1, oui il y a 26 octets de coefficients de corrections, donc si la précision est pas tellement important, oubliez-les, sinon il n'y a pas d'autre moyen.

Et enfin et surtout le GPS - Tyco A1035D, celui-ci s'appuie sur le protocole série UART, notamment au débit de 4800 kbps, pas de bits de parité, 8 bits de données et 1 bit d'arrêt. L'UART, ou Universal Asynchronous Receiver/Transmitter, est un protocole série dans lequel la synchronisation des informations se fait via un logiciel, c'est pourquoi il s'agit d'un protocole asynchrone, également à cause de cette caractéristique, la vitesse à laquelle les informations sont transmises et reçues est beaucoup plus petite. Spécifiquement pour ce protocole, les packages doivent commencer par un bit de début, mais le bit d'arrêt est facultatif et la taille des packages est de 8 bits.

Dans le cas du GPS - Tyco A1035D, deux configurations étaient nécessaires, à savoir le setDGPSport (commande 102) et le Query/RateControl (commande 103), toutes ces informations, ainsi que d'autres options sont disponibles dans le manuel de référence NMEA, le protocole utilisé dans la plupart des modules GPS. La commande 102 permet de régler le débit en bauds, la quantité de bits de données et l'existence ou non de bits de parité et de bits d'arrêt. La commande 103 est utilisée pour contrôler la sortie des messages NMEA standard GGA, GLL, GSA, GSV, RMC et VTG, ils sont décrits avec des détails dans le manuel de référence, mais dans notre cas celui choisi était le GGA qui signifie Global Données fixes du système de positionnement.

Une fois le GPS - TycoA1035D correctement configuré, il ne reste plus qu'à lire le port série et filtrer la chaîne reçue selon les paramètres choisis, afin de permettre le traitement de l'information.

Après avoir appris toutes les informations nécessaires sur tous les capteurs, il n'a fallu que quelques efforts supplémentaires pour tout rassembler dans le même programme, en utilisant également les bibliothèques de communication série.

Étape 3: Le système de télémétrie

Le système de télémétrie
Le système de télémétrie

Ce système est chargé d'établir la communication entre le contrôle au sol et le CanSat, outre les paramètres du projet, il a également été restreint de plusieurs manières, tant que la transmission RF n'est autorisée que dans certaines bandes de fréquences, qui ne sont pas occupées en raison de d'autres services RF, tels que les services mobiles. Ces restrictions sont différentes et peuvent changer d'un pays à l'autre, il est donc important de toujours vérifier les bandes de fréquences autorisées pour une utilisation courante.

Il existe de nombreuses options de radios disponibles sur le marché à des prix abordables, tous ces systèmes offrent différents modes de modulation à diverses fréquences, pour ce système notre choix s'est porté sur un émetteur-récepteur RF 2,4 GHz, le NRF24L01+, du fait qu'il avait déjà un protocole de communication bien établi, aussi longtemps que les systèmes de vérification tels que les systèmes d'accusé de réception automatique et de retransmission automatique. De plus, son taux de transmission pourrait atteindre des vitesses allant jusqu'à 2 Mbps avec une consommation d'énergie raisonnable.

Alors avant de travailler sur cet émetteur-récepteur, apprenons-en un peu plus sur le NRF24L01+. Comme mentionné précédemment, il s'agit d'une radio basée sur 2,4 GHz, qui peut être configurée en tant que récepteur ou émetteur. Afin d'établir la communication, chaque émetteur-récepteur possède une adresse, qui peut être configurée par l'utilisateur, l'adresse peut avoir une longueur de 24 à 40 bits selon vos besoins. Les transactions de données peuvent se produire de manière unique ou continue, la taille des données est limitée à 1 octet et chaque transaction peut générer ou non une condition d'acquittement selon les configurations de l'émetteur-récepteur.

D'autres configurations sont également possibles, telles que le gain vers la sortie du signal RF, l'existence ou non d'une routine de retransmission automatique (si c'est le cas le délai, le nombre d'essais parmi d'autres caractéristiques peuvent être choisis) et plusieurs autres des fonctionnalités qui ne sont pas forcément utiles pour ce projet, mais de toute façon elles sont disponibles dans la fiche technique du composant, en cas d'intérêt à leur sujet.

Le NRF24L01+ "parle" le langage SPI lorsqu'il s'agit de communication série, donc chaque fois que vous voulez lire ou écrire cet émetteur-récepteur, allez-y et utilisez le protocole SPI pour cela. Le SPI est un protocole série comme mentionné précédemment, dans lequel la sélection des esclaves se fait via une broche CHIPSELECT (CS), qui, avec la caractéristique full duplex (le maître et l'esclave peuvent transmettre et recevoir en parallèle) de ce protocole permet des vitesses de transaction de données beaucoup plus élevées.

La fiche technique du NRF24L01+ fournit un ensemble de commandes pour lire ou écrire ce composant, il existe différentes commandes pour accéder aux registres internes, aux charges utiles RX et TX entre autres opérations, donc selon l'opération souhaitée, il peut prendre une commande spécifique pour l'exécuter. C'est pourquoi il serait intéressant de jeter un oeil à la fiche technique, dans laquelle il y a une liste contenant et expliquant toutes les actions possibles sur l'émetteur-récepteur (nous n'allons pas les lister ici, car ce n'est pas le point principal de cette instructables).

Outre l'émetteur-récepteur, un autre composant important de ce système est le protocole par lequel toutes les données souhaitées sont envoyées et reçues, tant que le système est censé fonctionner avec plusieurs octets d'informations simultanément, il est important de connaître la signification de chaque octet, c'est à cela que fonctionne le protocole, il permet au système d'identifier de manière organisée toutes les données reçues et transmises.

Afin de garder les choses simples, le protocole utilisé (pour l'émetteur) consistait en un en-tête formé de 3 octets suivis des données du capteur, tant que toutes les données des capteurs se composaient de deux octets, chaque donnée du capteur a reçu un numéro d'identification commençant de 0x01 et suivant dans un ordre croissant, donc chaque deux octets il y a un octet d'identification, de cette façon la séquence d'en-tête ne pourrait pas être répétée par hasard en fonction des lectures du capteur. Le récepteur a fini par être aussi simple que l'émetteur, le protocole avait juste besoin de reconnaître l'en-tête envoyé par l'émetteur et ensuite de stocker les octets reçus, dans ce cas nous avons décidé d'utiliser un vecteur pour les stocker.

Ainsi, après avoir acquis toutes les connaissances requises sur l'émetteur-récepteur et déterminé le protocole de communication, il est temps de tout rassembler dans le même morceau de code et enfin de créer le micrologiciel CanSat.

Étape 4: Le système d'alimentation

Ce système est tenu de fournir aux autres systèmes l'énergie dont ils ont besoin pour fonctionner correctement, dans ce cas nous avons décidé d'utiliser simplement une batterie et un régulateur de tension. Ainsi, pour le dimensionnement de la batterie, certains paramètres de fonctionnement du CanSat ont été analysés, ces paramètres aideraient à la définition du modèle et de la puissance nécessaire pour alimenter l'ensemble du système.

Considérant que le CanSat devrait pouvoir durer plusieurs heures allumé, la chose la plus appropriée à faire était de considérer les situations de consommation d'énergie les plus extrêmes, dans lesquelles chaque module et système attaché au CanSat consommerait le courant le plus élevé possible. Cependant, il est également important d'être raisonnable à ce stade pour ne pas surdimensionner la batterie, ce qui n'est pas non plus intéressant en raison des limitations de poids du CanSat.

Après avoir consulté toutes les fiches techniques des composants de tous les systèmes, le courant total consommé par le système était d'environ 160mAh environ, compte tenu d'une autonomie de 10 heures, une batterie de 1600mAh suffisait pour garantir au système les bonnes conditions de fonctionnement.

Après avoir pris connaissance de la charge nécessaire de la batterie, il y a d'autres aspects à considérer malgré l'autonomie, tels que la taille, le poids, la température de fonctionnement (tant que le CanSat est maintenu à l'intérieur d'une fusée), les tensions et les forces à auquel il est soumis, entre autres.

Étape 5: La structure

La structure est vraiment importante pour la sécurité du CanSat, même si elle a été un peu négligée dans ce projet (en fait il n'y avait pas beaucoup d'intérêt pour le développement de la partie mécanique du CanSat, du fait que tous les cours des membres était lié à l'électronique). Tant que le projet était basé sur un modèle existant, le modèle CanSat, il n'était pas nécessaire de penser à quoi il allait ressembler, il devrait donc être façonné dans un format de cylindre, avec environ 6, 1 cm de diamètre et environ 11, 65 cm de haut (les mêmes mesures qu'une canette de soda).

Une fois la structure extérieure terminée, toute l'attention s'est portée sur le système de fixation, chargé de maintenir toutes les planches à l'intérieur de la structure cylindrique, permettant également d'absorber les accélérations auxquelles le CanSat serait soumis, après en avoir discuté., il a été décidé de fixer les deux structures par moulage de mousse haute densité, aux formes souhaitées.

La structure extérieure a été construite en utilisant des tuyaux en PVC, avec le diamètre souhaité, afin de fermer la structure des couvercles de tuyaux en PVC ont été utilisés

Étape 6: Conclusions et réflexions futures

Le CanSat doit encore être testé en action, nous postulons en fait à une compétition de fusées (qui aura lieu en décembre), également après avoir parcouru tout le bâtiment (en quelque sorte, nous devons encore terminer certaines choses) et le développement processus, quelques perspectives et notes que nous avons pensé qu'il serait intéressant de partager avec vous tous ont été observés, principalement sur les luttes, les astuces et même les bonnes expériences, alors voilà:

- Le début du projet est devenu la période de développement la plus prolifique de l'ensemble du projet, malheureusement le groupe s'est un peu désintéressé du projet avant sa date limite, peut-être à cause du manque de résultats immédiats, ou peut-être simplement d'un manque de communication, de toute façon plusieurs bonnes choses sont sorties du projet

- Il a fallu beaucoup d'efforts pour faire fonctionner l'émetteur-récepteur, car toutes les bibliothèques ont été développées à partir de zéro, également parce qu'il faut deux programmes et configurations différents pour tester ce genre de choses

- Dans notre cas, ce n'était pas la meilleure des idées de travailler sur des microcontrôleurs basés sur des configurations de registres, tous les membres n'étaient pas capables de suivre le reste du groupe, ce qui a conduit à certains problèmes tels que la division des tâches. Il existe des tonnes de bibliothèques C décentes pour le microcontrôleur que nous utilisions, donc cela aurait été une bien meilleure idée d'utiliser ces ressources, il existe également un IDE appelé Code Composer, qui offre également des tonnes de ressources pour ces microcontrôleurs

- Le CanSat a encore besoin de beaucoup d'améliorations, cette expérience était basée sur des techniques et des compétences de base, et plusieurs problèmes n'ont pas été pris en considération, donc à l'avenir, espérons qu'une version de premier ordre de ce CanSat pourrait devenir réalité avec plus d'efforts et de travail acharné.

Conseillé: