Fonction map ???

jaipadnon

New Member
Bonjour,
Je fabrique une main bionique qui régit à des capteurs flex.
Je souhaite : Ré-étalonner un nombre d'une fourchette de valeur vers une autre fourchette. Ainsi, une valeur basse source sera étalonnée en une valeur basse de destination, une valeur haute source sera étalonnée en une valeur haute de destination, une valeur entre les deux valeurs source sera étalonnée en une valeur entre les deux valeurs destinations, en respectant la proportionnalité.
Cette fonction est très utile pour effectuer des changements d'échelle automatiques. Elle existe sur arduino et j'aimerai savoir comment faire sur Blockly.
En vous remerciant.
Reno
 

PieM

Senior Member
Bonjour,
Je fabrique une main bionique qui régit à des capteurs flex.
Je souhaite : Ré-étalonner un nombre d'une fourchette de valeur vers une autre fourchette. Ainsi, une valeur basse source sera étalonnée en une valeur basse de destination, une valeur haute source sera étalonnée en une valeur haute de destination, une valeur entre les deux valeurs source sera étalonnée en une valeur entre les deux valeurs destinations, en respectant la proportionnalité.
Cette fonction est très utile pour effectuer des changements d'échelle automatiques. Elle existe sur arduino et j'aimerai savoir comment faire sur Blockly.
En vous remerciant.
Reno
Bonjour,
Vous n'êtes pas prof de math visiblement ...

Si la correspondance est linéaire la valeur de Y est égale à a*X+b
a, la pente est (Ymax-Ymin)/(Xmax-Xmin)
on peut écrire que Ymin = a *Xmin + b donc b = Ymin - a*Xmin
d'où Y= a* X + Ymin - a*Xmin
Y = a (X - Xmin) + Ymin
Y = (Ymax-Ymin)/(Xmax-Xmin) * (X - Xmin) + Ymin

Comme Ymax Ymin Xmax Xmin sont définis initialement, il faut calculer la constante a = (Ymax-Ymin)/(Xmax-Xmin) dès le début dans blocky.
puis la solution sera en basic picaxe

Y = X - Xmin * a + Ymin
 
Top