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.

Capteur

Carde Seeeduino Lotus

trois capteur groove - light sensor

Schémas

Tutoriel

Brancher les capteur groove arduino à la carte seeeduino grâce aux câbles du capteur

Choisir les entrées analogiques A0 A2 A6

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