====== 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/