Vérification de la loi des gaz parfaits
Étudiants en CMI Physique (groupe A3)
Dans le cadre de l’UE FabLab (LU1SXPFL), nous devions réaliser un instrument de mesure. Nous nous sommes intéressés à la réalisation d’un outil permettant de vérifier la loi des gaz parfaits (PV = nRT), une relation bien connue depuis le lycée qu’on applique régulièrement sans vraiment se poser de questions. Nous devions donc trouver un moyen de vérifier la conservation du rapport existant entre la pression et la température ; nous nous sommes pour cela mis d’accord de concevoir une boîte adiabatique à volume constant et à quantité de matière supposée constante, comprenant un système de mesures et dont on peut chauffer l’intérieur dans le but de vérifier la relation.
Nous vous invitons à consulter ce journal de bord, mené au fur et à mesure de la réalisation de notre projet, détaillant la totalité de nos idées, manipulations, problèmes survenus, etc.
Découverte de l'UE
Nous avons découvert cette nouvelle UE et avons commencé à réfléchir à des idées de projets à réaliser. Nous pensions au début à réaliser un outil mesurant la vitesse entre deux positions, puis un outil mesurant la vitesse grâce à un accéléromètre mais ces outils nous semblent finalement trop simples. Nous sommes encore hésitants mais nous avons un penchant pour la conception d'un altimètre, un instrument de mesure permettant de mesurer l'altitude ou la distance verticale entre un point et une surface de référence. Nous devons encore nous renseigner davantage sur le fonctionnement de cet outil de mesure.
Découverte des logiciels Inkscape et FreeCAD
Durant le week-end, nous avons commencé à prendre en main les logiciels Inkscape (pour le dessin vectoriel en 2D) et FreeCAD (pour les modélisations en 3D).
Inkscape :
https://inkscape.org/
FreeCAD :
https://www.freecadweb.org/?lang=fr
Découverte des logiciels Inkscape et FreeCAD
Durant la séance, nous avons poursuivi notre découverte des deux logiciels. Nous avons commencé par réaliser une première forme en 3D dans FreeCAD. Nous avons dû réaliser un cube de 5 mm de côté, dont chacune des faces soit être percée par un trou de 1 mm de rayon. Nous avons eu un peu de mal au début à prendre le logiciel en main mais grâce à un tutoriel sur YouTube, nous y sommes finalement parvenus. Pour ce faire, nous avons commencé par créer une esquisse de taille 5 mm par 5 mm. Nous avons ensuite utilisé l'outil “Protusion” pour ajouter une dimension à notre esquisse et se retrouver avec un cube. Nous nous sommes ensuite ramenés par chacune des dimensions à un plan, dans lequel nous avons réalisé des cercles et nous avons finalement utilisé l'outil “Perçage” pour percer chacune des dimensions grâce aux formes de cercles établies plus tôt.
Dans un second temps, nous avons réalisé une forme en 2D sur le logiciel Inkscape. Nous avons dû réaliser un carré de 50 mm de côté, avec un cercle de 2 mm de rayon à chacun des quatre coins du carré. Chaque cercle doit se situer à 1 mm du bord du carré. Nous avons simplement tracé un carré de 50 mm de côté, grâce à l'outil “Créer des rectangles et des carrés”. Nous avons par la suite réalisé quatre cercles, grâce à l'outil “Créer des cercles”. Ensuite, en utilisant l'outil “Editer les noeuds et les poignées de contrôle d'un chemin”, nous avons pu sélectionner chaque rond avec la forme de carré et, en se rendant dans “Chemin” > “Division”, nous avons pu percer le carré avec les formes de cercles. Finalement, nous avons appliqué au tout un contour rouge de largeur 0,5 mm.
Nous avons par la suite, toujours durant la deuxième séance, continué à réfléchir en groupe sur notre projet. Nous voulions initialement rester sur notre idée d’altimètre mais après des recherches, on s’est vite rendu compte que la seule manière d’y parvenir était de récupérer la pression puis d’utiliser une relation liant pression et altitude. Nous avons essayé de trouver une manière de déterminer la pression en cherchant du côté de la relation des gaz parfaits. Mais nous avons été freinés par le volume et la quantité de matière qui étaient trop compliqués à exploiter pour en tirer une pression. Dans l’incapacité de créer par nous-même un capteur de pression, il est donc indispensable d’en utiliser un pré-fait ; ce qui rend la tâche bien trop simple pour notre projet. Nous devions donc changer d’idée. Lorsque nous étions encore axés sur l’altimètre, nous évoquions la relation des gaz parfaits. Une autre idée intéressante de projet serait donc un dispositif qui vérifie cette loi. On peut mesurer différents couples pression-température et voir si on retombe bien sur le volume molaire.
Découverte de la découpeuse laser et l'imprimante 3D
Vendredi après-midi, nous nous sommes rendus au FabLab pour imprimer/découper les visuels que nous avons réalisés mardi en cours. Grâce à l'aide d'un étudiant qui tenait le FabLab, nous avons pu découvrir en détail le fonctionnement de la découpeuse laser ainsi que de l'imprimante 3D.
Du côté de la découpeuse laser, nous avons tout d'abord appris à effectuer une impression depuis Inkscape grâce au logiciel dédié de la découpeuse laser. On a pu nous-même calibrer avec précision la tête de la découpeuse en hauteur mais aussi bien la positionner par rapport aux plaques de bois. On a vu comment manipuler la découpeuse avec précaution, surveiller le déroulement de la découpe, les manipulations à respecter…
Nous avons réalisé deux découpes de la même forme aux bonnes dimensions, telles qu'initialisées dans Inkscape. La première (que l'on peut voir sur la partie droite de l'image ci-contre) a été faite en découpant une plaque de contre plaqué de 3 mm d'épaisseur. Néanmoins, la plaque était initialement légèrement courbée ce qui a fait que les quatre trous aux extrémités du carré (découpés après la forme rectangulaire principale) ont mal été découpés et se sont retrouvés à moitié à l'extérieur de la forme, comme on peut le voir sur les photos. Nous avons donc retenté l'impression en découpant une seconde plaque (que l'on peut voir sur la partie gauche de l'image) de bois MDF de 5 mm d'épaisseur, complètement plate cette-fois. Le rendu est nettement meilleur.
Dans un second temps, nous nous sommes intéressés à l'impression 3D de notre cube. Nous avons commencé par exporter notre objet de FreeCAD dans l'extension “.stl”. Nous l'avons ensuite ouvert dans le logiciel ideaMaker (le logiciel relié à l'imprimante 3D) où nous aurions pu, si besoin, changer l'inclinaison et la taille de notre objet. Nous avons conservé les dimensions initiales de 5 mm x 5 mm. Nous avons par la suite sélectionné les réglages d'impression, notamment le remplissage à l'intérieur de notre objet, la précision de l'impression, la présence ou non d'une base, etc., de nombreux paramètres qui influencent la durée d'impression. Finalement, nous avons exporté l'objet sur une clé USB que nous avons branchés sur l'une des imprimantes 3D du FabLab. Une fois celle-ci allumée et prête, nous avons démarré l'impression qui fut relativement rapide, ayant duré moins de 4 minutes. Nous nous sommes rendu compte durant l'impression que les dimensions imposées étaient vraiment petites. En effet, le rendu aurait sûrement été meilleur en choisissant des dimensions plus importantes. Quoi qu'il en soit, le rendu est tout de même très correct pour une telle taille d'impression ; les détails, notamment les trous à l'intérieur, restent très bons, comme on peut le voir sur les photos ci-contre.
Initiation à l'Arduino
Lors du cours du mardi 8 février, nous avons commencé à toucher aux Arduino. Nous avons découvert le kit contenant de nombreuses choses, notamment un Arduino Nano, de nombreux capteurs (tactile, à ultrasons, infrarouge, de luminosité, de température…), des modules d'affichage, des DEL, etc.
Dans un premier temps, après avoir branché l'Arduino en USB à l'ordinateur, nous avons réalisé un circuit relativement simple. Nous avons simplement relié la tension sortante de l'Arduino (de 5 V) à une ligne d'une plaque de prototypage et la terre à une autre ligne. Nous avons ensuite branché en série une DEL bleue avec une résistance de 330 Ω. Sans surprise, elle s'allume.
Dans un second temps, nous avons un peu enrichi notre circuit. Nous avons ajouté une seconde DEL (une DEL de couleur rouge) et nous souhaitons faire clignoter les deux DEL en utilisant l'Arduino. Pour ce faire, nous avons d'abord téléchargé le logiciel Arduino IDE. Nous nous sommes ensuite mis à la recherche d'un code permettant de réaliser le clignotement des DEL. Nous en avons rapidement trouvé un qui correspondait parfaitement à nos attentes (voir la source). Nous l'avons donc copié dans le logiciel de l'Arduino et avons modifié le circuit en conséquence. Nous avons placé la terre sur l'entrée “GND” de l'Arduino et la tension positive sur “2”. Nous obtenons finalement le résultat souhaité ; les deux LED clignotent correctement (allumées pendant 0,5 seconde et éteintes pendant 0,5 seconde) à l'infini.
Arduino IDE :
https://www.arduino.cc/en/software
Ensuite, nous voulions tester un autre système. Nous voulions essayer l'afficheur de chiffre, à 1 caractère. Nous avons de nouveau procédé à quelques recherches sur internet jusqu'à trouver une page expliquant comment l'utiliser (voir la source). Néanmoins, après de nombreuses tentatives, cela n'a pas fonctionné. Nous avons donc poursuivi nos recherches jusqu'à tomber sur une page du site officiel d'Arduino qui présentait un code et son montage électrique (voir la source). Nous avons donc utilisé le code fourni et branché tous les câbles. L'une des terminaisons de l'afficheur est branchée à la terre, tandis que presque toutes les autres terminaisons sont reliées à l'Arduino (voir la photo ci-contre). Cette fois-ci, après plusieurs essais en raison d'un problème dans le code d'abord, et de branchement ensuite, tout a bien fonctionné et nous avons pu voir sur l'afficheur une suite de chiffres défiler (de 0 à 9).
Finalement, durant la dernière demi-heure du cours, nous avons tenté de nous pencher sur le capteur de température. Nous voulions essayer de récupérer une valeur de température pour l'afficher sur notre afficheur (du moins afficher le dernier chiffre de cette valeur par exemple). Néanmoins, malgré une page internet assez précise (voir la source), nous ne sommes pas parvenus à le faire fonctionner. Nous aurions éventuellement pu se documenter davantage pour régler le problème si nous n’avions pas été limités par le temps.
Réflexion sur notre projet
Au cours de cette quatrième séance, nous nous sommes pleinement consacrés à la réflexion concernant notre projet. Après quelques instants de réflexion, nous avons finalement validé notre idée de projet : celle de réaliser un outil permettant, grâce à des mesures, de vérifier la relation des gaz parfaits. Celle-ci se présenterait de la manière suivante : nous aimerions concevoir une boîte adiabatique, isolée thermiquement donc, contenant un système de mesures de températures et de pressions. La boîte, à volume constant et supposée complétement isolée de l’environnement extérieur, aurait donc un volume et une quantité de matière constante. Ajouté à la constante des gaz parfaits, il nous suffira juste de recueillir différents couples volume-pression, de déduire pour chacun d’entre eux le volume molaire et de finalement comparer ces derniers (devant théoriquement être égaux).
Pour pouvoir aisément obtenir différents couples volume-pression, il nous paraît envisageable de mettre en place, à l’intérieur de la boîte, un système chauffant permettant de faire varier la température (et donc la pression) dans l’environnement d’étude (l’intérieur de la boîte). Pour ce faire, nous avons étudié différents systèmes, à savoir l’effet Peltier (que nous avons vite éliminé car il produit certes de la chaleur mais également du froid), l’ajout de grosses résistances et enfin l’utilisation de fil de cuivre. Pour des raisons pratiques, nous avons sélectionné l’option du fil de cuivre ; facilement enroulable (donc permettant un gain de place) et allongeable (pour facilement augmenter la valeur de la résistance, donc l’effet Joule).
Nous voulions avoir une idée numérique de la variation de température générée grâce à l’utilisation de telle ou telle intensité/tension mais nous avons vite été freinés par la difficulté des calculs, bien trop complexes et prenant en compte trop de facteurs. Après discussion avec notre professeur, nous avons finalement pris l’initiative de se charger expérimentalement (lors de la mise en place du projet) du choix de la longueur de fil nécessaire ainsi que du courant et de la tension, avec un courant qui sera bien sûr variable de sorte à obtenir une température plus ou moins élevée. Ainsi, nous ne définirons pas une température à atteindre mais nous atteindrons une température « aléatoire » que nous mesurerons par la suite.
En parallèle du système chauffant (sûrement alimenté par un générateur extérieur sur secteur), nous mettrons en place un circuit composé d’un Arduino Uno (si possible alimenté par une batterie), de capteurs de pression et de température, et d’un écran affichant la pression, la température et le volume molaire (si possible visible de l’extérieur de la boîte).
Nous avons ensuite commencé à réfléchir au matériau principal qui composera notre boîte, un matériau devant être un bon isolant thermique. Nous avons pensé au bois qui isole assez bien, est léger, peu coûteux et même plutôt esthétique. Nous ne nous sommes cependant pas attardés plus que ça sur la boîte en elle-même (pour le moment) pour une raison assez simple. Nous évoquions précédemment le gain de place – la boîte devra être la plus petite possible afin que l’intérieur soit le plus simple possible à chauffer –, donc nous devrons optimiser un maximum sa taille. Cependant, ne connaissant pas encore exactement le remplissage interne du système, il nous est impossible pour le moment d’estimer la taille de la boîte.
Réalisation du projet : capteur de température
Ayant bien avancé sur le principe de notre projet, nous voulions commencer la réalisation. Nous avons premièrement souhaité reprendre notre expérience non aboutie de la semaine dernière, à savoir la mesure de la température. Nous avons néanmoins grandement réduit le circuit en supprimant complètement, pour le moment, l’écran d’affichage. Nous avions donc seulement le capteur de température relié à l’Arduino (via une plaque de prototypage), avec la valeur de la température devant s’afficher dans le moniteur du logiciel Arduino IDE. Nous avons commencé avec un premier montage trouvé sur le site officiel d'Arduino (voir la source) présentant le fonctionnement pour un thermomètre de type DS18B20, que nous possédons au FabLab. Néanmoins, après le montage réalisé (nous n’avons malheureusement pas pensé à prendre une photo de ce montage) et le code téléchargé, nous avons rencontré une erreur systématique : la température affichée était tout le temps de -127 degrés Celsius. Cette valeur ne bougeait jamais, même quand on débranchait tous les fils, et inutile de préciser pourquoi celle-ci est absurde. D’après les commentaires sous le projet, pour ce problème précis (visiblement fréquemment rencontré), il était conseillé d’essayer un autre montage présenté sur un autre site (voir la source). Il s’agissait d’un montage assez similaire (si ce n’est identique même) que nous avons réalisé mais ne réglant pas le problème…
Grâce à l’initiative de notre professeur, nous décidons ensuite de changer le thermomètre par un autre présent au FabLab, de référence LM35. Nous partons à la recherche d’un autre montage (voir la source) qui sera cette fois-ci davantage concluant. Il s’agit du circuit ci-contre. Non seulement ce circuit est bien plus simple que le premier (moins de fils et pas de résistance), mais celui-ci nous affiche (grâce au code fourni) une valeur variable (pas comme la constante que nous avions précédemment) et plausible (22 et quelques degrés Celsius, soit une température ambiante d’une pièce). Seul bémol : lorsque nous recouvrons le capteur avec un doigt (pour augmenter sa température), nous montons presque instantanément à 100 et quelques degrés. Après lecture rapide du code, nous supposons que le problème doit provenir de la ligne 12 ; il y a une sorte d’initialisation d’une variable, nommée « mv », servant probablement de calibration du capteur. Ces valeurs sont certainement fausses.
Malheureusement, la séance touche à sa fin et nous n’aurons pas le temps d’approfondir ce sujet aujourd’hui, bien que nous nous y consacrerons la prochaine fois.
Réalisation du projet : capteur de température
Nous revoilà le mardi 22 février pour la suite de la réalisation de notre projet. Nous avons dans un premier temps repris là où nous nous étions arrêtés la dernière fois. Pour rappel, nous tentions de réaliser une mesure de la température grâce au capteur LM35, présent au FabLab. Néanmoins, si la valeur affichée en sortie (dans la console du logiciel) était plausible, lorsque nous recouvrions le capteur avec un doigt (pour augmenter sa température), nous montions presque instantanément à 100 et quelques degrés. Nous pensions que le problème provenait d’un souci de calibrage du capteur dans le code utilisé. Nous étions donc partis aujourd’hui dans l’optique de régler ce problème mais en rebranchant le tout et en exécutant le programme, tout fonctionnait cette fois-ci très bien. La température affichée était initialement de 21 et quelques degrés puis en couvrant le capteur avec un doigt, nous sommes montés jusqu’à environ 30 degrés en un peu moins d’une minute. En retirant le doigt, la température redescendait progressivement à 21 degrés. Tout paraît donc parfaitement cohérent. On en déduit donc que le problème de la dernière fois ne provenait pas d’une erreur de code mais plutôt d’un capteur probablement défectueux.
Réalisation du projet : afficheur LCD
Maintenant qu’on a une valeur de température correcte, nous souhaitons l’afficher. Et pour ça, quoi de mieux qu’utiliser un afficheur LCD. Nous partons donc à la recherche d’un code et d’un montage utilisable. Nous avons pas mal de mal à trouver une solution qui fonctionne (trois montages différents réalisés mais aucun de marche). Nous trouvons finalement une vidéo décrivant assez bien le procédé (voir la source). Après avoir réalisé le montage décrit (en parallèle de notre montage réalisé plus tôt pour mesurer la température), nous arrivons bien à faire fonctionner l’afficheur.
Nous souhaitons à présent afficher sur l’afficheur LCD notre température mesurée plus tôt. Nous réalisons quelques modifications dans le code et nous pouvons facilement arriver au résultat attendu. On peut voir que cela fonctionne parfaitement. L’afficheur LCD se met à jour en permanence.
Réalisation du projet : capteur de pression
Une autre fonctionnalité à implémenter impérativement dans notre système est un capteur de pression (essentiel pour la vérification de la loi des gaz parfaits). Nous parvenons à nous procurer un capteur de pression barométrique, de référence BMP180 GY-68. Nous réalisons le montage proposé sur un site (voir la source) et nous y récupérons le code. Néanmoins, nous rencontrons un problème avec celui-ci. Il semble avoir besoin de l’altitude et de la température pour déterminer la pression… Nous n’aurons malheureusement pas le temps d’approfondir le sujet. Nous reprendrons ça lors des prochaines séances.
Réalisation du projet : capteur de température
De retour après deux semaines pour la suite de la réalisation du projet. Nous avons tout d’abord souhaité refaire fonctionner notre montage de la dernière fois. Néanmoins, suite à un problème surprenant survenu, nous n’avons pas réussi à retrouver notre température réelle obtenue auparavant. Nous avons donc passé près de deux heures à tenter de retrouver une mesure de températures fonctionnelle, en essayant un capteur de température LM35 ainsi qu’un TMP37. En suivant différents montages, différents codes et différentes calibrations (voir montage 1, montage 2, montage 3 et montage 4). Dans tous les cas, nous avons systématiquement une température trop importante (de 36/37 degrés en moyenne) qui monte à des valeurs incohérentes (50/70/100 degrés Celsius) en un rien de temps, en touchant à peine le capteur avec un doigt.
Nous ignorons la provenance de ce problème mais nous comptons l’analyser plus en détail au cours de la prochaine séance, lorsque nous aurons accès à un thermomètre dans la salle afin de connaître la vraie valeur de la température et de pouvoir faire une calibration correcte du capteur de température. Nous reprendrons aussi à ce moment-là la réalisation du capteur de pression.
Réalisation du projet : réalisation du système chauffant
Nous avons en parallèle commencé à nous charger de l’élaboration du système permettant le chauffage de notre boîte. Pour ce faire, nous utiliserons une bobine de cuivre dans laquelle nous ferons passer un courant, suffisant important pour la faire chauffer. Nous avons choisi un fil de cuivre plutôt épais et avons coupé une longueur d’un mètre.
Nous avons d'ores et déjà testé le principe avec deux sources de courant différentes : la première, délivrant maximum 1 A, mais qui ne chauffait presque pas la bobine ; la deuxième, délivrant un courant de maximum 20 A, chauffant cette fois-ci assez bien (et rapidement) notre fil de cuivre. C’est donc le deuxième générateur qu’on retiendra pour la suite.
Ainsi, nous avons fait chauffer un fil simple, dont nous n'avions pas changé la forme. Pour ce faire, nous avons connecté le fil de cuivre à un générateur de courant délivrant un courant maximal de 20 A, ce qui est très élevé. Nous avons augmenté le courant progressivement lors de nos tests et sommes très rarement arrivés au niveau de ce courant limite car ce n'était pas souvent nécessaire et un courant très élevé est dangereux. Ce premier test n'était donc pas concluant car le fil ne chauffait rien du fait qu'il était droit et ne chauffait pas du tout les alentours.
Nous réaliserons dans les prochaines semaines d’autres expériences afin de concevoir une bobine chauffant suffisamment l’intérieur de la boîte.
Réalisation du projet : réalisation de la boîte contenant notre dispositif
Nous avons finalement un peu discuté de l’élaboration de notre boîte qui accueillera notre dispositif. Conformément à ce que nous pensions il y a quelques semaines, cette boîte (devant être adiabatique, donc isolée thermiquement) sera probablement réalisée en bois. Elle devra comporter l’Arduino, la carte de prototypage ainsi que tous les composants électroniques nécessaires, et la bobine de cuivre. Un afficheur LCD sera visible depuis l’extérieur de la boîte. En termes de dimensions, nous partirons donc sur 20 cm de longueur (afin de pouvoir correctement faire entrer la carte de prototypage), 15 cm de profondeur et la hauteur reste encore à définir, bien que celle-ci ne doive pas être trop grande (plus la boîte est grande et plus elle sera compliquée à chauffer). Les planches de bois formant la boîte devraient être de 1 cm d’épaisseur environ, afin que la boîte soit solide et la plus adiabatique possible.
Réalisation du projet : capteur de température
De retour au problème qui nous occupait lors de la dernière séance : le capteur de température. Pour rappel, notre température mesurée ne faisait que bouger et était bien trop importante, malgré l’essai de plusieurs montages et de plusieurs capteurs de température. Nous sommes donc retournés à un circuit basique avec juste le capteur de température (un classique LM35) et l’Arduino, avec un autre Arduino Uno. Et là, tout fonctionnait parfaitement ! On déplace alors l’écran LCD et pareil, ça marche. Le problème est enfin réglé ; il s’agissait bêtement d’un problème du côté de l’Arduino…
Réalisation du projet : capteur de pression
Cela étant fait, nous nous attaquons à l’installation du capteur de pression. Comme la dernière fois que nous avons tenté d’obtenir la pression, nous nous procurons un capteur de pression barométrique de référence BMP180 GY-68. Nous réalisons un montage proposé sur un site trouvé (voir la source) et nous y récupérons le code. Néanmoins, nous rencontrons un problème avec celui-ci. Pour une raison que nous ignorons, nous n’arrivons pas à faire la relation entre l’Arduino et le capteur. Nous avons tenté de nombreuses choses mais cela ne marche toujours pas. Nous avons même fait appel à plusieurs professeurs mais rien… Nous retenterons la prochaine fois avec un autre capteur d’une autre référence, commandé entre temps.
Réalisation du projet : réalisation du système chauffant
Nous avons réitéré l’expérience de la dernière fois et en avons cette fois en plus conclu que le fait d’enrouler le fil de cuivre (plutôt que de le laisser en ligne droite) permettait la production et le dégagement de davantage de chaleur. Cependant, le fil étant beaucoup trop petit pour chauffer suffisamment ses alentours, cela ne fonctionne pas correctement pour notre boîte. Nous devrons donc utiliser une bobine plus longue.
Réalisation du projet : réalisation de la boîte contenant notre dispositif
Nous avons finalement pris un peu de temps pour avancer sur l’élaboration de notre boîte. Suite aux conseils d’un professeur chargé de la découpe laser, nous avons renoncé au bois comme matériau constituant notre boîte, en faveur de plexiglas (plus adiabatique semblerait-il). Nous réaliserons ainsi une boîte de 21 (20 + 1) cm de long, 16 (15 + 1) cm de profondeur et 11 (10 + 1) cm de hauteur, en prenant pour chaque dimension 1 cm de marge pour l’assemblage. Nous réaliserons la découpe à la découpeuse laser et nous en profiterons pour faire certaines découpes précises dans les parois, pour laisser passer certaines connectiques (le port USB de l’Arduino, les connexions pour les câbles alimentant la bobine) et l’écran LED de l’Arduino (affichant les informations de température et de pression).
Nous nous sommes rendus au FabLab en dehors des cours pour poursuivre l’élaboration de notre dispositif.
Réalisation du projet : capteur de pression
Nous avons repris le montage de la dernière fois en changeant simplement le capteur de pression. Nous avons essayé avec un autre capteur BMP180 à 4 terminaisons, contrairement à l’autre qui en avait 5. Et cette fois-ci, cela fonctionne parfaitement !
Nous avons donc intégré le code dédié au capteur de pression, à notre code initial contenant le reste. Cependant, le capteur de pression comprend également un capteur de température. Nous avons donc deux valeurs de température différentes. Après quelques tests, les deux capteurs de température renvoient des valeurs de températures assez similaires. On décide donc de garder ces deux valeurs et de pendre leur moyenne pour plus de fiabilité.
Réalisation du projet : réalisation de la boîte contenant notre dispositif
Nous nous sommes également renseignés plus précisément sur les matériaux à disposition pour la boîte. Nous avons trouvé des planches de plexiglas qui pourront sûrement satisfaire nos besoins. Elles font 60 cm de long, 30 cm de large et 0,5 cm d’épaisseur. Nous réaliserons donc les fichiers pour la prochaine séance afin de pouvoir débuter la découpe des parois de la boîte.
Réalisation du projet : réalisation de la boîte contenant notre dispositif
Durant cette avant-dernière séance, nous nous sommes uniquement occupés de la réalisation de la boîte. Après avoir fignolé nos visuels pour la découpeuse laser, nous avons débuté la découpe. Nous avons au début rencontré un problème : la découpeuse laser ne reconnaissait pas le rouge de la découpe, ce qui avait pour conséquence de ne rien faire du tout sur la plaque. Après avoir épaissi davantage les contours, nous sommes enfin passés à la vraie impression. Nous avons jusqu’ici conçu la base (A) qui correspond à la face inférieure de la boîte, la face avant (C), la face arrière (B) et les faces latérales (D). Nous nous occuperons la prochaine fois de concevoir la face supérieure de la boîte et nous imprimerons la face avant (C) car nous avons mal placé les deux embouts de l’Arduino, conformément à la paroi de droite.
Nous nous sommes rendus au FabLab en dehors des cours pour poursuivre l’élaboration de notre boîte.
Réalisation du projet : réalisation de la boîte contenant notre dispositif
Nous nous sommes occupés de découper les quelques parois que nous devions encore réaliser. Nous pourrons donc enfin nous attaquer dès la prochaine séance à l’assemblage de la boîte.
Nous nous retrouvons pour notre dernière vraie séance de FabLab avant les soutenances orales. Cette séance est donc plus que cruciale car nous prévoyons d’intégralement finir notre boîte ce jour (boîte + système électronique).
Réalisation du projet : réalisation de la boîte contenant notre dispositif
Nous commençons sans plus tarder à s’intéresser à l’assemblage de la boîte. Nous installons tout d’abord l’écran sur la paroi ; il rentre parfaitement grâce aux trous réalisés à l’aide de la découpeuse laser. Il est fixé à l’aide de vis et d’écrous.
N’ayant pas eu le temps de réaliser des encoches sur les plaques (afin de faciliter leur emboîtement), nous cherchons ensuite à coller nos plaques entre elles. Après le conseil de trois professeurs, nous suivons l’un d’entre eux qui a la grande gentillesse de nous emmener dans une salle afin de s’occuper du collage de nos plaques. L’opération est réalisée grâce à une colle polymérisable transparente adaptée au collage de plaques de PMMA (la matière de nos plaques, couramment appelée plexiglas). Cette colle est cependant assez toxique et dangereuse, elle nécessite d’être manipulée avec protections en utilisant des gants et dans une salle spéciale équipée d’une hotte et de systèmes d’aération poussés.
Réalisation du projet : exploitation des valeurs trouvées
En parallèle de l’assemblage de la boîte, nous travaillons sur l’exploitation des grandeurs mesurées grâce au dispositif (la pression et la température) afin de montrer le fonctionnement de la relation des gaz parfaits. Après plusieurs idées et différentes discussions avec notre professeur, nous arrivons à l’idée suivante. Nous mesurons la pression et la température, donc nous disposons de ces deux valeurs. Nous pouvons dans un premier temps utiliser la pression mesurée et s’en servir pour obtenir par le calcul la valeur de la température, grâce à la relation T,calculée = (P,réelle * V) / (n * R), avec P la pression mesurée, V le volume de la boîte, n la quantité de matière et R la constante universelle des gaz parfaits.
Pour l’application numérique, nous utilisons la pression mesurée par le capteur (variant donc en fonction de la température), le volume étant constant (estimé à L*l*h, soit 18,9 cm * 14,8 cm * 9,1 cm, soit V = 0,0025 m3) et la constante universelle des gaz parfaits (approximée à R = 8,314 J/(MK)). En ce qui concerne la quantité de matière, nous n’avons d’autres choix que de réaliser un calibrage à un instant initial, à température et pression ambiante ; il serait en effet trop compliqué de trouver cette valeur différemment. Nous sommes donc contraints d’utiliser initialement la relation des gaz parfaits pour notre dispositif. Nous calculons cette valeur grâce à l’équation n = (P,init * V) / (R * T,init), avec par exemple P,init = 1005 hPa = 100500 Pa et T,init = 24 °C = 297,15 K. On obtient dans ce cas n = 0,1 mol.
Nous pouvons ensuite comparer la valeur de température déterminée analytiquement avec celle mesurée en faisant la moyenne des valeurs renvoyées par les deux capteurs de température (le LM35 et le capteur de pression BMP180 mesurant aussi la température). Pour ce faire, nous pouvons voir si la valeur mesurée T,réelle (la vrai valeur de température mesurée) est comprise dans l’intervalle [T,calculée – δT,calculée ; T,calculée + δT,calculée] avec T,calculée la valeur de température calculée grâce à la méthode décrite plus tôt et δT,calculée l’incertitude absolue de la valeur de température calculée.
Concernant les incertitudes, relevons les différentes incertitudes possibles à prendre en compte lors de notre calcul de la température (et donc de la quantité de matière) :
Pour revenir à l’exploitation des grandeurs mesurées, nous réalisons donc un code vérifiant si la valeur mesurée T,réelle est bien comprise dans l’intervalle [T,calculée – δT,calculée ; T,calculée + δT,calculée]. Si tel est le cas, l’écran du dispositif affiche « PV=nRT », sous-entendu que la relation est vérifiée. Sinon, l’écran affiche « PV≠nRT » si la relation n’est pas vérifiée.
Réalisation du projet : réalisation du système chauffant
Il y a quelques semaines, nous étions arrivés à un système chauffant plutôt fonctionnel qui chauffait un minimum. Néanmoins, le fil étant beaucoup trop petit pour chauffer efficacement ses alentours. Nous avons ainsi confectionné aujourd’hui une bobine trois fois plus longue. Celle-ci chauffait ainsi bien mieux.
Réalisation du projet : réalisation de la boîte contenant notre dispositif
Après presque deux heures d’attente, nous récupérons enfin notre boîte terminée avec toutes les parois collées entre elles. Nous installons donc le système à l’intérieur en plaçant correctement l’Arduino à l’emplacement prévu, ainsi que la carte de prototypage. Nous relions ensuite tous les câbles à l’écran et nous rendons l’intérieur de la boîte un peu plus propre en faisant un peu de « Cable Management ». Nous nous apercevons d’un problème avec le capteur de pression BMP180 (et oui encore…), rapidement résolu en remplaçant le BMP180 à 4 terminaisons par un BMP180 à 5 terminaisons (on se rappelle pourtant que celui-ci ne fonctionnait pas il y a quelques semaines mais bref, estimons-nous heureux que ça marche…).
Nous n’aurons cependant malheureusement pas le temps aujourd’hui de tester le dispositif en conditions. Nous retournerons au FabLab avant la séance prochaine afin de finir complètement la boîte (qui est déjà très aboutie actuellement il faut le dire) et effectuer des tests de température.
Nous voici lors de la dernière semaine de notre projet. Nous nous rendons au FabLab lundi 4 avril durant l’après-midi afin de finaliser certains points.
Réalisation du projet : réalisation du système chauffant
Lors de la dernière séance de FabLab, nous n’avions pas eu le temps de réaliser des tests de température. Nous commençons donc par cela. Nous reprenons notre boîte de la dernière fois et tentons des tests. Néanmoins, nous nous apercevons que la température à l’intérieur de la bobine ne varie pas du tout. En effet, la bobine actuelle qu’on pensait assez efficace ne chauffait en fait pas suffisamment ; il nous faut donc réfléchir à une nouvelle bobine de cuivre.
Nous avons ainsi utilisé une bobine cinq fois plus longue. Celle-ci chauffait beaucoup et nous a permis d'effectuer nos tests finaux nécessaires à la réalisation de notre instrument sans aucun problème (on détaillera cela par la suite).
Une fois que nous avions la bonne bobine, nous avons soudé le montage décrit précédemment avec un fer à souder présent au FabLab. Nous avons utilisé une pointe de fer qui était chauffée à environ 400°C ainsi que de l'étain ; nous avons utilisé le plus petit diamètre d’étain disponible car celui-ci était amplement suffisant pour notre utilisation.
La soudure consiste à faire fondre l'étain, lequel se mettra sur la pointe de fer qui est en contact avec le fil que l'on veut souder. Ensuite, une fois l'étain posé sur chaque extrémité que l'on veut souder, on répète la même opération mais en faisant fondre l'étain posé sur les extrémités à souder. Cela permet de « coupler » celles-ci, ce qui accomplit la soudure.
Il est important de noter que nous avons pris connaissance des règles d'utilisation du matériel. Les soudures ont été faites de manière sécurisée et nous nettoyions régulièrement la pointe de fer en la frottant contre les « éponges » en laiton prévues à cet effet. De plus, nous avons couvert chaque point de soudure par une gaine en caoutchouc afin d'éviter les dangers liés au courant.
Nous avons d’ailleurs réalisé les soudures directement dans la boîte, à l’aide de deux petits trous percés à cet effet, comme vous pouvez le constater sur les photos ci-dessous.
Le système chauffant de la boîte étant à présent terminé, nous pouvons effectuer des tests de fonctionnement.
Il est désormais temps de passer à l’application de notre dispositif pour tenter de vérifier la relation des gaz parfaits. Tout d’abord, on place la bobine correctement dans la boîte et on se relie au générateur de courant, ainsi qu’à un ordinateur faisant tourner le logiciel Arduino. Voici un aperçu du « Setup ».
On réalise donc la situation suivante : on fait chauffer l’intérieur de notre boîte (grâce à la bobine de cuivre alimentée par un courant de presque 20 A) et on mesure périodiquement la pression et la température. On effectue également le calcul de la température ce qui nous permet de comparer la température mesurée avec la température calculée. On reporte toutes les mesures dans un tableau, disponible ci-dessous.
On remarque qu’en l’espace d’une trentaine de minutes, la température à l’intérieur augmente de 28 K. Après avoir atteint les 322 K (environ 50 °C), la température n’évolue plus. Celle-ci stagne à cette valeur, comme si on avait atteint les capacités thermiques de notre bobine. Quoi qu’il en soit, une différence de 28 K est amplement suffisante pour notre expérience.
Vous pouvez néanmoins le voir dans le tableau ci-dessus : la pression mesurée n’évolue pas du tout. Elle reste constante à 1013 hPa (la pression dans la salle à ce moment-là, qui s’avère être exactement égale à la pression atmosphérique). Cela influe donc directement sur la valeur de la température calculée, constante également. Ce qui a pour effet que la différence entre la température calculée et la température mesurée (initialement très faible, à seulement 0,3 K) croît de plus en plus. Cela se voit également sur les deux graphiques suivants, respectivement la température et la pression mesurées en fonction du temps, et les températures mesurée et calculée en fonction du temps.
Ainsi, d’après les résultats obtenus, la loi des gaz parfaits n’est pas vérifiée. Le problème provient certainement de notre boîte qui échange de la matière avec l’extérieur. Ainsi, la boîte n’est pas correctement isolée et donc la pression dans la boîte vaut la pression ambiante de la pièce. Nous avons tenté à la dernière minute d’utiliser un pistolet à colle afin de combler le plus de trous possible mais nous n’y sommes malheureusement pas parvenus.
Après réflexion, si nous n’avions pas manqué de temps, nous aurions pu travailler davantage sur la boîte afin de l’isoler complètement de l’extérieur. Nous aurions également pu penser à d’autres matériaux pour la boîte, comme le polystyrène par exemple, un très bon isolant.
Malgré ces problèmes rencontrés, nous sommes parvenus à réaliser un système de mesures assez intéressant à l’aide de capteurs et d’un Arduino. Nous avons également réussi à faire gagner à l’intérieur de notre boîte pratiquement 30 degrés, ce qui n’est pas négligeable du tout. Et finalement, nous avions une méthode d’exploitation des résultats assez bonne ainsi qu’un code associé adapté pour (si nous n’avions pas rencontré les problèmes de pression) déterminer la différence entre la température mesurée et calculée, et surtout leurs incertitudes associées afin de vérifier l’appartenance de la température mesurée à l’ensemble comprenant l’écart type de la température calculée. Le projet n’est donc pas complètement raté, loin de là !
Ce projet fut, sans conteste, très intéressant. Il nous a permis de bouleverser nos habitudes en mobilisant nos connaissances ainsi que nos capacités de recherche et de réflexion, d’une manière bien différente de ce dont on a l’habitude en L1. Nous avons pu découvrir énormément de choses : de l’impression 3D à la découpe laser, en passant par les Arduino, la programmation en C et l’algorithmique, l’utilisation concrète de l’électronique pour résoudre de vraies problématiques, le travail d’équipe sur plusieurs semaines pour mener à bien un projet scientifique ou bien même la sensation de travailler durement pour ne pas forcément aboutir à un résultat concret ou fonctionnel.
Code du 04/04 :
// Initialisation pour capteur BMP180 : #include <Wire.h> #include <SFE_BMP180.h> SFE_BMP180 bmp180; // Initialisation pour capteur LM35 : int val; int tempPin = 1; // Initialisation pour afficheur LED : #include <LiquidCrystal.h> LiquidCrystal lcd(12,11,5,4,3,2); void setup() { lcd.begin(16,2); // utilisation d'un écran 16 colonnes et 2 lignes Serial.begin(9600); bool success = bmp180.begin(); if (success) { // vérification sur le capteur BMP180 est bien connecté Serial.println("Initialisation réussie !"); }else{ Serial.println("Erreur : veuillez vérifier les branchements."); } } void loop() { // Configuration du capteur BMP180 char status; double T, P; bool success = false; status = bmp180.startTemperature(); if (status != 0) { delay(1000); status = bmp180.getTemperature(T); if (status != 0) { status = bmp180.startPressure(3); if (status != 0) { delay(status); status = bmp180.getPressure(P, T); } } } val = analogRead(tempPin); // Lecture des données du capteur LM35 float mv = (val/1024.0)*5000; // Température du capteur LM35 float temperature_celcius_1 = mv/10; float temperature_kelvin_1 = temperature_celcius_1+273.15; // Température/pression du capteur BMP180 float temperature_celcius_2 = T; float temperature_kelvin_2 = temperature_celcius_2+273.15; float pression = P*100; // Moyenne entre la température du capteur LM35 et du capteur BMP180 float moyenne_temperature = (temperature_kelvin_2+temperature_kelvin_2)/2; // Valeur du volume (consulter le Wiki pour plus d'informations) float volume = 0.0025; // Valeur de la constante universelle des gaz parfaits float constante = 8.314; // Initialisation float temperature_init = 294; float pression_init = 101400; float quantite_matiere = (pression_init*volume)/(constante*temperature_init); float incertitude_quantite_matiere = ((((pression_init+3)*volume)/(constante*(temperature_init-0,5)))-(((pression_init-3)*volume)/(constante*(temperature_init+0,5))))/2; // Calcul de la température float calcul = (pression*volume)/(constante*quantite_matiere); // Calcul de l'incertitude de la température calculée float incertitude = ((((pression+3)*volume)/(constante*(quantite_matiere-incertitude_quantite_matiere)))-(((pression-3)*volume)/(constante*(quantite_matiere+incertitude_quantite_matiere))))*1/2; // Affichage dans la console : Serial.print("==================================================================="); Serial.println(); Serial.print("Pression mesurée : "); Serial.print(pression/100); Serial.print(" hPa"); Serial.println(); Serial.print("Temperature mesurée : "); Serial.print(moyenne_temperature); Serial.print(" K ou "); Serial.print(round(moyenne_temperature-273.15)); Serial.print(" °C (moyenne entre "); Serial.print(temperature_kelvin_1); Serial.print(" K et "); Serial.print(temperature_kelvin_2); Serial.print(" K)"); Serial.println(); Serial.print("- - - - - - - - - - - - - -"); Serial.println(); Serial.print("Temperature calculée : "); Serial.print(calcul); Serial.print(" K"); Serial.print(" (± "); Serial.print(incertitude); Serial.print(" K)"); Serial.println(); float temperature_plus = calcul+incertitude; Serial.print("Température plus : "); Serial.print(temperature_plus); Serial.print(" K"); Serial.println(); float temperature_moins = calcul-incertitude; Serial.print("Température moins : "); Serial.print(temperature_moins); Serial.print(" K"); Serial.println(); // Affichage à la ligne 1 de l'afficheur LED : lcd.setCursor(0,0); lcd.print("T="); lcd.print(round(moyenne_temperature)); lcd.print("K P="); lcd.print(round(pression/100)); lcd.print("hPa"); Serial.print("- - - - - - - - - - - - - -"); Serial.println(); // Affiche la différence entre la température calculée et la température réelle mesurée Serial.print("Différence entre la température calculée et la température réelle mesurée : "); Serial.print(abs(calcul-moyenne_temperature)); Serial.print(" K"); Serial.println(); Serial.print("- - - - - - - - - - - - - -"); Serial.println(); if (moyenne_temperature<temperature_plus and moyenne_temperature>temperature_moins){ // Affichage dans la console : Serial.print("PV=nRT"); Serial.println(); // Affichage à la ligne 2 de l'afficheur LED : //lcd.setCursor(0,1); //lcd.print("PV=nRT"); lcd.setCursor(0,1); lcd.print("Diff : "); lcd.print(abs(calcul-moyenne_temperature)); lcd.print(" K"); }else{ // Affichage dans la console : Serial.print("PV=/=nRT"); Serial.println(); // Affichage à la ligne 2 de l'afficheur LED : lcd.setCursor(0,1); lcd.print("Diff : "); lcd.print(abs(calcul-moyenne_temperature)); lcd.print(" K"); } Serial.print("==================================================================="); Serial.println(); // Attente de 1 seconde avant de mettre à jour l' : delay(1000); }