====== Arduino ======
* Porteuse du projet : Léa MAUFFREY
* Date : 05/2019
* Licence : libre!
* Contexte : Arduino
----
==== Description ====
Dans le cadre de mon mémoire de deuxième année, j'aimerais travailler sur l'apprentissage de l'informatique et des nouvelle technologie. Le but étant de rendre les nouvelles technologie abordable et d'en faire un outil pour soutenir la création. L'utilisation de la carte seeeduino permet de faire un circuit électrique simplement. Mon dispositif permet de générer des visuelles avec des formes géométriques. C'est un moyen de transformé la lumière en image et de créer ses propre visuels génératifs.
{{:wiki:projets:0.png?200|}}{{:wiki:projets:01.png?200|}}
{{:wiki:projets:02.png?200|}}{{:wiki:projets:04.png?200|}}
----
==== Capteur ====
* Carde Seeeduino Lotus
* trois capteur groove - light sensor
==== Schémas ====
{{:wiki:projets:shema.png|}}
----
==== Tutoriel ====
Brancher les capteur groove arduino à la carte seeeduino grâce aux câbles du capteur
{{:wiki:projets:20190519_185914.jpg?200|}}
Choisir les entrées analogiques
A0
A2
A6
{{:wiki:projets:20190519_185939.jpg?200|}}
----
==== Programmes Arduino====
//créer des variables pour récupérer les valeur de chaque capteur
//inscrire l'entré correspondant à la carte(0,2,6)
const int Voie_R=0;
const int Voie_G=2;
const int Voie_B=6;
int mesure_bruteR=0;
int mesure_bruteG=0;
int mesure_bruteB=0;
void setup() {
Serial.begin(9600);
}
void loop(){
mesure_bruteR=analogRead(Voie_R);
mesure_bruteG=analogRead(Voie_G);
mesure_bruteB=analogRead(Voie_B);
//valeur à envoyer à processing
Serial.print(mesure_bruteR);
Serial.print(",");
Serial.print(mesure_bruteG);
Serial.print(",");
Serial.println(mesure_bruteB);
//récupère la valeur des capteurs toutes les 500 milliseconde
delay(500);
}
----
==== Programmes Processing ====
Utilisation de la librairie Serial
[[https://processing.org/reference/libraries/serial/index.html]]
// importer la librairie pour communiger avec arduino
import processing.serial.*;
Serial myPort;
// variables correspondant au valeur des capteurs
float var1;
float var2;
float var3;
void setup() {
size(500, 500);
// afficher tous les ports disponibles
printArray(Serial.list());
String portName = Serial.list()[0];
//Important : se caler sur la valeur en baud du prog Arduino
myPort = new Serial(this, portName, 9600);
myPort.bufferUntil('\n');
}
Partie graphique. Couleur du fond et création des figures géométrique.
void draw() {
// chaque couleur (RVB) correspond à la valeur d'un capteur
color c = color(var1, var2, var3, 20);
fill(c);
rect(0, 0, width, height);
strokeWeight(5);
stroke(255, 255);
//créer une ligne qui varie en fonction des valeurs du capteur
line(500, var1, var2, var3);
line(var1,0, var2, var3);
line(var1, var2,500, var3);
line(var1, var2, var3,500);
}
Communication avec Arduino (récupération des valeurs des capteurs)
void serialEvent (Serial myPort) {
background(0); //efface l'écran à chaque boucle
//lire les valeurs envoyé par arduino
String inString = myPort.readStringUntil('\n');
if (inString != null) {
inString = trim(inString);
//on convertie une chaîne de caractère (String) en entier (int) correspondante
int inputs[] = int(split(inString, ',')); // on élude les virgules
// on affecte nos 3 valeurs au variable
if (inputs.length == 3) {
var1 = inputs[0];
var2 = inputs[1];
var3 = inputs[2];
// On ré-échelonne la valeur analogique en valeur RGB
var1 = map(var1, 0, 1023, 0, 255);
var2 = map(var2, 0, 1023, 0, 255);
var3 = map(var3, 0, 1023, 0, 255);
}
}
}
==== Références ====
* [[http://makerspace56.org/recuperer-une-valeur-analogique-arduino-avec-processing/]]
* [[http://wiki.seeedstudio.com/Grove-Light_Sensor/]]
* [[https://processing.org/]]
* [[http://wiki.seeedstudio.com/Seeed_Arduino_Boards/?fbclid=IwAR0_Ez1RFzp38UfK_5nvkYddf24hPlwJHHSCr2FtH8YcSTSLSam1KDeO_t8]]