DIego Yourself
 Accueil

Niveau : Intermédiaire

Fourchette Dynamométrique

07.03.2018

L'idée de ce projet a été imaginée par un enfant de 6 ans, intéressé par les robots et l'électronique. Sa réalisation étant assez simple, j'ai décidé de le faire d'abord pour lui faire plaisir mais aussi pour lui montrer que c'était réalisable. La mise en scène de la vidéo nous a permis aussi de passer un bon moment créatif et de détente ensemble.

Le problème

Dexter* est un garçon gourmand comme tous les enfants de son âge, et il aime particulièrement un dessert que sa maman lui prépare souvent : "les bananes écrasées au sucre" (pas de commentaires désobligeants à ce propos s'il vous plaît, personnellement je ne suis pas particulièrement fan, mais les enfants adorent et puis vous n'avez qu'à goûter pour vous faire votre propre idée...).

L'ennui c'est que pour écraser ces bananes au point d'en faire une purée il faut appuyer très fort et la fourchette (certes pas très solide non plus), finit complètement pliée après chaque préparation...

Fourchette pliée
Dexter a donc réfléchi un court instant et il a proposé la création d'une fourchette dynamométrique avec un indicateur de force lumineux afin d'indiquer à l'utilisatrice (sa maman) qu'elle est en train d'appuyer trop fort, pour lui éviter de plier la fourchette durant la préparation de son délicieux dessert.

En introduction, voici donc la vidéo que nous avons pris un grand plaisir à réaliser ensemble, Dexter en est l'acteur principal que vous apercevez, il a choisi la musique (elle lui plait beaucoup celle-là, il l'écoute en boucle toute une journée à chaque fois qu'il l'entend) et j'ai fait la mise en scène & édition :

Cette vidéo a clairement été réalisée avec des trucages : Dexter n'étant pas encore initié à Arduino, l'électronique, la programmation C++, ni la conception & impression 3D... Mais ça contribue à éveiller notablement son intérêt et il apprend tout de même à programmer avec son Lego Boost qu'il a reçu du père Noël en décembre dernier... emote proud

Connaissances pré-requises

Comme vous le remarquerez par la suite, ce projet n'est pas très compliqué d'un point de vue technique, mais pour comprendre comment il fonctionne vous avez besoin des connaissances suivantes :

Matériel nécessaire

Pour réaliser ce projet/tutoriel il vous faudra disposer des éléments suivants :

Préparation

Vous pouvez commencer par préparer le capteur de pression en lui soudant deux fils à une extrémité puis deux autres à un connecteur ou ce que vous avez sous la main pour pouvoir le brancher sur la plaque d'essai sans soudure. Prévoyez une longueur de fil assez longue pour être à l'aise avec votre fourchette pendant son utilisation :
Capteur de pression FSR 166

Ensuite, vous devez pouvoir imprimer en 3D le socle qui permet d'accueillir le capteur de pression sur votre fourchette. Voici le modèle STL que nous avons utilisé pour le poser sur la nôtre :

Plan du socle 3D pour fourchette
Fichier à télécharger : support.stl
Fichier à télécharger : appui.stl

Une fois que vous avez votre socle, il ne vous reste plus qu'à le faire glisser sur le manche de la fourchette, avec le capteur en "sandwich" entre les deux éléments imprimés :

Pose du socle & capteur sur la fourchette Pose du socle & capteur sur la fourchette Pose du socle & capteur sur la fourchette Pose du socle & capteur sur la fourchette Pose du socle & capteur sur la fourchette

Branchements

Voici le montage du circuit à réaliser :
Diagramme du circuit logique
Comme vous pouvez le constater le montage est assez simple. Prêtez cependant une attention particulière aux résistances R2 à R4 en amont des diodes/LEDs. Elles sont nécessaires pour limiter le courrant afin d'éviter à vos LEDs de griller. Leur valeur n'est pas indiquée car cela dépend des LEDs que vous utilisez. Dans mon cas j'ai utilisé des LEDs 5V qui permettent un branchement direct car la résistance est incluse à l'intérieur de la LED elle-même. Si vous avez diodes standard, pensez à prévoir la résistance en amont nécessaire à chaque diode pour limiter le courant et éviter ainsi de les griller.

Si vous vous rappelez de comment mesurer une résistance, vous constatez que le capteur de pression est un capteur résistif. Ce capteur est donc positionné comme un pont diviseur avec la résistance R1 pour que la variation de tension lue dans l'entrée analogique A0 de votre Arduino UNO couvre toute la plage de mesure utile. Vous pouvez lire ses spécifications (datasheet) pour vous en rendre compte en téléchargeant ce fichier : FSR166-datasheet.pdf (document pdf, nécessitant Adobe Reader pour pouvoir le lire, c'est souvent le cas pour les datasheets).

Et voici comment faire vos branchements sur votre Arduino UNO, n'oubliez pas vos résistances en amont (R2 à R4) de vos diodes si vous avez des diodes standards :

Branchement sur la carte Arduino UNO

Mais sur la vidéo on voit un montage un peu plus complexe, comment cela se fait-il ?
En effet, sur la vidéo vous apercevez un écran LCD que j'ai monté dessus pour vérifier les valeurs de calibrage du capteur au lieu d'utiliser la console : ça fait "plus de trucs qui s'allument et qui bougent", les enfants adorent ça ! Mais c'est ce qu'on appelle dans le jargon "un élément de débogage", en d'autres mots ça ne sert qu'à vérifier que tout va bien et ça n'apporte rien au niveau de la fonction principale visée.
Vous pouvez vous amuser à en ajouter un si vous souhaitez faire de même, il vous suffit de suivre le tutoriel à ce propos et d'utiliser les PIN 2 à 7 de votre Arduino UNO pour le piloter.

Code

Voici le code que vous devrez téléverser dans votre carte Arduino UNO :

// Seuil (en pourcent) d'alerte attention (orange)
#define CAL_WARN 0.95F
 
// seuil (en pourcent) d'alerte critique (rouge)
#define CAL_CRITICAL 0.99F
 
// valeur minimale pour l'auto-calibration (initialisée au maximum possible)
float auto_cal_min = 1024.0F;
 
// valeur maximale pour l'auto-calibration (initialisée au minimum possible)
float auto_cal_max = 0.0F;
 
void setup()
{
// initialisation des sorties utilisées pour les LEDs
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10,OUTPUT);
 
// Initialisation OK : LED verte allumée
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10,HIGH);
}
 
void loop()
{
// lecture du capteur de pression
float value = (float)analogRead(0);
 
// mise à jour des valeurs d'auto-calibration
if ( auto_cal_min > value ) auto_cal_min = value;
if ( auto_cal_max < value ) auto_cal_max = value;
 
// éviter que les valeurs d'auto-calibration soient égales pour éviter les divisions par zéro
if (auto_cal_min == auto_cal_max) auto_cal_max = auto_cal_min + 1.0F;
 
// calcul du pourcentage en fonction de l'auto-calibration
float f_percent = (value-auto_cal_min) / (auto_cal_max-auto_cal_min);
 
// Si en dessous du niveau d'attention (orange), allumer la LED verte
if ( f_percent < CAL_WARN )
{
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10,HIGH);
}
// si en dessous du niveau critique (mais au-dessus d'attention), allumer la LED orange
else if (f_percent < CAL_CRITICAL)
{
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
digitalWrite(10,LOW);
}
// au-dessus du niveau critique : allumer la LED rouge
else
{
digitalWrite(8, HIGH);
digitalWrite(9, LOW);
digitalWrite(10,LOW);
}
 
// délai d'attente pour éviter des clignotements bizarres
delay(400);
}
Fichier à télécharger : tuto_dynafork.ino
Ce code est assez simple, il est fait en sorte que la calibration se fasse automatiquement car toutes les fourchettes ne se plient pas en faisant le même effort/force.
Les valeurs CAL_WARN et CAL_CRITICAL sont là pour vous permettre de mieux déterminer les seuils d'alarme. Les seuils qui sont utilisés dans ce programme sont ceux qui ont le mieux marché pour nous.

Utilisation & recette

Maintenant que vous avez tout en place il ne vous reste plus qu'à préparer notre "délicieuse" recette de banane écrasée au sucre !

Une fois votre montage allumé, avant de commencer à écraser des bananes, il faut tout d'abord calibrer votre capteur. Pour ce faire il vous suffit d'appuyer sur votre fourchette jusqu'à ce qu'elle commence à peine à se plier : STOP ! Votre fourchette dynamométrique est calibrée !

Calibrage de la fourchette dynamométrique

Redressez votre fourchette sans appuyer sur le capteur, ni éteindre, ni réinitialiser votre Arduino UNO, puis prenez votre assiette, pelez votre banane et posez-là dessus.

Vous pouvez y aller avec votre dyna-fourchette ! Si vous parvenez à vous arrêter d'appuyer lorsque la LED orange s'allume, vous n'allez jamais la plier. Si la LED rouge s'allume : vous êtes allé trop loin !
Si vous n'arrivez pas à écraser votre banane sans aller dans le rouge, essayez de l'écraser en commençant par les bords avec les pointes de votre fourchette, plutôt que de tout vouloir écraser en même temps...

Utilisation de la fourchette dynamométrique

Une fois que vous avez obtenu une purée bien homogène, saupoudrez avec une cuillère à café de sucre en poudre (blanc ou roux, selon préférence) ou plus si le cœur vous en dit. Mélangez le tout jusqu'à ce que vous ne sentiez plus les grains de sucre. Puis vous (ou vos enfants) pouvez déguster à l'aide d'une cuillère à dessert : c'est prêt !

Vous pouvez bien entendu améliorer la recette en utilisant du sucre vanillé, du miel, du sirop d'érable ou en remplaçant la banane par une patate, ce ne sera plus la recette originale de la "banane écrasée au sucre", mais on s'en fout, ce qui était intéressant c'était de réaliser ce projet qui est parti de l'idée d'un petit garçon, ravi de l'avoir vue devenir réalité !

Diego


*Dexter : Nom d'emprunt pour garantir son anonymat. Inspiré du le célèbre personnage de "Le laboratoire de Dexter" produit par Cartoon Network.
Dexter
  Retourner en haut
Commenter sur le forum Forum Arduino