Porteur(s) du projet : Clara Cottenceau
Date : 20 mai
Licence : Libre
Contexte : Créer un objet interactif (graphique, physique, etc.) basé sur l'utilisation d'une carte Arduino et d'un ou plusieurs capteurs groove.
—- 1/ Recherches —-
—- 2/ Le projet —-
Graphologic propose de tester votre état d’esprit : remplissez d’abord une zone de texte à votre guise, puis choisissez entre deux types de bouton pour révéler sur l’écran le véritable fond de votre pensée… Plutôt arrêtée et éclairée ? Plutôt nuancée ?
Plus concrètement voici les fonctions de mon montage :
Étape 1 : l’utilisateur ouvre le programme et se retrouve devant une interface contenant une zone de texte vide
Étape 2 : l’utilisateur tape ce qui lui passe par l’esprit dans une typo neutre dans la zone de texte
Étape 3 : l’utilisateur doit maintenant choisir entre le bouton poussoir ou le potentiomètre, cela modifie le traitement du texte
Conclusion : le bouton poussoir allume en même temps une led et modifie la typo pour une typo avec empatement > « pour un esprit éclairé et une pensée appuyée ». Le potentiomètre définit « un esprit nuancé », la typo change alors de taille, plus grande ou plus petite.
Matériel : Carte arduino Uno - Alimentation - Carte Grove - Potentiomètre - Bouton poussoir - Led - 3 câbles Grove
Code Arduino :
/*macro definitions of Rotary angle sensor and LED pin*/ #define ROTARY_ANGLE_SENSOR A0 #define LED 3 //the Grove - LED is connected to PWM pin D3 of Arduino #define ADC_REF 5 //reference voltage of ADC is 5v.If the Vcc switch on the seeeduino //board switches to 3V3, the ADC_REF should be 3.3 #define GROVE_VCC 5 //VCC of the grove interface is normally 5v #define FULL_ANGLE 300 //full value of the rotary angle is 300 degrees const int buttonPin = 2; // the number of the pushbutton pin const int ledPin = 13; // the number of the LED pin // variables will change: int buttonState = 0; // variable for reading the pushbutton status void setup() { Serial.begin(9600); pinMode(ROTARY_ANGLE_SENSOR, INPUT); // initialize the LED pin as an output: pinMode(LED,OUTPUT); // initialize the pushbutton pin as an input: pinMode(buttonPin, INPUT); } void loop() { float voltage; int sensor_value = analogRead(ROTARY_ANGLE_SENSOR); voltage = (float)sensor_value*ADC_REF/1023; float degrees = (voltage*FULL_ANGLE)/GROVE_VCC; Serial.println("The angle between the mark and the starting position:"); Serial.println(degrees); int brightness; brightness = map(degrees, 0, FULL_ANGLE, 0, 255); analogWrite(LED,brightness); delay(500); // read the state of the pushbutton value: buttonState = digitalRead(buttonPin); // check if the pushbutton is pressed. // if it is, the buttonState is HIGH: if (buttonState == HIGH) { // turn LED on: digitalWrite(ledPin, HIGH); } else { // turn LED off: digitalWrite(ledPin, LOW); } }
Code Processing :
void setup () { // definition de la taile de la fenetre // syntaxe : size (Hauteur fenetre,largeur fenetre ) size(1000,800); } //Le programme principal s’exécute par une boucle infinie appelée draw () void draw () { // background (rouge,vert,bleu ) // affichage du fond de l'ecran en blanc background(255,255,255); fill(0,0,0); // Choix de la taille de la police textSize(32); // x => coordonnée x du texte // y => coordonnée y du texte text("Bonjour cher utilisateur ", 220, 75); // Choix de la taille de la police 18 pixels textSize(18); // Affichage d'un texte à l'écran text("Bienvenue dans notre examen virtuel GRAPHO-LOGIC ", 15, 150); // Choix de la taille de la police 15 pixels textSize(15); // Affichage d'un texte à l'écran text("Nous allons éclaircir vos idées", 15, 190); text("Veuillez taper ci-dessous le premier mot, état, humeur, sentiment... qui traverse votre esprit :", 15, 250); // Rectangle vierge pour taper le texte stroke(#030303); fill(#FFFFFF); rect(width*0.05, height*0.400, width * 0.6, height * 0.2); }
—- 3/ Biblio : —-
Code bouton grove :
http://wiki.seeedstudio.com/Grove-Button/
Code potentiomètre :
http://wiki.seeedstudio.com/Grove-Rotary_Angle_Sensor/
Un bon lien pour se renseigner sur les capteurs Arduino :
http://www.lafabriquediy.com/tutoriel/liste-des-capteurs-229/
Coder du texte sur processing :
https://fr.flossmanuals.net/processing/le-texte/