Balance statique utilisant le Thymio II

La balance statique à levier fixe se trouve dans le commerce:

LeverBalance7-1_M.jpg

From thesciencefair.com

Elle se base sur deux leviers de différente longueur et de disposition géométrique différente. Voici une balance basée sur le même principe mais contruite avec le kit de construction LEGO Technic 8069 et un Thymio II.

balance-globale-lr.jpg

Cette balance permet de peser sans l'utilisation du Thymio II. Le robot est utilisé ici pour prendre la mesure et la prononcer: si l'objet pesé fait 210 grammes, le Thymio II prononcera "deux un zéro" (voir vidéo en fond de page). Mais avant tout il faut peser. Pour peser on met l'objet à peser sur le plateau:

pesee-avant-lr.jpg

Le fait de mettre l'objet sur le plateau fait lever un poids (les roues) et indique déjà, sur un échelle, le poids de l'objet. La structure pour réaliser cela est mieux visible à l'arrière:

pesee-lr.jpg

Voici dans le détail les composants de cette structure:

composants-lr.jpg

Pour créer la graduation, on peut mettre des poids calibrés (20g, 40g, 60g, …) sur le plateau et faire des traits sur le papier qui indique l'échelle.

Le Thymio lit la position du levier par un de ses capteurs de proximité. Sur le pivot de la balance il y a un engrenage qui transmet le mouvement à un levier supplémentaire qui supporte un cache. La distance du cache au capteurs est donc liées à la position des leviers.

detail-capteur-lr.jpg

Comme on le fait pour les graduations sur le papier, on peut aussi ici utiliser des poids calibrés et noter pour chaque poids quelle est la valeur du capteur, ici le capteur de proximité horizontale numéro 4. On peut en tirer un graphique:

graph-capteur.png

Les points des mesures (avec les poids calibrés) sont assez bien alignés et tout ceci peut être approximé par la droite orange. On peut donc en tirer une formule simple pour calculer le poids à partir de la valeur du capteur (prox4):

(1)
\begin{align} poids = \frac{(prox4-17300)}{(17300-6800)}*-300 \end{align}

Avec cette formule on a le poids, reste à le prononcer. La prononciation a été faite avec dix fichers sons qui contiennent les dix chiffres de "zéro" à "neuf". Il sont nommé p0.raw pour le "zéro", p1.raw pour le "un" et ainsi de suite jusqu'à p9.raw. Il faut les stocker sur une carte microSD et la mettre dans le Thymio II. Les fichiers utilisés se trouvent ici.

Le code pour prononcer le poids devient ainsi:

var poids=0
var Tampon[5] = 0,0,0,0,0
var TamponPos = 0
var sum

var parle = 0
var dit = 0
var DitNombre

onevent prox     #ici on calcule le poids
  Tampon[TamponPos] = prox.horizontal[4]  # mesure
  TamponPos = (TamponPos + 1) % 5
  sum = (Tampon[0] + Tampon[1] + Tampon[2] + Tampon[3] + Tampon[4])/10
  poids = (sum-1730)*-30/(1730-680)*10

onevent buttons    #ici on décide quand parler: si on pèse le bouton central
  when button.center==1 and parle == 0 do
    parle = 1
    dit = 0
  end

onevent temperature  # chaque seconde on dit un chiffre
  call leds.top(0,0,0)
  if parle == 1 then
    call leds.top(32,32,32)
    if dit == 0 then
      dit = 1
      DitNombre = poids / 100 
      call sound.play(DitNombre)
    else 
      if dit == 1 then
        dit = 2
        DitNombre = poids / 10
        DitNombre = DitNombre % 10
        call sound.play(DitNombre)
      else 
        if dit == 2 then
          dit = 0
          parle = 0
          DitNombre = poids % 10
          call sound.play(DitNombre)
        end
      end
    end
  end

Le tout combiné donne ceci:

Enfin quelques vues de détail sur la structure:

vues-lr.jpg
structures-lr.jpg
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License