Fourchette Dynamométrique
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...
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...
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 :- Savoir mesurer une résistance avec votre Arduino : idéalement avoir donc déjà lu ou fait cet autre tutoriel au préalable. Ici vous allez pouvoir mettre en pratique vos connaissances avec un capteur résistif de pression.
Matériel nécessaire
Pour réaliser ce projet/tutoriel il vous faudra disposer des éléments suivants :- Une carte Arduino UNO ;
- Un câble USB ;
- Une plaque d'essai sans soudure ;
- Des fils/jumpers Mâle-Mâle ;
- Une résistance de 1.2KΩ (Marron-Rouge-Noir-Noir) ;
- Trois diodes 5V (résistance incluse) : rouge, verte et orange ;
- Un capteur de pression de type FSR166 (0.1-100 Newtons) ;
- Des fils, un connecteur et de quoi souder à l'étain pour pouvoir relier le capteur à la plaque d'essais;
- Une fourchette ;
- Une imprimante 3D ;
- Une assiette ;
- Une banane ;
- Un peu de sucre en poudre (blanc ou roux peu importe).
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 :
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 :
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 :
Branchements
Voici le montage du circuit à réaliser :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 :
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 :#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);
}
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 !
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...
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é !
*Dexter : Nom d'emprunt pour garantir son anonymat. Inspiré du le célèbre personnage de "Le laboratoire de Dexter" produit par Cartoon Network.
Commenter sur le forum |
|
Tweeter | |