Loi de Mariotte

Un exemple d'utilisation de Web Sciences en mode point

Une seringue qui emprisonne une quantité d'air de volume V à la pression atmosphérique est reliée au capteur de pression Grove par l'intermédiaire d'un tube souple. On fait varier le volume d'air V en agissant sur le piston de la seringue et on recueille la pression mesurée par le capteur.

Cet exemple de mesures point par point permet de tracer le graphe P =f(1/V) et de vérifier ainsi la loi de Mariotte PV = cte.

I. Montage

Matériel nécessaire

  • Une carte Arduino équipée d'un shield Grove.
  • Un capteur de pression Grove.
  • Une seringue de 60mL munie d'un tube souple.

II. Code nécessaire

Script Arduino

Le script :

  • attend l'arrivée de la commande mesure sur la liaison série.
  • réagit en conséquence, c'est à dire effectue une mesure de la pression délivrée par le capteur de pression.
  • envoie cette mesure sur la liaison série.

Voir à cet effet les commentaires dans le code source du script capteur_pression_2.ino.

Remarque : Il sera probablement nécessaire d'étalonner le capteur de pression. Pour cela, utiliser le script capteur_pression_1.ino, l'éxécuter dans l'IDE Arduino et modifier la valeur de k par tatonnement en observant la valeur de la pression sur le moniteur série.


Code Javascript

Le code javascript:

  • fonctionne en mode point :
    mode = "point";
  • envoie la commande mesure lorsque l'utilisateur clique sur le bouton mesure:
    commandes = [{texte_bouton:"Mesure", arduino:"mesure"}];
  • attend une mesure de la pression délivrée par le capteur de pression :
    series = [{grandeur: "P", unite: "hPa"}];
    .
  • place sur le graphique le point de coordonnées (V, P) où V est le volume d'air saisi par l'utilisateur
    axes = [{grandeur: "V", unite: "mL"}, {grandeur: "P", unite: "hPa"}];

Le code Javascript complet est le suivant :

mode = "point";
commandes = [{texte_bouton:"Mesure", arduino:"mesure"}];
series = [{grandeur: "P", unite: "hPa"}];
titre_graphe = "Loi de Mariotte";
axes = [{grandeur: "V", unite: "mL"}, {grandeur: "P", unite: "hPa"}];

Le code complet à insérer dans une cellule Jupyter

from web_sciences import WebSciences
	
my_init = '''
mode = "point";
commandes = [{texte_bouton:"Mesure", arduino:"mesure"}];
series = [{grandeur: "P", unite: "hPa"}];
titre_graphe = "Loi de Mariotte";
axes = [{grandeur: "V", unite: "mL"}, {grandeur: "P", unite: "hPa"}];
'''
	
interface = WebSciences(my_init)
interface.affiche()

Exemple d'éxécution


Démo en ligne

  • Télécharger le script capteur_pression_2.ino en cliquant sur le lien.
  • Téléverser ce script dans la carte à l'aide de l'IDE Arduino.
  • Relier le capteur de pression Grove à l'entrée A0 de la carte.
  • Cliquer sur le bouton Connexion ci-dessous et sélectionner le port correspondant à la carte.
  • Régler le volume de la seringue à 60mL en relier le tube au capteur de pression (voir image ci-dessus).
  • Cliquer sur le bouton mesure. La carte effectue une mesure de la pression dans la seringue et cette valeur est transmise par la liaison série.
  • Le script affiche le point de coordonnées (V, P) (ou V est la valeur du volume saisie par l'utilisateur) sur le graphe P = f(V).
  • Renouveler l'opération pour V variant de 60 mL à 25 mL par pas de 5 mL.
  • Cliquer sur le bouton Copie presse papier pour récupérer les données dans le presse papier. Dans cet exemple, les données sont formatées sous forme de tableaux python. Il est cependant possible d'obtenir un formatage compatible avec un tableur comme Régressi ou Excel en cochant la case ci-dessous.
tableur = false;

Le traitement des données permet de tracer le graphe P = f(1/V) et de vérifier ainsi la loi de Mariotte (voir le notebook ci-dessous).

Liens

 

k