Outils pour utilisateurs

Outils du site


wiki:divers:chrono-chute

Chronométrage de chute libre

Participants : Christian Simon

Idée : chronométrer la chute libre d'un objet dans un tube. Moyens : des paires de LED/photo-détecteur connectés à un Arduino sont montées le long d'un tube de 12 mm de diamètre (soit en aluminium, soit en cuivre).

On réutilise les mêmes éléments que dans le spectro-Arduino de Prof-en-Fac, en l'occurence LED blanche de 5mm de diamètre, et soit une photodiode (mal-identifiée, prise dans le stock), soit phototransistor NPN SFH300, tous deux de packaging identique aux LED 5mm.

Lorsque l'objet est un aimant, les courants de Foucault freinent la chute dans le tube de cuivre, pas dans le tube d'aluminium (idée originale de Vincent, c'est magnétique, forcément)

Pièce à imprimer en 3D : porte LED

$fn=50; 
difference() {
    cube([21.9,19,9],center=true);
    union() {
        translate([0,0,-5.0])cylinder(d=12.1,h=10.0);
        translate([-12.5,0,0]) rotate([0,90,0]) cylinder(d=5.1,h=25.0);
    }
}

Fichier STL du porte LED

Essais du phototransistor

Montage :

N.B. : Polarisation du phototransistor :

l'émetteur du SFH 300 est la patte longue, le collecteur la patte courte. Le collecteur est repéré par le méplat, et doit être côté Vcc.

Après tatonements, je choisis R=3×39=117 kΩ, qui permet d'obtenir les réponses suivantes :

à gauche, lumière ambiante du jour→obscurité totale (on capuchonne la LED avec un corps de stylo). La forme de la réponse est due à la difficulté à positionner le capuchon vite ; à droite, passage rapide d'une main à plat au dessus de la LED. Durée des captures : moins de 2s (9600 bauds, pas de délai dans la boucle). Dans ces conditions d'éclairement, la variation de tension est pratiquement pleine échelle 0-5V, rapide. Programme utilisé : ReadAnalogVoltage (dans les exemples de l'IDE).

A ce stade, avec une lumière ambiante forte, on peut penser que le choix des composants est “surdimensionné”, et que c'est un peu exagéré de recourir à un SFH300 plutôt qu'à une LDR ou une photodiode…

Réplication

Le code est modifié pour lire les signaux provenant de 5 phototransistors. Compte tenu des résistances disponibles, on passe à R=130 kΩ. Le code est ici. La breadboard est réarrangée pour permettre de circuler facilement autour des 5 phototransistors. Lors d'un passage de la main au-dessus des phototransistors on obtient :

Le passage de la main dure environ une demi-seconde, sur une distance de 10 cm. Si on revient au problème de chute libre :

  • hauteur : $h=1~{\rm m}$
  • temps de chute : $t = \sqrt{\frac{2h}{g}} = 0,45~{\rm s}$.
  • longueur du projectile $L \approx 5~{\rm mm}$. Au passage devant la première paire LED/phototransistor à 2 cm de chute, $v_0 = v_{\rm min} = \sqrt{2g\times 0,02}= 0,63~{\rm m.s^{-1}}$, soit le premier temps d'occultation $\Delta t_{\rm max} = L/v_{\rm min} = 79~{\rm ms}$. A sa vitesse maximale $v_4 = v_{\rm max}=\sqrt{2gh}=4,4~{\rm m.s^{-1}}$, le dernier temps d'occulation est $\Delta t_{\rm min} = L/v_{\rm max} = 0,01~{\rm s}= 10~\rm{ms}$.

C'est court pour $\Delta t_\rm{min} $ pour lequel on risque de ne pas avoir assez de résolution, mais pour le reste on est dans les bons ordres de grandeur ! 8-)

A posteriori : le commentaire ci-dessus est optimiste. Sur un chronométrage quelconque, on regarde l'intervalle entre deux mesures :

awk 'BEGIN { t0=0 ; } // { t1=$1 ; print d=t1-t0 ; t0 = t1; i++ ; ds=ds+d; }END{print "moyenne: ",ds/i;} ' donnees.dat

On obtient 31 ms environ. Cela signifie qu'il faut “rallonger” les projectiles: 5mm ce n'est pas suffisant. Ou alors, on change le baudrate dans le programme, et on peut gagner : avec 38400 bauds, on passe à 8 ms en moyenne. En passant à 115200 bauds, et en optimisant loop (plus de conversions → Volts), on tombe à 2,5 ms. Ca devient franchement bon !

Astuce en passant

Aussi bizarre que cela puisse sembler, ce n'est pas souvent que l'on visualise plusieurs acquisitions de données Arduino en même temps (habituellement une seule, et le plotter intégrer à l'IDE fait le job, ou copier-coller de la console série). J'ai déjà fait, il y a longtemps, mais je ne me souviens plus (sans doute en lisant Making Things Talks de Tom Igoe) : oh, lecteur ! d'où l'importance du wiki.

J'espérais pouvoir faire simplement un truc “à la Linux” du genre :

tail -f /dev/cu.usbmodemXXXX > ~/tmp/arduino.log

Mais pour une raison que je n'ai pas très envie de chercher, ça ne marche pas (d'ailleurs, TX ne s'allume même pas). En revanche :

screen -L /dev/tty.usbXXXXX 9600

qui spécifie le baudrate fonctionne.

Plus d'infos chez Hex705. Si vous n'utilisez ni Linux, ni un BSD (comme Mac OS X), pauvres utilisateurs Windows, utilisez HyperTerminal, ou PuTTY. Si vous avez de la curiosité (et du temps !), le tutoriel Serial Terminal Basics sur Sparkfun a l'air assez complet.

PS : en fait, cat fait le job aussi !

PPS : si vous n'êtes pas habitué d'Unix, screen peut être déroutant. Surtout si vous pratiquez des aller-retour avec l'IDE Arduino, vous allez au devant de problèmes : screen ne libère pas le port série, donc si vous uploadez, ou sollicitez le moniteur série pendant que screen tourne, ça bloque. Et tuer (man kill) un process screen qui tourne, ça ne marche pas en fermant la fenêtre, car il est fait précisément pour ça. Botte secrète :

 fuser /dev/cu.usbmodem1411 

vous retournera le numéro du process screen à tuer.

<note warning> Avec screen et 115200 bauds, les fichiers deviennent vite à un peu lourds à éditer ! Penser à tail et head pour tronquer et supprimer les lignes incomplètes, plutôt qu'un éditeur. </note>

Final Rush

Il reste à :

  • percer les tubes métalliques.
  • faire des câbles longs d'environ de longueur comprises entre 50 cm et 1m50, pour relier breadboard/Arduino aux paires LED/phototransistor. On a 5 phototransistors, donc 4 intervalles. Si on prend un retrait de 2cm à chaque extrémité, la longueur du tube est de 96 cm, soit des intervalles de 96/4 = 24 cm. Pour chaque longueur, on a 4 fils à préparer et sertir. Longueurs : 50cm, 75cm, 100cm, 125cm, 150 cm. Ou alors on prépare un seul fil de chaque longueur pour les émetteurs des phototransistors, et tout le reste c'est un Vcc commun, et une masse.
  • trouver 5 LED blanches !

Mise en oeuvre

Perçages

Le percage des trous dans les tubes metalliques est sans problème. En revanche, il faut bien les poncer à l'extérieur pour monter les porte-LED/SFH300, et bien poncer l'intérieur pour ne pas bloquer le projectile : c'est assez délicat, et une Dremel ne permet pas de limer facilement le cuivre à travers un trou de 3 mm… Au final, même une vis fraisée dont la tête est de 9mm de diamètre se bloque facilement.

Portes LED/SFH300

L'équilibre est précaire : le tube pour engager les composants est à la fois trop court et un peu lâche : résultat il faut utiliser massivement de la patafix pour faire tenir les composants sur les pièces imprimées en 3D… Moche.

Câblage et autres détails

Le câblage est pénible : on prépare des fils de bonne longueur, mais le sertissage de connecteurs est impossible. Notre stock au Fab Lab comprend bien les éléments nécessaires (pattes métalliques et manchon plastique)… Mais dans des formats incompatibles ! Résultat : on réutilise des jumpers femelle-femelle.

On a opté pour un fil VCC par paire LED/SFH300, c'est une erreur, car cela fait finalement beaucoup de fils. Il aurait mieux valu un VCC commun d'un bout à l'autre, et multiplier les dérivations et soudures.

Au final le montage reste fragile pour une expérimentation par des enfants/ados : tout se débranche tout le temps… et on n'a pas pensé à la façon de faire tenir le tube droit ! C'est d'autant plus délicat en phase d'essais, quand des projectiles trop volumineux se bloquent et qu'il faut tout secouer pour les faire ressortir…

Projectiles

Il n'est pas si facile de trouver un objet dense, occultant, de petit diamètre : les vis ne sont pas assez larges pour occulter les faisceaux… Des chevilles en nylon restent bloquées.

Est-ce qu'imprimer des petits cylindres de densité réglable serait une solution ?

Résultats

Tube : aluminium. Projectile : ensemble vis+cheville.

On distingue : sur la courbe noire (A0, première paire LED/SFH300) la préparation de l'expérience avec des variations nombreuses de luminosité, sur la courbe orange (A4, dernière paire) le rebond du projectile.

A droite, les 5 points de mesure, et un ajustement quadratique. On peut commencer à réfléchir à la précision des mesures, et à la reproductibilité.

Toujours dans le tube d'aluminium, la chute d'un train d'aimants (en rouge à droite), et la comparaison avec la vis :

Aimants utilisés : référence S-03-06-N de 3mm de diamètre, 6mm de long, magnétisation N48 de chez SuperMagnete.

Enfin, dans le tube de cuivre, la chute de vis et des aimants à gauche. On voit bien aussi l'allongement du temps d'occultation :

On constate aussi une reproductibilité assez correcte. A droite, on observe que le ralentissement est encore plus important dans le tube de cuivre, meilleur conducteur.

Conclusions

Il faudrait décaler la première paire LED/SFH300 : en effet, à 2cm de l'ouverture, la vitesse est presque nulle, certes, mais il est délicat de déterminer l'instant initial. Il faudrait ajouter un dispositif de libération du projectile, qui donnerait un signal… L'imprécision sur l'instant initial oblige à un recalage source d'imprécision. Et le largage manuel est sujet à variations…

Il faudrait ajouter un support pour l'ensemble du dispositif, qui surélèverait le tube, permettant au projectile de déboucher sans rebondir.

J'ai depuis dégoté un livre de Willem van Dreumel chez Elektor, qui commercialise un kit de composants pour réaliser “36 expériences de physique” (extraits en PDF).

Mais ce n'est pas un livre de physique (concepts vite expédiés et trop approximatif), ni un bon livre d'électronique pour le débutant (l'auteur passe trop abruptement de “utilisons un Arduino” à “je vous le fais avec un AT Tiny, c'est pareil”). En revanche, je le recommande aux enseignants qui y trouveront quelques idées intéressantes du même tonneau.

wiki/divers/chrono-chute.txt · Dernière modification: 2022/06/09 18:02 de