====== GRAPHO LOGIC ======
\\
\\
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** ----
\\
{{ :wiki:projets:graphologic-arduino-clara-cottenceau:recherc.jpg |}}
\\
{{:wiki:projets:graphologic-arduino-clara-cottenceau:sans_titre-1.jpg|}}
\\
\\
\\
---- **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
{{ :undefined:sche_ma-01.jpg |}}
\\
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/