Célérité des ultrasons dans l'air (1)

Un exemple d'utilisation de Web Sciences en mode point

Cet exemple de mesures point par point à l'aide de la bibliothèque web_sciences utilise directement les données mesurées par le capteur à ultrasons Grove.

Le mode point permet de tracer une ou plusieurs grandeurs mesurées par Arduino en fonction d'une grandeur variable saisie par l'utilisateur.

I. Montage

Matériel nécessaire

  • Une carte Arduino équipée d'un shield Grove.
  • Un capteur à ultrasons Grove.
  • Un valet élévateur.
  • Un écran sur support.
  • Un réglet.

II. Code nécessaire

Script Arduino

Le script doit:
  • attendre l'arrivée de la commande mesure sur la liaison série.
  • réagir en conséquence, c'est à dire effectuer une mesure de la durée aller retour de l'onde ultrasonore émise par le capteur.
  • envoyer cette durée sur la liaison série.

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


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 durée aller retour du signal ultrasonore:
    series = [{grandeur: "Δt", unite: "µs"}];
  • place sur le graphique le point de coordonnées (d, Δt) où d est la distance capteur-écran saisie par l'utilisateur
    axes = [{grandeur: "d", unite: "cm"}, {grandeur: "Δt", unite: "µs"}];

Le code Javascript complet est le suivant :

mode = "point";
commandes = [{texte_bouton:"Mesure", arduino:"mesure"}];
series = [{grandeur: "Δt", unite: "µs"}];
titre_graphe = "Célérité des ultrasons dans l'air";
axes = [{grandeur: "d", unite: "cm"}, {grandeur: "Δt", unite: "µs"}];

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: "Δt", unite: "µs"}];
titre_graphe = "Célérité des ultrasons dans l'air";
axes = [{grandeur: "d", unite: "cm"}, {grandeur: "Δt", unite: "µs"}];
'''
	
interface = WebSciences(my_init)
interface.affiche()

Exemple d'éxécution


Démo en ligne

  • Télécharger le script capteur_us.ino en cliquant sur le lien.
  • Téléverser ce script dans la carte à l'aide de l'IDE Arduino.
  • Relier le capteur US Grove au pin 4 de la carte.
  • Cliquer sur le bouton Connexion ci-dessous et sélectionner le port correspondant à la carte.
  • Placer le capteur à une distance d = 10 cm de l'écran (voir image ci-dessus).
  • Cliquer sur le bouton mesure. La carte effectue une mesure de la durée aller retour de l'onde ultrasonore émise par le capteur. Cette valeur est transmises par la liaison série.
  • Le script affiche le point de coordonnées (d, Δt) sur le graphe Δt = f(d).
  • Renouveler l'opération pour d variant de 20 cm à 90 cm par pas de 10 cm.
  • 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 Δt = f(d), de le modéliser et de déterminer la célérité des ultrasons dans l'air (voir le notebook ci-dessous).

Liens