Librairie pour créer des courbes dans l'arduino

Bonjour, j'aimerais bien pouvoir manipuler des données issues de capteurs avec des courbes pour controller l'interaction.

j'aimerais savoir si quelqu' un connait un set de calculs qui permettrait, à partir de données linéaires (type 0>1024 ou -300>650 par ex), d'obtenir des résultats comme des courbes en S par ex, ou creusées, ou arrondies.

s.jpg

arrondi.jpg

J'ai pas bien compris le besoin.
On trouve plein d'exemples d'utilisation de l'Arduino pour acquérir les données et de Processing côté PC pour les grapher: http://www.arduino.cc/en/Tutorial/Graph (arduino processing chart)

Bonjour,

Faire une petite recherche google avec les termes "tweening" ou "easing". Tu ne trouvera peut-être pas de librairies pour l'arduino, mais rien ne t'empêche d'en faire une (et de la partager ensuite si tu veux) :wink:

Si j'ai bien compris cen'est pas pour grapher des données mais pour modifier une courbe de réponse.

En entrée, un capteur fournit une mesure qui varie linéairement avec une grandeur physique x.
En sortie on veut une fonction y=f(x) avec une transformation spécifique de la forme de la courbe.

Pas besoin de librairie pour ça.

Tu obtiens par exemple une sigmoide avec une fonction simple

Bonjour, oui il ne s'agit pas de grapher mais d'altérer les résultats pour avoir de meilleurs comportements.
J'ai déjà écrit quelques fonctions pour lisser les données, déjà, mais je trouve un peu débile de recréer la roue à chaque fois et avec moins de talent en plus !

Christian_R ta formule en code, quand on est pas matheux, çà s'interprète comment ?

pour tween, oui il y a des exemples pour la plus part imbriqués dans des projets plus complexes.

je furetes, mais si quelqu un a un lien vers une lib simple et efficace, j achète ! :slight_smile:

bien à tous
christoph

Voilà une librairie en Lua ça ne devrait pas être trop compliqué à convertir :wink:

:slight_smile: ah ben voilà, nickel, je convertis et remets au pot !
merci guyx!

Bonjour M. le développeur de chat :wink:,

J'ai développé mes propores fonctions pour avoir une réponse logarithmique ou exponentielle (je sais que ce ne sont surement pas les bons termes).
Dans mon cas c'était pour doser l'allumage des leds afin qu'il paraissent s'allumer et s'éteindre dans une progression constante, car de base avec la fonction AnalogWrite, on à une grande marge de manœuvre pour régler l'intensité forte mais quand on est dans les luminosité faibles, on a l'impression qu'elle s'éteint rapidement.
J'ai donc fait mes fonction "LogExpo" après avoir trouvé ces formules, grâce à Pythagore :

qui donnent ces courbes de réponse :

et ça marchait mais l'effet était trop fort, j'avais donc inversé le problème, et la précision était reporté dans les luminosités faibles.

J'ai donc cherché de nouvelles formules pour rendre ma courbe "réglable", et CA, ça a été long à trouver pour moi :

J'ai remplacé tout les carrés et racine carrées par le parametre "a", s'il est à 1 c'est une droite et on peut le faire évoluer jusqu'à 2 pour obtenir un parfait quart de cercle.

Mais mon "LogExpoV2" a juste mis l'Arduino sur les genoux (à cause des calcul à virgule flottante ?)...

J'éspère que cette réponse va t'aider, même si mes codes sont très mal voir pas documentés et que je suis autodidacte en maths.

LogExpo.ino (1.41 KB)

LogExpoV2.ino (2.03 KB)

merci UniseV :slight_smile:
super ! merci de partager ce travail ! j'essaye de ce pas :slight_smile:

la fonction ease me pose quelques soucis de ressources (ce sera embarqué dans un atiny84) pour 6 circuits.

c est marrant de boucler vers la lumière :slight_smile:

J'ai ici une petite librairie pour amortir des données trop sensibles ( pour des IR sharps), tu as envie de t'intéserer dedans ?

SmoothData.zip (2.67 KB)