|
|
Mesure de vitesse de balles et flashes
|
|
|
Principe |
Maj : 07/06/04
|
![]()
Cette application montre comment utiliser une petite carte
microcontrôleur pour une application de cinémomètre. Un
temps de parcours est mesuré entre deux tops. La première application
concerne un projectile d'arme à feu. le principe est très simple
! Le projectile coupe deux bandes conductrices successivement, la première
déclenche un compteur, la deuxième l'arrête. La vitesse
étant obtenue en divisant la distance entre les capteurs par le temps
connu via le nombre de cycles d'un compteur implanté dans un petit microcontrôleur.
Vitesse = Distance parcourue / Temps de parcours
Réalisation pratique du capteur
Deux bandes larges de 1 cm en papier d'aluminium pour la cuisine sont tendues, tenues entre des pinces à linge, du ruban adhésif ou des élastiques. Elle constituent des contacts électriques. Un montage simple est réalisé avec un morceau de 1 m environ de tuyau PVC d'écoulement sanitaire. Au passage de la balle les rubans sont volatilisés, comme les deux contacts sont identiques, le retard est identique et la précision absolue.
Si vous tirez avec des armes de plus gros calibre, canon ou missile, il faudra
prendre un tuyau de plus grand diamètre.
Peignez une flèche pour indiquer le sens de circulation, afin que deux tireurs distraits n'essayent pas le dispositif simultanément aux deux extrémités.
Après le reset, le système vérifie la continuité
électrique des deux contacts, tirés à une polarité
par une résistance de 10 kohms, reliés à l'autre par le
contact.
Il affiche un message "prêt ", et attend le premier signal pour
armer le timer.
Une fraction de seconde plus tard, le comptage est fini et la vitesse affichée.
Cette petite application fait utiliser un timer 16 bits. Elle est toutefois
si simple qu'il est possible de faire une variante pédagogique sans utiliser
le timer.
Dans ce cas le système palpe en boucle infinie le premier contact et
ne sort de la boucle qu'au changement.
Il rentre alors dans une deuxième boucle incrémentant une variable
sur 16 bits et palpant le deuxième contact, en sortant au changement.
Il suffit alors de compter les cycles de la variable, en n'oubliant pas les
cycles supplémentaires à l'incrémentation de l'octet haut
(passage de l'octet bas à zéro).
Cette méthode est beaucoup moins performante que celle du timer, elle
est mono-tâche, et occupant plusieurs cycles à chaque boucle, elle
est moins précise. Elle n'est que pédagogique.
La seule petite difficulté pour les débutants en assembleur est
de devoir implémenter, une division sur 16 bits, mais elle est décrite
partout.
Un exemple est donné ici avec l'utilisation
des "look-up tables " ou tables de conversions ![]()
Le plus simple des microcontrôleurs comporte un timer. Le
timer à 10 MHz compte des pas de 0.1 µs.
Une balle sonique fait environ 330 m/s donc 3 ms par mètre, soit 3000
µs pour parcourir 1 mètre.
Sur cette distance il est donc possible de compter 30000 pas (la moitié
d'un mot de 16 bits !) donc mesurer une vitesse sonique à 1/30000 soit
0.03 %.
Cette précision est largement surabondante, l'affichage arrondira très
grossièrement en réduisant la précision d'un facteur 100
pour afficher la vitesse en mètres par secondes entiers. Un facteur de
division peut être introduit dans le comptage.
Le compteur du plus simple des microcontrôleurs fait cela très bien. Le plus cher dans le projet est l'afficheur. Avec un 4 digits et son interface I2C on peut arriver à moins de 10 € en achetant tout (sauf coffret). Si le même tube support, fixant une distance constante est utilisé, ce facteur peut être rentré "en dur "dans le logiciel, mais c'est une très mauvaise idée. Pour un montage à distance variable entre les contacts, il faudra un petit clavier pour rentrer le paramètre. Il est aussi possible d'utiliser un port infrarouge et de dialoguer avec une calculatrice ou palmtop sans contact. Je décrirai ces éléments dans d'autres projets.
Il faut donc
pour résumer :
Une petite carte microcontrôleur, la plus simple
qui soit. L'idéal est de disposer d'une zone flash eprom téléchargeable,
les mémoires effaçables UV ne sont plus à la mode.
La connaissance d'un assembleur et quelques petits moyens de programmation de
sa carte.
Quelques entrées/sorties logiques disponinles et un port (série,
infrarouge...).
L'implantation d'un noyau logiciel, par exemple I2C pour gérer les périphériques,
en particulier l'afficheur.
C'est le plus gros morceau pour les débutants. Une fois que l'on sait
faire communiquer la carte avec l'afficheur, c'est gagné, cela veut dire
que l'on maîtrise sa carte et que hardware est software fonctionnent.
Le reste est très facile. Il faudra implanter une routine de division
16 bits, les bibliothèques éprouvées sont aisées
à trouver pour les débutants.
Variante d'utilisation :
Photographie
En disposant de ce petit matériel, il est maintenant possible
de faire encore mieux. Une carte autonome que l'on sait programmer, avec des
entrées sorties, un petit afficheur, est une vraie mine d'or.
Pour un photographe, les utilisations sont multiples, je n'en citerai que quelques
unes qui demandent très peu de lignes de logiciel pour être adaptées
à la fonction voulue.
Remarque pour une utilisation plus générale.
Les bandes à casser pour spécifiques à l'application balle, mais elles peuvent être aussi remplacées par un ou des photransistors éclairés par diode, ou mieux par pointeur laser réfléchi par deux miroirs. Le pinceau étant étroit, la visée est plus délicate en sortie, il faut couper les deux faisceaux. Dans ce cas un seul capteur donne les deux tops compteur. Les barrières lumineuses ont de multiples applications. Par la suite nous parlerons seulement des signaux de passage, générant les tops de commandes, sans préciser comment ils ont été obtenus.
Photographier la balle
Pour rester dans l'application, ce dispositif peut aussi servir
pour photographier la balle et l'impact. Une fois la vitesse connue, le timer
peut être déclenché dans un mode décompteur pour
fournir un contact retardé.
Dans la majorité des cas suivants, pour éviter l'énorme
retard au déclenchement , il faut opérer dans l'obscurité,
obturateur ouvert, ce signal déclenchera un flash. L'obturateur peut
être refermé par un autre signal retardé.
La couronne de gouttes
Ce même système est utilisé pour faire les célèbres photos de couronnes de gouttes de lait explosant en tombant dans un bol. Connaissant la hauteur et la simple loi d'accélération de la pesanteur, l'instant de prise de vue sera fixé avec une extrême précision.
X est la distance parcourue. T est le temps de parcours.
g est l'accélération de la pesanteur, 9.81 ms-2.
A l'instant T=0, X=0. Tout autre phénomène de chute est aussi
exploitable.
L'analyseur de flash
Il est particulièrement utile pour mesurer le
retard de déclenchement, les durées et intervalles des pré-éclairs
flash, l'anti-yeux rouges
Une des applications est d'utiliser le déclenchement électrique
de l'appareil qui en simultané commande la carte. L'afficheur indique
alors le temps écoulé, que vous récupérez très
simplement en visualisant le cliché.
Un photo transistor enregistre le séquencement des éclairs, le
système vous rend un résultat soit sur l'afficheur soit sous forme
de fichier transféré, sous cette forme : -6000,
+3, -20, +5.
Cela signifie que le pré flash est parti avec un retard de 6 secondes (vous ne croyez pas que cela existe, et pourtant ), puis un pré-flash bref de 3 millisecondes, puis une attente de 20 ms, puis le flash de 5 ms. Cela veut dire que vous devez lire 6328 sur la photo. Si ce n'est pas le cas, posez vous les questions, il y a une panne !
Déclencheur de flash esclave
L'application est encore plus simple. Dans un premier temps vous activez le mode enregistreur qui mesure le retard entre le pré-flash et le flash. Cette valeur est ensuite mémorisée pour servir de synchronisation aux flash esclaves. Il existe maintenant de petits modules radio (Aurel) faible coût qui conviennent très bien. J'ai réalisé un système complet à moins de 15 €, et détournant une sonnette sans fil vendue en super-marché, qui contient l'émetteur et le récepteur radio à prix imbattable, portée 50 m sans antenne !
![]()
Mesure
de la puisssance des flashes ![]()
La réalisation d'un flashmètre est cette fois c'est un peu plus compliquée. Il ne s'agit plus de mesurer les temps entre des fronts mais des valeurs analogiques. L'énergie d'un flash a une répartition Gaussienne dans le temps, (en cloche), il faut donc faire des mesures analogiques.
Le capteur sera disposé sous un cache dépoli si possible sphérique. Il est facile de récupérer l'enveloppe en verre dépoli d'une petite ampoule secteur grillée, cela convient très bien, l'ensemble étant protégé des chocs (par une boite plastique transparente). Il faut bien choisir son capteur, qui doit avoir un temps de réponse très rapide, une plage d'intensités étendue (pour ne pas saturer). Un photo transistor se comporte assez mal, il vaut mieux une cellule photo résistive.
Les polarisations seront testées pour obtenir la bonne plage de tension (de quelques volts au maximum) pour les éclairs à mesurer. Il faut maintenant ajouter un petit convertisseur analogique numérique, le choix est vaste, noyez-vous par exemple dans les catalogues Maxim et Linear Technology.
Je préfère utiliser un 16 bits facile à gérer. Le problème est qu'il faut aller assez vite, c'est à dire enregistrer pendant la durée de l'éclair de l'ordre de la milli seconde quelques dizaines de points pour tracer une courbe propre.
Prenons 50 points pour une milliseconde, cela fait une acquisition à 50 kHz, c'est moins évident qu'il n'y paraît car il faut sauver les deux mots, gérer l'incrémentation des adresses Un convertisseur série classique sera un peu lent, il faudra prendre un parallèle. Certains convertisseurs vidéo série sont extrêmement rapides et n'auront aucune difficulté à suivre.
Il pourrait sembler astucieux de ne pas utiliser de microcontrôleur pour cette application, mais plutôt l'entrée "line in "de la Sound Blaster. Nous tombons alors dans une application de type oscilloscope enregistreur (voir liens électroniques). C'est très possible mais la programmation du DSP demande un investissement intellectuel certain.
Quelle que soit la méthode, supposons que nous
ayons obtenu la bonne courbe. Il est évident que l'énergie de
l'éclair est proportionnelle à la surface de la courbe si le capteur
est linéaire. Cela est très facile à vérifier. L'énergie
décroît comme le carré de la distance. Il suffit de faire
une mesure par exemple à 50 cm de distance, ce sera notre référence.
En multipliant la distance chaque fois par racine de 2, soit 1.414, l'énergie
baissera de moitié.
Les mesures se feront donc par exemple à : 0.5m, 0.7m, 1m, 1.41m, 2m,
etc
Si vous n'obtenez pas très exactement la moitié à chaque
pas il faudra introduire une table de facteurs de linéarité c'est
très simple.
Vous avez maintenant un flashmètre parfait et très
précis, mais gros problème, gradué en quoi ?
Deux solutions :
Soient vous le graduez en "mon_unité_à_moi_personellement ", il
sera parfait pour comparer les sources et tester les réglages de flashes,
etc
Soit vous le graduez en unités normalisées, c'est alors plus difficile.
Le plus simple est de prendre un flash de référence du commerce,
considérer que la valeur indiquée sur la fiche signalétique
est vraie avec une bonne alimentation et s'en servir de référence.
Ce n'est pas très grave si vous faites une erreur de 50%, l'essentiel
étant d'être reproductible et répétitif.
Une fois les réglages effectués, le plus simple est d'utiliser
des "look-up tables "sur 16 bits, c'est à dire des tables de translations.
Les valeurs sont ainsi rangées, en tableaux, vous rentrez avec l'adresse,
la donnée lue est le résultat.
Il n'y a pas plus simple et fiable, la modélisation de la courbe pouvant
s'avérer très complexe. Les valeurs
intermédiaires sont interpolées.
![]()
Le problème général du déclenchement des flashes esclaves ![]()
Sur les appareils argentiques le flash principal déclenchait sans aucun problème les flashes secondaires. Tous ceux qui ont fait du studio, ont utilisé plusieurs esclaves déclenchés par cellules, ce qui a le gros avantage d’éviter les fils qui traînent dangereusement par terre.
La surpris en passant au numérique est que cela ne marche plus. Pourtant les esclaves partent bien, mais n’ont aucun effet sur l’exposition.
L’explication est très simple : Les bridges numériques ont un pré éclair servant à régler l’exposition. Les reflex ne sont pas affectés par ce défaut. La documentation n’en parle pas, n’évoquant que les pré éclairs anti-yeux rouges dont la désactivation ne résout rien.
Il est indispensable de vérifier ce timing, l’oeil ne perçoit pas les deux éclairs séparés, à cause de la persistance rétinienne.
La méthode de mesure utilise un simple oscilloscope à mémoire branché sur une photodiode dont la réponse est très rapide. Cela permet de mesurer l’énergie relative des deux éclairs, elle est proportionnelle à l’intégrale de la trace (amplitude*durée). Vous verrez un petit éclair suivi quelques millisecondes plus tard du vrai éclair.
Il est intéressant de photographier l’écran, cela permet de voir que l’éclair actif est bien positionné après l’ouverture complète.
Une fois le problème connu, il faut s’efforcer de le contourner pour pouvoir utiliser des flashes esclaves.
La meilleure solution si l’on veut faire de la photo sérieuse est d’abandonner définitivement le bridge et de passer au reflex qui offre toujours un contact de synchro pour flash externe sans problème.
Si l’on refuse cette solution radicale et parfaite, le problème se complique un peu. Il faut déclencher en sautant le pré flash.
La revue Elektor a présenté de très nombreux montages, avec apprentissage du temps entre les deux éclairs ou comptage pour sauter le premier, en analogique et en numérique. Ce n’est qu’une variante du dispositif évoqué plus haut. Cherchez dans leurs archives, c’est un des sujets récurrents.
Voir liens en page liens photo
La prochaine fois je vous fais un testeur de mines antipersonnelles sautantes à billes et un pyromètre pour bombes au napalm.
Tant que les chasseurs tirent sur des bandes d'aluminium, ils ne vont pas boire dans les bars et les lapins et promeneurs sont peinards.