lundi 11 mars 2013

AltiLogger - 1er vol

Ça y est, après moultes réglages, le 1er tir de mon prototype a été effectué ce weekend avec un moteur G53 Fast Black Jack reloadable!


Autant ménager le suspense tout de suite, le parachute ne s'est pas déclenché, et la caméra embarquée est restée définitivement sourde et muette...


Déterrage de la charge utile et de l'ogive
La première partie du vol s'est bien déroulée, conformément à la simulation d' OpenRocket. Malgré un poids élevé (760g à vide), la fusée a décollé rapidement, s'est stabilisée a l'apogée vers les 8 secondes... avant de plonger comme une balle vers le sol à quelques mètres du site de lancement. La charge utile et l'ogive se sont complètement enterrées dans le sol !

Bilan: Ogive, lecteur de carte SD et circuit imprimé détruits...
Altitude / accélération

 Le bon coté, c'est que j'ai pu enregistrer quelques données, 1150 échantillons (accélération 3 axes et altitude) sur 17 secondes. L'enregistrement a commencé des la détection du décollage ( seuil à 2g ).

Les données ne sont pas filtrées, car elles se révèlent très bonnes, quasiment aucun bruit, en particulier pour l’altimètre BMP085 (même en mode ultra low power)





Altitude / vitesse calculée

Les chiffres sont très proches des prévisions calculées par OpenRocket

Apogée à 339m au bout de 8.4s
Accélération max: 10.5g
Vitesse ascensionnelle max: 80m/s a 1.5 s

En intégrant l'accélération, on retrouve la vitesse, et elle est bien nulle à l'apogée, les 2 capteurs ont donc bien fonctionnés.



Conclusion:

Pour la version 2:
  • Utiliser un système de redondance pour l'éjection du parachute (2 e-matches). La résistance de l'ematch était surement trop élevée...
  • Les données sont envoyées par paquets sur la carte SD, ce qui génère un "glitch" d'à peu près 120ms 4 fois par secondes approximativement. En cas de crash, le dernier paquet n'est pas écrit, ce qui provoque une perte de données. La version 2 sauvegardera les données dans un mémoire Flash, et dumpera éventuellement les résultats dans une carte SD.
  • Il n'est peut-être pas nécessaire d'embarquer un accéléromètre sur 3 axes de +/-24g. Autant utiliser une IMU 10dof (avec baromètre intégré), et éventuellement rajouter un accéléromètre 1 axe grande échelle (ADXL193 par ex)
  • Utiliser l'USB pour définir les paramètres de vol et/ou dumper les résultats

Prochain lancement cet été !

mercredi 16 janvier 2013

AltiLogger - prototype


Voila, le montage est passé de la plaque d'essai au prototype. J'ai pris en compte une deuxième sortie pyro dans le programme, mais faute de place, je ne l'ai pas rajouté sur la plaque veroboard. Ainsi on a 2 bips consécutifs en boucle, correspondant à l'état des 2 sorties pyrotechniques.
Le choix des mosfets est important, la commande étant en 3.3V. Ce site recommande des IRLZ44, j'utilise pour ma part des IRFZ44n (en m'étant trompé sur la référence !), mais ils fonctionnent sans problèmes. Il est également possible de supprimer ou réduire la résistance de 10ohms pour le HP, afin d'obtenir un son plus puissant.

Le schéma

Coté face
On trouve l'alimentation en haut à gauche, avec l'interrupteur la possibilité de mettre un inter.
Les 2 pins suivantes servent à l'alimentation de camera.
Juste en dessous du mosfet, on a 2 broches pour la sortie pyrotechnique. 
A droite du transistor, 3 broches permettent de piloter la caméra (power, mode, shutter).



Coté pile
L'envers de l'alti, le haut parleur sur la tranche, pour gagner de la place. J'envisage de mettre une eeprom i2c, ainsi que la deuxième sortie pyro de ce coté. J'aurai du tourner le lecteur de SD dans l'autre sens !







L'alti fait moins de 4cm de large, pour un poids d'environ 30g, sans compter la batterie. Le tout doit faire dans les 50g, poids acceptable même pour une petite fusée.



Le montage rentre parfaitement dans une ogive Public Missile Intellicone 2.1.




mardi 8 janvier 2013

AltiLogger

Le but est de fabriquer un altimètre pour fusée modèle réduit.  Celui doit être en mesure de déclencher automatiquement l'ouverture du parachute, à l'aide d'une minuterie ou des données issues des capteurs embarqués (altimètre,accéléromètre). Une Lipo 3.7V 700mAh suffit à alimenter le montage.

Le module embarque un accéléromètre 3 axes +/-24G,un altimètre,un haut parleur et un lecteur de micro SD qui permet d'enregistrer les mesures lors du vol. Il est également capable de piloter un caméra "keychain" (cf post précédent). Le module est capable de logguer 50 mesures par seconde.


1er prototype

Lors de la mise sous tension, deux sons retentissent, puis 4 autres, qui donnent successivement l'état de la caméra (déclenchement de l'enregistrement), de la carte SD, de l'accéléromètre, et enfin du baromètre. un son aiguë pour OK ou un grave pour NOK.
Ensuite le testeur de continuité nous indique en permanence l'état de la charge, toujours au moyen d'un son grave ou aigu. Le module scrute alors en même temps l'état de l'accéléromètre (100 fois par seconde), et attend le décollage (seuil de 2G). Le module n'aura même pas besoin d'être parfaitement aligné dans le corps de la fusée, puisqu'il prend en compte l'accélération globale sur les 3 axes.
Dès le décollage,  un nouveau fichier de log (logXX.txt) est créé.

Le module émet alors un nouveau son, qui témoigne de l'ascension. Au bout d'un temps défini, la charge est mise à feu (nouveau son), puis la descente commence (encore un nouveau son).

Au bout d'un temps défini, le module éteint la caméra, et joue une séquence de bips cycliquement pour indiquer l'altitude maximum atteinte (entre 0 et 100m dans la vidéo ci dessous ).

Dans un deuxième temps, la charge sera déclenché suivant l'état de l'altimètre (apogée), intégration de l'accélération, ou autre... De même l'enregistrement sera coupé lorsque le module détectera que la fusée est au sol. Je pense également rajouter un deuxième parachute... J'envisage aussi d'utiliser un eeprom qui ferait office de buffer pour doubler le nombre de mesures par seconde.

1er test en labo

Les fichiers produits sont au format CSV (aisément exploitable sous Excel),et indiquent l'heure courante en ms, les accélérations subies sur les 3 axes et l'altitude.

lundi 7 janvier 2013

Keychain Camera pilotée via Arduino

1080P Jumbo camera
Pour pouvoir embarquer une caméra dans une fusée, il faut qu'elle soit petite ! Mon choix s'est porté sur une de ces fameuses "keychain camera" qui permettent, pour une somme modique, de filmer en full HD 30 fps ! Ce modéle est rechargeable sur USB (lipo 1S), permet aussi le 720p@60fps et les photos a 5MP, en incluant une sortie vidéo analogique ! Intéressant également pour le modélisme en FPV...
Elle peut même faire office de webcam... La lentille peut aussi être remplacée pour changer l'angle de vue.
La caméra était attachée le long de la fusée 

Mais ce qui serait intéressant, c'est de piloter la caméra via un microcontrolleur (ici un arduino). Lorsqu'elle est mise sous tension, on est en mode 720@60fps, led jaune allumée en continu... Un appui sur le bouton permet de passer en 1080@30fps, puis en photo.
A noter que la tension est de 3.3V, donc mieux choisir un uP sous la même tension.



On trouve 3 boutons:

  • Power: la mise sous tension - 3.3V inactif
  • Mode: la sélection du mode - 0V inactif
  • Shutter: le déclencheur - 0V inactif


Il suffit de ponter ces 3 boutons sur les sorties d'un arduino, d'appliquer la tension inverse pour simuler la pression et le tour est joué.

Il doit être possible d'utiliser une sortie sur les leds ou autre, pour avoir un retour sur l'état du module.




Les soudures sont assez délicates...


Séquence d'initialisation:

    • Impulsion positive sur Power pendant 200ms
    • Pause 4s
    • Impulsion négative sur Shutter pendant 200ms
    • Enregistrement
    • Impulsion négative sur Shutter pendant 500ms
    • Pause 4s
    • Impulsion positive sur Power pendant 2s
    • Pause 4s




dimanche 28 octobre 2012

High Power Leds sur Dji F550 part 2

Le module laser à gauche, et les 3 leds blanches à droite
Voila après les leds high power sous les hélices, j'ai rajouté 3 leds blanches et un laser dirigé vers le sol. Celui me permettra de voir facilement si le drone dérive de sa position . On les active sur le même principe que les leds,sur la même voie. Cette fois, c'est une impulsion a -50% qui alimente les leds, le laser, ou les 2, successivement. J'utilise 2 switches différents, le premier pour les leds sur une voie libre, et le 2ème est mixé sur la même voie. A noter que les (6) sorties PWMs sont déja prises, c'est donc juste du on/off.



Voila le schéma mis à jour:


En vol


Et en live:

mercredi 17 octobre 2012

High Power Leds sur Dji F550

Le but est d'allumer/éteindre des leds installées sur les bras d'un DJI F550 à partir du récepteur radio, et de choisir parmi plusieurs modes (allumé, éteint, clignotement, fade etc...). Evidemment ça marche sur n'importe quel autre drone et/ou récepteur radio.




Arduino Pro min 5V
J'ai utilisé un Arduino Pro Mini 5V. Je viens juste découvrir les modules Arduino, et je dois dire que le résultat est bluffant. Bien qu'on ne puisse pas faire de choses aussi pointues qu'en programmant directement un PIC en C, le langage suffit pour faire des choses simples... et rapides ! Le module est alimenté en 5V, via le récepteur (Graupner dans mon cas). La programmation se fait via un module FTDI classique... A noter qu'il existe une version Arduino USB native, mais dans ce cas il n'y a  plus que 5 sorties PWM au lieu de 6, dans le cas présent.



http://www.ampoule-leds.fr/


Les leds sont K2 luxeon, d'une intensité de 50 lumens pour les bleus, jusqu'à 130 lumens pour les vertes. J'ai ajouté une résistance en série 5W, vu que le drone est alimenté avec une lipo 4S. Après si la résistance est encore trop faible, il est toujours possible de limiter la luminosité maximum (PWM) dans le code pour prolonger la durée de vie des LEDs, et éviter qu'elles ne chauffent trop ou ne claquent. L'ULN2803 chauffe assez vite aussi... L'idéal aurait été de piloter les LEDs en intensité, mais le montage aurait été beaucoup plus imposant.



Le changement de mode se fait  la broche 2, des que l'on passe à 50% de la plage d'un servo (1750ms). Le mieux est de configurer la radio sur un switch. De la même façon, on détecte un front à -50% (1250ms) pour gérer un autre set de leds, ou n'importe quoi d'autre... Il y a une dizaine de modes disponibles pour l'instant.








Et au final:
En mode "tout allumé"
Sources Arduino