L'éponge parlante est un projet qui a pour but de rendre un objet de la vie courante un peu plus interactif. Découvrez-en plus sur ce projet grâce aux explications et illustrations ci-dessous.
Ce projet est né après une étude approfondie de l'éponge. Matériau très intéressant, tant par sa souplesse que son haut pouvoir absorbant, sa forme et son apparence, l'éponge n'en est pas moins un objet particulièrement utile dans de nombreuses circonstances.
Mais avant tout, l'éponge est un être vivant que l'on peut trouver dans les fonds marins.
Mon idée pour ce projet était donc de rendre la vie à l'éponge, en lui offrant au passage l'opportunité de s'exprimer et d'interagir avec son environnement en utilisant ses propriétés particulières.
Au début, j'avais pour projet de créer une éponge qui s'essore toute seule lorsqu'elle est mouillée. Pour cela, je pensais enrouler l'éponge dans un fil, puis tendre celui-ci afin d'exercer une force sur l'éponge et ainsi l'essorer. J'ai finalement décidé de m'orienter dans une autre direction.
C'est ainsi que l'éponge parlante est née. L'idée est fondamentalement la même que celle de mon premier projet : une éponge qui interagit avec l'utilisateur en fonction de son degré d'humidité. Cependant, cette fois-ci, au lieu de s'essorer toute seule, l'éponge va se plaindre si jamais elle est mouillée. Elle va crier et nous demander de l'essorer tant qu'on ne l'a pas séchée et qu'elle est toujours trop humide à son goût.
Cependant, cette fois-ci, au lieu de s'essorer toute seule, l'éponge va se plaindre si jamais elle est mouillée. Elle va crier et nous demander de l'essorer tant qu'on ne l'a pas séchée et qu'elle est toujours trop humide à son goût.
En tirant sur les deux côtés du fil, on essore l'éponge. Cela lui donne un nouvel aspect, elle est comme saucissonnée, et ainsi, c'est un peu comme si elle revenait à la vie et se mettait à respirer. Le fil noir est très intéressant pour cela, car sa couleur tranche avec le jaune de l'éponge et permet d'avoir un résultat au visuel assez remarquable.
Je trouve qu'il y a un côté interactif assez intéressant entre le matériau et l'utilisateur : l'éponge nous demande de l'essorer, et on le fait. Cela ne serait pas pareil si l'essorage était automatisé à l'aide d'un moteur, comme je pensais le faire au départ.
Comment ça marche ?
Dans l'éponge est planté un capteur d'humidité qui détecte en permanence le degré d'humidité de l'éponge. Lorsqu'il passe au-dessus d'un certain seuil, un ensemble de signaux se déclenchent. J'ai choisi d'en utiliser deux, le buzzer et l'écran LCD, mais il est possible d'en utiliser d'autres. Tant que l'éponge est trop humide, le buzzer se met à sonner et l'écran affiche un message qui nous invite à essorer l'éponge. Tout revient à la normale une fois que l'on a essoré l'éponge.
Vous voulez le reproduire chez vous ? Rien de plus simple !
Pour reproduire l'éponge parlante, il vous faut :
-
Un ordinateur
-
Une éponge et du fil
-
Une carte Arduino Uno R3
-
Une breadboard
-
Un écran LCD1602
-
Un buzzer
-
Un potentiomètre (pour régler la luminosité de l'écran)
-
Un capteur d'humidité
-
Des fils et des rallonges
Tous les composants électroniques sont fournis dans le kit de démarrage Super proposé par ELEGOO, sauf le capteur d'humidité qu'il faudra acheter séparément.
Le capteur "TMP" à droite correspond au capteur d'humidité qui est planté dans l'éponge. Il possède trois broches, à brancher sur la breadbord au niveau du + (VCC) et du - (GND), et sur la carte au niveau du port A0 (A0). Le capteur ressemble à cela normalement :
Il ne vous reste plus qu'à entrer le code suivant dans l'IDE d'Arduino (vous pouvez copier-coller) :
// Inclusion de la bibliothèque de l'écran LCD
#include <LiquidCrystal.h>
// Initalisation des constantes et de l'écran LCD
const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
int c=0;
const int buzzer=8;
// Création des smileys qui n'existent pas dans l'écran LCD
byte smileyPleure[8] = {
B00000,
B11011,
B01010,
B10001,
B00000,
B01110,
B10001,
B00000
};
byte smiley[8] = {
B00000,
B01010,
B00000,
B00000,
B10001,
B01110,
B00000,
};
byte smileyQuestion[8] = {
B10010,
B01001,
B10010,
B00000,
B10010,
B00000,
B10001,
B01110,
};
byte smileyTriste[8] = {
B00000,
B01010,
B00000,
B00000,
B01110,
B10001,
B00000,
};
void setup() {
Serial.begin(9600); // initialisation du capteur d'humidité
pinMode(buzzer, OUTPUT); //Initialisation du buzzer
//Initialisation des smileys
lcd.createChar(0, smileyPleure);
lcd.createChar(1, smiley);
lcd.createChar(2, smileyQuestion);
lcd.createChar(3, smileyTriste);
// Ecriture du message d'accueil
lcd.begin(16, 2);
lcd.write(byte(1));
lcd.write(" Bonjour");
delay(1000);
lcd.setCursor(2,0);
lcd.write("Je suis l'epon");
lcd.setCursor(0,1);
lcd.write("ge parlante");
delay(2000);
}
void loop() {
int sensorValue = analogRead(A0); // Lecture de la valeur du capteur d'humidité
while(sensorValue>=350){ // Tant que l'éponge n'est pas assez humide
if(c==0){ // On vérifie si l'éponge n'a encore jamais été mouillée
// L'éponge nous demande ce que l'on veut faire
lcd.clear();
lcd.setCursor(0,0);
lcd.write(byte(2));
lcd.write(" Qu'allons-nous");
lcd.setCursor(0,1);
lcd.write("faire ?");
}
else{ // Si l'éponge a au moins été mouillée une fois
// Elle ne nous accueille plus mais dit merci de l'avoir séchée
lcd.clear();
lcd.setCursor(0,0);
lcd.write(byte(1));
lcd.write(" Merci");
}
// Eteint le buzzer si jamais il a été allumé
noTone(buzzer);
delay(1000);
sensorValue = analogRead(A0); // On refait une lecture du capteur d'humidité
}
if(sensorValue<350) { // Si l'éponge est mouillée
// L'éponge nous demande de l'essorer et le buzzer s'allume
lcd.clear();
lcd.begin(16, 2);
lcd.write(byte(0));
lcd.write(" Essorez-moi");
lcd.setCursor(0,1);
lcd.write("vite !");
tone(buzzer,1000);
c=c+1; // On augmente le compteur pour montrer que l'éponge a déjà été moullée
}
}