« Aide à la concentration avec un Arduino » : différence entre les versions
Aucun résumé des modifications |
|||
Ligne 50 : | Ligne 50 : | ||
==Code Arduino== | ==Code Arduino== | ||
Voici le code Arduino permettant de faire bouger le moteur | Voici le code Arduino permettant de faire bouger le moteur servo de l'arduino | ||
#include <Servo.h> | #include <Servo.h> | ||
Ligne 59 : | Ligne 59 : | ||
int pos = 0; // variable to store the servo position | int pos = 0; // variable to store the servo position | ||
void setup() { | void setup() { | ||
myservo.attach(9); // attaches the servo on pin 9 to the servo object | myservo.attach(9); // attaches the servo on pin 9 to the servo object | ||
} | } |
Version du 2 septembre 2019 à 14:06
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. Pour ce faire, vous utilisez le langage de programmation Arduino (basé sur le câblage) et le logiciel Arduino (IDE), basé sur Processing. Plus d'information sur le site web
Le projet rentre dans le domaine de la Physicalisation de données
Objectif
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ères 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 sera notre session de travail. 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 session 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 voyant 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, je me suis rendu compte que la rotation du moteur allait être problématique, car elle désaxait l'arbre et l'empêchait de passer par les fentes. 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.
Voici à quoi ressemble la maquette finale:
Maquette finale | Maquette finale |
---|---|
Code Arduino
Voici le code Arduino permettant de faire bouger le moteur servo de l'arduino
- 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