Il y a peu de temps, on est tombé sur cet article qui explique comment lancer une micro-fusée depuis un smartphone en utilisant un Raspberry-PI, un dongle wifi, une carte relais, et un router wifi de poche. On s'est demandé si on pouvait faire plus simple en utilisant des modules Yoctopuce, sans compter qu'un prétexte pour aller jouer avec des micro-fusées, ça ne se refuse pas :-)
Architecture d'une micro-fusée
Une micro-fusée est constituée d'un tube muni d'ailettes, d'une ogive, d'un parachute et d'un moteur. Le moteur est un tube en carton qui contient la tuyère, un bloc de poudre, une mèche lente, et une petite charge explosive. Lors de la mise à feu, le bloc de poudre se consume en quelques dixièmes de seconde, ce qui propulse la fusée. Puis la mèche lente se consume lentement pendant que la fusée continue sur son élan en vol balistique. Au bout de quelques secondes, la mèche lente met à feu la charge explosive ce qui éjecte le contenu de tube, c'est à dire le parachute, l'ogive et parfois le moteur quand il n'est pas trop bien fixé. Si on a pris soin de tout attacher ensemble, la fusée et son ogive vont alors tranquillement redescendre au bout du parachute.
Structure d'une micro-fusée et de son moteur
Les fusées à étage
Il est possible de perfectionner une micro-fusée en lui ajoutant des étages. Un étage de micro-fusée n'est rien d'autre qu'un tube muni lui aussi d'ailettes qui s’emboîte sur la base de la fusée. Cet étage fonctionne avec un moteur plus simple qui ne contient ni mèche lente ni charge explosive. Lorsqu'il a fini de brûler, des résidus de poudre enflammés pénètrent dans la tuyère du moteur supérieur ce qui a pour effet de l'allumer et la surpression qui en résulte éjecte l'étage inférieur pendant que le reste de la fusée accélère.
Fonctionnement d'une micro-fusée à étage
Une micro-fusée artisanale à deux étages
La même, démontée
La mise à feu
La mise feu d'une micro fusée se fait l'aide d'allumeurs électriques. Il s'agit de deux fils électriques reliés par un filament noyé dans de la poudre. Pour faire partir une fusée, il suffit de placer l'allumeur dans la tuyère du moteur, et d'envoyer du courant dedans. Le filament est alors chauffé à blanc ce qui enflamme la poudre et allume le moteur.
Un allumeur électrique
Lancer une fusée depuis un smartphone
Normalement, pour lancer une micro fusée, on tire un très long fil électrique depuis le lanceur jusqu'à un pupitre de commande. La mise en place d'un lanceur de micro-fusées est donc toujours un peu fastidieuse, d'où l'intérêt d'utiliser un smartphone pour la mise à feu.
L'idée consiste à utiliser un Yocto-PowerRelay pour déclencher l'allumeur, et à piloter le relais avec un YoctoHub-Wireless. Pour gagner en compacité, on a fixé le Yocto-PowerRelay directement sur le hub, ce qui a permit de faire tenir toute l'électronique dans le même boîtier. Le courant pour l'allumeur est fourni par une petite batterie 12V et le hub est alimenté par une batterie USB.
La partie électronique du projet
Pour ce projet, le gros intérêt du YoctoHub-Wireless est sa capacité à fonctionner en mode ad-hoc et donc de générer son propre réseau Wifi même au beau milieu de nul part. Par ailleurs, le YoctoHub-Wireless se comportant comme un serveur web, il suffit donc d'écrire une petite page HTML avec un gros bouton rouge qui déclenche de le relais, de placer cette page sur le file-system du hub et c'est prêt.
Schéma du système de mise à feu
Pour lancer la fusée, il suffit alors de connecter un smartphone au réseau wifi du hub, d'afficher la page de mise à feu avec un simple browser web et d'appuyer sur le bouton de mise à feu.
La partie soft
La partie soft est donc une simple page HTML avec un peu de JavaScript qui se connecte à l'API du hub, retrouve le relais, et le déclenche quand on appuie sur le bouton. A vrai dire l'essentiel du code sert à placer un gros bouton rouge au milieu de l'écran.
<html>
<head>
<META name="apple-mobile-web-app-capable" content="yes"/>
<meta name="viewport" content="width=100, user-scalable=no">
<script type='text/JavaScript' src='js/yocto_api.js'></script>
<script type='text/JavaScript' src='yocto_relay.js'></script>
<script type='text/JavaScript'>
var relay = null;
function init()
{ if(yRegisterHub(location.host) != YAPI_SUCCESS)
return alert("Cannot contact Hub");
relay = yFindRelay("fire");
}
function fire()
{ if (!relay || !relay.isOnline())
return alert("not connected");
relay.pulse(2000);
}
</script>
<style>
body
{ text-align:center; }
A
{ position:absolute;
top:30%;
font-family:Arial, Helvetica, sans-serif;
color: white;
background-color: #FF0000;
padding: 10px;
border-radius: 5px;
}
A:link
{ text-decoration: none; }
</style>
</head>
<body onload='init()'>
<a href='javascript:fire();'>LAUNCH</a>
</body>
</html>
Et ça marche?
Ça marche même plutôt pas mal, jugez par vous-même:
On a testé notre lanceur sans fil dans notre zone 51 personnelle :-)
Quelques remarques cependant:
- L'utilisation de pique-fils en plastique pour connecter l'allumeur est très confortable, mais c'est malgré tout une assez mauvaise idée, à moins que vous ne soyez disposé à les remplacer après chaque lancement: la chaleur du moteur les fait fondre instantanément
- Vous avez peut-être remarqué qu'on a utilisé un iPod-touch pour le lancement. Il y a une raison à cela: les appareils Android ne sont pas capable de se connecter à un réseau ad-Hoc. Mais une nouvelle version du YoctoHub-Wireless avec une fonctionnalité soft-AccessPoint qui résoudra ce problème devrait bientôt sortir
Conclusion
Avec juste deux modules Yoctopuce et quelques dizaines de lignes code HTML on a pu lancer notre micro fusée depuis un smartphone iPod touch, et tout ça au beau milieu de nul part. Non seulement ce projet est un succès total, mais en plus on s'est bien amusés. Par contre, comme il avait plu la veille, on s'est mis de la boue jusqu'au oreilles.