Aide à la concentration avec un Arduino
Cet article est en construction: un auteur est en train de le modifier.
En principe, le ou les auteurs en question devraient bientôt présenter une meilleure version.
Description du projet
Ce projet à été développé dans le cadre d'un projet indépendant en science de l'éducation du master MALTT ]après avoir assisté à un mooc sur l'internet des objets, plus particulièrement sur l'utilisation d'un Arduino.� Un Arduino est une plate-forme électronique à code source ouvert basée sur du matériel et des logiciels faciles à utiliser. Les cartes Arduino peuvent lire les entrées (lumière sur un capteur, doigt sur un bouton ou message Twitter) et en faire une sortie: activer un moteur, allumer une LED, publier quelque chose en ligne.
Arduino permet de développer des projets relativement facilement� allant du simple clignotement d'une LED à la création d'une imprimante 3D. L'avantage d'Arduino est une grande liberté et indépendance dans le choix des composants électroniques, leurs emplacements, ainsi que le langage de programmation Arduino (basé sur le câblage) et le logiciel Arduino (IDE), basé sur Processing.
Quelques projets possibles :
- créer un instrument de musique
- créer un régulateur d'humidité
- créer un robot contrôlable avec joystick
Plus d'information sont disponibles sur arduino.cc Le projet rentre dans le domaine de la Physicalisation de données
Objectif� et explications
L'objectif de ce projet est de reproduire une application smartphone permettant d'améliorer sa concentration et de se représenter le temps de travail au cours d'une session, en reportant les données de temps de manière physique, ici sous forme d'un arbre.
Plus particulièrement, l'idée, inspiré de Forest permet de représenter un arbre qui poussera pendant un temps dédié à étudier ou à effectuer une tâche.
On peut décider au préalable de combien de minutes� notre session de travail sera. Par exemple, 20 minutes = un arbre qui pousse. Une fois que l'arbre a "poussé", et que l'on accompli la session de travail, on dépose un petit arbre en plastique (physique) devant nous, afin de visualiser notre première session de travail comme achevée. A cet arbre s'ajoute le nombre de sessions de travail que l'on effectue pour le jour - une par arbre.
On peut donc ensuite visualiser devant nous notre forêt, constituée de toutes les sessions de 20 minutes de travail.
En plus de cela, pendant notre session d'étude, on peut voir notre arbre pousser, grâce à un moteur lié à un arduino, programmé pour faire pousser l'arbre plus ou moins lentement dépendemment de la longueur de notre session.
Ce principe permet de se concentrer sur notre tâche, tout en visualisant notre progression, avec la motivation rattachée à la volonté de voir l'arbre finir de pousser.
Prototypes
Première itération: Dans la première maquette, l'idée était d'utiliser le moteur rotatif (jusqu'à 180°) servo d'Arduino afin de pousser l'arbre (littéralement), petit à petit. L'arbre en papier était placé à l'intérieur d'une boîte (en carton), avec un trou en haut, afin de laisser l'arbre passer.
Au petit moteur rotatif a été attachée une baguette en bois, permettant d'agrandir la portée de la poussée vers le haut. Malheureusement, après de nombreux tests, il a été convenu que la rotation du moteur allait être problématique, car elle désaxait l'arbre et l'empêchait de passer par les fentes de la boîte. Même en agrandissant l'ouverture, cela n'a pas fonctionné car le moteur ne poussait pas l'arbre en ligne droite verticale.
Il a donc fallu repenser la maquette.
Deuxième itération:
Le problème venant de la poussée de l'arbre, je me suis imaginé que cela pourrait être solutionné en tirant l'arbre vers le haut à l'aide du moteur et d'un fil rattaché à l'arbre. Cette fois,ci j'ai placé le moteur en hauteur, attaché à une planche de bois.
Avec cette maquette, le mouvement rotatif du moteur tire cette fois sur une ficelle attaché à l'arbre, ce qui permet de faire monter l'arbre, et fait monter l'arbre de manière verticale sans problème.
Voici à quoi ressemble la maquette finale:
Maquette finale (vue de devant) | Maquette finale (vue de derrière) | Brancheme�nts exacts |
---|---|---|
Code Arduino
Voici le code Arduino permettant de faire bouger le moteur servo de l'arduino. T�out est manipulable. Si l'on souhaite faire une session d'étude plus longue, on augmente simplement le délai ��en ms.
#include <Servo.h>
Servo myservo; // create servo object to control a servo
// twelve servo objects can be created on most boards
int pos = 0; // variable to store the servo position
void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
void loop() {
for (pos = 0; pos <= 92; pos += 1) { // goes from 0 degrees to 92 degrees
// in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(1000); // waits 1000ms for the servo to reach the position
}
for (pos = 92; pos >= 0; pos -= 1) { // goes from 92 degrees to 0 degrees
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(30); // waits 15ms for the servo to reach the position
}
}
Ressources