Difference between revisions of "Projets:Perso:2013:AlphaRocket/Charge utile"

From Electrolab
Jump to: navigation, search
(Télémétrie)
(Couplage GPS et accéléromètre)
 
(40 intermediate revisions by 3 users not shown)
Line 1: Line 1:
La charge utile est composée de deux éléments : le système de télémètrie, et le système de contrôle du roulis.
+
La charge utile est composée de quatre éléments : le système de trajectométrie, le système de communication temps réel, le système de contrôle du roulis et le système de prise de vue.
  
== Télémétrie ==
+
== Trajectométrie ==
* Altimètre : capteur de pression [http://e.banana-pi.fr/capteurs/47-capteur-barometrique-pression-temperature-altitude-bmp180.html Bosch BMP180], acquis et testé avec succès avec Arduino Uno le 29/8/2015 ([https://github.com/sparkfun/BMP180_Breakout librairie sur Github])
+
=== Résumé ===
* GPS : [http://e.banana-pi.fr/fr/sans-fils-/64-module-gps-type-gy-neo6mv2.html Module GPS , type GY-NEO6MV2]
+
Le système de trajectométrie permet d'établir la position de la fusée durant la phase de vol.
* centrale inertielle : [http://www.drotek.fr/shop/fr/home/466-imu-10dof-mpu9250-ms5611.html IMU 10DOF - MPU9250 + MS5611]
+
Les données sont transmises au contrôle de roulis et à la télémétrie pour permettre le suivit de vol au sol.
 +
La trajectométrie doit donc d'être calculé dans le référentiel de navigation.
 +
 
 +
La position de la fusée est établi à partir des données issues des capteurs suivants:
 +
- GPS [http://e.banana-pi.fr/fr/sans-fils-/64-module-gps-type-gy-neo6mv2.html GY-NEO6MV2]
 +
- altimètre [http://e.banana-pi.fr/fr/sans-fils-/64-module-gps-type-gy-neo6mv2.html GY-NEO6MV2]
 +
- accéléromètre [https://drotek.com/shop/fr/drotek-parts/466-imu-10dof-mpu9250-ms5611.html IMU 10DOF]
 +
- gyroscope [https://drotek.com/shop/fr/drotek-parts/466-imu-10dof-mpu9250-ms5611.html IMU 10DOF]
 +
- magnétomètre [https://drotek.com/shop/fr/drotek-parts/466-imu-10dof-mpu9250-ms5611.html IMU 10DOF]
 +
 
 +
[[File:Trajecto.svg|700px]]
 +
=== Position angulaire ===
 +
Le programme embarqué (arduino Mega) réalise une initialisation du magnétomètre, de accéléromètre et du gyroscope.
 +
Chacun de ces éléments possèdent 3 degrés de libertés qui sont couplés via un l'algorithme de Madgwick et donne une orientation sous forme de Quaternion.
 +
Le calcul des angles est fait au sein de l’Arduino méga. Il s'agit d'une conversion de quaternion vers des angles de Tait-Bryan.
 +
On a une orientation de la fusée dans le révérenciel de navigation aéro (nord,est,bas).
 +
[[File:example.jpg|thumb|300px]]
 +
 
 +
=== Coordonnées géographiques ===
 +
==== Changement de référentiel ====
 +
Afin d'obtenir une position géographique de la fusée à la fois, précise et fréquente, il est nécessaire d'utiliser les données issue de l’accéléromètre.
 +
Par double intégration de l'accélération de l’objet sur les 3 axes du référentielle terrestre on peut obtenir sa position relative.
 +
<math>
 +
x = \int(\int a_x.dx).dx = \int v_x.dx
 +
</math>
 +
 
 +
Le petit problème c'est que les accélérations de la fusée sont calculés dans le référentiel de la fusée (du capteur).
 +
Donc, si elle est inclinée, un mouvement ne va pas nous sortir des accélérations sur les axes x, y et z du référentiel terrestre mais sur X Y Z du référentiel local...
 +
 
 +
[[File:doubleRef.svg|250px]]
 +
 
 +
Ce qui nous intéresse, c'est le mouvement de la fusée dans le référentiel terrestre.
 +
On va devoir convertir les données issu de l’accéléromètre dans le référentiel terrestre ([[https://en.wikipedia.org/wiki/Axes_conventions AHRS]] plus exactement).
 +
 
 +
Pour ça, on applique une rotation du vecteur d'accélération <math>
 +
A = \begin{bmatrix} a_x \\ a_y \\ a_z \end{bmatrix}
 +
</math>.
 +
La construction de la matrice de rotation est faite à partir des angles Tait-Bryan en suivant l'ordre de rotation.
 +
Dans notre cas rotation sur Z(yaw) puis sur Y (pitch) et enfin sur X (roll).
 +
[[https://en.wikipedia.org/wiki/Euler_angles#Rotation_matrix Matrice de rotation]]
 +
 
 +
On a plus qu'a faire le produit de la matrice de rotation et du vecteur d'accélération(colonne).
 +
 
 +
<math>
 +
A' = R * A =
 +
Z_1 Y_2 X_3 * A = \begin{bmatrix}
 +
c_1 c_2 & c_1 s_2 s_3 - c_3 s_1 & s_1 s_3 + c_1 c_3 s_2 \\
 +
c_2 s_1 & c_1 c_3 + s_1 s_2 s_3 & c_3 s_1 s_2 - c_1 s_3 \\
 +
- s_2 & c_2 s_3 & c_2 c_3
 +
\end{bmatrix}.\begin{bmatrix} a_x \\ a_y \\ a_z \end{bmatrix}
 +
</math>
 +
 
 +
 
 +
* 1, 2, 3 represent the angles α, β and γ, i.e. the angles corresponding to the first, second and third elemental rotations respectively.
 +
* X, Y, Z are the matrices representing the elemental rotations about the axes x, y, z of the fixed frame (e.g., X1 represents a rotation about x by an angle α).
 +
* s and c represent sine and cosine (e.g., s1 represents the sine of α).
 +
 
 +
On peut enfin retirer la gravité terrestre de l'accélération maintenant que le vecteur <math> \vec a_z' </math> est toujours pointé vers le centre de la terre.
 +
<math> A_{ahrs} = \begin{bmatrix} a_{ahrs} \\ a_{ahrs}\\ a_{ahrs}\end{bmatrix}  = \begin{bmatrix} a_x' \\ a_y' \\ a_z'-1 \end{bmatrix}</math>
 +
 
 +
<br>Résultat: J'ai appliqué le calcul sur une série de mesure de l'accélération. Je fait pivoter l'accélérométre sur les trois axes.
 +
<br>[[File:rotation_x.svg|350px]] [[File:rotation_y.svg|350px]] [[File:rotation_z.svg|350px]]
 +
<br>En rouge l'accélération d'origine. En vert l'accélération dans le référentiel terrestre (gravité déduite). En bleu, après passage dans un filtre passe haut très simple utilisant les coefficients suivant:
 +
[-0.328581437337850946 , 0.657162874675701891 , -0.328581437337850946]
 +
<br>On peut voir que seul les transitions de position angulaire sont gardées. La gravité ne vient pas parasiter les accélérations quelque soit la position angulaire du capteur.
 +
 
 +
==== Couplage GPS et accéléromètre ====
 +
[http://wiki.ros.org/robot_localization Bibliothèque calcul positionnement]
 +
[[File:Ros_diagram.png|500px]]]
 +
 
 +
=== Centrale inertielle + altimètre ===
 +
[http://www.drotek.fr/shop/fr/home/466-imu-10dof-mpu9250-ms5611.html IMU 10DOF - MPU9250 + MS5611]
 +
Sketch Arduino de base utilisé : [https://github.com/mike-one/MPUArduino mpuarduino.ino]
 +
 
 +
 
 +
* '''Gamme de mesure pour l'altimètre IMU 10DOF''' : précision à +/- 1m d'après expérimentation, altitude initiale à 0, mesure de l'altitude relative
 +
* '''Gamme de mesure accéléromètre''' : accélération maximum autour de 100m/s² ~ 10G, donc règlage sur '''+/- 16G''' (cran en-dessous à +/- 8G, probablement pas suffisant)
 +
* '''Gamme de mesure gyroscope''' : règlages possibles ±250, ±500, ±1000, et ±2000°/sec. D'après ce qu'on peut voir dans les vidéos d'autres fusées expérimentales, la vitesse de rotation est rarement supérieure à 1 tour par seconde (360°/s), donc on peut se caler raisonnablement sur '''±500'''
 +
* '''Gamme de mesure magnétomètre''' : règlage par défaut unique ±4800µT.
 +
 
 +
'''Fréquence d'échantillonage''' : 1 mesure toutes les 100ms, soit pour un vol d'environ 150s 1500 mesures.
 +
 
 +
=== Micro-contrôleur ===
 +
Arduino Mega 2560
 +
 
 +
Avantages d'Arduino :
 +
* très documenté (dont librairies disponibles pour une très large gamme de capteurs)
 +
* simple à apprendre
 +
* capacité (mémoire / stockage) de la version Mega largement suffisante pour gérer les capteurs ci-dessus
 +
 
 +
=== Archive ===
 +
Initialement nous avons prévu un capteur de pression [http://e.banana-pi.fr/capteurs/47-capteur-barometrique-pression-temperature-altitude-bmp180.html Bosch BMP180], acquis et testé avec succès avec Arduino Uno le 29/8/2015 ([https://github.com/sparkfun/BMP180_Breakout librairie sur Github]) - mais en réalité redondant avec le capteur de pression présent sur la centrale inertielle.
 +
 
 +
== Télémétrie : transmission des données en vol ==
 +
 
 +
Comparatif des solutions considérées :
 +
 
 +
[[File:Solutions-telemetrie.png|center|1000px]]
 +
 
 +
Nous étions initialement partis sur des modules Xbee en 868MHz, mais l'un des deux modules achetés s'est révélé défectueux. Puis quand est venu le moment de le remplacer, les Xbee Pro en 868MHz arrivaient en fin de vie.
 +
 
 +
Pourquoi 868MHz :
 +
* fait partie des fréquences autorisées par l'ANFR, puissance max de 25mW, ce qui est supérieur aux 10mW du 433MHz, autre fréquence autorisée pour la télémétrie
 +
* approvisionnement facile et relativement accessible de modules E/R sur cette fréquence
  
 
== Contrôle du roulis ==
 
== Contrôle du roulis ==
 +
Le contrôleur de roulis est une partie de l’expérimentation à intégrer à la fusée. Il permet d'asservir le roulis (rotation de la fusée autour de son axe longitudinal) induit par les défauts de son aérodynamisme et les perturbations extérieures. Sous-projet piloté par Mohcine.
 +
 +
Système modifié après refus de Planète Sciences de valider le système initial.
 +
 +
'''Mise à jour du 19 avril 2016 :'''
 +
Le système repose désormais sur deux ailettes diamétralement opposées,
 +
actionnées par un unique servo-moteurs.
 +
 +
 +
Un circuit non programmable impose aux ailettes de se maintenir au neutre pendant la phase de propulsion,
 +
puis autorise le circuit programmable a actionner les ailettes pour contrôler le roulis pendant un instant T limité
 +
puis enfin réimpose le neutre de manière définitive avant le déclenchement du parachute.
 +
 +
'''Photo du 15 novembre 2016 :'''
 +
[[File:Roll control.jpg|500px|thumb|center]]
 +
 +
'''Rendus finaux :'''
 +
[[File:Catia V2 Vue Servo.png|400px|thumb|center]][[File:Catia V2 Vue Tube.png|400px|thumb|center]]
 +
 +
=== V0.1 du contrôleur ===
 +
'''(non validé par Planète Sciences à cause de l'indépendance mécanique des 4 ailettes)'''
 +
 
[[File:Section canards.jpg|250px|thumb|left]]'''Hangout du 24/6/2015''': Contrôle de roulis est conforme au cahier des charges.
 
[[File:Section canards.jpg|250px|thumb|left]]'''Hangout du 24/6/2015''': Contrôle de roulis est conforme au cahier des charges.
  
Le contrôleur de roulis est une partie de l’expérimentation à intégrer à la fusée. Il permet d'asservir le roulis (rotation de la fusée autour de son axe longitudinal) induit par les défauts de son aérodynamisme et les perturbations extérieures. Pour cela il agit en actionnant 4 ailettes motorisées. Sous-projet piloté par Mohcine.
+
Il agit en actionnant 4 ailettes motorisées.  
  
 
Challenges : assurer que ce système ne modifie pas la trajectoire. Il faut donc que l'angle des 4 ailettes par rapport à l'axe de la fusée soit toujours le même.
 
Challenges : assurer que ce système ne modifie pas la trajectoire. Il faut donc que l'angle des 4 ailettes par rapport à l'axe de la fusée soit toujours le même.
Line 15: Line 140:
 
Les ailettes pourraient être faites en alu, avec la charly robot.  
 
Les ailettes pourraient être faites en alu, avec la charly robot.  
  
'''Mise à jour du 14/10/2016 :''' le système est tout intégré et comprend un bati, des actionneurs, des batteries, une électronique de commande et de la visserie. Dessin technique à venir... (il ne sera finalisé que quand on aura tous les appros car des dimensions manquent)
+
'''Mise à jour du 14/10/2015 :''' le système est tout intégré et comprend un bati, des actionneurs, des batteries, une électronique de commande et de la visserie. Dessin technique à venir... (il ne sera finalisé que quand on aura tous les appros car des dimensions manquent)
  
 
-> [BATI] le bâti est monobloc et imprimé 3d en nylon. La pièce est cylindrique de diamètre 94mm et de longueur 70mm
 
-> [BATI] le bâti est monobloc et imprimé 3d en nylon. La pièce est cylindrique de diamètre 94mm et de longueur 70mm
Line 30: Line 155:
  
  
-> [BATTERIES] elles fournissent l'énergie au système, il y a 2 x 2 batteries 18650 Li-on montés en série (soit 8.4V) pour alimenter les actionneurs et l'électronique de manière indépendante et isolée.
+
-> [BATTERIES] elles fournissent l'énergie au système, il y a 2 x 2 batteries 18650 Li-on montés en série ( configuration [http://static.rcgroups.net/forums/attachments/1/4/2/4/0/8/t3268229-22-thumb-2S2Psaddlepack.jpg 2S2P], soit 8.4V) pour alimenter les actionneurs et l'électronique de manière indépendante et isolée.
Cette référence de batterie n'est pas choisie par hasard, elles peuvent débiter 30A en continu.
+
Cette [http://www.powerstream.com/p/INR18650-25R-datasheet.pdf référence de batterie] n'est pas choisie par hasard, elles peuvent débiter <s>30A</s> 20A en continu.
 
[http://www.ebay.fr/itm/321642901307?_trksid=p2060353.m1438.l2649&ssPageName=STRK%3AMEBIDX%3AIT Fournisseur Ebay]: prix ~52€ pour les 4 + chargeur.
 
[http://www.ebay.fr/itm/321642901307?_trksid=p2060353.m1438.l2649&ssPageName=STRK%3AMEBIDX%3AIT Fournisseur Ebay]: prix ~52€ pour les 4 + chargeur.
  
Line 42: Line 167:
  
 
-> [VISSERIE] ???
 
-> [VISSERIE] ???
Fournisseur ??? prix ??? faut prévoir 20-30€
+
Fournisseur : par exemple [[Projets:Commande_groupee#Cergy-Vis|Cergy Vis]] prix ??? faut prévoir 20-30€
  
  
Line 58: Line 183:
 
En conclusion : on arrive au point ou faut acheter les servos et les batteries, pour que je puisses finir le 3d du bati et il faudra réaliser le 3d des ailettes pour cotation. Faire imprimer le bati et les ailettes.
 
En conclusion : on arrive au point ou faut acheter les servos et les batteries, pour que je puisses finir le 3d du bati et il faudra réaliser le 3d des ailettes pour cotation. Faire imprimer le bati et les ailettes.
 
En parallèle j'avance sur l'electronique et le soft.
 
En parallèle j'avance sur l'electronique et le soft.
 +
 +
== Prise de vue ==
 +
[[File:camera_arduino.jpg|200px|thumb|left|test de connexion avec Arduino]]Sous-projet piloté par Nicolas.
 +
 +
Une section de la fusée devra être vitrée pour permettre la vidéo sur l'angle voulu (360° si on est gourmands) => idée : la structure créera des angles morts, en profiter pour faire passer les câbles.
 +
Si on installe le gyromètre d'asservissement du miroir rotatif sur celui-ci, on peut choisir un gyromètre d'amplitude max moins importante mais plus précis car on asservi alors en relatif.
 +
J'ai aussi pensé à une option de miroir panoramique pour filmer directement en 360°, [https://www.youtube.com/watch?v=3XXJ2usI8Yg dans ce genre-là].
 +
 +
'''7 décembre 2016''' : Update de Nicolas :
 +
 +
'''Ce qu'on a : '''
 +
 +
- la minicam (récup)
 +
 +
- un montage élec pour contrôler son déclenchement / arrêt
 +
 +
- la section de fusée transparente
 +
 +
- une feuille miroir souple
 +
 +
- les calculs géométriques pour la forme du miroir et la position de la caméra
 +
 +
- j'ai un pote qui a commencé à faire des tests des transformation géométrique sur le fichier vidéo, il attend un test grandeur nature pour finaliser
 +
 +
'''Ce qui manque :'''
 +
 +
- prévoir l'interfaçage avec les autres sous-système pour avoir un signal de déclenchement / arrêt
 +
 +
- faire le routage et le PCB
 +
 +
- concevoir la fixation du miroir conique au corps de la fusée (je suis pas encore convaincu de mon design ...)
 +
 +
- faire des tests !
 +
 +
 +
'''22 janvier 2016''' : Nicolas est passé chez un ami qui a un fer à souder, finalement on n'a pas ressoudé la batterie mais carrément testé l'interfaçage arduino.
 +
 +
Ça marche bien, on peut sans soucis alimenter, déclencher l'allumage de la caméra et le lancement de la vidéo puis arrêter et éteindre la caméra via une routine basique.
 +
 +
Rien de définitif dans les soudures mais on peut envisager une intégration du module si la qualité est satisfaisante !

Latest revision as of 16:43, 26 November 2018

La charge utile est composée de quatre éléments : le système de trajectométrie, le système de communication temps réel, le système de contrôle du roulis et le système de prise de vue.

Trajectométrie

Résumé

Le système de trajectométrie permet d'établir la position de la fusée durant la phase de vol. Les données sont transmises au contrôle de roulis et à la télémétrie pour permettre le suivit de vol au sol. La trajectométrie doit donc d'être calculé dans le référentiel de navigation.

La position de la fusée est établi à partir des données issues des capteurs suivants:

- GPS GY-NEO6MV2
- altimètre GY-NEO6MV2
- accéléromètre IMU 10DOF
- gyroscope IMU 10DOF
- magnétomètre IMU 10DOF

Trajecto.svg

Position angulaire

Le programme embarqué (arduino Mega) réalise une initialisation du magnétomètre, de accéléromètre et du gyroscope. Chacun de ces éléments possèdent 3 degrés de libertés qui sont couplés via un l'algorithme de Madgwick et donne une orientation sous forme de Quaternion. Le calcul des angles est fait au sein de l’Arduino méga. Il s'agit d'une conversion de quaternion vers des angles de Tait-Bryan. On a une orientation de la fusée dans le révérenciel de navigation aéro (nord,est,bas).

Example.jpg

Coordonnées géographiques

Changement de référentiel

Afin d'obtenir une position géographique de la fusée à la fois, précise et fréquente, il est nécessaire d'utiliser les données issue de l’accéléromètre. Par double intégration de l'accélération de l’objet sur les 3 axes du référentielle terrestre on peut obtenir sa position relative. x = ( a x . d x ) . d x = v x . d x fragments x fragments ( subscript 𝑎 𝑥 . d x ) . d x subscript 𝑣 𝑥 . d x

Le petit problème c'est que les accélérations de la fusée sont calculés dans le référentiel de la fusée (du capteur). Donc, si elle est inclinée, un mouvement ne va pas nous sortir des accélérations sur les axes x, y et z du référentiel terrestre mais sur X Y Z du référentiel local...

DoubleRef.svg

Ce qui nous intéresse, c'est le mouvement de la fusée dans le référentiel terrestre. On va devoir convertir les données issu de l’accéléromètre dans le référentiel terrestre ([AHRS] plus exactement).

Pour ça, on applique une rotation du vecteur d'accélération A = [ a x a y a z ] 𝐴 subscript 𝑎 𝑥 subscript 𝑎 𝑦 subscript 𝑎 𝑧 . La construction de la matrice de rotation est faite à partir des angles Tait-Bryan en suivant l'ordre de rotation. Dans notre cas rotation sur Z(yaw) puis sur Y (pitch) et enfin sur X (roll). [Matrice de rotation]

On a plus qu'a faire le produit de la matrice de rotation et du vecteur d'accélération(colonne).

A = R * A = Z 1 Y 2 X 3 * A = [ c 1 c 2 c 1 s 2 s 3 - c 3 s 1 s 1 s 3 + c 1 c 3 s 2 c 2 s 1 c 1 c 3 + s 1 s 2 s 3 c 3 s 1 s 2 - c 1 s 3 - s 2 c 2 s 3 c 2 c 3 ] . [ a x a y a z ] formulae-sequence superscript 𝐴 𝑅 𝐴 subscript 𝑍 1 subscript 𝑌 2 subscript 𝑋 3 𝐴 subscript 𝑐 1 subscript 𝑐 2 subscript 𝑐 1 subscript 𝑠 2 subscript 𝑠 3 subscript 𝑐 3 subscript 𝑠 1 subscript 𝑠 1 subscript 𝑠 3 subscript 𝑐 1 subscript 𝑐 3 subscript 𝑠 2 subscript 𝑐 2 subscript 𝑠 1 subscript 𝑐 1 subscript 𝑐 3 subscript 𝑠 1 subscript 𝑠 2 subscript 𝑠 3 subscript 𝑐 3 subscript 𝑠 1 subscript 𝑠 2 subscript 𝑐 1 subscript 𝑠 3 subscript 𝑠 2 subscript 𝑐 2 subscript 𝑠 3 subscript 𝑐 2 subscript 𝑐 3 subscript 𝑎 𝑥 subscript 𝑎 𝑦 subscript 𝑎 𝑧
  • 1, 2, 3 represent the angles α, β and γ, i.e. the angles corresponding to the first, second and third elemental rotations respectively.
  • X, Y, Z are the matrices representing the elemental rotations about the axes x, y, z of the fixed frame (e.g., X1 represents a rotation about x by an angle α).
  • s and c represent sine and cosine (e.g., s1 represents the sine of α).
On peut enfin retirer la gravité terrestre de l'accélération maintenant que le vecteur a z superscript subscript 𝑎 𝑧 est toujours pointé vers le centre de la terre. A a h r s = [ a a h r s a a h r s a a h r s ] = [ a x a y a z - 1 ] subscript 𝐴 𝑎 𝑟 𝑠 subscript 𝑎 𝑎 𝑟 𝑠 subscript 𝑎 𝑎 𝑟 𝑠 subscript 𝑎 𝑎 𝑟 𝑠 superscript subscript 𝑎 𝑥 superscript subscript 𝑎 𝑦 superscript subscript 𝑎 𝑧 1
Résultat: J'ai appliqué le calcul sur une série de mesure de l'accélération. Je fait pivoter l'accélérométre sur les trois axes.
Rotation x.svg Rotation y.svg Rotation z.svg
En rouge l'accélération d'origine. En vert l'accélération dans le référentiel terrestre (gravité déduite). En bleu, après passage dans un filtre passe haut très simple utilisant les coefficients suivant: [-0.328581437337850946 , 0.657162874675701891 , -0.328581437337850946]
On peut voir que seul les transitions de position angulaire sont gardées. La gravité ne vient pas parasiter les accélérations quelque soit la position angulaire du capteur.

Couplage GPS et accéléromètre

Bibliothèque calcul positionnement Ros diagram.png]

Centrale inertielle + altimètre

IMU 10DOF - MPU9250 + MS5611 Sketch Arduino de base utilisé : mpuarduino.ino


  • Gamme de mesure pour l'altimètre IMU 10DOF : précision à +/- 1m d'après expérimentation, altitude initiale à 0, mesure de l'altitude relative
  • Gamme de mesure accéléromètre : accélération maximum autour de 100m/s² ~ 10G, donc règlage sur +/- 16G (cran en-dessous à +/- 8G, probablement pas suffisant)
  • Gamme de mesure gyroscope : règlages possibles ±250, ±500, ±1000, et ±2000°/sec. D'après ce qu'on peut voir dans les vidéos d'autres fusées expérimentales, la vitesse de rotation est rarement supérieure à 1 tour par seconde (360°/s), donc on peut se caler raisonnablement sur ±500
  • Gamme de mesure magnétomètre : règlage par défaut unique ±4800µT.

Fréquence d'échantillonage : 1 mesure toutes les 100ms, soit pour un vol d'environ 150s 1500 mesures.

Micro-contrôleur

Arduino Mega 2560

Avantages d'Arduino :

  • très documenté (dont librairies disponibles pour une très large gamme de capteurs)
  • simple à apprendre
  • capacité (mémoire / stockage) de la version Mega largement suffisante pour gérer les capteurs ci-dessus

Archive

Initialement nous avons prévu un capteur de pression Bosch BMP180, acquis et testé avec succès avec Arduino Uno le 29/8/2015 (librairie sur Github) - mais en réalité redondant avec le capteur de pression présent sur la centrale inertielle.

Télémétrie : transmission des données en vol

Comparatif des solutions considérées :

Solutions-telemetrie.png

Nous étions initialement partis sur des modules Xbee en 868MHz, mais l'un des deux modules achetés s'est révélé défectueux. Puis quand est venu le moment de le remplacer, les Xbee Pro en 868MHz arrivaient en fin de vie.

Pourquoi 868MHz :

  • fait partie des fréquences autorisées par l'ANFR, puissance max de 25mW, ce qui est supérieur aux 10mW du 433MHz, autre fréquence autorisée pour la télémétrie
  • approvisionnement facile et relativement accessible de modules E/R sur cette fréquence

Contrôle du roulis

Le contrôleur de roulis est une partie de l’expérimentation à intégrer à la fusée. Il permet d'asservir le roulis (rotation de la fusée autour de son axe longitudinal) induit par les défauts de son aérodynamisme et les perturbations extérieures. Sous-projet piloté par Mohcine.

Système modifié après refus de Planète Sciences de valider le système initial.

Mise à jour du 19 avril 2016 : Le système repose désormais sur deux ailettes diamétralement opposées, actionnées par un unique servo-moteurs.


Un circuit non programmable impose aux ailettes de se maintenir au neutre pendant la phase de propulsion, puis autorise le circuit programmable a actionner les ailettes pour contrôler le roulis pendant un instant T limité puis enfin réimpose le neutre de manière définitive avant le déclenchement du parachute.

Photo du 15 novembre 2016 :

Roll control.jpg

Rendus finaux :

Catia V2 Vue Servo.png
Catia V2 Vue Tube.png

V0.1 du contrôleur

(non validé par Planète Sciences à cause de l'indépendance mécanique des 4 ailettes)

Section canards.jpg
Hangout du 24/6/2015: Contrôle de roulis est conforme au cahier des charges.

Il agit en actionnant 4 ailettes motorisées.

Challenges : assurer que ce système ne modifie pas la trajectoire. Il faut donc que l'angle des 4 ailettes par rapport à l'axe de la fusée soit toujours le même.

Les ailettes pourraient être faites en alu, avec la charly robot.

Mise à jour du 14/10/2015 : le système est tout intégré et comprend un bati, des actionneurs, des batteries, une électronique de commande et de la visserie. Dessin technique à venir... (il ne sera finalisé que quand on aura tous les appros car des dimensions manquent)

-> [BATI] le bâti est monobloc et imprimé 3d en nylon. La pièce est cylindrique de diamètre 94mm et de longueur 70mm

Fournisseur Electrolab ???

Fournisseur Shapeways : prix ~120€


-> [SERVOS] les servomoteurs actionnent les ailettes. ils ont plusieurs caractéristiques à dimensionner ce qui peut être extrêmement complexe, couple, vitesse, résolution... D'après mes recherches le meilleur choix disponible est le suivant et ils sont surdimensionnés par sécurité:

- couple 18kg, vitesse 0.07sec/60°, casing alu, alimentation direct 8.4v. Fournisseur hobbyking: prix ~144€ pour 4 (attention sur le site, il suffit de laisser la page ouverte quelques minutes pour avoir un discount)


-> [BATTERIES] elles fournissent l'énergie au système, il y a 2 x 2 batteries 18650 Li-on montés en série ( configuration 2S2P, soit 8.4V) pour alimenter les actionneurs et l'électronique de manière indépendante et isolée. Cette référence de batterie n'est pas choisie par hasard, elles peuvent débiter 30A 20A en continu. Fournisseur Ebay: prix ~52€ pour les 4 + chargeur.


-> [AILETTES] elles ont une géométrie complexe et doivent être réalisées avec une bonne précision/répétabilité dimensionnelle. Je pense qu'elles peuvent être difficilement réalisés au lab en fraisage 3d mais c'est ca reste possible. J’opterais plus pour une impression 3d en acier infusé bronze. Fournisseur shapeways : prix ~??? (nécessite le 3d pour cotation)


-> [VISSERIE] ??? Fournisseur : par exemple Cergy Vis prix ??? faut prévoir 20-30€


-> [ELECTRONIQUE] l'electronique sera composée de 3 pcb circulaires de diamètres 90mm

   -> PCB bouchon (sert a des connexions electriques)
   -> PCB alimentation 
   -> PCB controleur

L'architecture électrique est en cours, il faudra que je fasse le schéma/routage. Fournisseur ??? prix ??? mais faut bien prévoir 150-200€

-> [LOGICIEL] L'architecture logicielle est en cours...


En conclusion : on arrive au point ou faut acheter les servos et les batteries, pour que je puisses finir le 3d du bati et il faudra réaliser le 3d des ailettes pour cotation. Faire imprimer le bati et les ailettes. En parallèle j'avance sur l'electronique et le soft.

Prise de vue

test de connexion avec Arduino
Sous-projet piloté par Nicolas.

Une section de la fusée devra être vitrée pour permettre la vidéo sur l'angle voulu (360° si on est gourmands) => idée : la structure créera des angles morts, en profiter pour faire passer les câbles. Si on installe le gyromètre d'asservissement du miroir rotatif sur celui-ci, on peut choisir un gyromètre d'amplitude max moins importante mais plus précis car on asservi alors en relatif. J'ai aussi pensé à une option de miroir panoramique pour filmer directement en 360°, dans ce genre-là.

7 décembre 2016 : Update de Nicolas :

Ce qu'on a :

- la minicam (récup)

- un montage élec pour contrôler son déclenchement / arrêt

- la section de fusée transparente

- une feuille miroir souple

- les calculs géométriques pour la forme du miroir et la position de la caméra

- j'ai un pote qui a commencé à faire des tests des transformation géométrique sur le fichier vidéo, il attend un test grandeur nature pour finaliser

Ce qui manque :

- prévoir l'interfaçage avec les autres sous-système pour avoir un signal de déclenchement / arrêt

- faire le routage et le PCB

- concevoir la fixation du miroir conique au corps de la fusée (je suis pas encore convaincu de mon design ...)

- faire des tests !


22 janvier 2016 : Nicolas est passé chez un ami qui a un fer à souder, finalement on n'a pas ressoudé la batterie mais carrément testé l'interfaçage arduino.

Ça marche bien, on peut sans soucis alimenter, déclencher l'allumage de la caméra et le lancement de la vidéo puis arrêter et éteindre la caméra via une routine basique.

Rien de définitif dans les soudures mais on peut envisager une intégration du module si la qualité est satisfaisante !